Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }