/// <summary> /// 扇範囲での攻撃 /// </summary> void BreathAttack() { // 扇形、画面上に向かって、メンコ何個分、角度範囲でメンコの取得 Menko[] hitList = AttackRange.Sector(this.transform, (uint)battleData.SkillData.Values[1], (uint)battleData.SkillData.Values[2]); //Values[1] = 攻撃の長さ(メンコ何個分か) //Values[2] = 角度 hitList.Foreach(hit => { // プレイヤーのメンコも含まれているためそれ以外にダメージ if (hit.IsPlayer() == false) { hit.SkillDamage((uint)battleData.SkillData.Values[0], battleData.SkillData.Element); } }); }
/// <summary> /// スキルの実行 /// </summary> protected override void Execute() { // 扇形、画面上に向かって、メンコ2個分、130度角範囲でメンコの取得 Menko[] hitList = AttackRange.Sector(this.transform, 2f, 130f); hitList.Foreach(hit => { // プレイヤーのメンコも含まれているためそれ以外にダメージ if (hit.IsPlayer() == false) { hit.SkillDamage((uint)battleData.SkillData.Values[0], battleData.SkillData.Element); } }); End(); }
void OppositeAttack() { // 扇形、画面上に向かって、メンコ何個分、角度範囲でメンコの取得 Menko[] hitList = AttackRange.Sector(this.transform, (uint)battleData.SkillData.Values[1], (uint)battleData.SkillData.Values[2]); hitList.Foreach(hit => { // プレイヤーのメンコも含まれているためそれ以外にダメージ if (hit.IsPlayer() == false) { hit.SkillDamage((uint)battleData.SkillData.Values[0], battleData.SkillData.Element); if (UnityEngine.Random.Range(0.0f, 1.0f) >= 0.5f) { hit.transform.Rotate(180, 0, 0); } } }); }