using System; using System.Collections.Generic; using Godot; using Godot.Collections; public partial class Texts { public partial class TextBlock : ICloneable { public string text; public string bleep; public string soundStart; public string soundEnd; public string getTalker; public string commonEvent; public StringName portrait; public StringName[] redirects; public object[] callEvent; public List redirectOnFlag = new List(); public List addItem = new List(); public string[] prompts; public string[] redirectOnMapFlag; public List setMapFlag = new List(); public StringName next; public Array nextFlags; public Array nextLimitFlags; public Array setFlags; public Array promptReq; public Array promptLimit; public List anims = new List(); public TextBlock[] small; public int[] replacers; public List setValue = new List(); public int changeHP; public int delay = 1; public bool keepTextOnPrompt; public bool callSave; public bool heal; public bool instEnd; public bool top; public bool instant; public bool hide; public bool waitSound; public bool noBG; public Entity talking; public StringName talkAnim = "Talk"; public StringName endAnim = "Idle"; public List mini = new List(); public object Clone() { return MemberwiseClone(); } } public partial class BattleMes { public string text; public int reqTurn = -1; public int everyXTurns = -1; public int atMesCount = -1; public int onlyTurn = -1; public int weight = 1; public int reqEnemyAmt = 1; public bool resetCount; public bool addCount; public bool cant; public bool special; public float hpCheck = -1f; public float mercyCheck = -1f; public Array internalReq; public Array internalLimit; public Array flagReq; public Array flagLimit; public Array battleFlagReq; public Array battleFlagLimit; public Entity.IDs? idToCheck; } public partial class Letters { public struct Sprites { public Texture2D tex; public Vector2 pos; public Vector2 scale; } public string text; public string name; public AudioStream sound = GD.Load("res://Audio/Sounds/snd_mail_jingle.wav"); public float soundVol = 0.5f; public Texture2D back; public Sprites[] sprites; public Color backColor; public SaveFile.Flags needFlag = SaveFile.Flags.None; public SaveFile.Flags missFlag = SaveFile.Flags.None; public SaveFile.Flags captureFlag = SaveFile.Flags.None; public SaveFile.Flags deadFlag = SaveFile.Flags.None; } public partial class ItemText { public string name; public string descriptionLW; public string descriptionDW; public string useDiag; public string removeDiag; public string shortDesc; public string tossEvent; public string equipEffect; public string callEvent; public string customEffect; public string shopDesc; public string lwEquip; public string shopName; public int atk; public int def; public int heal; public int sellPrice; public int tp; public int healOverTime; public int magic; public int iframes; public SaveFile.Flags? flag; public string[][] partyDiag; public Party.IDs? partyOnly; public bool cantUse; public bool nonConsumable; public bool instantUse; public bool useOnEnemy; public Items.Type type; public Items.IDs lwEquiv = Items.IDs.None; public Items.IDs dwEquiv = Items.IDs.None; } public partial class SkillData { public string name; public string desc; public string menuDesc; public int TP; public bool useOnParty; public bool skipSelection; public bool spAction; public bool onlyOnExecutable; public List neededMembers; public List useTurns; public Array needFlags; public List needEquip; } public enum Titles { Human, Monster, Robot, Leader, MossFinder, Judge, Executioner, MagicWarrior, Robot2 } public static string textFolder; public static System.Collections.Generic.Dictionary roomNames; public const string shakeTag = "[shake level=6 rate=7]"; public static string[][] titles; public static string[] common; public static System.Collections.Generic.Dictionary letters = new System.Collections.Generic.Dictionary(); private const string posterLine = "\n\n\n\n\n\n\n"; public static System.Collections.Generic.Dictionary posters = new System.Collections.Generic.Dictionary(); public static System.Collections.Generic.Dictionary skills = new System.Collections.Generic.Dictionary { { Acts.IDs.Apprehend, new SkillData { TP = 40, needFlags = new Array { SaveFile.Flags.ApprehendTutorial } } }, { Acts.IDs.NonLethalShot, new SkillData { TP = 25 } }, { Acts.IDs.HealBell, new SkillData { useOnParty = true, TP = 32 } }, { Acts.IDs.AxisSiren, new SkillData { skipSelection = true } }, { Acts.IDs.ExecutionerBlow, new SkillData { TP = 55, needFlags = new Array { SaveFile.Flags.WeirdStart }, onlyOnExecutable = true } }, { Acts.IDs.ShieldBarrier, new SkillData { skipSelection = true, TP = 45 } }, { Acts.IDs.Foxfire, new SkillData { TP = 28, needEquip = new List { Items.IDs.FoxNecklace, Items.IDs.FoxStaff } } }, { Acts.IDs.Homerun, new SkillData { TP = 19, needEquip = new List { Items.IDs.TrueBat, Items.IDs.BaseballCap } } }, { Acts.IDs.HealingSonata, new SkillData { TP = 50 } }, { Acts.IDs.StranglingThreads, new SkillData { TP = 25 } }, { Acts.IDs.MelodyDance, new SkillData { TP = 15 } }, { Acts.IDs.HugTestEnemy, new SkillData { neededMembers = new List { Party.IDs.Kanako } } }, { Acts.IDs.KAction, new SkillData { spAction = true } }, { Acts.IDs.AAction, new SkillData { spAction = true } }, { Acts.IDs.HeatWave, new SkillData { skipSelection = true, TP = 45 } }, { Acts.IDs.AxisAtkUP, new SkillData { skipSelection = true, TP = 35 } }, { Acts.IDs.HealShower, new SkillData { TP = 40, skipSelection = true } }, { Acts.IDs.UnnerveGas, new SkillData { TP = 20 } }, { Acts.IDs.BearingBrace, new SkillData { useTurns = new List { Party.IDs.Kanako }, neededMembers = new List { Party.IDs.Kanako }, TP = 20 } }, { Acts.IDs.BearingPlead, new SkillData { useTurns = new List { Party.IDs.Kanako }, neededMembers = new List { Party.IDs.Kanako } } }, { Acts.IDs.FoxPlead, new SkillData { useTurns = new List { Party.IDs.Kanako }, neededMembers = new List { Party.IDs.Kanako } } }, { Acts.IDs.Wrench, new SkillData { useTurns = new List { Party.IDs.Axis }, neededMembers = new List { Party.IDs.Axis } } } }; public static System.Collections.Generic.Dictionary checks = new System.Collections.Generic.Dictionary(); public static System.Collections.Generic.Dictionary items = new System.Collections.Generic.Dictionary { { Items.IDs.Hat, new ItemText { descriptionLW = "HAT_DESC", useDiag = "EquipHat", removeDiag = "RemoveHat", nonConsumable = true } }, { Items.IDs.BallOfJunk, new ItemText { descriptionLW = "BALLJUNKDESC", useDiag = "BallJunkUse", tossEvent = "BallJunkToss", nonConsumable = true } }, { Items.IDs.KanakoPhone, new ItemText { descriptionLW = "PHONE_DESC", callEvent = "PhoneEvent", instantUse = true, nonConsumable = true } }, { Items.IDs.KetsukaneHeirloom, new ItemText { descriptionLW = "KETSU_NECKLACE", useDiag = "KetsuNecklaceUse", nonConsumable = true, dwEquiv = Items.IDs.FoxNecklace } }, { Items.IDs.RedLetter, new ItemText { descriptionLW = "REDLETTERDESC", useDiag = "RedLetterUse", nonConsumable = true, tossEvent = "GenericToss" } }, { Items.IDs.RevivalMint, new ItemText { heal = -2, sellPrice = 35 } }, { Items.IDs.GoldenBell, new ItemText { type = Items.Type.Equip, sellPrice = 50, def = 2, healOverTime = 2 } }, { Items.IDs.SafetyVest, new ItemText { type = Items.Type.Equip, sellPrice = 47, def = 4, iframes = 10 } }, { Items.IDs.SafetyGoggles, new ItemText { type = Items.Type.Equip, sellPrice = 35, def = 4 } }, { Items.IDs.FoxNecklace, new ItemText { type = Items.Type.Equip, sellPrice = 100, def = 6, magic = 3, lwEquiv = Items.IDs.KetsukaneHeirloom } }, { Items.IDs.FoxStaff, new ItemText { type = Items.Type.Weapon, sellPrice = 150, partyOnly = Party.IDs.Kanako, atk = 6, magic = 3 } }, { Items.IDs.GiantScrewdriver, new ItemText { type = Items.Type.Weapon, sellPrice = 150, partyOnly = Party.IDs.Kanako, atk = 9, magic = 0 } }, { Items.IDs.AxisGloves, new ItemText { type = Items.Type.Weapon, sellPrice = 30, partyOnly = Party.IDs.Axis } }, { Items.IDs.RobotFist, new ItemText { type = Items.Type.Weapon, sellPrice = 45, atk = 6, partyOnly = Party.IDs.Axis } }, { Items.IDs.GuardianMitt, new ItemText { type = Items.Type.Weapon, sellPrice = 100, def = 15, atk = -5, partyOnly = Party.IDs.Axis } }, { Items.IDs.ShinyMedal, new ItemText { def = 3, type = Items.Type.Equip, sellPrice = 20 } }, { Items.IDs.BearPin, new ItemText { def = 5, healOverTime = 1, type = Items.Type.Equip, sellPrice = 45 } }, { Items.IDs.TensionBit, new ItemText { tp = 32, cantUse = true, sellPrice = 32, instantUse = true } }, { Items.IDs.TensionGem, new ItemText { tp = 50, cantUse = true, sellPrice = 50, instantUse = true } }, { Items.IDs.TensionMax, new ItemText { tp = 100, cantUse = true, sellPrice = 100, instantUse = true } }, { Items.IDs.BrickCandy, new ItemText { heal = 40, sellPrice = 2 } }, { Items.IDs.PopRock, new ItemText { heal = 100, sellPrice = 10 } }, { Items.IDs.SpikedClub, new ItemText { partyOnly = Party.IDs.Kanako, type = Items.Type.Weapon, sellPrice = 30 } }, { Items.IDs.CorkPistol, new ItemText { partyOnly = Party.IDs.Clover, type = Items.Type.Weapon, sellPrice = 30 } }, { Items.IDs.SpaceGun, new ItemText { atk = 7, partyOnly = Party.IDs.Clover, type = Items.Type.Weapon, sellPrice = 60 } }, { Items.IDs.WantedPoster, new ItemText { callEvent = "WantedPoster", nonConsumable = true, instantUse = true } }, { Items.IDs.Peashooter, new ItemText { atk = 4, partyOnly = Party.IDs.Clover, type = Items.Type.Weapon, sellPrice = 27 } }, { Items.IDs.SoftballBat, new ItemText { atk = 4, partyOnly = Party.IDs.Kanako, type = Items.Type.Weapon, sellPrice = 30 } }, { Items.IDs.HomemadeLunch, new ItemText { descriptionLW = "LunchDesc", dwEquiv = Items.IDs.KingFeast, tossEvent = "GenericToss", useDiag = "EatLunch" } }, { Items.IDs.KingFeast, new ItemText { sellPrice = 150, heal = 50150, instantUse = true, lwEquiv = Items.IDs.HomemadeLunch } } }; public const string portraitSpace = "\t\t\t\t\t\t"; public static System.Collections.Generic.Dictionary battleMes = new System.Collections.Generic.Dictionary(); public static string[] battleNarration; public static string[] enemyNarration; public static System.Collections.Generic.Dictionary mainDiag = new System.Collections.Generic.Dictionary(); public static TextBlock[] FindDiag(in string key) { if (Room.current.dialogue.TryGetValue(key, out var value)) { return value; } if (mainDiag.TryGetValue(key, out var value2)) { return value2; } return new TextBlock[1] { new TextBlock { text = "[color=red]Missing text: " + key } }; } public static TextBlock[] GetDiagClone(in string key) { List list = new List(); TextBlock[] array = FindDiag(in key); for (int i = 0; i < array.Length; i++) { list.Add((TextBlock)array[i].Clone()); } return list.ToArray(); } public static void LoadText() { if (FileAccess.FileExists("user://Text/Text_" + Settings.file.lang + "/LangInfo.txt")) { textFolder = "user://Text/Text_" + Settings.file.lang + "/"; } else if (Settings.file.lang != "EnUS") { Settings.file.lang = "EnUS"; textFolder = "res://Data/Text_" + Settings.file.lang + "/"; } else { textFolder = "res://Data/Text_" + Settings.file.lang + "/"; } common = FileAccess.Open(textFolder + "CommonText.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); battleNarration = FileAccess.Open(textFolder + "BattleNarration.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); enemyNarration = FileAccess.Open(textFolder + "BattleMes.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); TextSystem.LoadText("Main.txt", ref mainDiag); LoadLetters("Posters.txt", ref posters, "\n\n\n\n\n\n\n"); LoadLetters("Letters.txt", ref letters, ""); Main.instance.exitMes.Text = common[93]; LoadEnemies(); LoadActs(); LoadItems(); LoadTitles(); LoadRoomNames(); Party.UpdateNames(); } private static void LoadRoomNames() { if (roomNames == null) { roomNames = new System.Collections.Generic.Dictionary(); } roomNames.Clear(); string[] array = FileAccess.Open(textFolder + "RoomNames.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); for (int i = 0; i < array.Length; i++) { string[] array2 = array[i].Split(';'); if (Enum.TryParse(array2[0], ignoreCase: true, out var result)) { roomNames.Add(result, array2[1]); } } } private static void LoadTitles() { string[] array = FileAccess.Open(textFolder + "Titles.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); titles = new string[array.Length - 1][]; for (int i = 0; i < titles.Length; i++) { string[] array2 = array[i].Split(':', 2); if (array2.Length >= 2) { titles[i] = array2; } } } private static void LoadItems() { string[] array = FileAccess.Open(textFolder + "Items.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); for (int i = 0; i < array.Length; i++) { if (array[i].Length <= 0 || array[i][0] != '@' || !Enum.TryParse(array[i].Remove(0, 1), ignoreCase: true, out var result)) { continue; } if (!items.ContainsKey(result)) { items.Add(result, new ItemText()); } for (int j = i + 1; j < array.Length && array[j].Length >= 2; j++) { if (array[j][0] == '|') { continue; } string[] array2 = array[j].Split(':', 2); switch (array2[0].ToLower()) { case "name": items[result].name = array2[1].Replace("\\n", "\n"); break; case "shopdesc": items[result].shopDesc = array2[1].Replace("\\n", "\n"); break; case "shopname": items[result].shopName = array2[1].Replace("\\n", "\n"); break; case "descriptiondw": items[result].descriptionDW = array2[1].Replace("\\n", "\n"); break; case "shortdesc": items[result].shortDesc = array2[1].Replace("\\n", "\n"); break; case "lwequip": items[result].lwEquip = array2[1].Replace("\\n", "\n"); break; case "equipeffect": items[result].equipEffect = array2[1].Replace("\\n", "\n"); break; case "party": { items[result].partyDiag = new string[5][]; for (int k = 0; k < 5; k++) { items[result].partyDiag[k] = array[j + 1 + k].Split('|'); } break; } } } } } private static void LoadActs() { string[] array = FileAccess.Open(textFolder + "Acts.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); for (int i = 0; i < array.Length; i++) { if (array[i].Length <= 0 || array[i][0] != '@' || !Enum.TryParse(array[i].Remove(0, 1), ignoreCase: true, out var result)) { continue; } if (!skills.ContainsKey(result)) { skills.Add(result, new SkillData()); } for (int j = i + 1; j < array.Length && array[j].Length >= 2; j++) { string[] array2 = array[j].Split(':', 2); switch (array2[0].ToLower()) { case "name": skills[result].name = array2[1]; break; case "desc": skills[result].desc = array2[1].Replace("\\n", "\n"); break; case "menudesc": skills[result].menuDesc = array2[1].Replace("\\n", "\n"); break; } } } } private static void LoadEnemies() { BattleDR.LoadData(reload: true); checks.Clear(); string[] array = FileAccess.Open(textFolder + "Enemies.txt", FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); for (int i = 0; i < array.Length; i++) { if (array[i].Length <= 0 || array[i][0] != '@' || !Enum.TryParse(array[i].Remove(0, 1), ignoreCase: true, out var result)) { continue; } for (int j = i + 1; j < array.Length; j++) { string[] array2 = array[j].Split(':', 2); if (array2.Length < 2 || !BattleDR.enemyData.ContainsKey(result)) { break; } string text = array2[0].ToLower(); if (!(text == "name")) { if (text == "check") { checks.Add(result, array2[1].Replace("\\n", "\n").Split(';')); } } else { BattleDR.enemyData[result].name = array2[1]; } } } } private static void LoadLetters(in string filename, ref System.Collections.Generic.Dictionary dictionary, in string padding = "") { dictionary.Clear(); string[] array = FileAccess.Open(textFolder + filename, FileAccess.ModeFlags.Read).GetAsText(skipCr: true).Split('\n'); for (int i = 0; i < array.Length; i++) { if (array[i].Length <= 0 || array[i][0] != '@') { continue; } T1 key; try { key = (T1)Enum.Parse(typeof(T1), array[i].Remove(0, 1), ignoreCase: true); } catch { continue; } Letters letters = new Letters(); for (int j = i + 1; j < array.Length; j++) { string[] array2 = array[j].Split(':', 2); if (array2.Length < 2) { break; } switch (array2[0].ToLower()) { case "name": letters.name = array2[1]; break; case "text": letters.text = padding + array2[1].Replace("\\n", "\n"); break; case "needflag": { if (Enum.TryParse(array2[1], ignoreCase: true, out var result2)) { letters.needFlag = result2; } break; } case "missflag": { if (Enum.TryParse(array2[1], ignoreCase: true, out var result4)) { letters.missFlag = result4; } break; } case "deadflag": { if (Enum.TryParse(array2[1], ignoreCase: true, out var result3)) { letters.deadFlag = result3; } break; } case "captureflag": { if (Enum.TryParse(array2[1], ignoreCase: true, out var result)) { letters.captureFlag = result; } break; } case "backcolor": { string[] array3 = array2[1].Split(','); letters.backColor = new Color(Convert.ToSingle(array3[0]), Convert.ToSingle(array3[1]), Convert.ToSingle(array3[2])); break; } case "sound": letters.sound = Audio.LoadSound(array2[1]); break; } } dictionary.Add(key, letters); } } private static string GetEnemyMes(in int id) { return enemyNarration[id].Replace("\\t", "\t").Replace("\\n", "\n"); } public static void SetBattleMes() { battleMes.Clear(); battleMes.Add("Test", new BattleMes[2] { new BattleMes { text = "* Test battle start!" }, new BattleMes { text = "* Second turn box.", reqTurn = 1 } }); battleMes.Add("PencilEraser", new BattleMes[6] { new BattleMes { text = GetEnemyMes(0) }, new BattleMes { text = GetEnemyMes(1), idToCheck = Entity.IDs.Eraserhead }, new BattleMes { text = GetEnemyMes(2), idToCheck = Entity.IDs.Penceller }, new BattleMes { text = GetEnemyMes(3), idToCheck = Entity.IDs.Eraserhead }, new BattleMes { text = GetEnemyMes(4), idToCheck = Entity.IDs.Eraserhead, hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(5), idToCheck = Entity.IDs.Penceller, hpCheck = 0.5f } }); battleMes.Add("Penceller", new BattleMes[5] { new BattleMes { text = GetEnemyMes(6) }, battleMes["PencilEraser"][2], battleMes["PencilEraser"][5], new BattleMes { text = GetEnemyMes(7), idToCheck = Entity.IDs.Penceller }, new BattleMes { text = GetEnemyMes(8), reqEnemyAmt = 2, idToCheck = Entity.IDs.Penceller } }); battleMes.Add("PencellerSolo", new BattleMes[4] { new BattleMes { text = GetEnemyMes(9) }, battleMes["PencilEraser"][2], battleMes["PencilEraser"][5], battleMes["Penceller"][3] }); battleMes.Add("PencellerTrio", new BattleMes[5] { new BattleMes { text = GetEnemyMes(10) }, battleMes["PencilEraser"][2], battleMes["PencilEraser"][5], battleMes["Penceller"][3], new BattleMes { text = GetEnemyMes(11), reqEnemyAmt = 3 } }); battleMes.Add("Erasers", new BattleMes[4] { new BattleMes { text = GetEnemyMes(12) }, battleMes["PencilEraser"][1], battleMes["PencilEraser"][4], battleMes["PencilEraser"][3] }); battleMes.Add("WardenTutorial", new BattleMes[6] { new BattleMes { text = GetEnemyMes(13) }, new BattleMes { text = GetEnemyMes(13), reqTurn = 5 }, new BattleMes { text = GetEnemyMes(14), reqTurn = 1 }, new BattleMes { text = GetEnemyMes(15), reqTurn = 2 }, new BattleMes { text = GetEnemyMes(16), reqTurn = 3 }, new BattleMes { text = GetEnemyMes(17), reqTurn = 4 } }); battleMes.Add("MopperAndCo", new BattleMes[9] { new BattleMes { text = GetEnemyMes(18) }, new BattleMes { text = GetEnemyMes(19) }, new BattleMes { text = GetEnemyMes(20), idToCheck = Entity.IDs.Mopper }, new BattleMes { text = GetEnemyMes(21), idToCheck = Entity.IDs.Mopper, hpCheck = 0.5f }, battleMes["PencilEraser"][1], battleMes["PencilEraser"][4], battleMes["PencilEraser"][3], battleMes["PencilEraser"][2], battleMes["PencilEraser"][5] }); battleMes.Add("Moppers", new BattleMes[5] { new BattleMes { text = GetEnemyMes(22) }, battleMes["MopperAndCo"][1], battleMes["MopperAndCo"][2], battleMes["MopperAndCo"][3], new BattleMes { text = "* Everyone is cleaning in unison.", reqEnemyAmt = 2 } }); battleMes.Add("MopperDuo", new BattleMes[5] { new BattleMes { text = GetEnemyMes(23) }, battleMes["MopperAndCo"][1], battleMes["MopperAndCo"][2], battleMes["MopperAndCo"][3], new BattleMes { text = GetEnemyMes(24), reqEnemyAmt = 2 } }); battleMes.Add("MopperSolo", new BattleMes[4] { new BattleMes { text = GetEnemyMes(25) }, battleMes["MopperAndCo"][1], battleMes["MopperAndCo"][2], battleMes["MopperAndCo"][3] }); battleMes.Add("FortDefender", new BattleMes[9] { new BattleMes { text = GetEnemyMes(26) }, battleMes["MopperAndCo"][1], battleMes["MopperAndCo"][2], battleMes["MopperAndCo"][3], battleMes["PencilEraser"][1], battleMes["PencilEraser"][4], battleMes["PencilEraser"][3], battleMes["PencilEraser"][2], battleMes["PencilEraser"][5] }); battleMes.Add("Pennilton", new BattleMes[10] { new BattleMes { text = GetEnemyMes(27) }, new BattleMes { text = GetEnemyMes(28) }, new BattleMes { text = GetEnemyMes(29) }, new BattleMes { text = GetEnemyMes(30) }, new BattleMes { text = GetEnemyMes(31) }, new BattleMes { text = GetEnemyMes(32), hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(33), cant = true }, new BattleMes { text = GetEnemyMes(34), cant = true }, new BattleMes { text = GetEnemyMes(35), onlyTurn = 1, weight = 99 }, new BattleMes { text = GetEnemyMes(36) } }); battleMes.Add("BellBoss", new BattleMes[7] { new BattleMes { text = GetEnemyMes(37) }, new BattleMes { text = GetEnemyMes(38) }, new BattleMes { text = GetEnemyMes(39) }, new BattleMes { text = GetEnemyMes(40), hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(41) }, new BattleMes { text = GetEnemyMes(42) }, new BattleMes { text = GetEnemyMes(43) } }); battleMes.Add("Bearing", new BattleMes[8] { new BattleMes { text = GetEnemyMes(44) }, new BattleMes { text = GetEnemyMes(45) }, new BattleMes { text = GetEnemyMes(46) }, new BattleMes { text = GetEnemyMes(47) }, new BattleMes { text = GetEnemyMes(48) }, new BattleMes { text = GetEnemyMes(49), hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(50) }, new BattleMes { text = GetEnemyMes(51) } }); battleMes.Add("FoxBoss", new BattleMes[13] { new BattleMes { text = GetEnemyMes(52) }, new BattleMes { text = GetEnemyMes(53) }, new BattleMes { text = GetEnemyMes(54) }, new BattleMes { text = GetEnemyMes(55) }, new BattleMes { text = GetEnemyMes(56) }, new BattleMes { text = GetEnemyMes(57) }, new BattleMes { text = GetEnemyMes(58) }, new BattleMes { text = GetEnemyMes(59) }, new BattleMes { text = GetEnemyMes(60) }, new BattleMes { text = GetEnemyMes(61), special = true }, new BattleMes { text = GetEnemyMes(62), onlyTurn = 1, weight = 99 }, new BattleMes { text = GetEnemyMes(62), reqTurn = 5 }, new BattleMes { text = GetEnemyMes(63), mercyCheck = 100f, idToCheck = Entity.IDs.FoxBoss, weight = 99 } }); battleMes.Add("Axis", new BattleMes[9] { new BattleMes { text = GetEnemyMes(64) }, new BattleMes { text = GetEnemyMes(65) }, new BattleMes { text = GetEnemyMes(66) }, battleMes["FoxBoss"][10], battleMes["FoxBoss"][11], new BattleMes { text = GetEnemyMes(67), hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(68), hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(69) }, new BattleMes { text = GetEnemyMes(70) } }); battleMes.Add("GearSolo", new BattleMes[5] { new BattleMes { text = GetEnemyMes(71) }, new BattleMes { text = GetEnemyMes(72), idToCheck = Entity.IDs.Gearzerd }, new BattleMes { text = GetEnemyMes(73), idToCheck = Entity.IDs.Gearzerd }, new BattleMes { text = GetEnemyMes(74), idToCheck = Entity.IDs.Gearzerd, hpCheck = 0.5f }, new BattleMes { text = GetEnemyMes(75), idToCheck = Entity.IDs.Gearzerd } }); battleMes.Add("GearDuo", new BattleMes[6] { new BattleMes { text = GetEnemyMes(76) }, battleMes["GearSolo"][1], battleMes["GearSolo"][2], battleMes["GearSolo"][3], battleMes["GearSolo"][4], new BattleMes { text = GetEnemyMes(77), reqEnemyAmt = 2 } }); battleMes.Add("GearTrio", new BattleMes[6] { new BattleMes { text = GetEnemyMes(78) }, battleMes["GearSolo"][1], battleMes["GearSolo"][2], battleMes["GearSolo"][3], battleMes["GearSolo"][4], battleMes["GearDuo"][5] }); battleMes.Add("StaplerSolo", new BattleMes[5] { new BattleMes { text = GetEnemyMes(79) }, new BattleMes { text = GetEnemyMes(80), idToCheck = Entity.IDs.Stapler }, new BattleMes { text = GetEnemyMes(81), idToCheck = Entity.IDs.Stapler }, new BattleMes { text = GetEnemyMes(82), hpCheck = 0.5f, idToCheck = Entity.IDs.Stapler, battleFlagLimit = new Array { "StaplerEmpty" } }, new BattleMes { text = GetEnemyMes(83), idToCheck = Entity.IDs.Stapler, battleFlagReq = new Array { "StaplerEmpty" } } }); battleMes.Add("GearNStapler", new BattleMes[9] { new BattleMes { text = GetEnemyMes(84) }, battleMes["GearSolo"][1], battleMes["GearSolo"][2], battleMes["GearSolo"][3], battleMes["GearSolo"][4], battleMes["StaplerSolo"][1], battleMes["StaplerSolo"][2], battleMes["StaplerSolo"][3], battleMes["StaplerSolo"][4] }); battleMes.Add("DrillSolo", new BattleMes[5] { new BattleMes { text = GetEnemyMes(85), idToCheck = Entity.IDs.Drill }, new BattleMes { text = GetEnemyMes(86), idToCheck = Entity.IDs.Drill }, new BattleMes { text = GetEnemyMes(87), hpCheck = 0.5f, idToCheck = Entity.IDs.Drill }, new BattleMes { text = GetEnemyMes(88), idToCheck = Entity.IDs.Drill }, new BattleMes { text = GetEnemyMes(89), idToCheck = Entity.IDs.Drill } }); battleMes.Add("DW2Trio1", new BattleMes[13] { new BattleMes { text = GetEnemyMes(90) }, battleMes["GearSolo"][1], battleMes["GearSolo"][2], battleMes["GearSolo"][3], battleMes["GearSolo"][4], battleMes["StaplerSolo"][1], battleMes["StaplerSolo"][2], battleMes["StaplerSolo"][3], battleMes["StaplerSolo"][4], battleMes["DrillSolo"][1], battleMes["DrillSolo"][2], battleMes["DrillSolo"][3], battleMes["DrillSolo"][4] }); battleMes.Add("StaplerTrio", new BattleMes[5] { new BattleMes { text = GetEnemyMes(91) }, battleMes["StaplerSolo"][1], battleMes["StaplerSolo"][2], battleMes["StaplerSolo"][3], battleMes["StaplerSolo"][4] }); battleMes.Add("RulerGroup", new BattleMes[8] { new BattleMes { text = GetEnemyMes(93) }, new BattleMes { text = GetEnemyMes(92), idToCheck = Entity.IDs.Ruler }, new BattleMes { text = GetEnemyMes(94), idToCheck = Entity.IDs.Ruler }, battleMes["PencilEraser"][1], battleMes["PencilEraser"][4], battleMes["PencilEraser"][3], battleMes["PencilEraser"][2], battleMes["PencilEraser"][5] }); battleMes.Add("RulerCo", new BattleMes[8] { new BattleMes { text = GetEnemyMes(95) }, battleMes["RulerGroup"][1], battleMes["RulerGroup"][2], battleMes["PencilEraser"][1], battleMes["PencilEraser"][4], battleMes["PencilEraser"][3], battleMes["PencilEraser"][2], battleMes["PencilEraser"][5] }); } }