/**************************************************************************** * KAlarm.SNL * Base logic for Kewlett Alarms * DAVIDE December 18 2002 ****************************************************************************/ VAR g_AlarmTimer, g_AlarmDuration; VAR g_IsAlarmOn; VAR g_AlarmZone; VAR g_Health; /**************************************************************************** * Called when the KAlarms are first created * DAVIDE December 18 2002 ****************************************************************************/ OnCreate() { g_IsAlarmOn = 0; AddProperty1( THIS, "IsAlarm", 1 ); AddProperty1( THIS, "IsAlarmOn", g_IsAlarmOn ); g_AlarmDuration = 60.0; g_AlarmTimer = g_AlarmDuration; g_AlarmZone = 0; g_Health = QueryProperty_Number(THIS, "Health"); //HUD_Enable(THIS); //HUD_AddVarWatch(THIS, g_Health); } /***************************************************************************/ /**************************************************************************** * OnTick() * Called every game tick. Update AI states. * TimS June 19 2002 ****************************************************************************/ OnTick( seconds ) { VAR health; health =0; g_Health = QueryProperty_Number(THIS, "Health"); if((g_Health <= 0) && (g_IsAlarmOn == 1.0)) { // turn off alarm g_AlarmTimer = g_AlarmDuration; g_IsAlarmOn = 0.0; if(g_AlarmZone != 0) SetProperty1( g_AlarmZone, "ForceUpdate", 1 ); } if(g_IsAlarmOn == 1) { g_AlarmTimer = g_AlarmTimer - seconds; if(g_AlarmTimer <= 0.0) { g_AlarmTimer = g_AlarmDuration; g_IsAlarmOn = 0.0; SetProperty1( g_AlarmZone, "ForceUpdate", 1 ); FX_PlayAnimation(THIS, "LEVELDATA_TAN_KALARMAIDLE", 0.25, "", 1.0); FX_StopSoundFX(THIS, "SOUNDFX_MACHINE_ACTIVE_LOOP"); } } } /***************************************************************************/ /**************************************************************************** * Activate() * Alarm is being activated. * DAVIDE Dec 20 2002 ****************************************************************************/ Activate( ) { VAR health; health =0; health = QueryProperty_Number(THIS, "Health"); if(health > 0) { g_IsAlarmOn = 1; FX_PlayAnimation(THIS, "LEVELDATA_TAN_KALARMAON", 0.25, "", 1.0); FX_PlaySoundFX(THIS, "SOUNDFX_MACHINE_ACTIVE_LOOP"); if(g_AlarmZone != 0) { SetProperty1( g_AlarmZone, "ForceUpdate", 1 ); } } } /***************************************************************************/ /**************************************************************************** * SaveAlarmZone() * Save the combat zone in which the alarm is located * DAVIDE Dec 20 2002 ****************************************************************************/ SaveAlarmZone( zone ) { g_AlarmZone = zone; } /***************************************************************************/