//コンストラクタ public void init() { //audioSource = new AudioSource(); //アセットファイルを取得 growthDatabase = Resources.Load <GrowthDatabase>("growthDatabase"); lvUpImpreDatabase = Resources.Load <LvUpImpreDatabase>("lvUpImpreDatabase"); unitDatabase = Resources.Load <UnitDatabase>("unitDatabase"); }
/// <summary> /// StageDatabaseで呼んで、ステージごとのユニット設定を行う /// </summary> /// <param name="Lv"></param> /// <param name="coordinate">ステージで初期配置されている座標</param> /// <param name="weapon">装備武器</param> /// <param name="carryItem">持ち物</param> /// <param name="enemyAIPattern">行動パターン</param> public void StageInit(int lv, Coordinate coordinate, List <Item> carryItem, EnemyAIPattern enemyAIPattern) { this.lv = lv; this.coordinate = coordinate; this.carryItem = carryItem; this.enemyAIPattern = enemyAIPattern; //装備フラグがtrueの武器、アクセサリを装備 foreach (Item item in carryItem) { if (item.ItemType == ItemType.WEAPON && item.isEquip == true) { this.equipWeapon = item.weapon; } else if (item.ItemType == ItemType.ACCESSORY && item.isEquip == true) { this.equipAccessory = item.accessory; } } //敵キャラはレベルを渡すとレベルアップ分のステータスを反映してくれる GrowthDatabase growthDatabase = Resources.Load <GrowthDatabase>("growthDatabase"); //成長率取得 GrowthRate growthRate = growthDatabase.FindByName(name); int lvUp = lv - 1; //小数点以下切り捨て 成長率は整数で入っているので10で割ってやる this.maxhp += Mathf.FloorToInt(lvUp * growthRate.hpRate / 100); this.hp = maxhp; this.latk += Mathf.FloorToInt(lvUp * growthRate.latkRate / 100); this.catk += Mathf.FloorToInt(lvUp * growthRate.catkRate / 100); this.dex += Mathf.FloorToInt(lvUp * growthRate.dexRate / 100); this.agi += Mathf.FloorToInt(lvUp * growthRate.agiRate / 100); this.luk += Mathf.FloorToInt(lvUp * growthRate.lukRate / 100); this.ldef += Mathf.FloorToInt(lvUp * growthRate.ldefRate / 100); this.cdef += Mathf.FloorToInt(lvUp * growthRate.cdefRate / 100); }
private static void Create() { GrowthDatabase growthDatabase = ScriptableObject.CreateInstance <GrowthDatabase>(); //霊夢 int[] growthRate = new int[] { 45, 45, 35, 45, 45, 50, 35, 30 }; GrowthRate reimuGrowth = new GrowthRate("霊夢", growthRate); growthDatabase.growthList.Add(reimuGrowth); //魔理沙 growthRate = new int[] { 40, 50, 35, 40, 50, 40, 30, 20 }; GrowthRate marisaGrowth = new GrowthRate("魔理沙", growthRate); growthDatabase.growthList.Add(marisaGrowth); //ルーミア growthRate = new int[] { 50, 45, 35, 30, 25, 20, 50, 40 }; GrowthRate rumiaGrowth = new GrowthRate("ルーミア", growthRate); growthDatabase.growthList.Add(rumiaGrowth); //大妖精 growthRate = new int[] { 30, 40, 30, 40, 40, 30, 30, 20 }; GrowthRate daiyouseiGrowth = new GrowthRate("大妖精", growthRate); growthDatabase.growthList.Add(daiyouseiGrowth); //ツィルノ growthRate = new int[] { 50, 40, 45, 30, 45, 40, 30, 30 }; GrowthRate chirnoGrowth = new GrowthRate("チルノ", growthRate); growthDatabase.growthList.Add(chirnoGrowth); //文 growthRate = new int[] { 40, 35, 35, 40, 65, 45, 30, 30 }; GrowthRate ayaGrowth = new GrowthRate("文", growthRate); growthDatabase.growthList.Add(ayaGrowth); //うどんげ氏 growthRate = new int[] { 40, 50, 30, 55, 45, 15, 35, 20 }; GrowthRate udongeGrowth = new GrowthRate("鈴仙", growthRate); growthDatabase.growthList.Add(udongeGrowth); //美鈴 growthRate = new int[] { 65, 20, 50, 40, 45, 20, 25, 40 }; GrowthRate meirinGrowth = new GrowthRate("美鈴", growthRate); growthDatabase.growthList.Add(meirinGrowth); //小悪魔 growthRate = new int[] { 40, 45, 30, 40, 45, 20, 20, 30 }; GrowthRate koakumaGrowth = new GrowthRate("小悪魔", growthRate); growthDatabase.growthList.Add(koakumaGrowth); //パチュリー growthRate = new int[] { 25, 65, 15, 65, 35, 30, 40, 10 }; GrowthRate patuGrowth = new GrowthRate("パチュリー", growthRate); growthDatabase.growthList.Add(patuGrowth); //咲夜 growthRate = new int[] { 40, 45, 30, 50, 50, 40, 30, 35 }; GrowthRate sakuyaGrowth = new GrowthRate("咲夜", growthRate); growthDatabase.growthList.Add(sakuyaGrowth); //レミリア growthRate = new int[] { 55, 40, 50, 40, 45, 65, 25, 30 }; GrowthRate remilliaGrowth = new GrowthRate("レミリア", growthRate); growthDatabase.growthList.Add(remilliaGrowth); //フラン growthRate = new int[] { 50, 50, 65, 25, 50, 25, 20, 25 }; GrowthRate frandreGrowth = new GrowthRate("フランドール", growthRate); growthDatabase.growthList.Add(frandreGrowth); //以下、敵の成長率 咲夜とかが敵で出た場合も、成長率は味方と同じものを参照 //妖精 growthRate = new int[] { 50, 40, 40, 30, 35, 25, 25, 20 }; GrowthRate growth = new GrowthRate("妖精", growthRate); growthDatabase.growthList.Add(growth); //メイド妖精 growthRate = new int[] { 60, 45, 45, 40, 45, 30, 30, 25 }; growth = new GrowthRate("メイド妖精", growthRate); growthDatabase.growthList.Add(growth); //毛玉 growthRate = new int[] { 40, 20, 35, 25, 45, 20, 10, 30 }; growth = new GrowthRate("毛玉", growthRate); growthDatabase.growthList.Add(growth); //妖獣 growthRate = new int[] { 50, 30, 40, 30, 50, 20, 20, 35 }; growth = new GrowthRate("妖獣", growthRate); growthDatabase.growthList.Add(growth); //魔導書 growthRate = new int[] { 40, 55, 10, 50, 30, 10, 35, 20 }; growth = new GrowthRate("魔導書", growthRate); growthDatabase.growthList.Add(growth); //グリモワール growthRate = new int[] { 45, 60, 20, 60, 35, 20, 40, 25 }; growth = new GrowthRate("グリモワール", growthRate); growthDatabase.growthList.Add(growth); //使い魔 growthRate = new int[] { 45, 50, 40, 40, 40, 30, 25, 20 }; growth = new GrowthRate("使い魔", growthRate); growthDatabase.growthList.Add(growth); //ひまわり妖精 growthRate = new int[] { 60, 45, 45, 25, 20, 15, 40, 20 }; growth = new GrowthRate("ひまわり妖精", growthRate); growthDatabase.growthList.Add(growth); //ハイフェアリー growthRate = new int[] { 70, 50, 50, 30, 25, 20, 45, 25 }; growth = new GrowthRate("ハイフェアリー", growthRate); growthDatabase.growthList.Add(growth); //ホブゴブリン growthRate = new int[] { 50, 30, 50, 40, 50, 20, 20, 35 }; growth = new GrowthRate("ホブゴブリン", growthRate); growthDatabase.growthList.Add(growth); //幽霊 growthRate = new int[] { 50, 50, 20, 30, 45, 10, 30, 30 }; growth = new GrowthRate("幽霊", growthRate); growthDatabase.growthList.Add(growth); //怨霊 growthRate = new int[] { 55, 55, 25, 40, 50, 15, 35, 35 }; growth = new GrowthRate("怨霊", growthRate); growthDatabase.growthList.Add(growth); //吸血コウモリ growthRate = new int[] { 40, 40, 30, 35, 55, 35, 20, 20 }; growth = new GrowthRate("吸血コウモリ", growthRate); growthDatabase.growthList.Add(growth); //ツパイ growthRate = new int[] { 45, 50, 40, 40, 60, 40, 25, 25 }; growth = new GrowthRate("ツパイ", growthRate); growthDatabase.growthList.Add(growth); //ファイル書き出し Resources配下に作る AssetDatabase.CreateAsset(growthDatabase, "Assets/Resources/growthDatabase.asset"); }
public void UpdateText(Unit unit) { this.name.text = unit.name; this.race.text = unit.race.GetStringValue(); this.image.sprite = Resources.Load <Sprite>("Image/Charactors/" + unit.pathName + "/status"); //アセットから成長率を取得 GrowthDatabase growthDatabase = Resources.Load <GrowthDatabase>("growthDatabase"); GrowthRate growthRate = growthDatabase.FindByName(unit.name); //HP hp.text = growthRate.hpRate.ToString(); hpGauge.maxValue = StatusConst.GROWTH_MAX; hpGauge.value = growthRate.hpRate; //遠距離攻撃 latk.text = growthRate.latkRate.ToString(); latkGauge.maxValue = StatusConst.GROWTH_MAX; latkGauge.value = growthRate.latkRate; //近距離攻撃 catk.text = growthRate.catkRate.ToString(); catkGauge.maxValue = StatusConst.GROWTH_MAX; catkGauge.value = growthRate.catkRate; //速さ agi.text = growthRate.agiRate.ToString(); agiGauge.maxValue = StatusConst.GROWTH_MAX; agiGauge.value = growthRate.agiRate; //技 dex.text = growthRate.dexRate.ToString(); dexGauge.maxValue = StatusConst.GROWTH_MAX; dexGauge.value = growthRate.dexRate; //幸運 luk.text = growthRate.lukRate.ToString(); lukGauge.maxValue = StatusConst.GROWTH_MAX; lukGauge.value = growthRate.lukRate; //遠距離防御 ldef.text = growthRate.ldefRate.ToString(); ldefGauge.maxValue = StatusConst.GROWTH_MAX; ldefGauge.value = growthRate.ldefRate; //近距離防御 cdef.text = growthRate.cdefRate.ToString(); cdefGauge.maxValue = StatusConst.GROWTH_MAX; cdefGauge.value = growthRate.cdefRate; if (unit.name == "霊夢") { this.detailText.text = "博麗神社の巫女さん。\n\n" + "2種類の武器と遠距離近距離攻撃、仲間の回復が出来、\n" + "多くの状況で有利に戦う事が出来ます。\n\n" + "また、武器や癒符の熟練度が上がりやすくなる\n" + "スキルを持っているので、\n" + "序盤から強力な符を装備する事が出来ます。\n\n" + "中級職で敵の防御スキルを無効化するスキルを習得します。\n\n" + "上級職では遠距離攻撃特化型と、近距離攻撃が得意で移動力が高い\n" + "バランス型を選ぶ事が出来ます。"; } else if (unit.name == "魔理沙") { this.detailText.text = "弾幕はパワー。\n\n" + "遠距離攻撃と素早さが上がりやすく、\n" + "経験値を多く獲得するスキルで成長も早いので、\n" + "攻撃の要となります。\n" + "また、鍵無しで宝箱を開ける事が出来ます。\n" + "防御力は高くないので、孤立させ過ぎないように注意しましょう。\n\n" + "中級職では武器の使用回数消費を抑えるスキルを習得します。\n\n" + "上級職では攻撃特化型と、回避率が高くアイテムの使用後に\n" + "行動が出来る防御型を選ぶ事が出来ます。"; } else if (unit.name == "ルーミア") { this.detailText.text = "遠距離、近距離防御力共に高く、ダメージを受けにくいです。\n" + "反面、素早さは低いので、攻撃力の高い敵から\n" + "追撃を受けないように注意が必要です。\n" + "上級職にクラスチェンジすると・・・"; } else if (unit.name == "大妖精") { this.detailText.text = "仲間の回復とステータスを上げる事が出来ます。\n" + "戦闘能力は低いので、攻撃を受けないように注意しましょう。\n\n" + "中級職になると、ターン開始時に\n" + "周囲の仲間の体力を少し回復する事が出来ます。\n\n" + "上級職になると仲間を再行動させる事が出来るようになり、\n" + "更に仲間のステータスを上げる事が出来るようになります。\n"; } else if (unit.name == "チルノ") { this.detailText.text = "戦闘能力は突出した所が無いですが、\n" + "貴重な遠距離と近距離の両方に\n" + "攻撃出来る武器を使用する事が出来ます。\n\n" + "中級職で隣接する敵の回避率を下げるスキルを習得します。\n\n" + "上級職では仲間のステータスを上げるスキルを習得する職か、\n" + "敵を移動出来なくするスキルを習得する職を選ぶ事が出来るので、\n" + "上手に使う事で戦局を有利に進める事が出来ます。"; } else if (unit.name == "文") { this.detailText.text = "序盤から加入して性能が高いですが、レベルが高い為、\n" + "文ばかり戦わせると他のキャラが成長しません。\n" + "序盤は戦闘させ過ぎないように注意が必要です。\n\n" + "鍵無しで宝箱を開ける事が出来るので宝箱の回収係や、\n" + "武器を外して壁として活躍させるのがお勧めです。\n\n" + "素早さが非常に高いですが、取材が目的で異変の解決には\n" + "関与する気が無い為、攻撃力は低いです。\n\n" + "所謂お助けキャラですが、成長率は高いので、\n" + "最後まで活躍する事が出来ます。\n" + "上級職では攻撃特化型と、回避率の高い\n" + "防御型を選ぶ事が出来ます。"; } else if (unit.name == "美鈴") { this.detailText.text = "近距離攻撃と防御に特化した性能で、\n" + "HPが高く壁として活躍する事が出来ます。\n\n" + "近距離攻撃の手段を持たない敵に対しては\n" + "一方的に高いダメージを与える事が出来ます。\n\n" + "反面、遠距離攻撃への防御力は低く、\n" + "運も低い為必殺を受けやすいので、\n" + "過信していると想像以上にダメージを受ける事が有ります。\n\n" + "中級職から仲間の体力を回復させる事が出来ます。\n\n" + "上級職では高い必殺率を持つ職業と、\n" + "仲間の防御力を上げる事が出来る職業を選ぶ事が出来ます。\n"; } else if (unit.name == "小悪魔") { this.detailText.text = "仲間の回復とステータスを上げる事が出来ます。\n" + "攻撃力もそこそこの性能で、敵にダメージを与えやすいです。\n" + "また、仲間を回復すると自分のHPも回復する事が出来ます。\n\n" + "運が低く、防御力も高くない為、\n" + "攻撃を受けないように注意しましょう。\n\n" + "中級職になると、周囲の仲間の攻撃力を上げる事が出来ます。\n" + "上級職になると仲間を再行動させる事が出来るようになり、\n" + "更に仲間のステータスを上げる事が出来るようになります。"; } else if (unit.name == "鈴仙") { this.detailText.text = "攻撃の命中率が高く、射程距離の長い武器で\n" + "敵を狙撃する事が出来ます。\n\n" + "運が非常に低く必殺を受けやすいので、\n" + "攻撃を受けないように注意が必要です。\n\n" + "上級職では薬で仲間の体力を回復させる事が出来るバランス型と、\n" + "攻撃特化型の傾向が大きく異なる2種類の職業を選ぶ事が出来ます。\n\n" + "趣味で登場させたけど、運用に難が有って可愛い。"; } else if (unit.name == "パチュリー") { this.detailText.text = "遠距離攻撃防御力、技が非常に高く、\n" + "最大8マス先の敵に遠距離攻撃出来る武器を使用する事が出来る為、\n" + "遠距離攻撃では圧倒的な性能を持っています。\n\n" + "反面、HP、近距離防御力は非常に低く、素早さも低めなので、\n" + "近距離攻撃を受けると一撃で倒されてしまう事も有ります。\n\n" + "専用武器は修理出来ますが非常に修理費が高額な為、\n" + "ここぞという時に使用しましょう。\n\n" + "中級職ではより攻撃力が上がり、\n" + "上級職では攻守共に強力なスキルを習得します。\n\n" + "装備出来る符の種類が多く、ショット、レーザーに加えて\n" + "上級職では物理、癒符のどちらかを装備する事が出来ます。\n"; } else if (unit.name == "咲夜") { this.detailText.text = "技、速さ、幸運が上がりやすく、\n" + "また、遠近両方に対して攻撃出来る専用武器を持っている為、\n" + "隙の無い活躍が出来ます。\n\n" + "バランス型の成長をするキャラのお約束で\n" + "運が悪いと器用貧乏になる事も有りますが、\n" + "その場合も仲間のサポートと鍵開けによる宝箱の回収で\n" + "いぶし銀の活躍が出来る、まさにパーフェクトメイド。\n\n" + "中級職では行動せずに待機すると\n" + "回避率が上がるスキルを習得します。\n\n" + "上級職では攻撃特化型の職業と、\n" + "仲間のサポートが出来る職業を選ぶ事が出来ます。\n"; } else if (unit.name == "レミリア") { this.detailText.text = "序盤から加入して性能が高いですが、レベルが高い為、\n" + "レミリアばかり戦わせると他のキャラが成長しません。\n" + "序盤は戦闘させ過ぎないように注意が必要です。\n\n" + "専用武器のグングニルは遠近両用で非常に高性能ですが、\n" + "修理費が高額な為、多用すると紅魔館の財政を圧迫してしまいます。\n\n" + "運命を操る程度の能力の為、非常に幸運の成長率が高く、\n" + "全体的なステータスの成長率も高い為、\n" + "終盤も活躍する事が出来ます。\n\n" + "上級職では戦闘後に敵の能力を下げるスキルを習得する職業と、\n" + "敵から受けるダメージを確率で半減させるスキルを習得する\n" + "職業を選ぶ事が出来ます。\n"; } else if (unit.name == "フランドール") { this.detailText.text = "非常に攻撃寄りのステータスにクリティカル率が高い専用武器、\n" + "必殺率を上げる専用スキルを持っており、\n" + "攻撃が命中すれば多くの敵を一撃で倒す事が出来ます。\n\n" + "反面、技が低い為攻撃の命中が安定しないので、\n" + "運用に運の要素が強いです。\n\n" + "また防御力は低いので、シリーズ恒例の\n" + "「やっつけ負け」に注意する必要が有ります。\n\n" + "ゲーム終盤に上級職で加入する為、\n" + "クラスチェンジ可能な職業は有りません。"; } }