Esempio n. 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();
 }
Esempio n. 2
0
    public void SetAllyStatus(AllyStatus charaStatus)
    {
        if (!partyMembers.Contains(charaStatus))
        {
            partyMembers.Add(charaStatus);
            //プレイヤーのレベルを取得
            int playerLevel = this.GetAllyStatus()[0].GetLevel();
            //加入するキャラのステータスを初期化
            charaStatus.StatusInit();
            // 変数を初期化
            int raisedAgility          = 0;
            int raisedPower            = 0;
            int raisedStrikingStrength = 0;
            int raisedMagicPower       = 0;
            //ステータスアップのテーブル
            LevelUpData levelUpData                 = charaStatus.GetLevelUpData();
            List <int>  agilityRisingTable          = levelUpData.GetAgilityRisingTable();
            List <int>  powerRisingTable            = levelUpData.GetPowerRisingTable();
            List <int>  strikingStrengthRisingTable = levelUpData.GetStrikingStrengthRisingTable();
            List <int>  magicPowerRisingTable       = levelUpData.GetMagicPowerRisingTable();
            // プレイヤーとのレベル差分、ステータスアップを計算し反映する
            for (int i = 1; i < playerLevel; i++)
            {
                // レベルを反映
                charaStatus.SetLevel(charaStatus.GetLevel() + 1);

                raisedAgility          += agilityRisingTable[charaStatus.GetLevel() % agilityRisingTable.Count()];
                raisedPower            += powerRisingTable[charaStatus.GetLevel() % powerRisingTable.Count()];
                raisedStrikingStrength += strikingStrengthRisingTable[charaStatus.GetLevel() % strikingStrengthRisingTable.Count()];
                raisedMagicPower       += magicPowerRisingTable[charaStatus.GetLevel() % strikingStrengthRisingTable.Count];
            }

            charaStatus.StatusUpdate(raisedPower, raisedAgility, raisedStrikingStrength, raisedMagicPower);
            //HP、MPを満タンに
            charaStatus.SetHp(charaStatus.GetMaxHp());
            charaStatus.SetMp(charaStatus.GetMaxMp());
        }
    }
    public void UseItemToCharacter(AllyStatus fromChara, 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 = fromChara.GetCharacterName() + "は" + item.GetKanjiName() + "を" + toChara.GetCharacterName() + "に使用しました。\n" +
                                                                               toChara.GetCharacterName() + "は" + item.GetAmount() + "回復しました。";
                //持っているアイテム数を減らす
                fromChara.SetItemNum(item, fromChara.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 = fromChara.GetCharacterName() + "は" + item.GetKanjiName() + "を" + toChara.GetCharacterName() + "に使用しました。\n" +
                                                                               toChara.GetCharacterName() + "はMPを" + item.GetAmount() + "回復しました。";
                //持っているアイテム数を減らす
                fromChara.SetItemNum(item, fromChara.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);
                //持っているアイテム数を減らす
                fromChara.SetItemNum(item, fromChara.GetItemNum(item) - 1);
            }
        }
        else if (item.GetItemType() == Item.Type.NumbnessRecovery)
        {
            if (!toChara.IsPoisonState())
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は痺れ状態ではありません。";
            }
            else
            {
                useItemInformationPanel.GetComponentInChildren <Text>().text = toChara.GetCharacterName() + "は痺れから回復しました。";
                toChara.SetNumbness(false);
                //持っているアイテム数を減らす
                fromChara.SetItemNum(item, fromChara.GetItemNum(item) - 1);
            }
        }

        //アイテムを使用したらアイテムを使用する相手のUseItemSelectCharacterPanelの子要素のボタンを全削除
        for (int i = useItemSelectCharacterPanel.transform.childCount - 1; i >= 0; i--)
        {
            Destroy(useItemSelectCharacterPanel.transform.GetChild(i).gameObject);
        }
        //itemPanleButtonListから該当するアイテムを探し数を更新する
        var itemButton = itemPanelButtonList.Find(obj => obj.transform.Find("ItemName").GetComponent <Text>().text == item.GetKanjiName());

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

        //アイテム数が0だったらボタンとキャラクターステータスからアイテムを削除
        if (fromChara.GetItemNum(item) == 0)
        {
            //アイテムが0になったら一気にItemPanelに戻す為、UseItemPanel内とUseItemSelectCharacterPanel内でのオブジェクト登録を削除
            selectedGameObjectStack.Pop();
            selectedGameObjectStack.Pop();
            //itemPanelButtonListからアイテムパネルボタンを削除
            itemPanelButtonList.Remove(itemButton);
            //アイテムパネルボタン自身の削除
            Destroy(itemButton);
            //アイテムを渡したキャラクター自身のItemDictionaryからそのアイテムを削除
            fromChara.GetItemDictionary().Remove(item);
            //ItemPanelに戻る為、UseItemPanel内に作ったボタンを全削除
            for (int i = useItemPanel.transform.childCount - 1; i >= 0; i--)
            {
                Destroy(useItemPanel.transform.GetChild(i).gameObject);
            }
            //アイテム数が0になったのでCommandMode.NoItemPassedに変更
            currentCommand = CommandMode.NoItemPassed;
            useItemInformationPanel.transform.SetAsLastSibling();
            Input.ResetInputAxes();
        }
        else
        {
            //アイテム数が残っている場合はUseItemPanelでアイテムをどうするかの選択に戻る
            currentCommand = CommandMode.UseItemSelectCharacterPanelToUseItemPanel;
            useItemInformationPanel.transform.SetAsLastSibling();
            Input.ResetInputAxes();
        }
    }
    //キャラクターのステータス表示
    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;
    }
Esempio n. 5
0
 // 装備ボタンの更新
 public void UpdateEquipButton(AllyStatus allyStatus)
 {
     AllyStatusDictionary[allyStatus].Find("CharacterNamePanel/CharacterName").GetComponent <Text>().text                     = allyStatus.GetCharacterName();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/HPText").GetComponent <Text>().text                              = "HP: " + allyStatus.GetHp().ToString() + "/" + allyStatus.GetMaxHp().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/MPText").GetComponent <Text>().text                              = "MP: " + allyStatus.GetMp().ToString() + "/" + allyStatus.GetMaxMp().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/AttackPowerText").GetComponent <Text>().text                     = "攻撃力: " + allyStatus.GetAttackPower().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/DefencePowerText").GetComponent <Text>().text                    = "守備力: " + allyStatus.GetDefencePower().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/PowerText").GetComponent <Text>().text                           = "力: " + allyStatus.GetPower().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/StrikingStrengthText").GetComponent <Text>().text                = "体力: " + allyStatus.GetStrikingStrength().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/MagicPowerText").GetComponent <Text>().text                      = "知力: " + allyStatus.GetMagicPower().ToString();
     AllyStatusDictionary[allyStatus].Find("StatusParamPanel/AgilityText").GetComponent <Text>().text                         = "素早さ: " + allyStatus.GetAgility().ToString();
     AllyStatusDictionary[allyStatus].Find("ChangeWeaponPanel/ChangeEquipButton").Find("Text").GetComponent <Text>().text     = allyStatus.GetEquipWeapon() ? allyStatus.GetEquipWeapon().GetKanjiName() : "なし";
     AllyStatusDictionary[allyStatus].Find("ChangeArmorPanel/ChangeEquipButton").Find("Text").GetComponent <Text>().text      = allyStatus.GetEquipArmor() ? allyStatus.GetEquipArmor().GetKanjiName() : "なし";
     AllyStatusDictionary[allyStatus].Find("ChangeAccessoryPanel1/ChangeEquipButton").Find("Text").GetComponent <Text>().text = allyStatus.GetEquipAccessory1() ? allyStatus.GetEquipAccessory1().GetKanjiName() : "なし";
     AllyStatusDictionary[allyStatus].Find("ChangeAccessoryPanel2/ChangeEquipButton").Find("Text").GetComponent <Text>().text = allyStatus.GetEquipAccessory2() ? allyStatus.GetEquipAccessory2().GetKanjiName() : "なし";
 }
Esempio n. 6
0
    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;
        }
    }
Esempio n. 7
0
    // キャラクターのステータス表示
    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.IsParalyzeState() && !allyStatus.IsSilentState())
        {
            text += "ふつう";
        }
        else
        {
            if (allyStatus.IsPoisonState())
            {
                text += "どく";
                if (allyStatus.IsParalyzeState())
                {
                    text += "、しびれ";
                    if (allyStatus.IsSilentState())
                    {
                        text += "、ちんもく";
                    }
                }
            }
            else if (allyStatus.IsParalyzeState())
            {
                text += "しびれ";
                if (allyStatus.IsSilentState())
                {
                    text += "、ちんもく";
                }
            }
            else if (allyStatus.IsSilentState())
            {
                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;
    }