AI War 2:Modding Special Mechanics
Contents
- 1 Please Refer To The Main Special Mechanics Page
- 2 Cloaking
- 3 Tachyon Beams
- 4 Tractor Beams
- 5 Gravity Fields
- 6 Bubble Forcefields
- 7 Personal Shields
- 8 Engine Stun
- 9 Paralysis
- 10 Ion Damage
- 11 Vampirism (Self-Healing)
- 12 Self-Damage
- 13 Repairs To Ships (Engineering)
- 14 Rebuilding
- 15 Assisting Ship Construction (Also Engineering)
- 16 Claiming Neutral Entities
- 17 Area of Effect Damage (Circular Variants)
- 18 Area of Effect Damage (Beam Variants)
- 19 Multi-Shot Salvos
- 20 Zombification
- 21 Nanocaustation
- 22 Metabolization
- 23 Spawn Camping
- 24 Weapon Systems Damage (Strength/Reload/Range)
- 25 Personal Shield Penetration/Damage-Boost/Penalty (With Variants)
- 26 Armor Crush/Compression (Low/High Armor Damage-Boost)
- 27 Implosion (High Energy Damage-Boost)
- 28 Regen (Personal/Field)
- 29 Regenerator (Global)
- 30 Attrition (Personal/Field/Planetary)
- 31 Spawning Drone Ships
- 32 Hydra
- 33 Damage Reduction Field
- 34 Damage Amplification Field
- 35 Damage Reduction Field
Please Refer To The Main Special Mechanics Page
For general explanations of what these special mechanics ARE, please visit the Special Mechanics page as a reference.
Cloaking
~*~
Tachyon Beams
~*~
Tractor Beams
~*~
Gravity Fields
~*~
Bubble Forcefields
~*~
Personal Shields
~*~
Engine Stun
Define the base_engine_stun_per_shot on the system in question as being an integer value above 0. This is how many seconds' worth of stun the system will do to targets it hits every time it hits them.
Optionally, define added_engine_stun_per_shot_per_mark, again as an integer. This is how many extra seconds' worth of stun the system will do if the mark level of the ship is above 1. So if this value is set to 2, then it will do 2 extra seconds of stun at mark 2, 4 extra seconds of stun at mark 3, etc.
You must also define engine_stun_to_engine_gx_less_than as being some value above 0. If this is not defined, the default value is 0 and thus the engine damage will never be applied to any ships! The typical engine gravitic exponent (gx) that you would assign to this field would be something like 15 for a typical engine-stunner, or up to something like 25 if you want to have a world-ending engine stunner that can even hit Arks and dire guardians and the devourer golem and other ships that you really would not expect to be able to stun. Probably best not to go that high, or you may create a super weapon that breaks the balance of the game.
In the global external constants xml, located in GameData/Configuration/ExternalConstants/, there are two values defined that you can override in sub-xml files if you wish.
- max_engine_stun defines how long any ship can be stunned, at most. The default is 60 seconds.
- engine_stun_multipliers_by_stun_seconds defines how fast ships can move per remaining seconds of stun. The default values are: 1,0.9,0.7,0.6,0.5,0.3,0.1,0
- Anything number of seconds above the last entry in that list will take the value of the last entry in the list.
Paralysis
Define the base_paralysis_seconds_per_shot on the system in question as being an integer value above 0. This is how many seconds' worth of paralysis the system will do to targets it hits every time it hits them.
Optionally, define added_paralysis_seconds_per_shot_per_mark, again as an integer. This is how many extra seconds' worth of paralysis the system will do if the mark level of the ship is above 1. So if this value is set to 2, then it will do 2 extra seconds of paralysis at mark 2, 4 extra seconds of paralysis at mark 3, etc.
You must also define paralysis_to_ships_mass_tx_less_than as being some floating-point value above 0. If this is not defined, the default value is 0 and thus the paralysis will never be applied to any ships! The typical mass tonne-Exponent (tX) that you would assign to this field would be something like 2 for a typical engine-stunner that is just going to hit fleetships and turrets and whatnot, or 5 if you want to include starships and some other larger units, or 10 if you want to include Arks and other very-large ships, or up to something like 19 if you want to have a world-ending paralyzer that can even hit the devourer golem and other ships that you really would not expect to be able to paralyze. Probably best not to go that high, or you may create a super weapon that breaks the balance of the game.
In the global external constants xml, located in GameData/Configuration/ExternalConstants/, there is one value defined that you can override in sub-xml files if you wish.
- max_paralysis_time defines how long any ship can be paralyzed, at most. The default is 20 seconds.
Ion Damage
Define the ion_percentage_per_mark_level_lower on the system in question as being a floating point value between 0 and 1. A value of 1 would be a rating of 100% per mark level, as noted above, whereas a value of 0.2 would be a rating of 20% per mark level, as noted above.
You must also define ion_damage_to_albedo_less_than as being some value between 0 and 1. If this is not defined, the default value is 0 and thus the ion weapon will not be able to hit anything and will never fire! Ideally this ion_damage_to_albedo_less_than should be something like 0.5 at most, in order to not allow ion weapons to insta-kill Arks and similar high-quality ships. That gets to feeling kinda funky.
That said, you could define something with a super low damage per mark level (0.05 for example for 5% damage per mark level difference), and then an albedeo rating of 1 (so that it can hit absolutely any ship), and then you've got a pretty interesting gun that's powerful against low-level ships, particularly so against higher-health or higher-shield ships (since it's all percentage-based), but not insta-killy at all. So there are cases where you might do all sorts of things.
Vampirism (Self-Healing)
Simply define self_healing_portion on the system in question. A value of 1 will do equal healing to the attacker that it did damage to the defender. Note that a ship's health can't be increased above 0. A value of 0.5 would heal the attacker by half the amount of damage it dealt, and a value of 2 would do twice the healing compared to the damage it dealt.
Self-Damage
Simply define self_damage_portion on the system in question. A value of 1 will do equal damage to the attacker and defender. A value of 0.5 would do half damage to the attacker, and a value of 2 would do twice damage to the attacker.
Repairs To Ships (Engineering)
To set up a ship as able to assist, you must define an assist_range on the ship. Most engineers use VeryTiny3, or Tiny3 if you want it to be a bit larger. As the mark level of the ship increases, the range will automatically increase by the assist_range_multiplier that is defined on the central MarkLevel definitions that you can see in GameData/Configuration/Balance_MarkLevel.
You also must define at least one metal flow sub-node on the entity. In most cases, you will actually want to define multiple. The purposes available are as follows:
- RepairingHullsOfFriendlies lets you repair the hulls of ships.
- ReplacingLocalSquadLosses lots you repair dead sub-squads on multi-sub-squad ships. Without this, even if you have RepairingHullsOfFriendlies, you can't fully repair a ship that has lost a subsquad.
- RepairingShieldsOfFriendlies lets you repair the personal or bubble shields of ships.
- RepairingEnginesOfFriendlies lets you remove engine stun from ships.
Rebuilding
To set up a ship as able to rebuild, you must define an assist_range on the ship, with the same notes on that as are on repair/assistance above.
You also must define a metal flow sub-node of the entity with a purpose of RebuildingRemains.
Assisting Ship Construction (Also Engineering)
To set up a ship as able to assist construction, you must define an assist_range on the ship, with the same notes on that as are on repair/assistance above.
You also must define a metal flow sub-node of the entity with a purpose of AssistConstruction.
Claiming Neutral Entities
To set up a ship as able to claim neutral entities, you must define an assist_range on the ship, with the same notes on that as are on repair/assistance above.
You also must define a metal flow sub-node of the entity with a purpose of ClaimingNeutrals.
Area of Effect Damage (Circular Variants)
~*~
Area of Effect Damage (Beam Variants)
~*~
Multi-Shot Salvos
~*~
Zombification
~*~
Nanocaustation
~*~
Metabolization
~*~
Spawn Camping
~*~
Weapon Systems Damage (Strength/Reload/Range)
~*~
Personal Shield Penetration/Damage-Boost/Penalty (With Variants)
~*~
Armor Crush/Compression (Low/High Armor Damage-Boost)
~*~
Implosion (High Energy Damage-Boost)
~*~
Regen (Personal/Field)
~*~
Regenerator (Global)
~*~
Attrition (Personal/Field/Planetary)
~*~
Spawning Drone Ships
~*~
Hydra
~*~
Damage Reduction Field
~*~
Damage Amplification Field
~*~
Damage Reduction Field
~*~