public override void OnAttach(ActorInstantiationDetails details)
        {
            base.OnAttach(details);

            shieldType = (Player.ShieldType)details.Params[0];

            Movable = true;

            collisionFlags |= CollisionFlags.SkipPerPixelCollisions;

            RequestMetadata("Object/PowerUpMonitor");

            switch (shieldType)
            {
            case Player.ShieldType.Fire: SetAnimation("ShieldFire"); break;

            case Player.ShieldType.Water: SetAnimation("ShieldWater"); break;

            case Player.ShieldType.Laser: SetAnimation("ShieldLaser"); break;

            case Player.ShieldType.Lightning: SetAnimation("ShieldLightning"); break;

            default: SetAnimation("Empty"); break;
            }
        }
        protected override async Task OnActivatedAsync(ActorActivationDetails details)
        {
            shieldType = (Player.ShieldType)details.Params[0];

            Movable = true;

            collisionFlags |= CollisionFlags.SkipPerPixelCollisions;

            await RequestMetadataAsync("Object/PowerUpMonitorShield");

            switch (shieldType)
            {
            case Player.ShieldType.Fire: SetAnimation("ShieldFire"); break;

            case Player.ShieldType.Water: SetAnimation("ShieldWater"); break;

            case Player.ShieldType.Laser: SetAnimation("ShieldLaser"); break;

            case Player.ShieldType.Lightning: SetAnimation("ShieldLightning"); break;

            default: DecreaseHealth(int.MaxValue, null); break;
            }
        }