Ranged Attacks



  • There are currently ways to jury rig something like a ranged attack system rn but I do think a good process for ranged attacks is likely a useful for the system

    Ranged units might just mean a first strike ability. Making isFirstStrike and isFirstStrikeDefense options may be simple and allow for some interesting things. This could be useful in the ancient world maps for units like bowman.

    Ranged units might also mean the ability to take one shot and retreat immediately. Giving artillery this ability in World War era maps would be a great feature i bet a lot of map makers would like. It would have the wonderful benefit of reducing stack.

    Also - if you are gonna have ranged attacks they will almost certainly need a random casualties option.

    I bet I'm not the first person to ask for this and I doubt I'm the only one who wants it.



  • @scallen1 said in Ranged Attacks:

    Making isFirstStrike and isFirstStrikeDefense options may be simple and allow for some interesting things.

    This is already possible, sort of.

    <option name="targetsAA" value="swordsman:bowman:horseman"/>
    <option name="typeAA" value="ranged_first_strike"/>
    <option name="attackAA" value="3"/>
    <option name="offensiveAttackAA" value="2"/>
    <option name="isAAforCombatOnly" value="true"/>
    <option name="mayOverStackAA" value="true"/>
    <option name="maxAAattacks" value="1"/>
    <option name="maxRoundsAA" value="1"/>
    

    This will give the unit an attack (in addition to its normal attack) that fires before all other units fire. You can generate various sorts of targeted attacks this way. For more examples, take a look at the game xml files of: Pact of Steel 2, Greyhawk Wars (cavalry charge), Total World War (anti-tank fire), Battle for Arda (various).

    Ranged units might also mean the ability to take one shot and retreat immediately.

    This is also a feature implemented in some maps, although it's a bit hacky. You have to give the ranged unit <option name="createsUnitsList" value="1:bombardment"/>, where "bombardment" is a 1-movement suicide unit. You also have to remove all remaining "bombardment" units with triggers at the end of the turn.

    Also - if you are gonna have ranged attacks they will almost certainly need a random casualties option.

    <property name="Choose AA Casualties" value="false" editable="false">
        <boolean/>
    </property>
    

    This will randomize casualties if you implement ranged first strike in the way I described above.



  • @alkexr I know. This makes option name = firstStrike an easy thing to probably make and it would be very nice to have. Same way isFactory sets a bunch of things for you.

    having it as AA is ughh so ugghhh


  • Donators Moderators Admin

    @scallen1

    An alternate method is to repurpose the "airborne" technology. I have tested it for various ranged attacks. However it does have pros and cons to consider. But it is doable.

    Ultimately a new feature that cleanly achieves ranged attacks versus hit points would be cool.


  • Admin

    Given that the TripleA engine is very "unit" focused, I generally think that using some form of createsUnitsList to generate "ammo/missile/etc" units is the way to go vs something like how sea bombardment works. That being said if allowing land/air units to do bombardment is something that could be considered.

    I tend to think that the approach the @alkexr describes which @Hepps has discussed for GD as well is pretty good. I'm open to consider ideas how to improve it but "AA" in the XML is really more of a "targeted attack".

    I haven't really considered the airborne tech stuff. Not even sure I fully understand how all that works.


  • Moderators

    @redrum Airborne would be just fine for this if only if it would be tweaked as to assure that units that did airborne cannot move on the same turn. That way you could have artillery firing shells on a 1:1 basis, and not moving when doing so. This is currently not enforced, since in the basic games all such units are immobile. I guess this would be an easy tweak to assure airborne vectors to be unable to move in the subsequent non combat move, and I think it would be neat.


  • Moderators

    @redrum said in Ranged Attacks:

    I haven't really considered the airborne tech stuff. Not even sure I fully understand how all that works.

    Say, with that you can have 1 artillery unit that can send 1 shell unit at X distance. The current problem, from my point of view, is that the artillery can freely move, while I believe it would make the only sense that, if the artillery was used to "send" the shell, then it should be unable to move, at least after having done that (not a strong opinion about before).
    So, basically, from my point of view, it's all there; just it needs to assure that the vector cannot move after having launched the other unit.


  • Moderators

    For a more traditionally strategic representation of ammunition consumption, my idea would be to assure that:

    • suicide units are supportable
    • suicide units don't suicide if have rolls=0

    Once done the above two, you would just need sending in attack "artillery" and "shells" and, for example, giving the artillery the ability to give 1 roll to 1 shell, while the shells are infrastructure suicide units with rolls=0 (useless on their own). This way, 1 artillery unit would make 1 shell per round suicide (and possibly hit something). I think this would be a great and very realistic dynamic, that would add a cool dimension (you can decide on a 1:1 artillery shells if you want to burn all on the first combat round, or a different ratio; this would be a great enhancement on realism and strategic making).

    Historically, the cost of ammunition consumption was several times the cost of the artilleries firing the ammunitions, in WWII too (of course, even more so in WWI).



  • @redrum said in Ranged Attacks:

    Given that the TripleA engine is very "unit" focused, I generally think that using some form of createsUnitsList to generate "ammo/missile/etc" units is the way to go vs something like how sea bombardment works. That being said if allowing land/air units to do bombardment is something that could be considered.

    Until there is a unit option which destroys the unit at the end of every turn I will consider generating ammo units a hack (specifically the removal of ammo units by triggers). But even if we had this unit option, it still wouldn't feel natural. Units should represent military units as much as possible. Naval bombardment is better from this perspective, but I agree that implementing something like that for land units would be confusing.


  • Admin

    @alkexr Yeah, the biggest issue is when you get a large stack of bombard units its a huge pain to select all their targets and remember which ones targeted what.