// Token: 0x0600273C RID: 10044 RVA: 0x0012AAEC File Offset: 0x00128EEC public override bool CheckPreAbsorbDamage(DamageInfo dinfo) { if (Wearer.isPsyker()) { if (this.ShieldState != ShieldState.Active) { return(false); } if (dinfo.Def == DamageDefOf.EMP) { this.energy = 0f; this.Break(); return(false); } if (dinfo.Def.isRanged || dinfo.Def.isExplosive) { this.energy -= dinfo.Amount * this.EnergyLossPerDamage; if (this.energy < 0f) { this.Break(); } else { this.AbsorbedDamage(dinfo); } return(true); } } return(false); }
// Token: 0x0600273B RID: 10043 RVA: 0x0012AA54 File Offset: 0x00128E54 public override void Tick() { base.Tick(); if (base.Wearer == null || !Wearer.isPsyker()) { this.energy = 0f; return; } if (this.ShieldState == ShieldState.Resetting) { this.ticksToReset--; if (this.ticksToReset <= 0) { this.Reset(); } } else if (this.ShieldState == ShieldState.Active) { this.energy += this.EnergyGainPerTick; if (this.energy > this.EnergyMax) { this.energy = this.EnergyMax; } } }
// Token: 0x06002739 RID: 10041 RVA: 0x0012AA20 File Offset: 0x00128E20 public override IEnumerable <Gizmo> GetWornGizmos() { if (Find.Selector.SingleSelectedThing == base.Wearer && Wearer.isPsyker()) { yield return(new Gizmo_PsychicShieldStatus { shield = this }); } yield break; }