private string getClassAbilityData(SoldierClass soldier, SoldierRank rank) { List <SoldierClassAbility> rankSoldierAbilities = soldier.soldierAbilities.Where(x => x.rank == rank).OrderBy(x => x.slot).ToList(); string abilityTree = ""; foreach (SoldierClassAbility soldierAbility in rankSoldierAbilities) { if (!string.IsNullOrEmpty(soldierAbility.internalName)) { string thisAbility = ""; if (!string.IsNullOrEmpty(abilityTree)) { thisAbility = ","; } //thisAbility += "(AbilityName=" + Utils.encaseStringInQuotes(soldierAbility.internalName) + ", ApplyToWeaponSlot=" + getIniWeaponSlot(soldierAbility.weaponSlot) + ")"; thisAbility += "(AbilityName=" + Utils.encaseStringInQuotes(soldierAbility.internalName); if (soldierAbility.weaponSlot != WeaponSlot.None) { thisAbility += ", ApplyToWeaponSlot=" + getIniWeaponSlot(soldierAbility.weaponSlot); } thisAbility += ")"; abilityTree += thisAbility; } } abilityTree = "( aAbilityTree=(" + abilityTree + "),"; return(abilityTree); }
public static SoldierClass addClass(SoldierClass soldierClass) { SoldierClass newClass = manager.addSoldierClass(soldierClass); loadSoldierClasses(); return(newClass); }
private string getClassStatData(SoldierClass soldier, SoldierRank rank) { List <SoldierClassStat> rankStats = soldier.stats.Where(x => x.rank == rank).OrderBy(x => x.stat).ToList(); string fullStat = ""; foreach (SoldierClassStat squaddieStat in rankStats) { if (squaddieStat.value > 0) { string thisStat = ""; if (!string.IsNullOrEmpty(fullStat)) { thisStat = ","; } thisStat += "(StatType=" + getIniStat(squaddieStat.stat) + ",StatAmount=" + squaddieStat.value.ToString() + ")"; fullStat += thisStat; } } fullStat = "aStatProgression=(" + fullStat + "))"; return(fullStat); }
private void menuItemOpenSoldierClass_Click(object sender, EventArgs e) { ToolStripMenuItem item = (ToolStripMenuItem)sender; SoldierClass soldierClass = (SoldierClass)item.Tag; open(soldierClass); }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { // TODO make sure rest of data can be saved first SoldierClass soldierClass = ProjectState.saveClass(buildSoldierClass()); open(soldierClass); }
private void writeClassInt(SoldierClass soldier) { lines.Add("[" + soldier.metadata.internalName + " X2SoldierClassTemplate]"); lines.Add("DisplayName=" + Utils.encaseStringInQuotes(soldier.metadata.displayName)); lines.Add("ClassSummary=" + Utils.encaseStringInQuotes(soldier.metadata.description)); lines.Add("LeftAbilityTreeTitle=" + Utils.encaseStringInQuotes("Left")); lines.Add("RightAbilityTreeTitle=" + Utils.encaseStringInQuotes("Right")); lines.Add(""); }
public Soldier(AbstractSoldierClass soldierClass = null) { this.MaxHp = 10; this.MaxFatigue = 4; this.SoldierClass = soldierClass ?? new RookieClass(); this.StartingCardsInDeck.AddRange(SoldierClass.StartingCards()); this.ProtoSprite = GetRandomProtoSprite(); }
public static SoldierClass setOpenSoldierClass(string soldierClassInternalName) { SoldierClass soldierClassToOpen = soldierClasses.Where(x => x.metadata.internalName.Equals(soldierClassInternalName)).SingleOrDefault(); if (soldierClassToOpen == null) { throw new ArgumentException("Soldier class name is not in class list"); } return(setOpenSoldierClass(soldierClassToOpen)); }
private void writeClassRankData(SoldierClass soldier, SoldierRank rank) { string rankString = "+SoldierRanks="; rankString += getClassAbilityData(soldier, rank); rankString += getClassStatData(soldier, rank); lines.Add(";" + rank.ToString()); lines.Add(rankString); lines.Add(""); }
private Ability getAbilityForCombo(SoldierClass soldierClass, SoldierRank rank, int slot) { SoldierClassAbility soldierAbility = soldierClass.getSoldierAbility(rank, slot); if (soldierAbility != null) { return(soldierAbility.getAbility()); } return(new Ability()); }
private void copyToolStripMenuItem_Click(object sender, EventArgs e) { SoldierClass classToCopy = ProjectState.getOpenSoldierClass(); SoldierClass newClass = new SoldierClass(classToCopy); // TODO actually validate the name newClass.metadata.internalName += "New"; newClass = ProjectState.addClass(newClass); open(newClass); }
private void writeClassRanksData(SoldierClass soldier) { writeClassRankData(soldier, SoldierRank.Squaddie); writeClassRankData(soldier, SoldierRank.Corporal); writeClassRankData(soldier, SoldierRank.Sergeant); writeClassRankData(soldier, SoldierRank.Lieutenant); writeClassRankData(soldier, SoldierRank.Captain); writeClassRankData(soldier, SoldierRank.Major); writeClassRankData(soldier, SoldierRank.Colonel); writeClassRankData(soldier, SoldierRank.Brigadier); }
private void TabbedPrototype_Load(object sender, EventArgs e) { initAbilitiesDataSources(); chDragAndDrop.Checked = false; SoldierClass openSoldierCLass = ProjectState.getOpenSoldierClass(); if (openSoldierCLass != null) { open(ProjectState.getOpenSoldierClass()); } }
public static SoldierClass toDriverSoldierClass(XElement xmlClass) { SoldierClass soldierClass = new SoldierClass(); soldierClass.metadata = toDriverMetadata(xmlClass.Element(Constants.XML_METADATA)); soldierClass.experience = toDriverExperience(xmlClass.Element(Constants.XML_EXPERIENCE)); soldierClass.equipment = toDriverEquipment(xmlClass.Element(Constants.XML_EQUIPMENT)); soldierClass.soldierAbilities = toDriverAbilities(xmlClass.Element(Constants.XML_ABILITIES)); soldierClass.stats = toDriverStats(xmlClass.Element(Constants.XML_STATS)); return(soldierClass); }
public static XElement toXmlSoldierClass(SoldierClass soldierClass) { XElement xmlSoldierClass = new XElement(Constants.XML_CLASS); addXmlChild(xmlSoldierClass, toXmlMetadata(soldierClass.metadata)); addXmlChild(xmlSoldierClass, toXmlExperience(soldierClass.experience)); addXmlChild(xmlSoldierClass, toXmlEquipment(soldierClass.equipment)); addXmlChild(xmlSoldierClass, toXmlAbilities(soldierClass.soldierAbilities)); addXmlChild(xmlSoldierClass, toXmlStats(soldierClass.stats)); return(xmlSoldierClass); }
private void writeClassGeneralData(SoldierClass soldier) { lines.Add("[" + soldier.metadata.internalName + " X2SoldierClassTemplate]"); lines.Add("+bMultiplayerOnly=0"); lines.Add("+ClassPoints=4"); lines.Add("+IconImage=" + soldier.metadata.iconString); lines.Add("+NumInForcedDeck=" + soldier.experience.numberInForcedDeck); lines.Add("+NumInDeck=" + soldier.experience.numberInDeck); lines.Add("+KillAssistsPerKill=" + soldier.experience.killAssistsPerKill); lines.Add("+SquaddieLoadout=" + soldier.equipment.squaddieLoadout); lines.Add("+bAllowAWCAbilities=1"); lines.Add(String.Format("+AllowedWeapons=(SlotType=eInvSlot_PrimaryWeapon, WeaponType=\"{0}\")", soldier.equipment.primaryWeapon)); lines.Add(String.Format("+AllowedWeapons=(SlotType=eInvSlot_SecondaryWeapon, WeaponType=\"{0}\")", soldier.equipment.secondaryWeapon)); lines.Add(String.Format("+AllowedArmors=\"{0}\"", soldier.equipment.allowedArmors)); }
private SoldierClass buildSoldierClass() { SoldierClass soldierClass = new SoldierClass(); soldierClass.metadata.internalName = ProjectState.getOpenSoldierClass().metadata.internalName; soldierClass.metadata.displayName = tDisplayName.Text; soldierClass.metadata.description = tDescription.Text; soldierClass.metadata.iconString = tIconString.Text; soldierClass.experience.numberInForcedDeck = int.Parse(tNumInForcedDeck.Text); soldierClass.experience.numberInDeck = int.Parse(tNumInDeck.Text); soldierClass.experience.killAssistsPerKill = int.Parse(tKillAssistsPerKill.Text); soldierClass.equipment.squaddieLoadout = tSquaddieLoadout.Text; soldierClass.equipment.allowedArmors = tAllowedArmor.Text; soldierClass.equipment.weapons = (lWeapons.DataSource as BindingList <Weapon>).ToList(); soldierClass.stats = buildSoldierClassStats(); soldierClass.soldierAbilities = buildSoldierClassAbilities(); return(soldierClass); }
private void openSoldierAbilities(SoldierClass soldierClass) { setCombo(soldierClass, cSquaddie1, SoldierRank.Squaddie, 1); setCombo(soldierClass, cSquaddie2, SoldierRank.Squaddie, 2); setCombo(soldierClass, cSquaddie3, SoldierRank.Squaddie, 3); setCombo(soldierClass, cSquaddie4, SoldierRank.Squaddie, 4); setCombo(soldierClass, cSquaddie5, SoldierRank.Squaddie, 5); setCombo(soldierClass, cSquaddie6, SoldierRank.Squaddie, 6); setCombo(soldierClass, cCorporal1, SoldierRank.Corporal, 1); setCombo(soldierClass, cCorporal2, SoldierRank.Corporal, 2); setCombo(soldierClass, cCorporal3, SoldierRank.Corporal, 3); setCombo(soldierClass, cSergeant1, SoldierRank.Sergeant, 1); setCombo(soldierClass, cSergeant2, SoldierRank.Sergeant, 2); setCombo(soldierClass, cSergeant3, SoldierRank.Sergeant, 3); setCombo(soldierClass, cLieutenant1, SoldierRank.Lieutenant, 1); setCombo(soldierClass, cLieutenant2, SoldierRank.Lieutenant, 2); setCombo(soldierClass, cLieutenant3, SoldierRank.Lieutenant, 3); setCombo(soldierClass, cCaptain1, SoldierRank.Captain, 1); setCombo(soldierClass, cCaptain2, SoldierRank.Captain, 2); setCombo(soldierClass, cCaptain3, SoldierRank.Captain, 3); setCombo(soldierClass, cMajor1, SoldierRank.Major, 1); setCombo(soldierClass, cMajor2, SoldierRank.Major, 2); setCombo(soldierClass, cMajor3, SoldierRank.Major, 3); setCombo(soldierClass, cColonel1, SoldierRank.Colonel, 1); setCombo(soldierClass, cColonel2, SoldierRank.Colonel, 2); setCombo(soldierClass, cColonel3, SoldierRank.Colonel, 3); setCombo(soldierClass, cBrigadier1, SoldierRank.Brigadier, 1); setCombo(soldierClass, cBrigadier2, SoldierRank.Brigadier, 2); setCombo(soldierClass, cBrigadier3, SoldierRank.Brigadier, 3); }
private void open(SoldierClass soldierClass) { SoldierClass openSoldierClass = ProjectState.setOpenSoldierClass(soldierClass.getInternalName()); setupMenuItemOpen(); tDisplayName.Text = soldierClass.metadata.displayName; tDescription.Text = soldierClass.metadata.description; tIconString.Text = soldierClass.metadata.iconString; tNumInForcedDeck.Text = soldierClass.experience.numberInForcedDeck.ToString(); tNumInDeck.Text = soldierClass.experience.numberInDeck.ToString(); tKillAssistsPerKill.Text = soldierClass.experience.killAssistsPerKill.ToString(); tSquaddieLoadout.Text = soldierClass.equipment.squaddieLoadout; tAllowedArmor.Text = soldierClass.equipment.allowedArmors; BindingList <Weapon> weapons = new BindingList <Weapon>(soldierClass.equipment.weapons); lWeapons.DataSource = weapons; openSoldierStats(soldierClass); openSoldierAbilities(soldierClass); }
private void writeClass(SoldierClass soldier) { writeClassGeneralData(soldier); writeClassRanksData(soldier); }
private void newToolStripMenuItem_Click(object sender, EventArgs e) { SoldierClass newClass = ProjectState.addClass(); open(newClass); }
private static void deleteClass(SoldierClass soldierClass) { deleteClass(soldierClass.getInternalName()); }
private void openSoldierStats(SoldierClass soldierClass) { tSquaddieHp.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.HP); tCorporalHp.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.HP); tSergeantHp.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.HP); tLieutenantHp.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.HP); tCaptainHp.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.HP); tMajorHp.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.HP); tColonelHp.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.HP); tBrigadierHp.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.HP); tSquaddieAim.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Aim); tCorporalAim.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Aim); tSergeantAim.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Aim); tLieutenantAim.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Aim); tCaptainAim.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Aim); tMajorAim.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Aim); tColonelAim.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Aim); tBrigadierAim.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Aim); tSquaddieStrength.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Strength); tCorporalStrength.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Strength); tSergeantStrength.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Strength); tLieutenantStrength.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Strength); tCaptainStrength.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Strength); tMajorStrength.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Strength); tColonelStrength.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Strength); tBrigadierStrength.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Strength); tSquaddieHacking.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Hacking); tCorporalHacking.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Hacking); tSergeantHacking.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Hacking); tLieutenantHacking.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Hacking); tCaptainHacking.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Hacking); tMajorHacking.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Hacking); tColonelHacking.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Hacking); tBrigadierHacking.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Hacking); tSquaddiePsi.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Psi); tCorporalPsi.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Psi); tSergeantPsi.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Psi); tLieutenantPsi.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Psi); tCaptainPsi.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Psi); tMajorPsi.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Psi); tColonelPsi.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Psi); tBrigadierPsi.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Psi); tSquaddieMobility.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Mobility); tCorporalMobility.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Mobility); tSergeantMobility.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Mobility); tLieutenantMobility.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Mobility); tCaptainMobility.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Mobility); tMajorMobility.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Mobility); tColonelMobility.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Mobility); tBrigadierMobility.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Mobility); tSquaddieWill.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Will); tCorporalWill.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Will); tSergeantWill.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Will); tLieutenantWill.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Will); tCaptainWill.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Will); tMajorWill.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Will); tColonelWill.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Will); tBrigadierWill.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Will); tSquaddieDodge.Text = soldierClass.getStatValueText(SoldierRank.Squaddie, Stat.Dodge); tCorporalDodge.Text = soldierClass.getStatValueText(SoldierRank.Corporal, Stat.Dodge); tSergeantDodge.Text = soldierClass.getStatValueText(SoldierRank.Sergeant, Stat.Dodge); tLieutenantDodge.Text = soldierClass.getStatValueText(SoldierRank.Lieutenant, Stat.Dodge); tCaptainDodge.Text = soldierClass.getStatValueText(SoldierRank.Captain, Stat.Dodge); tMajorDodge.Text = soldierClass.getStatValueText(SoldierRank.Major, Stat.Dodge); tColonelDodge.Text = soldierClass.getStatValueText(SoldierRank.Colonel, Stat.Dodge); tBrigadierDodge.Text = soldierClass.getStatValueText(SoldierRank.Brigadier, Stat.Dodge); }
private static SoldierClass setOpenSoldierClass(SoldierClass soldierClass) { openSoldierClass = soldierClass; return(openSoldierClass); }
public static SoldierClass saveClass(SoldierClass soldierClass) { return(saveClass(getOpenSoldierClassInternalName(), soldierClass)); }
private static SoldierClass saveClass(string originalInternalName, SoldierClass soldierClass) { manager.saveSoldierClass(originalInternalName, soldierClass); loadSoldierClasses(); return(soldierClass); }
public void convertSoldierClass() { SoldierClassMetadata metadata = new SoldierClassMetadata(); metadata.internalName = "InternalTest"; metadata.displayName = "Internal Test"; metadata.description = "This is a test"; metadata.iconString = "Here.jpg"; SoldierClassExperience experience = new SoldierClassExperience(); experience.numberInForcedDeck = 1; experience.numberInDeck = 2; experience.killAssistsPerKill = 3; SoldierClassEquipment equipment = new SoldierClassEquipment(); equipment.squaddieLoadout = "Squaddie_TestClass"; equipment.allowedArmors = "squaddie"; List <Weapon> weapons = new List <Weapon>(); Weapon weaponA = new Weapon(); weaponA.weaponName = "shotgun"; weaponA.weaponSlot = WeaponSlot.Primary; weapons.Add(weaponA); Weapon weaponB = new Weapon(); weaponB.weaponName = "sword"; weaponB.weaponSlot = WeaponSlot.Secondary; weapons.Add(weaponB); equipment.weapons = weapons; List <SoldierClassAbility> abilities = new List <SoldierClassAbility>(); SoldierClassAbility abilityA = new SoldierClassAbility(); abilityA.internalName = "TestAbility"; abilityA.displayName = "Test Ability"; abilityA.description = "Hello"; abilityA.requiredMod = "My Mod"; abilityA.rank = SoldierRank.Corporal; abilityA.slot = 3; abilityA.weaponSlot = WeaponSlot.Primary; abilities.Add(abilityA); SoldierClassAbility abilityB = new SoldierClassAbility(); abilityB.internalName = "TestAbility2"; abilityB.displayName = "Test Ability2"; abilityB.description = "Hello2"; abilityB.requiredMod = "My Mod2"; abilityB.rank = SoldierRank.Lieutenant; abilityB.slot = 1; abilityB.weaponSlot = WeaponSlot.Secondary; abilities.Add(abilityB); List <SoldierClassStat> stats = new List <SoldierClassStat>(); SoldierClassStat statA = new SoldierClassStat(); statA.stat = Stat.Strength; statA.value = 2; statA.rank = SoldierRank.Sergeant; stats.Add(statA); SoldierClassStat statB = new SoldierClassStat(); statB.stat = Stat.Aim; statB.value = 0; statB.rank = SoldierRank.Squaddie; stats.Add(statB); SoldierClass soldierClass = new SoldierClass(); soldierClass.metadata = metadata; soldierClass.experience = experience; soldierClass.equipment = equipment; soldierClass.soldierAbilities = abilities; soldierClass.stats = stats; XElement actual = XcomPerkManager.Conversion.Convert.toXmlSoldierClass(soldierClass); XElement expected = new XElement(Constants.XML_CLASS); }
private void setCombo(SoldierClass soldierClass, ComboBox combo, SoldierRank rank, int slot) { combo.SelectedIndex = combo.Items.IndexOf(getAbilityForCombo(soldierClass, rank, slot)); }