public ISkillTriger Clone()
        {
            ISkillTriger newObj = OnClone();

            CopyTo(newObj);
            return(newObj);
        }
        public ISkillTriger CreateTriger(Dsl.ISyntaxComponent trigerConfig, SkillInstance instance)
        {
            ISkillTriger        triger  = null;
            string              type    = trigerConfig.GetId();
            ISkillTrigerFactory factory = GetFactory(type);

            if (null != factory)
            {
                try {
                    triger = factory.Create();
                    triger.Init(trigerConfig, instance);
                } catch (Exception ex) {
                    GameFramework.LogSystem.Error("triger:{0} line:{1} failed.", trigerConfig.ToScriptString(false), trigerConfig.GetLine());
                    throw ex;
                }
            }
            else
            {
#if !DEBUG
                GameFramework.LogSystem.Error("CreateTriger failed, type:{0}", type);
#endif
            }
            if (null != triger)
            {
                GameFramework.LogSystem.Debug("CreateTriger, type:{0} triger:{1}", type, triger.GetType().Name);
            }
            else
            {
#if !DEBUG
                GameFramework.LogSystem.Error("CreateTriger failed, type:{0}", type);
#endif
            }
            return(triger);
        }
 //
 public void CopyTo(ISkillTriger newObj)
 {
     newObj.StartTime      = StartTime;
     newObj.Name           = Name;
     newObj.OrderInSkill   = OrderInSkill;
     newObj.OrderInSection = OrderInSection;
     newObj.IsFinal        = IsFinal;
 }
        public ISkillTriger Clone()
        {
            ISkillTriger newObj = OnClone();

            newObj.StartTime      = StartTime;
            newObj.Name           = Name;
            newObj.OrderInSkill   = OrderInSkill;
            newObj.OrderInSection = OrderInSection;
            newObj.IsFinal        = IsFinal;
            newObj.InitProperties();
            return(newObj);
        }
Example #5
0
        public void Tick(object sender, SkillInstance instance, long delta)
        {
            m_CurTime += delta;
            int ct = m_Trigers.Count;

            for (int i = ct - 1; i >= 0; --i)
            {
                ISkillTriger triger = m_Trigers[i];
                if (!triger.Execute(sender, instance, delta, m_CurTime / 1000))
                {
                    triger.Reset();
                    m_Trigers.RemoveAt(i);
                    if (m_Trigers.Count == 0)
                    {
                        m_IsTriggered = false;
                    }
                }
            }
        }
        public ISkillTriger CreateTriger(ScriptableData.ISyntaxComponent trigerConfig)
        {
            ISkillTriger        triger  = null;
            string              type    = trigerConfig.GetId();
            ISkillTrigerFactory factory = GetFactory(type);

            if (null != factory)
            {
                triger = factory.Create(trigerConfig);
            }
            else if (GlobalVariables.Instance.IsClient)
            {
                LogSystem.Error("CreateTriger failed, unkown type:{0}", type);
            }
            if (null != triger)
            {
                //DashFire.LogSystem.Debug("CreateTriger, type:{0} triger:{1}", type, triger.GetType().Name);
            }
            return(triger);
        }
Example #7
0
        private void RefreshTrigers(ScriptableData.FunctionData sectionData, int skillId)
        {
            m_LoadedTrigers.Clear();
            for (int i = 0; i < sectionData.Statements.Count; i++)
            {
                ISkillTriger triger = SkillTrigerManager.Instance.CreateTriger(sectionData.Statements[i]);
                if (null != triger)
                {
                    m_LoadedTrigers.Add(triger);
                }
            }

            /*
             * foreach (ScriptableData.ISyntaxComponent data in sectionData.Statements) {
             * ISkillTriger triger = SkillTrigerManager.Instance.CreateTriger(data);
             * if (null != triger) {
             *  m_LoadedTrigers.Add(triger);
             * }
             * }*/
        }
Example #8
0
        public void Tick(object sender, SkillInstance instance, long delta)
        {
            if (m_IsFinished)
            {
                return;
            }
            m_CurTime += delta;
            int ct = m_Trigers.Count;

            for (int i = ct - 1; i >= 0; --i)
            {
                ISkillTriger triger = m_Trigers[i];
                if (!triger.Execute(sender, instance, delta, m_CurTime / 1000))
                {
                    triger.Reset();
                    m_Trigers.RemoveAt(i);
                }
            }
            if (m_CurTime / 1000 > m_Duration)
            {
                m_IsFinished = true;
            }
        }
 //----------------------------------------------
 public void AddUseImpactForInit(ISkillTriger trigger, int impactId, bool isExternalImpact)
 {
     int ct = m_UseImpactsForInit.Count;
     if (ct > 0) {
         SkillSectionOrMessageTriggers group = m_UseImpactsForInit[ct - 1];
         if (null != group) {
             group.Triggers.Add(new TriggerInfo { Trigger = trigger, ImpactId = impactId, IsExternalImpact = isExternalImpact, IsEmitImpact = false });
         }
     }
 }
 public void AddImpactForInit(ISkillTriger trigger)
 {
     AddImpactForInit(trigger, 0, false);
 }
 public void AddDamageForInit(ISkillTriger trigger)
 {
     int ct = m_DamagesForInit.Count;
     if (ct > 0) {
         SkillSectionOrMessageTriggers group = m_DamagesForInit[ct - 1];
         if (null != group) {
             group.Triggers.Add(new TriggerInfo { Trigger = trigger, ImpactId = 0, IsExternalImpact = false, IsEmitImpact = false });
         }
     }
 }