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()); } }