/// <summary>
        /// 攻击 CD 计时
        /// </summary>
        /// <param name="self"></param>
        public static void AttackTarget(this AttackComponent self)
        {
            if (self.delTime == 0)
            {
                //普通攻击,相当于施放技能41101,技能等级为0
                SkillItem skillItem = ComponentFactory.CreateWithId <SkillItem>(41101);

                skillItem.UpdateLevel(0);

                skillItem.GetComponent <ChangeType>().CastId = self.GetParent <Unit>().Id;

                skillItem.GetComponent <NumericComponent>().Set(NumericType.CaseBase, 14);

                self.target.GetComponent <AttackComponent>().TakeDamage(skillItem);

                self.startTime = TimeHelper.ClientNowSeconds();
            }

            long timeNow = TimeHelper.ClientNowSeconds();

            self.delTime = timeNow - self.startTime + 1;

            if (self.delTime > (self.attcdTime + 1))
            {
                self.delTime = 0;
            }
        }
        /// <summary>
        /// 单目标 减伤列队 取出 循环执行
        /// </summary>
        /// <param name="self"></param>
        public static void WhileTakeDamage(this AttackComponent self)
        {
            while (self.TakeDamages.Count > 0)
            {
                SkillItem skillItem = self.TakeDamages.Dequeue();
                Unit      myself    = self.GetParent <Unit>();
                if (!self.attackers.Contains(skillItem.GetComponent <ChangeType>().CastId))
                {
                    self.attackers.Add(skillItem.GetComponent <ChangeType>().CastId);
                }

                NumericComponent numSk = skillItem.GetComponent <NumericComponent>();
                skillItem.Dispose();
                NumericComponent numSelf = myself.GetComponent <NumericComponent>();
                Random           random  = new Random();
                int dom   = random.Next(0, 99);
                int domhp = numSk[NumericType.Case];
                if (dom < 26)
                {
                    numSelf[NumericType.ValuationAdd] -= (domhp * 2);
                }
                else
                {
                    numSelf[NumericType.ValuationAdd] -= domhp;
                }
                Console.WriteLine(" TakeDamage-143-Myself(" + myself.UnitType + ") : " + "-" + domhp + " / " + numSelf[NumericType.Valuation] + " /Count: " + self.TakeDamages.Count);
            }
        }
Example #3
0
        public static void UpdateLevel(this SkillItem self, int level)
        {
            switch (self.GetComponent <Skill>().TribeType)
            {
            case TribeType.Valuation:
                self.GetComponent <NumericComponent>().Set(NumericType.ValuationBase, 12);
                self.GetComponent <NumericComponent>().Set(NumericType.ValuationAdd, level * 4);
                break;

            case TribeType.Case:
                self.GetComponent <NumericComponent>().Set(NumericType.CaseBase, 14);
                self.GetComponent <NumericComponent>().Set(NumericType.CaseAdd, level * 4);
                break;
            }
        }