ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.
Who crushes whom: Difference between revisions
Jump to navigation
Jump to search
D's latest experiments drowned in a discussion about table styles... |
No edit summary |
||
(8 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
This page details how the crushing system works. The table shows whether a defender can be crushed by an attacker, depending on how the flags {{ | This page details how the crushing system works. The table shows whether a defender can be crushed by an attacker, depending on how the flags {{f|Crusher|link}}, {{f|Crushable|link}}, {{f|OmniCrusher|link}} and {{f|OmniCrushResistant|link}} are set, and for reference, also shows the effect of {{f|IsTrain|yes|link}}. | ||
<div align="center"> | <div align="center"> | ||
Line 7: | Line 7: | ||
|rowspan=3 | | |rowspan=3 | | ||
|colspan=2 | | |colspan=2 | | ||
!colspan= | !colspan=6 style="border: 1px solid #000000;"|Defender | ||
|- | |- | ||
|colspan=2 | | |colspan=2 | | ||
|colspan=2 |{{ | |colspan=2 |{{f|Crushable|link}} | ||
|colspan=2 |{{ | |colspan=2 |{{f|DeployedCrushable|link}} | ||
|colspan=2 |{{f|OmniCrushResistant|link}} | |||
|- | |- | ||
|colspan=2 | | |colspan=2 | | ||
|style="background:#e5e5e5;"|{{Tt|yes}} | |||
|style="background:#e5e5e5;"|{{Tt|no}} | |||
|style="background:#e5e5e5;"|{{Tt|yes}} | |style="background:#e5e5e5;"|{{Tt|yes}} | ||
|style="background:#e5e5e5;"|{{Tt|no}} | |style="background:#e5e5e5;"|{{Tt|no}} | ||
Line 19: | Line 22: | ||
|style="background:#e5e5e5;"|{{Tt|no}} | |style="background:#e5e5e5;"|{{Tt|no}} | ||
|- | |- | ||
!rowspan= | !rowspan=6 style="border: 1px solid #000000;"| A <br>t<br>t<br>a<br>c<br>k<br>e<br>r | ||
|rowspan=2 style='vertical-align: middle;' |{{ | |rowspan=2 style='vertical-align: middle;' |{{f|Crusher|link}} | ||
|style="background:#e5e5e5;"|{{Tt|yes}} | |style="background:#e5e5e5;"|{{Tt|yes}} | ||
|style="background:#F0F0F0;"|{{Y}} | |style="background:#F0F0F0;"|{{Y}} | ||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"|{{Y}} | |||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"| | |style="background:#F0F0F0;"| | ||
|- | |- | ||
Line 32: | Line 37: | ||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"| | |||
|- | |- | ||
|rowspan=2 |{{ | |rowspan=2 |{{f|OmniCrusher|link}} | ||
|style="background:#e5e5e5;"|{{Tt|yes}} | |style="background:#e5e5e5;"|{{Tt|yes}} | ||
|style="background:#F0F0F0;"| | |style="background:#F0F0F0;"| | ||
|style="background:#F0F0F0;"| | |style="background:#F0F0F0;"| | ||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"|{{Y}} | |style="background:#F0F0F0;"|{{Y}} | ||
|- | |- | ||
|style="background:#e5e5e5;"|{{Tt|no}} | |style="background:#e5e5e5;"|{{Tt|no}} | ||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"| | |||
|style="background:#F0F0F0;"| | |style="background:#F0F0F0;"| | ||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"|{{N}} | |style="background:#F0F0F0;"|{{N}} | ||
|style="background:#F0F0F0;"|{{ | |- | ||
|rowspan=2 |{{f|IsTrain|link}} | |||
|style="background:#e5e5e5;"|{{Tt|yes}} | |||
|style="background:#F0F0F0;"|{{Y}} | |||
|style="background:#F0F0F0;"|{{Y}} | |||
|style="background:#F0F0F0;"|{{Y}} | |||
|style="background:#F0F0F0;"|{{Y}} | |||
|style="background:#F0F0F0;"|{{Y}} | |||
|style="background:#F0F0F0;"|{{Y}} | |||
|} | |} | ||
:<small>OmniCrusher and OmniCrushResistant are only available in | :<small>{{f|OmniCrusher|link}} and {{f|OmniCrushResistant|link}} are only available in {{f|Yuri's Revenge|link}}.</small> | ||
:<small>Please see below for certain side effects of {{f|IsTrain|link}}.</small> | |||
</div> | </div> | ||
Empty cells signal that one property does not influence the other, specifically: | Empty cells signal that one property does not influence the other, specifically: | ||
*{{ | *''In fact, although the table above looks more intuitive, it complicates the problem.'' | ||
'''{{f|Crusher|link}}''' Only check {{f|Crushable|link}} and {{f|DeployedCrushable|link}} | |||
'''{{f|OmniCrusher|link}}''' Only checks {{f|OmniCrushResistant|link}} | |||
*The two are calculated separately, and there is no such thing as a "higher crush level" | |||
**This is an illusion, and the reason it causes is that when there is {{f|OmniCrusher|yes|link}}, there must also be {{f|Crusher|yes|link}}. | |||
***because {{f|OmniCrusher|yes|link}} only takes effect when <font style="color:red"><b>Crusher=yes</b></font>, which means it cannot be used alone. | |||
'''The flags in detail:''' | '''The flags in detail:''' | ||
*{{ | *{{f|Crusher|link}} determines if this VehicleType can crush objects. | ||
*{{ | *{{f|Crushable|link}} determines if this object can be crushed by {{f|Crusher|yes|link}}. | ||
:''Only if the Attacker is {{ | :''Only if the Attacker is {{f|Crusher|yes|link}} and the Defender is {{f|Crushable|yes|link}}, the crushing can happen.''<br> | ||
*{{ | **When {{f|Crushable|yes|link}}, the Infantry property in the deployed state can be controlled separately using {{f|DeployedCrushable|no|link}} | ||
*{{ | ***but it cannot take effect independently when {{f|Crushable|no|link}}. | ||
****That is to say, you cannot create an {{f|InfantryTypes|link}} that can only be crushed in deployment state and cannot be crushed normally. | |||
*{{f|OmniCrusher|link}}, if enabled, allows the VehicleType to crush objects who are set {{f|OmniCrushResistant|no|link}}. | |||
*{{f|OmniCrushResistant|link}} determines if this object can be crushed by {{f|OmniCrusher|yes|link}}. | |||
**This is not in conflict with the previous statement '{{f|Crushable|link}} determines if this object can be crushed by Crushers.', and operate independently of each other. | |||
for example: <br> | |||
{{f|Crusher|yes|link}} & {{f|OmniCrusher|yes|link}} vehicles can take effect on a {{f|Crushable|yes|link}} & {{f|OmniCrushResistant|yes|link}} vehicle | |||
*{{f|IsTrain|link}}, if enabled, basically nullifies all of the above, and has some additional effects, as detailed below. | |||
**However, {{f|IsTrain|yes|link}} is only responsible for handling tasks when neither of the above mentioned crushes can occur, which means that if one of the crushes can be used to complete the task, IsTrain's effect will not be used but the normal Crush effect will be used. | |||
***Of course, different approaches will be chosen based on the different goals. | |||
<br> | |||
Note that units only killed by {{f|IsTrain|link}} can trigger their {{f|DeathWeapon|link}}. | |||
*Based on the usage rules above, you can limit units to only trigger their {{f|DeathWeapon|link}} when they are crushed by specific types of {{f|IsTrain|yes|link}} {{f|VehicleTypes|link}} | |||
**as other times it is actually a regular crush rather than the effect of {{f|IsTrain|yes|link}}. | |||
==IsTrain== | |||
*A unit with {{f|IsTrain|yes|link}} will be able to crush <i>anything</i> regardless of {{f|Crushable|link}}, {{f|OmniCrushResistant|link}} or even {{f|Immune|link}}. | |||
**Except for {{f|BuildingTypes|link}} with {{f|BridgeRepairHut|yes|link}}<br /> | |||
*A unit with {{f|IsTrain|yes|link}} will also be able to "crush" any buildings that happen to occupy the same cell as the unit. This results in such a vehicle with this flag being unable to exit the War Factory that produced it, as it will destroy the building and itself upon creation.<br /> | |||
*{{f|IsTrain|link}} has no real effect when applied to {{f|InfantryTypes|link}} or {{f|AircraftTypes|link}}. | |||
*<b>However</b>, a unit with {{f|IsTrain|yes|link}} produces some interesting behavious when it comes into contact with walls: | |||
**When travelling through a single wall cell, the unit will pass through as if the wall was not there, and no damage will be done to the wall. | |||
**But, if it encounters another wall cell immediately after, the unit will become 'stuck' on that wall cell. The wall cannot be sold, and the unit will be unable to move. Basically, don't combine train units with walls. | |||
**A similar effect can happen with terrain objects such as trees and rocks. The {{f|IsTrain|yes|link}} unit will be able to move through these, however if it stops on them, or attempts to move through a several-cells-thick group of them, it will become stuck on said terrain object. | |||
*Its effect has a nearly random delay, which sometimes it simply crosses a unit without destroying it. | |||
==See Also== | |||
[[Crusher]] | |||
[[Crushable]] | |||
[[DeployedCrushable]] | |||
[[OmniCrusher]] | |||
[[OmniCrushResistant]] | |||
[[IsTrain]] | |||
[[Category: General Editing Information | [[DeathWeapon]] | ||
{{f|Category: General Editing Information|link}} |
Latest revision as of 09:30, 20 July 2024
This page details how the crushing system works. The table shows whether a defender can be crushed by an attacker, depending on how the flags Crusher, Crushable, OmniCrusher and OmniCrushResistant are set, and for reference, also shows the effect of IsTrain=yes.
Defender | ||||||||
---|---|---|---|---|---|---|---|---|
Crushable | DeployedCrushable | OmniCrushResistant | ||||||
yes | no | yes | no | yes | no | |||
A t t a c k e r |
Crusher | yes | ||||||
no | ||||||||
OmniCrusher | yes | |||||||
no | ||||||||
IsTrain | yes |
- OmniCrusher and OmniCrushResistant are only available in Yuri's Revenge.
- Please see below for certain side effects of IsTrain.
Empty cells signal that one property does not influence the other, specifically:
- In fact, although the table above looks more intuitive, it complicates the problem.
Crusher Only check Crushable and DeployedCrushable
OmniCrusher Only checks OmniCrushResistant
- The two are calculated separately, and there is no such thing as a "higher crush level"
- This is an illusion, and the reason it causes is that when there is OmniCrusher=yes, there must also be Crusher=yes.
- because OmniCrusher=yes only takes effect when Crusher=yes, which means it cannot be used alone.
- This is an illusion, and the reason it causes is that when there is OmniCrusher=yes, there must also be Crusher=yes.
The flags in detail:
- Crusher determines if this VehicleType can crush objects.
- Crushable determines if this object can be crushed by Crusher=yes.
- Only if the Attacker is Crusher=yes and the Defender is Crushable=yes, the crushing can happen.
- When Crushable=yes, the Infantry property in the deployed state can be controlled separately using DeployedCrushable=no
- but it cannot take effect independently when Crushable=no.
- That is to say, you cannot create an InfantryTypes that can only be crushed in deployment state and cannot be crushed normally.
- but it cannot take effect independently when Crushable=no.
- When Crushable=yes, the Infantry property in the deployed state can be controlled separately using DeployedCrushable=no
- OmniCrusher, if enabled, allows the VehicleType to crush objects who are set OmniCrushResistant=no.
- OmniCrushResistant determines if this object can be crushed by OmniCrusher=yes.
- This is not in conflict with the previous statement 'Crushable determines if this object can be crushed by Crushers.', and operate independently of each other.
for example:
Crusher=yes & OmniCrusher=yes vehicles can take effect on a Crushable=yes & OmniCrushResistant=yes vehicle
- IsTrain, if enabled, basically nullifies all of the above, and has some additional effects, as detailed below.
- However, IsTrain=yes is only responsible for handling tasks when neither of the above mentioned crushes can occur, which means that if one of the crushes can be used to complete the task, IsTrain's effect will not be used but the normal Crush effect will be used.
- Of course, different approaches will be chosen based on the different goals.
- However, IsTrain=yes is only responsible for handling tasks when neither of the above mentioned crushes can occur, which means that if one of the crushes can be used to complete the task, IsTrain's effect will not be used but the normal Crush effect will be used.
Note that units only killed by IsTrain can trigger their DeathWeapon.
- Based on the usage rules above, you can limit units to only trigger their DeathWeapon when they are crushed by specific types of IsTrain=yes VehicleTypes
- as other times it is actually a regular crush rather than the effect of IsTrain=yes.
IsTrain
- A unit with IsTrain=yes will be able to crush anything regardless of Crushable, OmniCrushResistant or even Immune.
- Except for BuildingTypes with BridgeRepairHut=yes
- Except for BuildingTypes with BridgeRepairHut=yes
- A unit with IsTrain=yes will also be able to "crush" any buildings that happen to occupy the same cell as the unit. This results in such a vehicle with this flag being unable to exit the War Factory that produced it, as it will destroy the building and itself upon creation.
- IsTrain has no real effect when applied to InfantryTypes or AircraftTypes.
- However, a unit with IsTrain=yes produces some interesting behavious when it comes into contact with walls:
- When travelling through a single wall cell, the unit will pass through as if the wall was not there, and no damage will be done to the wall.
- But, if it encounters another wall cell immediately after, the unit will become 'stuck' on that wall cell. The wall cannot be sold, and the unit will be unable to move. Basically, don't combine train units with walls.
- A similar effect can happen with terrain objects such as trees and rocks. The IsTrain=yes unit will be able to move through these, however if it stops on them, or attempts to move through a several-cells-thick group of them, it will become stuck on said terrain object.
- Its effect has a nearly random delay, which sometimes it simply crosses a unit without destroying it.