AI War 2:Special Mechanics

From Arcen Wiki
Jump to navigation Jump to search

A Note To Players from AI War Classic

Please note that pretty much every mechanic you are familiar with has been changed to at least a minor degree.

Every mechanic is more flexible now, with ranges of how they can function rather than just being on/off gates. Additionally, mechanics are now heavily dependent on the 8 basic stats of every ship, which are mostly new in this game (note that metal is discussed on that page but not counted as one of the 8 basic stats).

There are no longer any generalized "immune to tractor beams" (or whatever along those lines) properties. Instead, everything is more physically-based and the attacking system would instead say "I can only target ships with xyz physical property."

This does a few things:

  • Firstly, it makes it so that ships don't have a ton of immunities and single-use stats (like engine health or paralysis resistance amount) defined. This makes tooltips simpler and more consistent.
  • Secondly, it allows for variable-quality systems. Some tractor beams can be allowed to grab more powerful targets than others, for example.
  • Thirdly, it makes it so the relevant stats needed to understand how a ship with a special ability functions are all on that ship itself; you can see what sort of ship stats it can hit with its ability, and what its ability does, all in one place. This again increases readability.
  • Lastly, this future-proofs ships to a certain extent, which is particularly important in a moddable environment. The various physical stats are not arbitrary, but instead define physical properties of the ship. So long as someone who made a custom ship has defined those in a way that makes sense for their ship, then any new weapons introduced in future expansions, other mods, or similar will all "just work" with the custom ship with no changes.
    • In AIWC, we would have had to evaluate every ship to see if it needs new immunities to the new ability, by contrast, meaning that if a modder didn't do that their ship could act in unexpected ways with new features.

Cloaking

~*~

Tachyon Beams

~*~

Tractor Beams

~*~

Gravity Fields

~*~

Bubble Forcefields

~*~

Personal Shields

~*~

Engine Stun

Weapons that have an engine-stun ability on them will add a certain number of seconds' worth of engine stun to targets that they hit. If a weapon has an engine stun effect of 8 seconds, then every target it hits will have its engines stunned for 8 seconds. The effects of these stuns are cumulative, up to a maximum of 60 seconds.

However, an engine-stunner can only hit ships that have up to a certain engine gravitic exponent (gx). Depending on the strength of the stunner, many ships with stronger gravity-generating engines will be completely immune to the stun. No ships have partial immunity. Note that even if a ship is immune to the engine-stun from a weapon, the firing weapon will still do its normal hull/shield damage.

Lastly, when looking at a ship that has been engine-stunned, it's worth noting that the stun is less effective depending on how few second's of stun are left. At 1 second of stun remaining, the ship can still move at 90% of its normal speed. At 4 seconds of stun remaining, it can still move at 50% of its normal speed. By the time there is 7 or more seconds of stun remaining, the ship cannot move at all.

It is possible for engineers to repair engine-stunned ships to get them back online faster.

An engine-stunned ship can still use all of its abilities and weapons as normal; it simply cannot move (or cannot move as fast, if its stun has almost worn off).

Modders:

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

~*~

Ion Damage

Ion damage is a special form of radiation that affects ships of a lower mark level than the attacker. Notably, a weapon with ion damage can only hit ships that have a lower mark level than itself. Ion weapons also cannot hit markless ships.

The greater the difference in mark levels between the attacker and the defender, the more damage the attacker does. However, defending ships with a sufficiently high albedeo are also immune to ion damage. The ion weapon has a rating on itself that states what maximum albedeo it is able to hit; so not all ion weapons are equal.

Another inequality between ion weapons is just how much damage they do based on the difference in mark levels. Some may only have a 20% ion damage rating, and thus do 20% damage to a ship that is 1 level below them, 40% to a ship that is two levels below them, and 40% damage to a ship three levels below them, etc. Another weapon may have an 80% ion damage rating, and thus do 80% damage to a ship that is 1 level below them, and 100% damage to a ship that is 2 levels below them. The amount of damage caps out at 100%.

What exactly is the "damage percentage" based off of?

  • If the defending ship has any shield points at the moment, then it is based off the percentage of the maximum shield points that ship could have.
    • So if a ship has 250 max hull points and 200 max shield points, and currently has 250 hull points and 10 shield points...
      • An ion weapon with a rating of 100% would do 200 damage to the ship, thus causing the target ship's shield points to drop to 0, and the ship's hull points to drop to 60.
      • An ion weapon with a rating of 20% that is two levels above the ship would deal 80 damage, thus causing the shield points to drop to 0 and the hull points to drop to 180.
  • If the defending point has no shield points at the moment (regardless of whether their max shield points is above zero), then it is based off the percentage of the maximum hull points that ship could have.
    • So if a ship has 250 max hull points and 200 max shield points, and currently has 240 hull points and 0 shield points...
      • An ion weapon with a rating of 100% would do 250 damage to the ship, thus killing the target.
      • An ion weapon with a rating of 20% that is two levels above the ship would deal 100 damage, thus dropping the target's hull points to 140.

Reminder: if a potential target's albedeo is higher than the ion system is rated for, OR the potential target's mark level is greater than or equal to the firing ship, OR the target is markless, then the ion weapon can't even fire at the target.

Modders:

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)

When these ships damage another ship, they also heal themselves. Depending on the strength of their vampirism, they may heal by just a portion of the damage they damage dealt, or could even do a magnified amount of healing.

This first repairs hull health, and then if the hull is fully repaired it will start repairing the shield health (personal or bubble, if present) of the ship.

Modders:

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

When these ships damage another ship, they also damage themselves. Depending on the strength of their self-damage, they may do just a portion of that damage to themselves, or could even do a magnified amount of damage to themselves.

As with any normal sort of damage, this will first damage the shield health of the personal or bubble forcefield that the attacker has, and then it will switch over to damaging the hull of that ship after that.

Note that if another ship is protecting the attacker via a bubble forcefield , that doesn't cause the attacker to damage the external bubble forcefield protecting it. The attacker can only damage itself, whether that be its own shields or hull.

An attacker WILL kill itself eventually if it attacks enough, and it will consider this essentially the normal cost of doing business, so to speak. It won't hold back when an attack would cause it to kill itself.

Modders:

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)

These ships are able to heal other ships that are damaged.

Modders:

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

These ships are able to rebuild ships that have been destroyed and turned into burnt-out husks of themselves. This goes for things like golems that die and turn inactive, and things like turrets as well (this is a convenience so that you don't have to manually rebuild your turret placements every time one dies -- you just have to have rebuilders handy and then pay for the metal costs).

Modders:

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)

These ships are able to speed up the construction of ships that are either self-building or which are being constructed via a queue inside a space dock or similar. This ability is typically on engineers, but can be given to other ships as well.

Modders:

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

These ships are able to go over to neutral ships or structures (anything from golems or other ships that are capturable to simple metal harvester spots) and repair them to turn your team color and start working for you.

Modders:

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.

Spawning Drone Ships

~*~