protected virtual void DoEffect(Pawn attacker, ref DamageInfo dInfo, ref bool absorb) { if (attacker.RaceProps.IsFlesh) { attacker.TakeDamage(new DamageInfo(DamageDefOf.Cut, fleshDamage)); Armor.AddCharge(fleshDischarge); HediffDef hediff = applyFleshHediff; if (hediff != null) { HealthUtility.AdjustSeverity(attacker, hediff, amountFleshHediff); } } else { attacker.TakeDamage(new DamageInfo(DamageDefOf.Stun, nonFleshDamage)); Armor.AddCharge(nonFleshDischarge); HediffDef hediff = applyNonFleshHediff; if (hediff != null) { HealthUtility.AdjustSeverity(attacker, hediff, amountNonFleshHediff); } } }
public override void Tick() { base.Tick(); if (enabled) { if (Find.TickManager.TicksGame % ticksForConsume == 0) { Armor.AddCharge(powerConsumtion); } } if (enabled && Armor.EnergyCharge <= minPowerActivate) { enabled = false; } }
public override void Tick() { base.Tick(); if (active) { if (Find.TickManager.TicksGame % chargeRate == 0) { if (!Armor.FullCharge && Armor.Wearer != null) { float num = GenCelestial.CurCelestialSunGlow(Armor.Wearer.Map); if (GenCelestial.IsDaytime(num)) { Armor.AddCharge(chargeNum); } } } } }