public BaseAIEvent(AIEventType type) { EventType = type; }
public static BaseAIEvent CreateEvent(AIEventType eventType) { switch (eventType) { case AIEventType.Timer: return(new TimerAIEvent()); case AIEventType.PlayerDetected: return(new PlayerDetectedAIEvent()); case AIEventType.StateError: return(new StateErrorAIEvent()); case AIEventType.Attacked: return(new AttackedAIEvent()); case AIEventType.StateFinished: return(new StateFinishedAIEvent()); case AIEventType.InAttackRange: return(new InAttackRangeAIEvent()); case AIEventType.HealthBelow: return(new HealthBelowAIEvent()); case AIEventType.InRange: return(new InRangeAIEvent()); case AIEventType.PerformedAttack: return(new PerformedAttackAIEvent()); case AIEventType.TirednessAbove: return(new TirednessAboveAIEvent()); case AIEventType.HungerAbove: return(new HungerAboveAIEvent()); case AIEventType.ThreatDetected: return(new ThreatDetectedAIEvent()); case AIEventType.TargetDetected: return(new TargetDetectedAIEvent()); case AIEventType.AmmoBelow: return(new AmmoBelowAIEvent()); case AIEventType.BestTargetDetected: return(new BestTargetDetectedAIEvent()); case AIEventType.IsVisible: return(new IsVisibleAIEvent()); case AIEventType.AttackTick: return(new AttackTickAIEvent()); case AIEventType.IsMounted: return(new IsMountedAIEvent()); case AIEventType.And: return(new AndAIEvent()); case AIEventType.Chance: return(new ChanceAIEvent()); case AIEventType.TargetLost: return(new TargetLostAIEvent()); case AIEventType.TimeSinceThreat: return(new TimeSinceThreatAIEvent()); case AIEventType.OnPositionMemorySet: return(new OnPositionMemorySetAIEvent()); case AIEventType.AggressionTimer: return(new AggressionTimerAIEvent()); case AIEventType.Reloading: return(new ReloadingAIEvent()); default: Debug.LogWarning(string.Concat("No case for ", eventType, " event in BaseAIEvent.CreateEvent()!")); return(null); } }