/* -------------------------------------------------------------- Volume_PawnCounter -------------------------------------------------------------- A Volume that Adds up the number of unique Pawns that touch it. When it hits the desired amount it resets. Author : Alex Quick -------------------------------------------------------------- */ class Volume_TouchCounter extends Volume; var() int DesiredNumTouches; var() bool DestroyTouchers; var(Events) name TouchCompleteEvent; var array TouchList; simulated event touch(Actor Other) { local int i; local bool bExists; Super.Touch(Other); for(i = 0 ; i < TouchList.length ; i ++) { if(TouchList[i] == Other) { bExists = true; break; } } if(!bExists) { TouchList[TouchList.length] = Other; TriggerEvent(Event,self,Pawn(other)); } if(DesiredNumTouches > 0 && TouchList.length >= DesiredNumTouches) { TriggerEvent(TouchCompleteEvent,self,Pawn(Other)); TouchList.length = 0; } if(DestroyTouchers && Pawn(Other) != none) { Pawn(Other).KilledBy(Pawn(Other)) ; } } defaultproperties { bStatic = false }