示例#1
0
 // 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);
 }
示例#2
0
 // 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;
         }
     }
 }
示例#3
0
 // 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;
 }