// ステータスをセーブ用にコピー 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; } }