private static VTrigger CreateTrigger(TriggerType type) { int num = TriggerManager.assign_trigger_id(); VTrigger vTrigger = null; switch (type) { case TriggerType.GameTrigger: vTrigger = new GameTrigger(num); break; case TriggerType.UnitTrigger: vTrigger = new UnitTrigger(num); break; case TriggerType.TimerTrigger: vTrigger = new TimerTrigger(num); break; } if (vTrigger != null) { if (!TriggerManager.triggers.ContainsKey(num)) { TriggerManager.triggers.Add(num, vTrigger); } else { TriggerManager.triggers[num] = vTrigger; } } return(vTrigger); }
private static void TriggerRegisterUnitEvent(UnitTrigger trigger, UnitEvent e, int u_id) { trigger.trigger_event = (int)e; trigger.trigger_type = 2; trigger.unit_id = u_id; TriggerManager.AddUnitEvent(trigger); }
private static void AddUnitEvent(UnitTrigger trigger) { if (!TriggerManager.character_callbacks.ContainsKey(trigger.trigger_event)) { TriggerManager.character_callbacks.Add(trigger.trigger_event, new List <UnitTrigger>()); } TriggerManager.character_callbacks[trigger.trigger_event].Add(trigger); }
private static void TriggerRegisterUnitEvent(UnitTrigger trigger, UnitEvent e, int teamtype, string u_tag) { trigger.trigger_event = (int)e; trigger.trigger_type = 2; trigger.teamtype = teamtype; trigger.unit_tag = u_tag; TriggerManager.AddUnitEvent(trigger); }
public static VTrigger CreateUnitEventTrigger(UnitEvent e, TriggerCondition condition, TriggerAction action, int u_id) { UnitTrigger unitTrigger = (UnitTrigger)TriggerManager.CreateTrigger(TriggerType.UnitTrigger); TriggerManager.TriggerRegisterUnitEvent(unitTrigger, e, u_id); TriggerManager.TriggerAddCondition(unitTrigger, condition); TriggerManager.TriggerAddAction(unitTrigger, action); return(unitTrigger); }
public void SendUnitStateEvent(UnitEvent e, Units tu, Units tt = null, BuffVo buff = null) { object obj = TriggerManager.unitLockObject; lock (obj) { if (TriggerManager.character_callbacks.ContainsKey((int)e)) { List <UnitTrigger> list = TriggerManager.character_callbacks[(int)e]; if (list != null) { for (int i = 0; i < list.Count; i++) { UnitTrigger unitTrigger = list[i]; if (unitTrigger != null && tu != null) { TriggerManager.m_unit_trigger = unitTrigger; TriggerManager.m_trigger_unit = tu; TriggerManager.m_target_unit = tt; if (unitTrigger.unit_id == tu.unique_id) { this.doTriggerAction(unitTrigger); } else if (unitTrigger.unit_id == 0) { if (unitTrigger.unit_tag != null && unitTrigger.unit_tag.Equals(tu.tag) && unitTrigger.teamtype == tu.teamType) { this.doTriggerAction(unitTrigger); } else if (unitTrigger.unit_tag == null && unitTrigger.teamtype == tu.teamType) { this.doTriggerAction(unitTrigger); } else if (unitTrigger.unit_tag != null && unitTrigger.unit_tag.Equals(tu.tag) && unitTrigger.teamtype == -1) { this.doTriggerAction(unitTrigger); } } } } } } } }