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); }