Hidden Triggers in TRNG
by AkyV

Page 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

1.2. Enemy jeep subject
 

1.2.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)
 

Executable combination:

Adjust (X) enemy jeep speed (approximately) to (Y) units/second
 

Y: 1 or bigger units/second values

Force: continuous. When stopping it: the default speed will be restored.
 

Notes:

- The bigger the difference between the default and the customized speed is the more likely the route won't be nice.

- The forced speed naturally doesn't have any effect (and is not disturbing) if the jeep is just parked at an AI_FOLLOW.
 

Condition combination:

If (X) enemy jeep is just (A) moving/not moving between two AI_FOLLOW's
 

A:

'equal'

0: just parked at an AI_FOLLOW

0, with TGROUP_NOT flag in the condition trigger: just moving between two AI_FOLLOW's

Type: simple.
 

1.2.2. The name of the field:

Custom_C (Different usage in according with type of item) (Short)
 

Executable combination (1):

Shoot the next grenade from (X) enemy jeep in (Y) frames
 

Y: 1 or bigger frames

Force: single.

 

Notes:

- The default value is 5 seconds between two grenades.

- The combination will work only for the next shot that is just coming. So the shots after this next shot will come according to the default value.

- A grenade will be shot out of the jeep everyway:

 

= if the jeep has just arrived to an AI_FOLLOW, knowing about Lara or

= if the jeep is at AI_FOLLOW, not knowing about Lara so far but now it notices her.
 

So this combination is useful only if the jeep is already at the AI_FOLLOW, knowing about Lara.
 

Executable combination (2):

Adjust the time between two grenade shots to (Y) frames at (X) enemy jeep
 

Y: from 1 to 148 frames

Force: single, everyway with a GlobalTrigger.
 

The condition TriggerGroup of the GlobalTrigger must be this:
 

Trigger1. An A54 to define the same subject of Item Memory Zone.

Trigger2. An F256 to put the value of the same memory zone field into the same variable.

Trigger3. A C40 trigger to study the variable value if that is equal with 149.
 

Executable combination (3):

Disable (X) enemy jeep to shoot grenades
 

Y: 1 or bigger frames

Force: continuous. When stopping it:
 

- The jeep starts shooting grenades again in Y frames.

- If the jeep is just between two AI_FOLLOW's in Y frames, then it starts shooting again only when arriving at the next AI_FOLLOW.
 

Condition combination:

If (X) enemy jeep has shot the latest grenade (B ) frames ago
 

B: 149 minus A frames

A: from 1 to 148

Type: sequence.
 

Notes:

- Now the relations will be inverted, if you use them: 'less than A' means 'more than B', 'more than/equal with A' means 'less than/equal with B'.

- You can use the combination in an 'If (X) enemy jeep shots the next grenade in (A) frames' way, if you want.
 

1.2.3. The name of the field:

Custom_D (Different usage in according with type of item) (Short)
 

Condition combination:

If (X) enemy jeep is just at/is just heading for (A) AI_FOLLOW
 

A: ID of AI_FOLLOW (typed in the OCB window of AI_FOLLOW)

Type: simple, but you can use either 'equal' or 'smaller' or 'bigger/equal' conditions.
 

Notes:

- Maybe it's hard to find out the exact meanings of the smaller/bigger conditions now, so I'll help:
 

= 'Smaller than,': it still did not start to (A) AI_FOLLOW, the jeep can be anywhere before that AI_FOLLOW.

= 'Bigger than/equal with,': it has left (A-1) AI_FOLLOW yet, the jeep can be anywhere after that AI_FOLLOW.
 

- Now we calculate AI_FOLLOW's only with 0 or positive ID's.
 

1.3. Guide subject
 

1.3.1. The name of the field:

Custom_B (Different usage in according with type of item) (Short)
 

Executable combination:

Put out the flaming torch temporarily in (X) guide's hand
 

Y: 1

Force: single.
 

'Temporarily' means the guide will light it again at once.
 

Condition combination:

If the torch status in (X) guide's hand is (A)
 

A:

'equal'

0: the torch is still not in the hand

1: he reaches for the torch/has it unlit in the hand/tries to light it at the first time (unsuccessfully)

2: he tries to light it at the second time (successfully)/has it lit in the hand

Type: simple.
 

1.3.2. The name of the field:

Custom_D (Different usage in according with type of item) (Short)
 

Condition combination:

If (X) guide is just heading for (A) AI_FOLLOW or is standing at the previous AI_FOLLOW
 

A: ID of AI_FOLLOW (typed in the OCB window of AI_FOLLOW)

Type: simple, but you can use either 'equal' or 'smaller' or 'bigger/equal' conditions.
 

Notes:

- 'Previous AI_FOLLOW': for example, A=3 if the guide is heading for AI_FOLLOW 3 or standing at AI_FOLLOW 2.

I.e. the value turns 2 from 3 if he reaches AI_FOLLOW 2, and remains 3 till reaching AI_FOLLOW 3. (Performing a task at an AI_FOLLOW, A will change there only if he is already performing the task, so a bit after arriving at that AI_FOLLOW.)

- Maybe it's hard to find out the exact meanings of the smaller/bigger conditions now, so I'll help:
 

= 'Smaller than,': the guide can be anywhere before (A-1) AI_FOLLOW. Or - if there's a task at (A-1) AI_FOLLOW - he perhaps has arrived at (A-1) AI_FOLLOW but hasn't started the task yet.

= 'Bigger than/equal with,': the guide is standing at (A-1) AI_FOLLOW or - if there's a task at (A-1) AI_FOLLOW - he surely performs/performed that task. Or, if he has left (A-1) AI_FOLLOW yet, then he can be anywhere after that AI_FOLLOW.


 

- Now we calculate AI_FOLLOW's only with 0 or positive ID's.
 

1.4. Von Croy subject
 

1.4.1. The name of the field:

Custom_C (Different usage in according with type of item) (Short)
 

Executable combination:

Disable (X) Von Croy to turn to Lara when waving
 

Y: 1

Force: continuous. When stopping it: he will be able to turn to Lara again.
 

When Von Croy arrives to an AI_FOLLOW, he turns to Lara and starts waving to her. If you disable that that means he starts waving when he arrives there, but won't turn to Lara, keeping the original position in which he reached that AI_FOLLOW.
 

Condition combination:

If (X) Von Croy is still performing his cutscene-movements after the cutscene
 

A: 2

Type: simple.
 

Note:

These are not 'usual' cutscenes. We are talking about the 'Angkor Wat type' cutscenes when we could hear Von Croy's advices to Lara. - An example to understand:

Von Croy takes his book from his jacket when he's talking about during the cutscene. Now the player hits the 'Look' key to interrupt the cutscene. Now the condition is true because he will take the book back into his jacket after the interruption.
 

1.4.2. The name of the field:

Custom_D (Different usage in according with type of item) (Short)
 

Condition combination:

If (X) Von Croy is just at/is just heading for (A) AI_FOLLOW
 

A: ID of AI_FOLLOW (typed in the OCB window of AI_FOLLOW)

Type: simple, but you can use either 'equal' or 'smaller' or 'bigger/equal' conditions.
 

Notes:
 

- If he performs a task at an AI_FOLLOW then the A will change to the ID of the next AI_FOLLOW when he starts performing the task. ('Angkor Wat type' cutscenes are not 'tasks'.)

- Maybe it's hard to find out the exact meanings of the smaller/bigger conditions now, so I'll help:
 

= 'Smaller than,': he still did not start to (A) AI_FOLLOW, Von Croy can be anywhere before that AI_FOLLOW. And - if there's a task at (A-1) AI_FOLLOW - he surely hasn't started that task.

= 'Bigger than/equal with,': he has left (A-1) AI_FOLLOW yet, Von Croy can be anywhere after that AI_FOLLOW. Except: if there's a task at (A-1) AI_FOLLOW, then he perhaps is just performing that task.
 

- Now we calculate AI_FOLLOW's only with 0 or positive ID's.
 

1.5. Baddy1, Baddy2 subject
 

1.5.1. The name of the field:

Custom_C (Different usage in according with type of item) (Short)
 

Executable combination (1):

Adjust ammunition of (X) baddy to (Y) bullets
 

Y: any bullet amount (including 0)

Force: single.
 

Executable combination (2):

Give infinite ammunition to (X) baddy
 

Y: any bullet amount

Force: continuous. When stopping it: the baddy will have Y bullets.
 

Condition combination:

If the ammunition of (X) baddy is (A) bullets
 

A: any bullet amount (including 0)

Type: sequence.
 

Note:

Be careful: each round is 7 bullets, so eg. if he starts shooting a round, having 4 bullets, then the round will end at -3. I.e. '0' doesn't always mean 'empty weapon' condition. - Use 'less than 1' condition instead.
 

1.6. Setha subject
 

1.6.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)
 

Executable combination:

Make energy attacks of (X) setha enervate with (Y) light effect
 

Y: from 1 to 150

Force: continuous. When stopping it: setha will 'regain his health', i.e. 'conquer the enervation'. (If you want to stop forcing then it's recommended to do that when he just doesn't perform an energy attack.)
 

 'Energy attacks' means the 'direct attack' (when setha rushes at Lara) is not counted now. Setha has three types of energy attacks:
 

- 151 frames long: standing on the ground, a big energy ball

- 161 frames long: standing on the ground, 'little' energy bullets

- 199 frames long: jumping into the air, 'little' energy bullets
 

If you force Y that means all the possible energy attack procedures that the setha will perform after that, will have the proper noises - but there won't be missiles to hurt Lara. (That's why the attack is 'enervate'.)

In the given frame of the 'real' attack procedure, the setha will perform different light effects on himself. ('No light' is included in the 'different' now.) For example, in the 100th frame of the jumping attack we could see a given light effect on setha. Call that effect 'Alpha'. So, if we force Y=100 now, then he will perform 'Alpha' light effect continuously when performing an enervate jumping attack. (Naturally maybe Y=100 means another light effect with the other two procedures. I didn't check all the possibilities. I suggest choosing Y value randomly and then test it the game if that Y is proper for all the three procedures.)
 

Notes:

- Y value cannot reach the length of the shortest (151 frames long) attack type or else the solution will be buggy perhaps.

- The forced value naturally doesn't have any effect if the setha is just not energy-attacking.
 

Condition combination:

If (X) setha has started an energy attack - still being performed - (A) frames ago
 

A: from 1 to 150 frames

Type: sequence.
 

1.7. Crocodile subject
 

1.7.1. The name of the field:

Custom_B (Different usage in according with type of item) (Short)
 

Executable combination:

Make (X) crocodile waiting an AI_GUARD to move his tail in (Y) direction (till he can)
 

Y: leftwards (-12). rightwards (12)

Force: continuous. When stop forcing: the crocodile will start moving his tail as his wish.
 

Condition combination:

If (X) crocodile waiting an AI_GUARD moves/moved the last time his tail in (A) direction
 

A:

'equal' 12: rightwards

'smaller' 0: leftwards

Type: simple.
 

Note:

This condition works properly only together with an 'if the creature is in AI_GUARD mode' condition (see above), using the two condition combinations after each other in the same TriggerGroup.


 

1.8. Horseman subject
 

1.8.1. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

Condition combination:

If (X) horseman (A) is/is not on the horse
 

A: 'equal' 0 (still not getting on the horse or fallen down), 1 (riding/getting on the horse)

Type: simple.
 

Note:

Use this condition together with the Condition combination (2) of Chapter 1.1.6. (In the same TriggerGroup, after each other.) Because eg. if we combine the 8227 of that combination and this 0, then the 'aggregated' condition means: 'if the horseman is getting on the horse'. (So this 0 rules out the 'patrolling' part there, and that 8227 rules out the 'fallen down' part here.)
 

1.9. Mutant subject

 

1.9.1. The name of the field:

Custom_C (Different usage in according with type of item) (Short)
 

Executable combination (1):

Make (X) mutant perform the harmless rage for (approximately) further (W) frames from now on


 

W: 600 minus Y frames

Y: from 1 to 599

Force: single.
 

Notes:

- The harmless rage will start if the mutant - has just come to life - has totally opened his 'double collars'. So, if you activate this combination then the counter in the combination won't start till the collars are totally open.

- The default value is 600 frames (20 seconds) for his harmless rage.

- Some moments after stopping raging, the mutant will notice Lara. Until he notices her, he won't attack her.

- 'Approximately' means if the mutant is just in the middle of a 'rage animation' when W timer is just expires then he finishes the animation everyway after that.

- If you activate this condition after he started attacking then he stops attacking now to rage again for W frames. (If you activate the condition when he is just in the middle of an attack then he finishes the attack before starts raging.)
 

Executable combination (2):

Make (X) mutant perform the harmless rage forever
 

W: 600 minus Y frames

Y: from 1 to 599

Force: continuous. When stop forcing: the rage will stop (approximately) in W frames.
 

Note:

Activate the combination after he started attacking and he aborts the attack (at the end of the attacking animation) for a never-ending rage.
 

Condition combination (1):

If there are still (B ) frames (approximately) before (X) mutant stops the harmless rage
 

B: 600 minus Y frames

A: from 1 to 599

Type: sequence.
 

Note:

Now the relations will be inverted, if you use them: 'less than A' means 'more than B', 'more than/equal with A' means 'less than/equal with B'.
 

Condition combination (2):

If (X) mutant is just (A) harmful/not harmful to Lara
 

A:

'equal'

999: harmful

999, with TGROUP_NOT flag in the condition trigger: harmless (i.e. the mutant is just raging)

Type: simple.
 

1.10. Harpy subject
 

1.10.1. The name of the field:

Custom_A (Different usage in according with type of item) (Short)
 

Executable combination:

Make energy attacks of (X) harpy enervate with (Y) light effect
 

Y: from 1 to 118

Force: continuous. When stopping it: harpy will 'regain his health', i.e. 'conquer the enervation'. (If you want to stop forcing then it's recommended to do that when she - harpies are definitely 'she's, right? - just doesn't perform an energy attack.)
 

The one and only energy attack type of the harpy is 118 frames long.
 

(See setha above to understand this.)
 

Condition combination:

If (X) harpy has started an energy attack - still being performed - (A) frames ago
 

A: from 1 to 118 frames

Type: sequence.
 

1.11. Little beetle subject
 

1.11.1. The name of the field:

Custom_C (Different usage in according with type of item) (Short)
 

Executable combination:

Make (X) little beetle be emitted from the wall with (Y) speed
 

Y:

0: they will be emitted fast, in only one bunch (because little beetles will be emitted in four bunches from the wall usually)

1: only one or few beetles will be emitted at the same time. There is one or few seconds pause between two emissions

Force: continuous. When you stop forcing: the emission will continue 'normally' (if there still are beetles in the wall).
 

Note:

'From the wall' means it works only for +4000 OCB, when the scarabs are emitted from the wall.
 

Condition combination:

If (A) bunches of all the four bunches of (X) little beetle has not emitted from the wall yet
 

A: from 0 to 4

Type: sequence.
 

Note:

When the first bunch has been emitted, then the field value turns from 4 to 3, when the second bunch has been emitted, then the field value turns from 3 to 2 etc.
 

1.12. Wraith subject
 

1.12.1. The name of the field:

Custom_B (Different usage in according with type of item) (Short)

 

Executable combination (1):

Customize (X) fire wraith in (Y) way
 

Y: 10000 (each contact with Lara will ignite her + wraith is invulnerable in water), 1 (each contact with Lara will not ignite her + wraith is invulnerable in water), -2 (each contact with Lara will not ignite her + wraith is vulnerable in water)

Force: continuous. When stopping it: everything will start working 'normally' about ignition/vulnerability.
 

Executable combination (2):

Make (X) ice wraith invulnerable in water
 

Y: 1

Force: continuous. When stopping it: the wraith can be killed after that in water.
 

Note:

If the invulnerable ice wraith contacts with water then the flipmap (that should be activated when the wraith dies in water) won't be activated.
 

Condition combination (1):

If the status of (X) fire wraith is (A)
 

A:

'equal'

10000 (each contact with Lara will ignite her + wraith is invulnerable in water)

1 (each contact with Lara will not ignite her + wraith is invulnerable in water)

'smaller'

0 (each contact with Lara will not ignite her + wraith is vulnerable in water)

Type: simple.
 

Note:

Use it only if you also use the executable combination for customization.
 

Condition combination (2):

If (X) ice wraith is (A) vulnerable/invulnerable in water
 

A: 'equal' 1 (invulnerable), 0 (vulnerable)

Type: simple.
 

1.12.2. The name of the field:

Custom_C (Different usage in according with type of item) (Short)
 

Condition combination:

If (X) wraith is circling (A) clockwise/anti-clockwise
 

A:

'bigger/equal' 1 (clockwise)

'smaller' 0 (anti-clockwise)

Type: simple.
 

Note:

Naturally if the radius is big then the route of the wraith seems linear, though that isn't.

 

1.12.3. The name of the field:

Custom_D (Different usage in according with type of item) (Short)
 

Executable combination:

Make (X) wraith have (Y) route
 

Y: positive numbers (moving forwards+constantly downwards), negative numbers (moving forwards+constantly upwards), 0 (moving forwards+keeping constantly his Room Editor vertical position).

Force: continuous. When stopping it: the wraith will continue its route as usual.
 

Notes:

- The scale is not linear. I.e. if Y=-1 is a very low ascension, then Y=-1000 is not a thousandfold ascension, but much less.

- Don't forget to kill the wraith if he ascended too high/descended too low, disappearing above the ceiling/below the floor forever. (Use an A14 if there is no other way to kill him.) Or stop forcing and the wraith will start chasing Lara again.
 

Condition combination:

If (X) wraith is (A) coming closer to/going farther from Lara
 

A:

'bigger/equal' 1 (going farther)

'smaller' 0 (coming closer)

Type: simple.

Note:

This condition seems a bit buggy (i.e. it will have the wrong result) if you use it too soon. That's why first you should use it at the first attack against Lara (and not before, but at any time after that). (I.e. start this condition combination if you are sure that the wraith has been living for a couple of seconds, at least.)