// アイテム使用 public void UseItem(GameObject user, GameObject targetCharacter, Item item) { var userCharacterBattleScript = user.GetComponent <CharacterBattle>(); var targetCharacterBattleScript = targetCharacter.GetComponent <CharacterBattle>(); var skill = userCharacterBattleScript.GetCharacterStatus().GetSkillList().Find(skills => skills.GetSkillType() == Skill.Type.Item); CharacterBattle.BattleState battleState = CharacterBattle.BattleState.Idle; if (item.GetItemType() == Item.Type.HPRecovery) { if (targetCharacterBattleScript.GetHp() == targetCharacterBattleScript.GetCharacterStatus().GetMaxHp()) { ShowMessage(targetCharacter.name + "は全快です。"); return; } battleState = CharacterBattle.BattleState.UseHPRecoveryItem; } else if (item.GetItemType() == Item.Type.MPRecovery) { if (targetCharacterBattleScript.GetMp() == targetCharacterBattleScript.GetCharacterStatus().GetMaxMp()) { ShowMessage(targetCharacter.name + "はMP回復をする必要がありません。"); return; } battleState = CharacterBattle.BattleState.UseMPRecoveryItem; } else if (item.GetItemType() == Item.Type.ParalyzeRecovery) { if (!targetCharacterBattleScript.IsNumbness()) { ShowMessage(targetCharacter.name + "は痺れ状態ではありません。"); return; } battleState = CharacterBattle.BattleState.UseParalyzeRecoveryItem; } else if (item.GetItemType() == Item.Type.PoisonRecovery) { if (!targetCharacterBattleScript.IsPoison()) { ShowMessage(targetCharacter.name + "は毒状態ではありません。"); return; } battleState = CharacterBattle.BattleState.UsePoisonRecoveryItem; } else if (item.GetItemType() == Item.Type.SilentRecovery) { if (!targetCharacterBattleScript.IsSilence()) { ShowMessage(targetCharacter.name + "は沈黙状態ではありません。"); return; } battleState = CharacterBattle.BattleState.UsePoisonRecoveryItem; } userCharacterBattleScript.ChooseAttackOptions(battleState, targetCharacter, skill, item); commandPanel.gameObject.SetActive(false); cancelButton.gameObject.SetActive(false); magicOrItemPanel.gameObject.SetActive(false); selectCharacterPanel.gameObject.SetActive(false); }
// 魔法を使う public void UseMagic(GameObject user, GameObject targetCharacter, Skill skill) { CharacterBattle.BattleState battleState = CharacterBattle.BattleState.Idle; // 魔法を使う相手のCharacterBattleScriptを取得しておく var targetCharacterBattleScript = targetCharacter.GetComponent <CharacterBattle>(); // 使う魔法の種類の設定と対象に使う必要がない場合の処理 if (skill.GetSkillType() == Skill.Type.MagicAttack) { battleState = CharacterBattle.BattleState.MagicAttack; } else if (skill.GetSkillType() == Skill.Type.RecoveryMagic) { if (targetCharacterBattleScript.GetHp() == targetCharacterBattleScript.GetCharacterStatus().GetMaxHp()) { ShowMessage(targetCharacter.name + "は全快です。"); return; } battleState = CharacterBattle.BattleState.Healing; } else if (skill.GetSkillType() == Skill.Type.IncreaseAttackPowerMagic) { if (targetCharacterBattleScript.IsIncreasePower()) { ShowMessage("既に攻撃力を上げています。"); return; } battleState = CharacterBattle.BattleState.IncreaseAttackPowerMagic; } else if (skill.GetSkillType() == Skill.Type.IncreaseDefencePowerMagic) { if (targetCharacterBattleScript.IsIncreaseStrikingStrength()) { ShowMessage("既に防御力を上げています。"); return; } battleState = CharacterBattle.BattleState.IncreaseDefencePowerMagic; } user.GetComponent <CharacterBattle>().ChooseAttackOptions(battleState, targetCharacter, skill); commandPanel.gameObject.SetActive(false); cancelButton.gameObject.SetActive(false); magicOrItemPanel.gameObject.SetActive(false); selectCharacterPanel.gameObject.SetActive(false); }