Пример #1
0
 public bool HasAbility(AbilityDef abilityDef)
 {
     foreach (Abilities.Ability learnedAbility in this.learnedAbilities)
     {
         if (learnedAbility.def == abilityDef)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #2
0
        public void GiveAbility(AbilityDef abilityDef)
        {
            if (this.learnedAbilities.Any(ab => ab.def == abilityDef))
            {
                return;
            }

            Abilities.Ability ability = (Abilities.Ability)Activator.CreateInstance(abilityDef.abilityClass);
            ability.def    = abilityDef;
            ability.pawn   = this.Pawn;
            ability.holder = this.Pawn;
            ability.Init();

            this.learnedAbilities.Add(ability);

            this.learnedAbilities = this.LearnedAbilities.OrderBy(ab => ab.def.requiredHediff?.minimumLevel ?? 0).GroupBy(ab => ab.Hediff).SelectMany(grp => grp).ToList();
        }
Пример #3
0
 public virtual bool SatisfiesConditionForAbility(AbilityDef abilityDef) =>
 this.level >= abilityDef.requiredHediff.minimumLevel;