public Battery(Vector2 position, EntityID id) : base(position) { ID = id; Collider = new Hitbox(12f, 12f, -6f, -6f); Add(follower = new Follower(id)); Add(new PlayerCollider(OnPlayer)); Add(new MirrorReflection()); Add(sprite = FactoryHelperModule.SpriteBank.Create("battery")); sprite.CenterOrigin(); sprite.Play("rotating"); Add(new TransitionListener { OnOut = delegate { StartedUsing = false; if (!IsUsed) { if (tween != null) { tween.RemoveSelf(); tween = null; } if (alarm != null) { alarm.RemoveSelf(); alarm = null; } Turning = false; Visible = true; sprite.Visible = true; sprite.Rate = 1f; sprite.Scale = Vector2.One; sprite.Play("rotating"); sprite.Rotation = 0f; wiggler.Stop(); follower.MoveTowardsLeader = true; } } }); Add(wiggler = Wiggler.Create(0.4f, 4f, delegate(float v) { sprite.Scale = Vector2.One * (1f + v * 0.35f); })); Add(light = new VertexLight(Color.LightSeaGreen, 1f, 32, 48)); }