ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.

Events/TSFS

From ModEnc
Revision as of 07:53, 10 April 2024 by Crimsonum (talk | contribs) (Better wording.)
Jump to navigation Jump to search

In TS, Events become a separate section, so Triggers can have multiple Events with up to two parameters. The game assumed the Trigger, Event and Action all share the same ID. So a Trigger which has ID 12451245 uses the Event list with ID 12451245.

The following Events are available:

Code 1 Event Parameter types
#1 (P1)2 #2 (P2)
0 None 0 0
No Event - cannot be activated.
1 Entered by 0 House#
Any unit belonging to house P2 enters attached building/celltag. Use -1 to denote any house.
2 Spied Upon 0 0
A spy has entered the attached building.
3 Thieved by 0 0
Obsolete. Presumably intended to trigger when an infantry with Thief=yes infiltrates the attached refinery or silo.
4 Discovered by player or destroyed 0 0
The attached object is discovered by the human player or destroyed by anything.
5 House Discovered 0 House#
Any object belonging to house P2 is discovered by the player.
6 Attacked by enemy 0 0
Attached object or its owner house's base is attacked by enemy fire. A base attack is triggered when any non-insignificant building that is not a deployed unit is attacked by an enemy. For example, if this trigger is attached to a unit, it can fire if the unit owner's base gets attacked regardless of whether the unit itself is attacked or not.

Unlike in Red Alert, this event doesn't require for the house to be the player house.

In both cases, incidental damage and friendly fire are ignored.

7 Destroyed by enemy 0 0
Attached object is destroyed by enemy fire. Incidental damage and friendly fire are ignored. See also Events 29 and 48.
8 Any event 0 0
No condition, triggers immediately.
9 Destroyed, Units, All 0 House#
All units of house P2 are destroyed (does not include civilian objects).
10 Destroyed, Buildings, All 0 House#
All buildings of house P2 are destroyed (does not include civilian objects).
11 Destroyed, All 0 House#
All objects of house P2 are destroyed (does not include civilian object).
12 Credits exceed 0 credits
HOUSE3 has at least P2 credits.
13 Elapsed time 0 time
P2 seconds4 has passed since this trigger was enabled. If the trigger is repeating, this timer is reset on every loop.
14 Mission timer expired 0 0
Timer expires.
15 Destroyed, Buildings, # 0 counter
Exactly P2 buildings owned by HOUSE have been destroyed (does include civilian objects).
16 Destroyed, Units, # 0 counter
Exactly P2 units owned by HOUSE have been destroyed (does include civilian objects).
17 No factories left 0 0
HOUSE has no structures with valid Factory set.
Code 1 Event Parameter types
#1 (P1) #2 (P2)
18 Civilians evacuated 0 0
Civilian objects owned by HOUSE have left the map (See CivEvac ).
19 Build building type 0 Building#
Building whose internal index is P2 is placed on the map.
20 Build unit type 0 Unit#
Unit whose internal index is P2 is placed on the map.
21 Build infantry type 0 Infantry
Infantry whose internal index is P2 is placed on the map.
22 Build aircraft type 0 Aircraft#
Aircraft whose internal index is P2 is placed on the map.
23 Leaves map (team) 1 TeamType
Team with index P1 leaves the map.
24 Zone entry by 0 House#
Attached CellTag's zone entered by house P2. Zones are continuous areas bounded by cliffs and other impassable terrain.
25 Crosses horizontal line 0 House#
House P2 crosses the horizontal line of the attached CellTag.
Note: In this context, "horizontal" refers to the cell grid's horizontal (X) axis, not the apparent left–right axis. It runs from top-left to bottom-right.
26 Crosses vertical line 0 House#
House P2 crosses the vertical line of the attached CellTag.
Note: In this context, "vertical" refers to the cell grid's vertical (Y) axis, not the apparent top–bottom axis. It runs from top-right to bottom-left.
27 Global is set 0 Global#
Global variable with index P2 is set. Takes priority over other events5.
28 Global is clear 0 Global#
Global variable with index P2 is cleared. Takes priority over other events5.
29 Captured or destroyed 0 0
Attached object is captured or destroyed by anything. See also Events 7 and 48.
30 Low power 0 House#
House P2 is in a low power situation.
31 Attached bridge destroyed 0 0
Attached bridge destroyed. To link a trigger to a bridge, place the CellTag under any of the bridge overlays.
32 Building exists 0 Building#
Building with internal number P2 is preplaced, deployed or ordered (icon clicked on in sidebar) onto the map by HOUSE.
33 Selected by player 0 0
Attached object is selected by the player (single-player only).
34 Comes near waypoint 0 Waypoint#
Attached object comes within 1,000 leptons (3-4 cells) from waypoint P2.
35 Enemy In Spotlight 0 0
Enemy unit enters the spotlight cast by the attached building. The attached tag(s) must be set to repeat. See also event 54.
Code 1 Event Parameter types
#1 (P1) #2 (P2)
36 Local is set 0 Local#
Local with index P2 is set. Takes priority over other events5.
37 Local is clear 0 Local#
Local with index P2 is cleared. Takes priority over other events5.
38 First damaged (combat only) 0 0
Attached object suffering first damage from combat damage from combat damage only.
39 Half health (combat only) 0 0
Attached object damaged to half health from combat damage only.
40 Quarter health (combat only) 0 0
Attached object damaged to quarter health from combat damage only.
41 First damaged (any source) 0 0
Attached object first suffering from combat damage from any source.
42 Half health (any source) 0 0
Attached object damaged to half health from any source.
43 Quarter health (any source) 0 0
Attached object damaged to quarter health by any source.
44 Attacked by (house) 0 House#
Attached object attacked by some unit of house P2.
45 Ambient light below 0 0
Ambient light drops below a certain percentage (P2 %).
46 Ambient light above 0 0
Ambient light rises above a certain percentage (P2 %).
47 Elapsed Scenario Time 0 time
P2 seconds4 have elapsed since start of scenario.
48 Captured, Destroyed or Infiltrated 0 0
Attached object is captured, destroyed, or it successfully infiltrates another object. See also Events 7 and 29.
49 Pickup Crate 0 0
A powerup crate is picked up by the attached object.
50 Pickup Crate (any) 0 0
A powerup crate is picked up by any unit belonging to HOUSE3.
51 Random delay... 0 time
Delays a random time between 50% and 150 % of time specified in P2 (in seconds4).
52 Credits below... 0 credits
HOUSE owns less than P2 credits.
53 Paralyzed 0 0
Attached object is struck by EMP (if Cyborg=true or NonVehicle=false) or web (if IsWebImmune=false).
FS/2.x patched only.
54 Enemy in spotlight 2 0 0
Same as event 35, except tags are not required to repeat. See also event 35.
FS/2.x patched only.
55 Attached object bugged 0 0
Attached object is infected by a Limpet Drone
FS/2.x patched only.
Code 1 Event Parameter types
#1 (P1) #2 (P2)

Events take two unsigned integers as parameters, which default to 0.

Notes

1 This column specifies the code to be written in the Event's "condition" slot, e.g. E1 in the Events page.

2 P1 is a boolean variable, which denotes whether P2 refers to a TeamType (value 1) or not (value 0).

3 HOUSE in this document refers to the house owning the Trigger, labeled "HOUSE" in the Triggers page.

4 on default game speed (15 FPS)

5 By default, events are checked in the order they are listed. However, when using local or global variable checks together with other events, the variable check will reset any preceding events. In other words, the variable check is of higher priority than other events. Only after the variable is set/cleared do other events count towards the execution of the trigger.

Referencing items
As you probably noticed, some of the Parameter descriptions in this table end with "#". The reason for that is:
Some parameters take their values to be indexes of objects, others assume they are the identifiers of those objects.
For convenience, if the parameter's description in the table ends with a "#" symbol, you should use the object's index in its appropriate list, otherwise you should use its ID.
Also note: All entries in column P7 are expected to be literal, so you have to convert all the numbers into letters like this:
0 is "A", 1 is "B", 25 is "Z", 26 is "AA", just like the columnm numbering in your favourite spreadsheet program.