Exemplo n.º 1
0
 /// <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);
     }
 }
Exemplo n.º 2
0
 /// <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);
 }