public void InitEnchantmentObject(AppliedEnchantment _enchantment, Unit _unit, UnitCommandUI _unitCommandUI) { unit = _unit; enchantment = _enchantment; unitCommandUI = _unitCommandUI; var activeText = !_enchantment.IsActive ? "- Spellbound" : ""; sourceText.text = $"{_enchantment.Enchantment.Source}{activeText}"; descriptionText.text = _enchantment.Enchantment.DescriptionText(); var unRemoveableEnchantments = new List <UnitEnchantment.EnchantmentStatus>() { UnitEnchantment.EnchantmentStatus.OverloadPassive, UnitEnchantment.EnchantmentStatus.Passive, }; deleteButton.interactable = !unRemoveableEnchantments.Contains(enchantment.Enchantment.Status); }
public void DeleteEnchantment(AppliedEnchantment enchantment) { Enchantments.Remove(enchantment); CurrentStatusEffects.RemoveAll(x => enchantment.Enchantment.StatusEffects.Contains(x)); UpdateEnchantments(); }
public void AddEnchantment(UnitEnchantment enchantment) { if (enchantment.ValidEnchantment) { var newEnchantment = new AppliedEnchantment() { Enchantment = enchantment }; if (newEnchantment.Enchantment.Keywords.Contains(Keywords.Flying)) { if (!HasStatusEffect(StatusEffects.Airborne)) { newEnchantment.Enchantment.StatusEffects.Add(StatusEffects.Airborne); if (Status != UnitStatuses.Preparing) { CanFlyOrLand = true; } } } if (newEnchantment.Enchantment.Keywords.Contains(Keywords.Stealth)) { newEnchantment.Enchantment.StatusEffects.Add(StatusEffects.Stealthed); } if (Status != UnitStatuses.Preparing && Status != UnitStatuses.None) { if (newEnchantment.Enchantment.Keywords.Contains(Keywords.SpecialSwiftstrike)) { if (!HasKeyword(Keywords.Swiftstrike) && !HasKeyword(Keywords.SpecialSwiftstrike)) { ModifyActions(2); } else if (HasKeyword(Keywords.Swiftstrike)) { ModifyActions(1); } } else if (newEnchantment.Enchantment.Keywords.Contains(Keywords.Swiftstrike)) { if (!HasKeyword(Keywords.Swiftstrike) && !HasKeyword(Keywords.SpecialSwiftstrike)) { ModifyActions(1); } } } Enchantments.Add(newEnchantment); UpdateEnchantments(); if (HasKeyword(Keywords.Prepared) && (Status == UnitStatuses.Preparing || Status == UnitStatuses.None)) { RefreshActions(); } RefreshCounter(); } else { throw new Exception("Enchantment is not valid to add to unit"); } }