public override bool Sucess(AbilityDef ability, Saveable_Caster pawn) { Saveable_ExecutionLog log = pawn.GetLog(ability); int ticks = this.initial + log.numberOfExecution * this.between; if (this.minimum > 0) ticks = Math.Max(this.minimum, ticks); if (this.maximum > 0) ticks = Math.Min(this.maximum, ticks); return log.ticksSinceExecution >= ticks; }
public override ThinkResult TryIssueJobPackage(Pawn pawn) { Saveable_Caster cachePawn = MapComponent_Ability.GetOrCreate().GetPawnHabilty(pawn); if (cachePawn.whaitingForThinkNode) { cachePawn.whaitingForThinkNode = false; Saveable_ExecutionLog log = cachePawn.GetLog(cachePawn.currentAbility); log.numberOfExecution++; log.ticksSinceExecution = 0; return(new ThinkResult(new Job(cachePawn.currentAbility.effect.StartJob(cachePawn.effectState)), this)); } return(ThinkResult.NoJob); }
public override bool Sucess(AbilityDef ability, Saveable_Caster pawn) { Saveable_ExecutionLog log = pawn.GetLog(ability); int ticks = this.initial + log.numberOfExecution * this.between; if (this.minimum > 0) { ticks = Math.Max(this.minimum, ticks); } if (this.maximum > 0) { ticks = Math.Min(this.maximum, ticks); } return(log.ticksSinceExecution >= ticks); }
public Saveable_Caster GetPawnHabilty(Pawn pawn) { Saveable_Caster value; if (!this.TryGetPawnHability(pawn, out value)) { if (this.manaCache == null) { this.manaCache = new Dictionary <ThingDef, ManaDef>(); foreach (ManaDef ability in DefDatabase <ManaDef> .AllDefs) { foreach (ThingDef race in ability.races) { this.manaCache.Add(race, ability); } } } value = new Saveable_Caster(); value.pawn = pawn; this.pawnCache.Add(value); this.InjectTab(pawn.def); if (this.manaCache.TryGetValue(pawn.def, out value.manaDef)) { value.manaValue = value.manaDef.initial; } foreach (AbilityDef ability in this.GetAllowedAbilities(value.pawn)) { value.GetLog(ability); } } return(value); }
public override bool Sucess(AbilityDef ability, Saveable_Caster pawn) { return(pawn.GetLog(ability).numberOfExecution < this.limit); }
public Saveable_Caster GetPawnHabilty(Pawn pawn) { Saveable_Caster value; if (!this.TryGetPawnHability(pawn, out value)) { if (this.manaCache == null) { this.manaCache = new Dictionary<ThingDef, ManaDef>(); foreach (ManaDef ability in DefDatabase<ManaDef>.AllDefs) { foreach (ThingDef race in ability.races) this.manaCache.Add(race, ability); } } value = new Saveable_Caster(); value.pawn = pawn; this.pawnCache.Add(value); this.InjectTab(pawn.def); if (this.manaCache.TryGetValue(pawn.def, out value.manaDef)) value.manaValue = value.manaDef.initial; foreach (AbilityDef ability in this.GetAllowedAbilities(value.pawn)) value.GetLog(ability); } return value; }
public override bool Sucess(AbilityDef ability, Saveable_Caster pawn) { return pawn.GetLog(ability).numberOfExecution < this.limit; }
public override bool Sucess(AbilityDef ability, Saveable_Caster pawn) { return pawn.GetLog(ability).ticksSinceExecution >= this.value; }
public override bool Sucess(AbilityDef ability, Saveable_Caster pawn) { return(pawn.GetLog(ability).ticksSinceExecution >= this.value); }