AI War 2:Modding Special Mechanics

From Arcen Wiki
Jump to navigation Jump to search

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

These must be set up as their own system on an entity, and they don't have all those usual weapon-specific properties. They may exist on their own, or next to other weapon and non-weapon systems.

These have four attributes that must be set:

  • tractor_count defines how many beams this emitter can send out at once.
  • tractor_range defines how long the beams can be.
    • VeryTiny2 is the standard for ships where tractoring isn't their main priority. Tiny4 is the standard for units that are focused mainly on tractoring.
  • tractor_hits_albedo_less_than is an albedeo value between 0 and 1. If this is not set to something above 0, the tractor beams will not work!
    • Something in the 0.3 to 0.5 range is the most likely area you want to be in. Tractor beams should not be grabbing highly-shielded targets.
  • tractor_hits_engine_gx_less_than is an engine gravitic exponent (gx) value between 1 and 25.
    • If the albedo is middling, then this should also probably top out at around 15.
    • However, if you crank the albedo lower, you could shoot this one higher, and vice-versa. These could thus specialize in hitting certain types of ships without hitting ships that are too powerful and central.

Gravity Fields

~*~

Bubble Forcefields

Simply assign a value greater than 0 to the shield_points attribute on an entity, and it will gain personal shields. Then assign shield_size_scale, and it will become a bubble forcefield.

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.

  • time_to_regen_bubble_forcefields defines how long, at most, it takes a bubble forcefield to regenerate without help. The default is 120 seconds.

Personal Shields

Simply assign a value greater than 0 to the shield_points attribute on an entity, and it will gain personal shields. Do NOT assign shield_size_scale, or else it will become a bubble forcefield.

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.

  • time_to_regen_personal_shields defines how long, at most, it takes a personal shield to regenerate without help. The default is 30 seconds.

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, which will also revive any lost sub-squads (if any) as appropriate.
  • 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

~*~