scriptname defaultFakeNPCLoadTRIG extends objectReference
{Script for disabling an NPC when that NPC hits the trigger.  Can set a stage when this happens}
;=================================================================
quest property myQuest auto
{the quest, if relevant, this trigger is used for}
int property preRequisiteStage = -1 auto
{if any, stage that must be set for this trigger to function}
int property StageToSet auto
{if any, stage to set when the specified NPC is disabled by hitting this trigger}
actorBase property NPCtoDisable auto
{NPC is disabled on trigger. Intention is to fake a load door}
;=================================================================
auto STATE waiting
	EVENT onTriggerEnter(objectReference actronaut)
; 		debug.trace(self + " was triggered by " + actronaut + ", which is a " + actronaut.getBaseObject())
		; see if this is the right actor and make sure it isn't a corpse
		if actronaut.getBaseObject() == NPCtoDisable && (actronaut as actor).isDead() == false
			if myQuest != NONE
				; check conditions
				if (preRequisiteStage != -1 && myQuest.IsStageDone(preRequisiteStage) == true) || (preRequisiteStage == -1)
					myQuest.SetCurrentStageID(stageToSet)
					; fade out the actor we care about
					actronaut.disable(true)
					; change states and let the trigger commit suicide
					gotoState("finished")
				endif
			else
				; myQuest must == NONE, so just roll with it as all other data is now irrelevant
				actronaut.disable(true)
				gotoState("finished")
			endif
		endif
	endEVENT
endSTATE
;=================================================================
STATE finished
	EVENT onBeginState()
		self.disable()
		self.delete()
	endEVENT
endSTATE