/// <summary> /// 敵のAIにそって自動で行動する /// </summary> /// <param name="actionEnemy">行動する敵キャラ</param> private void EnemyAction(BattleCharacter actionEnemy) { if (!actionEnemy.EC.HaveSpecialAI) { List <BattleActiveSkill> useableSkill = new List <BattleActiveSkill>(); foreach (E_BattleActiveSkill skillID in actionEnemy.EC.HaveBattleActtiveSkillID) { BattleActiveSkill skill = this.activeEffectFuncs.GetBattleActiveSkill(skillID); if (actionEnemy.Bsp >= skill.NeedBattleSkillPoint) { if (skill.EffectType != E_BattleActiveEffectType.HP回復 || BattleMethod.GetLowerHpChara(this.enemyList, 0.5) != null) { useableSkill.Add(this.activeEffectFuncs.GetBattleActiveSkill(skillID)); } } } int action = UnityEngine.Random.Range(0, useableSkill.Count + 1); if (action == useableSkill.Count) { //通常攻撃 if (actionEnemy.NormalAttackToAllTurn > 0) { NormalAttack(actionEnemy, GetAliveList(this.allyList)); } else if (GetAttractingCharacter(actionEnemy.Element, this.allyList) != null) { NormalAttack(actionEnemy, GetAttractingCharacter(actionEnemy.Element, this.allyList)); } else { NormalAttack(actionEnemy, ListManager.GetRandomIndex <BattleCharacter>(GetAliveList(this.allyList))); } } else { InvokeEffect(actionEnemy, useableSkill[action]); //スキル発動 } } else { //特殊な処理 actionEnemy.EC.EnemyAI.EnemyActionFunc(this.enemyList, this.allyList, actionEnemy, this.activeEffectFuncs); AdvanceTurn(); } }
public virtual void SkillFunc(BattleCharacter invoker, List <BattleCharacter> target, BattleActiveSkill skill) { }
public override void SkillFunc(BattleCharacter invoker, List <BattleCharacter> target, BattleActiveSkill skill) { Debug.Log(invoker.CharaClass.CharaName + "のその他のスキル発動"); Debug.Log("スキルの説明:" + skill.Description); }