diff --git a/vacuum_gambit.p8 b/vacuum_gambit.p8 index d351bcf..b5c42ce 100644 --- a/vacuum_gambit.p8 +++ b/vacuum_gambit.p8 @@ -585,17 +585,22 @@ end function ship_m:move() self:refresh_shield() local dx, dy, shoot_spec1, shoot_spec2 = self:act() - dx = self:constrain(self.x, self.xmomentum, self.xmin, self.xmax, dx) - dy = self:constrain(self.y, self.ymomentum, self.ymin, self.ymax, dy) + local sg, xm, ym = self.special_guns, self.xmomentum, self.ymomentum + dx = self:constrain(self.x, xm, self.xmin, self.xmax, dx) + dy = self:constrain(self.y, ym, self.ymin, self.ymax, dy) self:maybe_shoot(self.main_gun) - if (shoot_spec1 and self.special_guns) self:maybe_shoot(self.special_guns[1]) - if (shoot_spec2 and self.special_guns) self:maybe_shoot(self.special_guns[2]) + if sg then + if (shoot_spec1) self:maybe_shoot(sg[1]) + if (shoot_spec2) self:maybe_shoot(sg[2]) + end spark(self.sparks, self.x + 4*self.size, self.y + 4*self.size, dx*2.5, dy*2.5, self.sparkodds) - self.xmomentum = self:calc_velocity(self.xmomentum, dx) - self.ymomentum = self:calc_velocity(self.ymomentum, dy) + xm = self:calc_velocity(xm, dx) + ym = self:calc_velocity(ym, dy) - self.x += self.xmomentum - self.y += self.ymomentum + self.x += xm + self.y += ym + self.xmomentum = xm + self.ymomentum = ym return false end