Traps 2da
The traps 2da defines the various elements that constitute each trap in the game.
The 2da is defined as an m2da in the M2DA_base 2da and has an ID of 182. It can be extended by m2da fragments which have names starting with traps. It can be referenced in scripting using the TABLE_TRAPS constant defined in 2da_constants_h.
Structure
| Column | Type | Description |
|---|---|---|
| ID | int | A number that uniquely identifies the entry (unless creating an M2DA override). ID numbers are listed from smallest to highest within a given file but do not need to be consecutive. |
| Label | string | Human-friendly name for the trap |
| TrapPlaceable | string | |
| aoe_index | int | A row ID in the Persistent 2da |
| AoEVFX | int | A row ID in the VFX_Base 2da |
| HideWhenUndetected | int | |
| AnimImpact | int | [Undocumented] |
| ResetDelay | float | Offset added to the longest duration effect to determine when trap is reset |
| Projectile | int | A row ID in the PRJ_base 2da |
| ProjectileCount | int | The number of projectiles released |
| ProjectileCrust | int | A row ID in the VFX_Base 2da |
| LocationVfx | int |
|
| Effect1 | int | The literal value of an TRAP_EFFECT_* constant |
| Effect1_Float1 | float | (optional) A parameter to configure the effect |
| Effect1_Float2 | float | (optional) A parameter to configure the effect |
| Effect1_Int1 | int | (optional) A parameter to configure the effect |
| Effect1_Int2 | int | (optional) A parameter to configure the effect |
| Effect1_Duration | float | (optional) The duration of a temporary effect |
| Effect1_Resource | string | (optional) Resource name of a resource used or created by the effect |
| Effect2 | int | See Effect1 |
| Effect2_Float1 | float | See Effect1_Float1 |
| Effect2_Float2 | float | See Effect1_Float2 |
| Effect2_Int1 | int | See Effect1_Int1 |
| Effect2_Int2 | int | See Effect1_Int2 |
| Effect2_Duration | float | See Effect1_Duration |
| Effect2_Resource | string | See Effect1_Resource |
| Effect3 | int | See Effect1 |
| Effect3_Float1 | float | See Effect1_Float1 |
| Effect3_Float2 | float | See Effect1_Float2 |
| Effect3_Int1 | int | See Effect1_Int1 |
| Effect3_Int2 | int | See Effect1_Int2 |
| Effect3_Duration | float | See Effect1_Duration |
| Effect3_Resource | string | See Effect1_Resource |
| Effect4 | int | See Effect1 |
| Effect4_Float1 | float | See Effect1_Float1 |
| Effect4_Float2 | float | See Effect1_Float2 |
| Effect4_Int1 | int | See Effect1_Int1 |
| Effect4_Int2 | int | See Effect1_Int2 |
| Effect4_Duration | float | See Effect1_Duration |
| Effect4_Resource | string | See Effect1_Resource |
Remarks
The sys_traps_h._Trap_ApplyEffect function is used to map the TRAP_EFFECT_* values onto the appropriate effect type and creates the actual effect. However this is not a direct translation so, for example TRAP_EFFECT_PARALYSE has a literal value of 10 but is mapped onto EFFECT_TYPE_PARALYSE which as a literal value of 8. Adding new trap effects would require the _Trap_ApplyEffect function to be updated and all dependant scripts would have to be recompiled.