public void triggerEvent(AIEvent newAIEvent) { if (newAIEvent.ToBroadCastSawEvent && !newAIEvent.IsObservationEvent) { newAIEvent.IsObservationEvent = true; GetComponent <Observable>()?.BroadcastToObserver(newAIEvent); } foreach (Goal g in GoalList) { g.triggerEvent(newAIEvent); } if (m_currentTask != null) { m_currentTask.TriggerEvent(newAIEvent); foreach (Transition t in GenericTransitions[m_currentTask.MyTaskType]) { t.OnTriggerEvent(newAIEvent); } } if (!m_events.ContainsKey(newAIEvent.GetType())) { return; } foreach (AIEventCallback f in m_events[newAIEvent.GetType()]) { f(newAIEvent); } }
//public virtual void triggerEvent(string eventName, List<System.Object> args) //{ // if (!m_events.ContainsKey(eventName)) // return; // foreach (AITaskCallback f in m_events[eventName]) // { // f(args); // } //} public virtual void triggerEvent(AIEvent aie) { if (!m_events.ContainsKey(aie.GetType())) { return; } foreach (AIEventCallback f in m_events[aie.GetType()]) { f(aie); } }
protected void generalDangerDisguiseFactors(AIEvent newEvent, Observer observer) { System.Type t = newEvent.GetType(); if (t == typeof(AIEVItemGet)) { OnItemGet((AIEVItemGet)newEvent, observer); } else if (t == typeof(AIEVSeenByObserver)) { OnSight((AIEVSeenByObserver)newEvent, observer); } }
public override void OnTriggerEvent(AIEvent aie) { if (aie.GetType() != typeof(AIEVSawRelationshipUpdate)) { return; } AIEVSawRelationshipUpdate newAIE = (AIEVSawRelationshipUpdate)aie; bool b = LogicManager.IsA(newAIE.ObservedObj, SawItemOfTypes, GetComponent <Observer>()); if (b) { TriggerTransition(); } }
public override void ReactToEvent(AIEvent newEvent, Observer observer) { base.ReactToEvent(newEvent, observer); Debug.Log("Reacting to event: " + newEvent.GetType().ToString()); generalDangerDisguiseFactors(newEvent, observer); }