Follow up on this issue.

If you take a look in Data\Mods\Main\Story\RawFiles\Goals\ you'll find a .txt file called 'Greevers_Little_helpers'. I'm not sure what to make of it to be honest, nor who this Greever individual might be. In any case, the .txt file is filled with lots of varied PROC->THEN calls, spanning all sorts of stuff.

For example, there is this part:

Code
//REGION Default Parameters
PROC
CharacterLookAtCharacter((CHARACTER)_Character1,(CHARACTER)_Character2)
THEN
CharacterLookAtCharacter(_Character1,_Character2,0);

PROC
CharacterPlayAnimation((CHARACTER)_Character,(STRING)_String)
THEN
CharacterPlayAnimation(_Character,_String,"");

PROC
CharacterTeleportToPosition((CHARACTER)_Character,(REAL)_X,(REAL)_Y,(REAL)_Z)
THEN
CharacterTeleportToPosition(_Character,_X,_Y,_Z,"");

PROC
CharacterTeleportToTrigger((CHARACTER)_Character,(TRIGGER)_Trigger)
THEN
CharacterTeleportToTrigger(_Character,_Trigger,"");

PROC
CharacterApplyStatus((CHARACTER)_Character,(STRING)_Status,(REAL)_Duration)
THEN
CharacterApplyStatus(_Character,_Status,_Duration,0);

PROC
ItemApplyStatus((ITEM)_Item,(STRING)_Status,(REAL)_Duration)
THEN
ItemApplyStatus(_Item,_Status,_Duration,0);

PROC
ItemToContainer((ITEM)_Item,(ITEM)_Container)
THEN
ItemToContainer(_Item,_Container,1);
//END_REGION


No idea why this stuff is required but, desperate and running out of fix attempts, I copy-pasted the following section into my own mod's goal (in which I'm attempting, and failing, to cause a status effect to apply):

Code
PROC
CharacterApplyStatus((CHARACTER)_Character,(STRING)_Status,(REAL)_Duration)
THEN
CharacterApplyStatus(_Character,_Status,_Duration,0);


And.. suddenly it works.


Is there something important I should be learning from this about how the StoryEditor works on a fundamental level? Why is the above code required to make the CharacterApplyStatus call work properly? What other stuff might this behaviour have an impact on?


Escape From Smalcatraz: Steam/Nexus. Forum thread.