Bombardment/Anti-Air actions

What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Bombardment/Anti-Air actions

Postby GriffonSpade » Wed Mar 22, 2017 7:49 pm

Newest Revision. This version is greatly simplified, and is listed in terms of changes to current functionality in a way that represents how changes might actually be implemented, and in order of priority.

Part 1) Bombardment
Alter Bombard to be single-target by default, rather than mass-target. The target selection is for the best defender, same as standard Attack action.

Part 2) Mass Bombardment
Add the Mass Bombard action. Behavior is identical to current Bombard behavior.

Part 3) Bombard Flags
Add "BombardKillSea" and "BombardKillLand" unit flags. These flags allow the Bombard action to kill units of proper movement type.
-For example, a Destroyer, Submarine, or Torpedo Bomber with "Bombard Kill Sea" making a Bombard action (Torpedo Attack) against a ship could sink an enemy ship.
Add the "MassBombarder" unit flag. Enables Mass Bombard action, which mass-targets all reachable units on a tile.
-Nothing new here. works as Bombard currently does.

Part 4) Defensive Bombardment
Add the 'defensive bombardment' phase when a bombarding unit is targeted by an Attack action. When the target of an Attack action, the defender bombards an attacker for a single round (rather than <bombard_rate> rounds) before executing the standard Attack action.

Part 5) Bombardment Values
Add <bombard_attack> unit property. This replaces <attack> for Bombard and Mass Bombard actions.
Add <bombard_firepower> unit property. This replaces <firepower> for Bombard and Mass Bombard actions.
-This allows a unit to have unlinked melee and bombard attack values
Add "BombFromNonNative" unit flag. Allows bombarder to Bombard and Mass Bombard from non-native terrain.
Add "BombOnlyNative" unit flag. Allows bombarder to Bombard and Mass Bombard ONLY native tiles.
-This allows units to 'skirmish'. For example, an Archer with "BombOnlyNative" making a Bombard action (Skirmish) can harry a Legion or Phalanx without engaging, but are unable to get close enough to a Trireme to shoot arrows at them.

Part 6) Anti-Air
Add <anti-air> unit property. This value is used when Attacking or Defending against Air Units instead of Attack or Defense.
Add <air_firepower> unit property. This value is used when Attacking or Defending against Air Units instead of Attack or Defense.

Part 7) Strafe Flag
Add "Strafe" unit flag. Can only make a single attack, regardless of movement points. Unlike "OneAttack", attack/bombard/etc does not consume all movement points, allowing the unit to flee after attacking.
Last edited by GriffonSpade on Sun Dec 17, 2017 8:59 am, edited 3 times in total.

sveinung
Elite
Posts: 438
Joined: Wed Feb 20, 2013 4:50 pm

Re: Ranged/Air Attack actions

Postby sveinung » Thu Mar 23, 2017 12:02 am

GriffonSpade wrote:Ability to limit Attack actions to one's own theater, to prevent air units from simply using Attack on land or sea units, or sea units from using Attack on land units.


I think you can implement this with ruleset unit (class) flags and action enablers. You'll need one action enabler and one user unit (class) flag for each theater. You'll need two user unit (class) flags for each theater if you want to be able to make exceptions for certain units or unit classes. Define an "IsX" and an "AttacksX" unit (class) flag for each theater. Define one "Attack" action enabler for each theater. It should have "AttacksX" in its actor reqs and "IsX" in its target reqs. (Merge "IsX" and "AttacksX" if you don't want to be able to make exceptions)

Edit: this assumes that the target of "Attack" will become the target unit(s). I have a plan for how it could be done.

User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Ranged/Air Attack actions

Postby GriffonSpade » Sun Dec 17, 2017 8:56 am

Updated first post with newest revision.