I'm also not sure if missile hit determination is working correctly or not. How hard would it be to put something in that reports the result of the missile hit check? I mean in the situation where the game determines that a missile has not been shot down, spoofed or evaded, the procedure on page 10 of the rules should kick in: "To determine if a missile hits its target, use the target’s Target Roll, add the missile’s Guidance rating, substract the target pilot’s skill level and apply the speed modifier, taking only the target’s speed into consideration. The missile’s own speed is irrelevant, as is the distance between missile and target". So, there should be a dice check there; would it be difficult to have the game report the result of that check?
Great catch! First off, including that in a report would be trivial.... until I looked into it and realize that all missiles auto-hit once they make it past point defence and chaff and evasive action! This brings up another point, which is that missiles don't remember who fired them currently. So, for everything but a DF, the fix is really easy, and already in place. For DF's it'll take me probably an hour to rebuild the missile class to have room for an originating ship, and then put in all the important database tracking info for that, etc. so that we can actually use the correct pilot's skill on firing.
edit: I just found what I consider to have been a simple, yet serious coding error. While checking over the weapon fire code (so I could implement missile hits the same way) I realized that the
$weapon->weapon_fire_at($target, $refires) function had a serious error! Check this out:
Code:
$TR = calculate_TR($this->target, $target)
There are 2 flaws with this:
- The calculate_TR function has the form ($attacker, $defender), and this sure looks like I'm trying to feed it the defender twice!
- $this->target (in this context '$this' is a weapon on a ship's rail) doesn't exit. Weapons don't remember their own targets, their ships do!
So I've changed it to:
Code:
$TR = calculate_TR($this->ship, $target)
This means that, for Alpha Games 1 through 4, there have been no Attacker-side TR penalties OR benefits. The Attacker speed hasn't mattered, if the attacker was rolling, it was ignored, etc. I'm shocked this wasn't crashing or something. The good news is that the defender was getting any benefits of moving fast, rolling, etc.
So.... expect hitting to be slightly harder now, as, on average, I expect required TR-to-hit to increase.
edit2: I haven't put any of the above online, so while the next movement turn is safe to take, if you guys are reading this, please don't post the next combat phase orders until I post again here that it is ready for testing.