コード例 #1
0
        public static void RemoveAbility(this UnitEntityData ch, BlueprintAbility ability)
        {
            if (ability.IsSpell)
            {
                if (PartyEditor.IsOnPartyEditor() && PartyEditor.SelectedSpellbook.TryGetValue(ch.HashKey(), out var selectedSpellbook))
                {
                    if (UIUtilityUnit.SpellbookHasSpell(selectedSpellbook, ability))
                    {
                        selectedSpellbook.RemoveSpell(ability);
                        return;
                    }
                }
                foreach (var spellbook in ch.Spellbooks)
                {
                    if (UIUtilityUnit.SpellbookHasSpell(spellbook, ability))
                    {
                        spellbook.RemoveSpell(ability);
                    }
                }
            }
            var abilities = ch.Descriptor.Abilities;

            if (abilities.HasFact(ability))
            {
                abilities.RemoveFact(ability);
            }
        }
コード例 #2
0
 public static bool HasAbility(this UnitEntityData ch, BlueprintAbility ability)
 {
     if (ability.IsSpell)
     {
         if (PartyEditor.IsOnPartyEditor() && PartyEditor.SelectedSpellbook.TryGetValue(ch.HashKey(), out var selectedSpellbook))
         {
             return(UIUtilityUnit.SpellbookHasSpell(selectedSpellbook, ability));
         }
     }
     return(ch.Spellbooks.Any(spellbook => spellbook.IsKnown(ability)) || ch.Descriptor.Abilities.HasFact(ability));
 }
コード例 #3
0
        public static void RemoveAbility(this UnitEntityData ch, BlueprintAbility ability)
        {
            if (ability.IsSpell)
            {
                foreach (var spellbook in ch.Spellbooks)
                {
                    if (UIUtilityUnit.SpellbookHasSpell(spellbook, ability))
                    {
                        spellbook.RemoveSpell(ability);
                    }
                }
            }
            var abilities = ch.Descriptor.Abilities;

            if (abilities.HasFact(ability))
            {
                abilities.RemoveFact(ability);
            }
        }