/// <summary> /// 群体技能的释放逻辑,因为有单次技能伤害加成状态的原因,需要在技能结束后多做一次判断 /// </summary> /// <param name="attacker"></param> /// <param name="att_index"></param> /// <param name="targets"></param> public void UseSkillMulti(BaseCharacter attacker, int att_index, List <BaseCharacter> targets) { //消耗位置放在这里放置全体技能多次扣除技能消耗 attacker.Hp -= hpCost; attacker.Mp -= mpCost; for (int i = 0; i < targets.Count; i++) { if (attacker.Hp == 0) { return; } if (targets[i].Hp == 0 && canDeath == false) { continue; } UseSkill(attacker, att_index, targets[i], i); } if (type == SkillType.Damage) { if (skillDamage != null) { if (damageType == DamageType.Magic) { attacker.IncreaseStateDec(StateType.MagicDamageIncrease); foreach (var t in targets) { t.IncreaseStateDec(StateType.MagicBeDamageIncrease); } } else if (damageType == DamageType.Physical) { attacker.IncreaseStateDec(StateType.PhysicalDamageIncrease); foreach (var t in targets) { t.IncreaseStateDec(StateType.PhysicalBeDamageIncrease); } } } } MyDraw.DrawState(attacker, att_index); for (int i = 0; i < targets.Count; i++) { MyDraw.DrawState(targets[i], i); } }
/// <summary> /// 单体技能的释放逻辑,因为有单次技能伤害加成状态的原因,需要在技能结束后多做一次判断 /// </summary> /// <param name="attacker"></param> /// <param name="att_index"></param> /// <param name="target"></param> /// <param name="tar_index"></param> public void UseSkillSingle(BaseCharacter attacker, int att_index, BaseCharacter target, int tar_index) { attacker.Hp -= hpCost; attacker.Mp -= mpCost; UseSkill(attacker, att_index, target, tar_index); if (type == SkillType.Damage) { if (skillDamage != null) { if (damageType == DamageType.Magic) { attacker.IncreaseStateDec(StateType.MagicDamageIncrease); target.IncreaseStateDec(StateType.MagicBeDamageIncrease); } else if (damageType == DamageType.Physical) { attacker.IncreaseStateDec(StateType.PhysicalDamageIncrease); target.IncreaseStateDec(StateType.PhysicalBeDamageIncrease); } } } MyDraw.DrawState(attacker, att_index); MyDraw.DrawState(target, tar_index); }