public override void PostDraw()
        {
            base.PostDraw();
            Vector3 drawPos  = parent.DrawPos;
            var     drawSize = new Vector2(fireOverlay.Props.flameSize, fireOverlay.Props.flameSize);

            drawPos += fireOverlay.Props.offset;

            if (ShouldBeFireNow)
            {
                FireGraphic4 = GraphicDatabase.Get <Graphic_Flicker>("Things/Special/Candle", ShaderDatabase.TransparentPostLight, drawSize, Color.white);
                FireGraphic4.Draw(Vector3Utility.RotatedBy(drawPos, parent.Rotation.AsAngle), Rot4.North, parent);
            }
        }
        // Token: 0x06000010 RID: 16 RVA: 0x00002420 File Offset: 0x00000620
        private void AbsorbedDamage(DamageInfo dinfo)
        {
            SoundDefOf.EnergyShield_AbsorbDamage.PlayOneShot(new TargetInfo(base.Wearer.Position, base.Wearer.Map, false));
            this.impactAngleVect = Vector3Utility.HorizontalVectorFromAngle(dinfo.Angle);
            Vector3 vector = base.Wearer.TrueCenter() + Vector3Utility.RotatedBy(this.impactAngleVect, 180f) * 0.5f;
            float   num    = Mathf.Min(10f, 2f + (float)dinfo.Amount / 10f);

            MoteMaker.MakeStaticMote(vector, base.Wearer.Map, ThingDefOf.Mote_ExplosionFlash, num);
            int num2 = (int)num;

            for (int i = 0; i < num2; i++)
            {
                MoteMaker.ThrowDustPuff(vector, base.Wearer.Map, Rand.Range(0.8f, 1.2f));
            }
            this.lastAbsorbDamageTick = Find.TickManager.TicksGame;
            this.KeepDisplaying();
        }
        // Token: 0x060000F6 RID: 246 RVA: 0x00009180 File Offset: 0x00007380
        private void AddLaserGraphicUsing(Projectile_LaserConfig setting)
        {
            Vector3 a      = (this.Destination - this.origin).normalized * 0.9f;
            Vector3 s      = new Vector3(1f, 1f, (this.Destination - this.origin).magnitude - a.magnitude);
            Vector3 vector = this.OriginIV3.ToVector3() + a / 2f + (this.destinationInt - this.OriginIV3.ToVector3()) / 2f + Vector3.up * this.def.Altitude;
            float   num    = 0f;
            bool    flag   = GenGeo.MagnitudeHorizontalSquared(this.destinationInt - this.OriginIV3.ToVector3()) > 0.001f;

            if (flag)
            {
                num = Vector3Utility.AngleFlat(this.Destination - this.origin);
            }
            vector += Vector3Utility.RotatedBy(setting.offset, num);
            Matrix4x4 item = default(Matrix4x4);

            item.SetTRS(vector, this.ExactRotation, s);
            this.drawingMatrix.Add(item);
        }