コード例 #1
0
        public virtual void Effect(ISkillArgs args)
        {
            ISkillEffect newE = SelectHighest();

            if (current == null)
            {
                if (newE != null)
                {
                    current = newE;
                    current.Effect(args);
                }
            }
            else
            {
                if (newE == null)
                {
                    current.Resume(args);
                    current = newE;
                }
                else
                {
                    if (newE.GetLevel() != current.GetLevel())
                    {
                        current.Resume(args);
                        current = newE;
                        current.Effect(args);
                    }
                }
            }
        }
コード例 #2
0
        public virtual void AddSkillEffect(ISkillEffect effct)
        {
            ISkillEffect old = this.effects[effct.GetSource()];

            if (old == null || old.GetLevel() <= effct.GetLevel())
            {
                this.effects[effct.GetSource()] = effct;
                this.key = effct.GetKey();
                this.timeMap[GetEffectKey(effct)] = Runtime.CurrentTimeMillis();
            }
        }
コード例 #3
0
 private string GetEffectKey(ISkillEffect effct)
 {
     return(effct.GetKey() + "_" + effct.GetSource() + "_" + effct.GetLevel());
 }