/// <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); } }