// 支援テキストの読み込み private void getSupportList() { PC = Resources.Load("ExcelData/player_chara") as player_charaList; PS = Resources.Load("ExcelData/playerSkill") as player_skillList; var IDList = new List <int>(); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill1); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill2); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill3); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill4); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill5); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill6); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill7); IDList.Add((int)PC.sheets[0].list[charID].SupportSkill8); for (int count = 0; count < IDList.Count - 1; count++) { if (IDList[count] != 0) { if (charLV >= PS.sheets[0].list[IDList[count] - 1].Lv) { supportText.GetChild(count).gameObject.SetActive(true); supportText.GetChild(count).gameObject.GetComponent <Text>().text = PS.sheets[0].list[IDList[count] - 1].skillName; } } } SkillID = (int)PC.sheets[0].list[charID].SupportSkill1 - 1; }
void StatusInit() { PC = Resources.Load("ExcelData/player_chara") as player_charaList; PG = Resources.Load("ExcelData/playerGrow") as playerGrow; // レベル1時の初期ステータスを取得 for (int charID = 0; charID < 6; charID++) { StatusList[charID] = new statusData() { CharName = PC.sheets[0].list[charID].Name, LV = 3, HP = (int)PC.sheets[0].list[charID].HP, SP = (int)PC.sheets[0].list[charID].SP, ATK = (int)PC.sheets[0].list[charID].ATK, DEF = (int)PC.sheets[0].list[charID].DEF, SPD = (int)PC.sheets[0].list[charID].SPD, MAT = (int)PC.sheets[0].list[charID].MAT, MDF = (int)PC.sheets[0].list[charID].MDF, LUK = (int)PC.sheets[0].list[charID].LUK, EXP = 220 }; StatusGrowList[charID] = new statusData() { LV = 1, HP = (int)PG.sheets[0].list[charID].GROWHP, SP = (int)PG.sheets[0].list[charID].GROWSP, ATK = (int)PG.sheets[0].list[charID].GROWATK, DEF = (int)PG.sheets[0].list[charID].GROWDEF, SPD = (int)PG.sheets[0].list[charID].GROWSPD, MAT = (int)PG.sheets[0].list[charID].GROWMAT, MDF = (int)PG.sheets[0].list[charID].GROWMDF, LUK = (int)PG.sheets[0].list[charID].GROWLUK, EXP = 0 }; } }
// スキルの効果の取得 public void SkillInfluence(int skillID) { PC = Resources.Load("ExcelData/player_chara") as player_charaList; PS = Resources.Load("ExcelData/playerSkill") as player_skillList; EC = Resources.Load("ExcelData/enemy_chara") as enemy_charaList; ES = Resources.Load("ExcelData/enemySkill") as enemy_skillList; GameObject AttackObj = battleManager.GetComponent <BattleScene>().GetAttackObj(); // 前の行動で敵が死亡してたら標的を変える if (battleManager.GetComponent <BattleScene>().GetReceiveObj(1) == null && battleManager.GetComponent <BattleScene>().GetReceiveObj(2) == null && battleManager.GetComponent <BattleScene>().GetReceiveObj(3) == null) { // プレイヤーが敵に向かって行動する時用 if (playerProof) { if (PS.sheets[0].list[skillID].target.StartsWith("E")) { battleManager.GetComponent <command>().changeTarget(playerProof, PS.sheets[0].list[skillID].target); ReceiveChara1 = battleManager.GetComponent <BattleScene>().GetReceiveObj(1); } } // 敵が敵に向かって行動する時用 else { if (ES.sheets[0].list[skillID].target.StartsWith("E")) { battleManager.GetComponent <command>().changeTarget(playerProof, ES.sheets[0].list[skillID].target); ReceiveChara1 = battleManager.GetComponent <BattleScene>().GetReceiveObj(1); } } } // 前の行動でプレイヤーが死亡してたら標的を変える if ((battleManager.GetComponent <BattleScene>().GetReceiveObj(1) && battleManager.GetComponent <BattleScene>().GetReceiveObj(1).GetComponent <Status>().GetState() == STATE.ST_DEAD) || (battleManager.GetComponent <BattleScene>().GetReceiveObj(2) && battleManager.GetComponent <BattleScene>().GetReceiveObj(2).GetComponent <Status>().GetState() == STATE.ST_DEAD) || (battleManager.GetComponent <BattleScene>().GetReceiveObj(3) && battleManager.GetComponent <BattleScene>().GetReceiveObj(3).GetComponent <Status>().GetState() == STATE.ST_DEAD)) { // プレイヤーがプレイヤーに向かって行動する時用 if (playerProof) { if (PS.sheets[0].list[skillID].target.StartsWith("P")) { if (PS.sheets[0].list[skillID].target.Contains("1")) { if (battleManager.GetComponent <command>().GetPlayerChild(0).GetComponent <Status>().GetState() != Status.STATE.ST_DEAD) { battleManager.GetComponent <BattleScene>().SetReceiveObj(battleManager.GetComponent <command>().GetPlayerChild(0)); } else if (battleManager.GetComponent <command>().GetPlayerChild(1).GetComponent <Status>().GetState() != Status.STATE.ST_DEAD) { battleManager.GetComponent <BattleScene>().SetReceiveObj(battleManager.GetComponent <command>().GetPlayerChild(1)); } else if (battleManager.GetComponent <command>().GetPlayerChild(1).GetComponent <Status>().GetState() != Status.STATE.ST_DEAD) { battleManager.GetComponent <BattleScene>().SetReceiveObj(battleManager.GetComponent <command>().GetPlayerChild(2)); } ReceiveChara1 = battleManager.GetComponent <BattleScene>().GetReceiveObj(1); } // 3人に対する行動 else { NonTarget3(); } } } // 敵がプレイヤーに向かって行動する時用 else { if (ES.sheets[0].list[skillID].target.StartsWith("P")) { if (ES.sheets[0].list[skillID].target.Contains("1")) { if (battleManager.GetComponent <command>().GetPlayerChild(0).GetComponent <Status>().GetState() != Status.STATE.ST_DEAD) { battleManager.GetComponent <BattleScene>().SetReceiveObj(battleManager.GetComponent <command>().GetPlayerChild(0)); } else if (battleManager.GetComponent <command>().GetPlayerChild(1).GetComponent <Status>().GetState() != Status.STATE.ST_DEAD) { battleManager.GetComponent <BattleScene>().SetReceiveObj(battleManager.GetComponent <command>().GetPlayerChild(1)); } else if (battleManager.GetComponent <command>().GetPlayerChild(1).GetComponent <Status>().GetState() != Status.STATE.ST_DEAD) { battleManager.GetComponent <BattleScene>().SetReceiveObj(battleManager.GetComponent <command>().GetPlayerChild(2)); } ReceiveChara1 = battleManager.GetComponent <BattleScene>().GetReceiveObj(1); } else { NonTarget3(); } } } } GameObject UseObj = AttackObj; if (playerProof) { battleManager.GetComponent <command>().SetActiveSkillText(PS.sheets[0].list[skillID].skillName); animName = PS.sheets[0].list[skillID].effectName; if (int.Parse(Regex.Replace(PS.sheets[0].list[skillID].target, @"[^0-9]", "")) == 3) { targetFlag = true; } } else { battleManager.GetComponent <command>().SetActiveSkillText(ES.sheets[0].list[skillID].skillName); animName = ES.sheets[0].list[skillID].effectName; if (int.Parse(Regex.Replace(ES.sheets[0].list[skillID].target, @"[^0-9]", "")) == 3) { targetFlag = true; } } string charaStatus; string useStatus; string useStatus2; double magnification; int STime; // ステータスを弄るキャラ charaStatus = PS.sheets[0].list[skillID].useChara; // 使用するステータス useStatus = PS.sheets[0].list[skillID].influence1; useStatus2 = PS.sheets[0].list[skillID].influence2; // 技の倍率 magnification = PS.sheets[0].list[skillID].power; // HPに影響を与える技かどうか HPCtlFlag = (int)PS.sheets[0].list[skillID].hpCtl; // 物理攻撃か魔法攻撃か AttackType = (int)PS.sheets[0].list[skillID].attackType; // 持続時間 STime = (int)PS.sheets[0].list[skillID].period; // 行動するのが敵の場合は敵のステータスに変更 if (!playerProof) { charaStatus = ES.sheets[0].list[skillID].useChara; useStatus = ES.sheets[0].list[skillID].influence1; useStatus2 = ES.sheets[0].list[skillID].influence2; magnification = ES.sheets[0].list[skillID].power; HPCtlFlag = (int)ES.sheets[0].list[skillID].hpCtl; AttackType = (int)ES.sheets[0].list[skillID].attackType; STime = (int)ES.sheets[0].list[skillID].period; } DeleteBuff(AttackObj); DeleteBuff(ReceiveChara1); DeleteBuff(ReceiveChara2); DeleteBuff(ReceiveChara3); HealPercent = 0; if (charaStatus == "Attack") { UseObj = AttackObj; } else if (charaStatus == "Receive") { UseObj = ReceiveChara1; } else { } for (int count = 0; count < 3; count++) { strData str1 = new strData(); switch (useStatus) { case ("HP"): HealPercent = magnification; break; case ("ATK"): str1.ATK = (int)Math.Round(UseObj.GetComponent <Status>().GetATK() * magnification); str1.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str1); break; case ("DEF"): str1.DEF = (int)Math.Round(UseObj.GetComponent <Status>().GetDEF() * magnification); str1.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str1); break; case ("SPD"): str1.SPD = (int)Math.Round(UseObj.GetComponent <Status>().GetSPD() * magnification); str1.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str1); break; case ("MAT"): str1.MAT = (int)Math.Round(UseObj.GetComponent <Status>().GetMAT() * magnification); str1.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str1); break; case ("MDF"): str1.MDF = (int)Math.Round(UseObj.GetComponent <Status>().GetMDF() * magnification); str1.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str1); break; case ("LUK"): str1.LUK = (int)Math.Round(UseObj.GetComponent <Status>().GetLUK() * magnification); str1.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str1); break; default: break; } strData str2 = new strData(); switch (useStatus2) { case ("HP"): HealPercent = magnification; break; case ("ATK"): str2.ATK = (int)Math.Round(UseObj.GetComponent <Status>().GetATK() * magnification); str2.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str2); break; case ("DEF"): str2.DEF = (int)Math.Round(UseObj.GetComponent <Status>().GetDEF() * magnification); str2.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str2); break; case ("SPD"): str2.SPD = (int)Math.Round(UseObj.GetComponent <Status>().GetSPD() * magnification); str2.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str2); break; case ("MAT"): str2.MAT = (int)Math.Round(UseObj.GetComponent <Status>().GetMAT() * magnification); str2.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str2); break; case ("MDF"): str2.MDF = (int)Math.Round(UseObj.GetComponent <Status>().GetMDF() * magnification); str2.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str2); break; case ("LUK"): str2.LUK = (int)Math.Round(UseObj.GetComponent <Status>().GetLUK() * magnification); str2.TIME = STime + TURN; UseObj.GetComponent <Status>().changeStatus.Add(str2); break; default: break; } if (charaStatus == "Attack") { break; } if (count == 0) { UseObj = ReceiveChara2; } else if (count == 1) { UseObj = ReceiveChara3; } else { } if (!UseObj) { break; } } }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { foreach (string asset in importedAssets) { if (!filePath.Equals(asset)) { continue; } player_charaList data = (player_charaList)AssetDatabase.LoadAssetAtPath(exportPath, typeof(player_charaList)); if (data == null) { data = ScriptableObject.CreateInstance <player_charaList> (); AssetDatabase.CreateAsset((ScriptableObject)data, exportPath); data.hideFlags = HideFlags.NotEditable; } data.sheets.Clear(); using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { IWorkbook book = null; if (Path.GetExtension(filePath) == ".xls") { book = new HSSFWorkbook(stream); } else { book = new XSSFWorkbook(stream); } foreach (string sheetName in sheetNames) { ISheet sheet = book.GetSheet(sheetName); if (sheet == null) { Debug.LogError("[QuestData] sheet not found:" + sheetName); continue; } player_charaList.Sheet s = new player_charaList.Sheet(); s.name = sheetName; for (int i = 1; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); ICell cell = null; player_charaList.Param p = new player_charaList.Param(); cell = row.GetCell(0); p.ID = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(1); p.Name = (cell == null ? "" : cell.StringCellValue); cell = row.GetCell(2); p.HP = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(3); p.SP = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(4); p.ATK = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(5); p.DEF = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(6); p.SPD = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(7); p.MAT = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(8); p.MDF = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(9); p.LUK = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(10); p.AttackSkill1 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(11); p.AttackSkill2 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(12); p.AttackSkill3 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(13); p.AttackSkill4 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(14); p.AttackSkill5 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(15); p.AttackSkill6 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(16); p.AttackSkill7 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(17); p.AttackSkill8 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(18); p.SupportSkill1 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(19); p.SupportSkill2 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(20); p.SupportSkill3 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(21); p.SupportSkill4 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(22); p.SupportSkill5 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(23); p.SupportSkill6 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(24); p.SupportSkill7 = (cell == null ? 0.0 : cell.NumericCellValue); cell = row.GetCell(25); p.SupportSkill8 = (cell == null ? 0.0 : cell.NumericCellValue); s.list.Add(p); } data.sheets.Add(s); } } ScriptableObject obj = AssetDatabase.LoadAssetAtPath(exportPath, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(obj); } }
// 技の説明&ターゲットの表示 public void SkillDescription() { // 技の説明表示 Description.GetComponent <Image>().enabled = false; DescriptionText.GetComponent <Text>().enabled = false; foreach (Transform child in playerTarget) { child.gameObject.SetActive(false); } foreach (Transform child in enemyTarget) { child.gameObject.SetActive(false); } Description.GetComponent <Image>().enabled = true; DescriptionText.GetComponent <Text>().enabled = true; int skillNumber = 0; // 技ごとにターゲット表示 PC = Resources.Load("ExcelData/player_chara") as player_charaList; PS = Resources.Load("ExcelData/playerSkill") as player_skillList; if (skillType == TYPE.TYPE_ATTACK) { switch (SkillName) { case 1: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill1; break; case 2: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill2; break; case 3: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill3; break; case 4: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill4; break; case 5: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill5; break; case 6: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill6; break; case 7: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill7; break; case 8: skillNumber = (int)PC.sheets[0].list[charID].AttackSkill8; break; default: break; } } else if (skillType == TYPE.TYPE_SUPPORT) { switch (SkillName) { case 1: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill1; break; case 2: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill2; break; case 3: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill3; break; case 4: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill4; break; case 5: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill5; break; case 6: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill6; break; case 7: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill7; break; case 8: skillNumber = (int)PC.sheets[0].list[charID].SupportSkill8; break; default: break; } } else { } // SPが足りない場合はターゲットを表示しない&ターゲットを消す if (charSP < PS.sheets[0].list[skillNumber - 1].sp) { foreach (Transform child in playerTarget) { child.gameObject.SetActive(false); } foreach (Transform child in enemyTarget) { child.gameObject.SetActive(false); } DescriptionText.GetComponent <Text>().text = "SPが足りないぞッ"; } // SPが足りるならターゲットを表示 else { // playerSkillのtargetから、ターゲットを取得 string Name = PS.sheets[0].list[skillNumber - 1].target; int ActivePlayer = SetActivePlayer(); // 味方に対する技 if (Name.StartsWith("P")) { if (Name.Contains("0")) { playerTarget.GetChild(ActivePlayer).gameObject.SetActive(true); } else if (Name.Contains("1")) { playerTarget.GetChild(target).gameObject.SetActive(true); foreach (Transform child in player) { child.gameObject.GetComponent <Status>().SetRayCast(true); } } else { foreach (Transform child in playerTarget) { child.gameObject.SetActive(true); } } } // 敵に対する技 else { if (Name.Contains("1")) { enemyTarget.GetChild(target).gameObject.SetActive(true); foreach (Transform child in enemy) { child.gameObject.GetComponent <Status>().SetRayCast(true); } } else { foreach (Transform child in enemyTarget) { child.gameObject.SetActive(true); } } } DescriptionText.GetComponent <Text>().text = PS.sheets[0].list[skillNumber - 1].effect; SkillID = skillNumber - 1; } }