2025-05-13 19:22:01 +08:00

1712 lines
32 KiB
C#

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<object[]> redirectOnFlag = new List<object[]>();
public List<object[]> addItem = new List<object[]>();
public string[] prompts;
public string[] redirectOnMapFlag;
public List<StringName> setMapFlag = new List<StringName>();
public StringName next;
public Array<SaveFile.Flags> nextFlags;
public Array<SaveFile.Flags> nextLimitFlags;
public Array<SaveFile.Flags> setFlags;
public Array<SaveFile.Flags> promptReq;
public Array<SaveFile.Flags> promptLimit;
public List<StringName[]> anims = new List<StringName[]>();
public TextBlock[] small;
public int[] replacers;
public List<int[]> setValue = new List<int[]>();
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<TextSystem.MiniText> mini = new List<TextSystem.MiniText>();
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<StringName> internalReq;
public Array<StringName> internalLimit;
public Array<StringName> flagReq;
public Array<StringName> flagLimit;
public Array<StringName> battleFlagReq;
public Array<StringName> 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<AudioStream>("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<Party.IDs> neededMembers;
public List<Party.IDs> useTurns;
public Array<SaveFile.Flags> needFlags;
public List<Items.IDs> needEquip;
}
public enum Titles
{
Human,
Monster,
Robot,
Leader,
MossFinder,
Judge,
Executioner,
MagicWarrior,
Robot2
}
public static string textFolder;
public static System.Collections.Generic.Dictionary<Room.IDs, string> roomNames;
public const string shakeTag = "[shake level=6 rate=7]";
public static string[][] titles;
public static string[] common;
public static System.Collections.Generic.Dictionary<SaveFile.Letters, Letters> letters = new System.Collections.Generic.Dictionary<SaveFile.Letters, Letters>();
private const string posterLine = "\n\n\n\n\n\n\n";
public static System.Collections.Generic.Dictionary<Entity.IDs, Letters> posters = new System.Collections.Generic.Dictionary<Entity.IDs, Letters>();
public static System.Collections.Generic.Dictionary<Acts.IDs, SkillData> skills = new System.Collections.Generic.Dictionary<Acts.IDs, SkillData>
{
{
Acts.IDs.Apprehend,
new SkillData
{
TP = 40,
needFlags = new Array<SaveFile.Flags> { 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> { 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>
{
Items.IDs.FoxNecklace,
Items.IDs.FoxStaff
}
}
},
{
Acts.IDs.Homerun,
new SkillData
{
TP = 19,
needEquip = new List<Items.IDs>
{
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> { 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> { Party.IDs.Kanako },
neededMembers = new List<Party.IDs> { Party.IDs.Kanako },
TP = 20
}
},
{
Acts.IDs.BearingPlead,
new SkillData
{
useTurns = new List<Party.IDs> { Party.IDs.Kanako },
neededMembers = new List<Party.IDs> { Party.IDs.Kanako }
}
},
{
Acts.IDs.FoxPlead,
new SkillData
{
useTurns = new List<Party.IDs> { Party.IDs.Kanako },
neededMembers = new List<Party.IDs> { Party.IDs.Kanako }
}
},
{
Acts.IDs.Wrench,
new SkillData
{
useTurns = new List<Party.IDs> { Party.IDs.Axis },
neededMembers = new List<Party.IDs> { Party.IDs.Axis }
}
}
};
public static System.Collections.Generic.Dictionary<Entity.IDs, string[]> checks = new System.Collections.Generic.Dictionary<Entity.IDs, string[]>();
public static System.Collections.Generic.Dictionary<Items.IDs, ItemText> items = new System.Collections.Generic.Dictionary<Items.IDs, ItemText>
{
{
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<string, BattleMes[]> battleMes = new System.Collections.Generic.Dictionary<string, BattleMes[]>();
public static string[] battleNarration;
public static string[] enemyNarration;
public static System.Collections.Generic.Dictionary<string, TextBlock[]> mainDiag = new System.Collections.Generic.Dictionary<string, TextBlock[]>();
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<TextBlock> list = new List<TextBlock>();
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<Room.IDs, string>();
}
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<Room.IDs>(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<Items.IDs>(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<Acts.IDs>(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<Entity.IDs>(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<T1>(in string filename, ref System.Collections.Generic.Dictionary<T1, Letters> 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<SaveFile.Flags>(array2[1], ignoreCase: true, out var result2))
{
letters.needFlag = result2;
}
break;
}
case "missflag":
{
if (Enum.TryParse<SaveFile.Flags>(array2[1], ignoreCase: true, out var result4))
{
letters.missFlag = result4;
}
break;
}
case "deadflag":
{
if (Enum.TryParse<SaveFile.Flags>(array2[1], ignoreCase: true, out var result3))
{
letters.deadFlag = result3;
}
break;
}
case "captureflag":
{
if (Enum.TryParse<SaveFile.Flags>(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<StringName> { "StaplerEmpty" }
},
new BattleMes
{
text = GetEnemyMes(83),
idToCheck = Entity.IDs.Stapler,
battleFlagReq = new Array<StringName> { "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]
});
}
}