public void DoSkill(int times) { if (m_skill == null) { return; } SoldierSkill skill = m_skill as SoldierSkill; List <Life> targetlist = new List <Life>(); LifeMCamp camp = m_parent.m_Core.m_Camp == LifeMCamp.ATTACK?LifeMCamp.DEFENSE : LifeMCamp.ATTACK; targetlist = GetRangeAttackList(MapGrid.GetMG(m_parent.m_Pos), skill, camp, null); if (skill.m_actiontype == 0) { StatusSelfBuff(m_parent, m_skill); for (int i = 0; i < targetlist.Count; i++) { if (!targetlist[i].InBoat) { continue; } SkillReleaseInfo info = Life.CalcDamage(m_parent, targetlist[i], null, m_skill); if (skill.m_attckmodeid > 0) { float power = skill.GetAttackPower(times); info.m_Damage = (int)(info.m_Damage * power); } Transform attackT = m_parent.m_thisT; targetlist[i].ApplyDamage(info, attackT); } //Debug.Log(str); } else if (skill.m_actiontype == 1) { StatusSelfBuff(m_parent, m_skill); for (int i = 0; i < targetlist.Count; i++) { if (!targetlist[i].InBoat) { continue; } SkillReleaseInfo info = Life.CalcDamage(m_parent, targetlist[i], null, m_skill); Debug.Log("doskill " + m_skill.m_name + "," + info.m_Damage); if (skill.m_attckmodeid > 0) { float power = skill.GetAttackPower(times); info.m_Damage = (int)(info.m_Damage * power); } Transform attackT = m_parent.m_thisT; targetlist[i].ApplyDamage(info, attackT); } //Debug.Log(str); } }