public override bool Parse(Hashtable info) { eCombatEventType type = ParseType(info); if (type != eCombatEventType.SYNC) { EB.Debug.LogWarning("CombatSyncEvent.Parse: invalid type = {0}", type); return(false); } List <CombatEvent> children = CombatUtil.ParseEffects(info); if (children != null) { m_children = children; } int len = m_children.Count; for (int i = 0; i < len; i++) { CombatEffectEvent effect = m_children[i] as CombatEffectEvent; if (effect.Timing == eCombatEventTiming.AUTO) { effect.Timing = eCombatEventTiming.ON_START; } if (effect.Sender == null) { effect.Sender = new CombatantIndex(effect.Target.TeamIndex, effect.Target.IndexOnTeam); } } return(true); }
public static CombatEvent CreateEventInstance(eCombatEventType type) { Dictionary <int, System.Type> class_type_dic = sEventClassDic; if (!class_type_dic.ContainsKey((int)type)) { return(null); } System.Type class_type = class_type_dic[(int)type]; CombatEvent instance = System.Activator.CreateInstance(class_type) as CombatEvent; return(instance); }
public virtual bool Parse(Hashtable info) { m_type = ParseType(info); if (m_type == eCombatEventType.INVALID) { EB.Debug.LogWarning("CombatEvent.Parse: invalid type = {0}", m_type); return(false); } m_timing = ParseTiming(info); if (m_timing == eCombatEventTiming.INVALID) { EB.Debug.LogWarning("CombatEvent.Parse: invalid timing = {0}", m_timing); return(false); } m_parent = EB.Dot.Integer("parent", info, -1); return(true); }