Exemple #1
0
 // ステータスをセーブ用にコピー
 public void StatusCopy(AllyStatus allyStatus)
 {
     // キャラクターの名前
     this.characterName = allyStatus.GetCharacterName();
     // 毒状態かどうか
     this.isPoisonState = allyStatus.IsPoisonState();
     // 痺れ状態かどうか
     this.isNumbnessState = allyStatus.IsNumbnessState();
     // キャラクターのレベル
     this.level = allyStatus.GetLevel();
     // 素早さ
     this.agility = allyStatus.GetAgility();
     // 力
     this.power = allyStatus.GetPower();
     // 打たれ強さ
     this.strikingStrength = allyStatus.GetStrikingStrength();
     // 魔法力
     this.magicPower = allyStatus.GetMagicPower();
     // 攻撃力
     this.attackPower = allyStatus.GetAttackPower();
     // 守備力
     this.defencePower = allyStatus.GetDefencePower();
     // 最大HP
     this.maxHp = allyStatus.GetMaxHp();
     // HP
     this.hp = allyStatus.GetHp();
     // 最大MP
     this.maxMp = allyStatus.GetMaxMp();
     // MP
     this.mp = allyStatus.GetMp();
     // 持っているスキル
     this.skillList = allyStatus.GetSkillList();
     //属性カット率
     this.cutFlame   = allyStatus.GetCutFlame();
     this.cutThunder = allyStatus.GetCutThunder();
     this.cutIce     = allyStatus.GetcutIce();
     // 獲得経験値
     this.earnedExperience = allyStatus.GetEarnedExperience();
     // 装備している武器
     this.equipWeapon = allyStatus.GetEquipWeapon();
     // 装備している鎧
     this.equipArmor = allyStatus.GetEquipArmor();
     //装備しているアクセサリ
     this.equipAccessory1 = allyStatus.GetEquipAccessory1();
     this.equipAccessory2 = allyStatus.GetEquipAccessory2();
 }
    //キャラクターのステータス表示
    public void ShowStatus(AllyStatus allyStatus)
    {
        currentCommand = CommandMode.StatusPanel;
        statusPanel.SetActive(true);
        //キャラクターの名前を表示
        characterNameText.text = allyStatus.GetCharacterName();

        //タイトルの表示
        var text = "レベル\n";

        text += "HP\n";
        text += "MP\n";
        text += "経験値\n";
        text += "状態異常\n";
        text += "力\n";
        text += "素早さ\n";
        text += "打たれ強さ\n";
        text += "魔法力\n";
        text += "装備武器\n";
        text += "装備鎧\n";
        text += "攻撃力\n";
        text += "防御力\n";
        statusTitleText.text = text;

        //HPとMPのDivision記号の表示
        text  = "\n";
        text += allyStatus.GetHp() + "\n";
        text += allyStatus.GetMp() + "\n";
        statusParam1Text.text = text;

        //ステータスパラメータの表示
        text  = allyStatus.GetLevel() + "\n";
        text += allyStatus.GetMaxHp() + "\n";
        text += allyStatus.GetMaxMp() + "\n";
        text += allyStatus.GetEarnedExperience() + "\n";
        if (!allyStatus.IsPoisonState() && !allyStatus.IsNumbnessState())
        {
            text += "正常";
        }
        else
        {
            if (allyStatus.IsPoisonState())
            {
                text += "毒";
                if (allyStatus.IsNumbnessState())
                {
                    text += "、痺れ";
                }
            }
            else
            {
                if (allyStatus.IsNumbnessState())
                {
                    text += "痺れ";
                }
            }
        }

        text += "\n";
        text += allyStatus.GetPower() + "\n";
        text += allyStatus.GetAgility() + "\n";
        text += allyStatus.GetStrikingStrength() + "\n";
        text += allyStatus.GetMagicPower() + "\n";
        text += allyStatus?.GetEquipWeapon()?.GetKanjiName() ?? "";
        text += "\n";
        text += allyStatus.GetEquipArmor()?.GetKanjiName() ?? "";
        text += "\n";
        text += allyStatus.GetPower() + (allyStatus.GetEquipWeapon()?.GetAmount() ?? 0) + "\n";
        text += allyStatus.GetStrikingStrength() + (allyStatus.GetEquipArmor()?.GetAmount() ?? 0) + "\n";
        statusParam2Text.text = text;
    }
    public void UseItemToCharacter(AllyStatus toChara, Item item)
    {
        useItemInformationPanel.SetActive(true);
        useItemSelectCharacterPanelCanvasGroup.interactable = false;
        useItemSelectCharacterPanel.SetActive(false);

        if (item.GetItemType() == Item.Type.HPRecovery)
        {
            if (toChara.GetHp() == toChara.GetMaxHp())
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は元気です。";
            }
            else
            {
                toChara.SetHp(toChara.GetHp() + item.GetAmount());
                // アイテムを使用した旨を表示
                useItemInformationPanel.GetComponentInChildren <Text>().text = item.GetKanjiName() + "を" + toChara.GetCharacterName() + "に使用しました。\n" +
                                                                               toChara.GetCharacterName() + "は" + item.GetAmount() + "回復しました。";
                // 持っているアイテム数を減らす
                partyStatus.SetItemNum(item, partyStatus.GetItemNum(item) - 1);
            }
        }
        else if (item.GetItemType() == Item.Type.MPRecovery)
        {
            if (toChara.GetMp() == toChara.GetMaxMp())
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "のMPは最大です。";
            }
            else
            {
                toChara.SetMp(toChara.GetMp() + item.GetAmount());
                // アイテムを使用した旨を表示
                useItemInformationPanel.GetComponentInChildren <Text>().text = item.GetKanjiName() + "を" + toChara.GetCharacterName() + "に使用しました。\n" +
                                                                               toChara.GetCharacterName() + "はMPを" + item.GetAmount() + "回復しました。";
                // 持っているアイテム数を減らす
                partyStatus.SetItemNum(item, partyStatus.GetItemNum(item) - 1);
            }
        }
        else if (item.GetItemType() == Item.Type.PoisonRecovery)
        {
            if (!toChara.IsPoisonState())
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は毒状態ではありません。";
            }
            else
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は毒から回復しました。";
                toChara.SetPoisonState(false);
                // 持っているアイテム数を減らす
                partyStatus.SetItemNum(item, partyStatus.GetItemNum(item) - 1);
            }
        }
        else if (item.GetItemType() == Item.Type.NumbnessRecovery)
        {
            if (!toChara.IsNumbnessState())
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は痺れ状態ではありません。";
            }
            else
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は痺れから回復しました。";
                toChara.SetNumbness(false);
                // 持っているアイテム数を減らす
                partyStatus.SetItemNum(item, partyStatus.GetItemNum(item) - 1);
            }
        }

        // itemPanleButtonListから該当するアイテムを探し数を更新する
        var itemButton = itemPanelButtonList.Find(obj => obj.transform.Find("ItemNameText").GetComponent <Text>().text == item.GetKanjiName());

        itemButton.transform.Find("NumText").GetComponent <Text>().text = partyStatus.GetItemNum(item).ToString();

        // アイテム数が0だったらボタンとキャラクターステータスからアイテムを削除
        if (partyStatus.GetItemNum(item) == 0)
        {
            DeleteLostItem(item, itemButton);
            // ItemPanelに戻る為UseItemPanelの子要素のボタンを全削除
            ResetSelectButton();
        }
        else
        {
            // アイテム数が残っている場合はUseItemPanelでアイテムをどうするかの選択に戻る
            currentCommand = CommandMode.UseItemSelectCharacterPanelToUseItemPanel;
        }
    }