Core.Object | +--Engine.Actor | +--Engine.Triggers | +--XIII.DamageTrigger
int
DamagePerSec
class
DamageType
bool
LevelModification
00001 //============================================================================= 00002 // DamageTrigger. 00003 //============================================================================= 00004 class DamageTrigger extends Triggers; 00005 00006 VAR class<XIIIDamageType> DamageType; 00007 VAR int DamagePerSec; 00008 VAR bool LevelModification; 00009 00010 EVENT Timer( ) 00011 { 00012 LOCAL int i; 00013 00014 for ( i=0; i<Touching.Length; i++ ) 00015 { 00016 if ( !LevelModification && Touching[i].IsA( 'XIIIPlayerPawn' ) ) 00017 Touching[i].TakeDamage( DamagePerSec*1.5/((1+Level.Game.Difficulty)*0.15+Level.AdjustDifficulty/100), none, Touching[i].Location, vect(0,0,0), DamageType ); 00018 else 00019 Touching[i].TakeDamage( DamagePerSec, none, Touching[i].Location, vect(0,0,0), DamageType ); 00020 } 00021 } 00022 00023 STATE() STA_Lets_Burn 00024 { 00025 EVENT BeginState( ) 00026 { 00027 SetTimer( 1.0, true ); 00028 } 00029 } 00030 00031 STATE() STA_TriggerTurnOn 00032 { 00033 EVENT Trigger( Actor Other, Pawn EventInstigator ) 00034 { 00035 SetTimer( 1.0, true ); 00036 Disable( 'Trigger'); 00037 } 00038 } 00039 00040 00041 defaultproperties 00042 { 00043 DamageType=Class'XIII.DTFire' 00044 DamagePerSec=2 00045 bCollideWorld=True 00046 InitialState="STA_Lets_Burn" 00047 }