Exemplo n.º 1
0
    // アイテム使用
    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);
    }
Exemplo n.º 2
0
    // 魔法を使う
    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);
    }