// TODO refactor public bool updateAbilitiesElement(string internalName, List <SoldierClassAbility> soldierAbilities) { foreach (SoldierClassAbility soldierAbility in soldierAbilities) { if (!soldierAbility.allowUpdate().valid) { return(false); } } XElement documentAbilitiesElement = getClassElement(internalName, Constants.XML_ABILITIES); List <XElement> documentAbilityElements = documentAbilitiesElement.Elements(Constants.XML_ABILITY).ToList(); foreach (XElement documentAbilityElement in documentAbilityElements) { int?documentRank = Utils.parseStringToInt(documentAbilityElement.Element(Constants.XML_ABILITY_RANK).Value); int?documentSlot = Utils.parseStringToInt(documentAbilityElement.Element(Constants.XML_ABILITY_SLOT).Value); SoldierClassAbility soldierAbility = soldierAbilities.Where(x => (int)x.rank == documentRank && x.slot == documentSlot).SingleOrDefault(); if (soldierAbility == null) { documentAbilityElement.Element(Constants.XML_ABILITY_INTERNAL_NAME).Value = ""; } else { XElement abilityElement = soldierAbility.getXmlElement(); documentAbilityElement.Element(Constants.XML_ABILITY_INTERNAL_NAME).Value = abilityElement.Element(Constants.XML_ABILITY_INTERNAL_NAME).Value; } } document.Save(fullPath); return(true); }
private Ability getAbilityForCombo(SoldierRank rank, int slot) { ClassOverview owner = Owner as ClassOverview; SoldierClassAbility soldierAbility = owner.currentSoldier.soldierAbilities.Where(x => x.rank == rank && x.slot == slot).FirstOrDefault(); if (soldierAbility != null) { return(soldierAbility.getAbility()); } return(new Ability()); }
private SoldierClassAbility readAbility(XElement abilityElement) { SoldierClassAbility soldierClassAbility = null; string internalName = abilityElement.Element("internal_name").Value; Ability ability = allAbilities.Where(x => x.internalName.Equals(internalName)).FirstOrDefault(); if (ability != null) { soldierClassAbility = new SoldierClassAbility(ability); soldierClassAbility.rank = (SoldierRank)Utils.parseStringToInt(abilityElement.Element("rank").Value); soldierClassAbility.slot = Utils.parseStringToInt(abilityElement.Element("slot").Value); } return(soldierClassAbility); }
private SoldierClassAbility buildSoldierAbilityFromCombo(ComboBox combo, SoldierRank rank, int slot) { SoldierClassAbility soldierAbility = new SoldierClassAbility(); Ability comboAbility = combo.SelectedItem as Ability; if (comboAbility != null) { soldierAbility.internalName = comboAbility.internalName; soldierAbility.displayName = comboAbility.displayName; soldierAbility.description = comboAbility.description; soldierAbility.weaponSlot = comboAbility.weaponSlot; soldierAbility.requiredMod = comboAbility.requiredMod; soldierAbility.rank = rank; soldierAbility.slot = slot; } return(soldierAbility); }
private List <SoldierClassAbility> readAbilities(XElement abilitiesElement) { List <SoldierClassAbility> abilities = new List <SoldierClassAbility>(); List <XElement> abilityElements = abilitiesElement.Elements("ability").ToList(); foreach (XElement abilityElement in abilityElements) { SoldierClassAbility soldierAbility = readAbility(abilityElement); if (soldierAbility != null) { abilities.Add(soldierAbility); } } return(abilities); }
public override bool Equals(object obj) { SoldierClassAbility other = obj as SoldierClassAbility; if (other == null) { return(false); } if (rank != other.rank) { return(false); } if (slot != other.slot) { return(false); } return(base.Equals(obj)); }
public SoldierClassAbility(SoldierClassAbility other) : base(other) { rank = other.rank; slot = other.slot; }
public SoldierClassAbility getSoldierAbility(SoldierRank rank, int slot) { SoldierClassAbility soldierAbility = soldierAbilities.Where(x => x.rank == rank && x.slot == slot).FirstOrDefault(); return(soldierAbility); }