Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        public override void Tick()
        {
            base.Tick();

            if (enabled)
            {
                if (Find.TickManager.TicksGame % ticksForConsume == 0)
                {
                    Armor.AddCharge(powerConsumtion);
                }
            }

            if (enabled && Armor.EnergyCharge <= minPowerActivate)
            {
                enabled = false;
            }
        }
Esempio n. 3
0
        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);
                        }
                    }
                }
            }
        }