arescentral / antares

A tactical space combat game
http://arescentral.org/antares/
GNU Lesser General Public License v3.0
100 stars 18 forks source link

Allow fighters to return to a carrier #368

Open sfiera opened 3 years ago

sfiera commented 3 years ago

In Ares, launched fighters cannot return to their mothership. In Escape Velocity, they can. How could Antares support it?

The simplest approach would be something like this on the fighter:

arrive:
  action:
    * type:  "group"
      if: {has-weapon: "matching-launch-bay"}
      of:
        * {type: "increase ammo", weapon: "matching-launch-bay"}
        * {type: "remove", reflexive: true}

In that case, I think that fighters launched into combat would fight, and then return to the carrier after no hated objects remained in their vicinity. Needs testing. It would have the effect of restoring the fighters’ shields and ammo to full; does that match EV?

To match EV, it would be better for the “Special Orders” section of the minicomputer to have a “return to carrier” option, but I’m not sure how to go about that offhand.

ahalstead-sctg commented 3 years ago

Just here to confirm that yes, restoring the fighter resources upon recall was the behavior in EV. The fighter launch time penalty was too low, and that meant you could spam missiles by repeatedly relaunching fighters--Antares' launch penalties are much better IMHO so it probably isn't a big deal.

sfiera commented 3 years ago

Well, I wouldn’t change the factory scenario either way. It’s more of interest for plugins like EVNet that want to mimic EV within Ares. It would be an option for plugins in the Ares universe too, though.

With a Kestrel, automatic return-when-clear behavior might work fine. That should be enough of a guard against missile spamming, and return/relaunch is cheap enough that doing it automatically isn’t a penalty.

For Ares, the slower launch speed might not combine well with automatic return. I know some Ares strategy guides specifically mention pre-launching fighters. In that case, you might want the Return special order.

You could also imagine other behaviors, like automatic return-before-warp, though that gets more complicated to implement.