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