示例#1
0
 public SeekerBossShot Init(SeekerBoss boss, Player target, float angleOffset = 0.0f)
 {
     this.boss        = boss;
     anchor           = Position = boss.Center;
     this.target      = target;
     this.angleOffset = angleOffset;
     dead             = hasBeenInCamera = false;
     cantKillTimer    = 0.15f;
     appearTimer      = 0.1f;
     sine.Reset();
     sineMult = 0.0f;
     sprite.Play("charge", true);
     InitSpeed();
     return(this);
 }
        public SeekerBossBeam Init(SeekerBoss boss, Player target)
        {
            this.boss   = boss;
            chargeTimer = 1.4f;
            followTimer = 0.9f;
            activeTimer = 0.12f;
            beamSprite.Play("charge");
            sideFadeAlpha = 0.0f;
            beamAlpha     = 0.0f;
            var num = (double)target.Y > (double)boss.Y + 16.0 ? -1 : 1;

            if (target.X >= (double)boss.X)
            {
                num *= -1;
            }

            angle = Calc.Angle(boss.BeamOrigin, target.Center);
            Vector2 to =
                Calc.ClosestPointOnLine(boss.BeamOrigin, boss.BeamOrigin + Calc.AngleToVector(angle, 2000f),
                                        target.Center) + (target.Center - boss.BeamOrigin).Perpendicular().SafeNormalize(100f) * num;

            angle = Calc.Angle(boss.BeamOrigin, to);
            return(this);
        }