public override void ReceiveMessage(IGameMessage msg) { switch (msg.EventId) { case (int)MessageId.TookDamageLostHealth: { var dmg = msg.AsTookDamangeLostHealth(); _health -= dmg.Damage; CheckForDeath(); break; } case (int)MessageId.EatHealedHealth: { var hp = msg.AsEatHealed(); _health += hp.HealedAmount; CheckForDeath(); break; } } }
public override void ReceiveMessage(IGameMessage msg) { switch (msg.EventId) { case (int)MessageId.NewOverheadText: { SetFlag(new OverheadForcedTextUpdateFlag(msg.AsNewOverheadText().Message)); break; } case (int)MessageId.NewAnimation: { SetFlag(new AnimationUpdateFlag(msg.AsNewAnimation().Animation)); break; } case (int)MessageId.ParticleEffect: { SetFlag(new ParticleEffectUpdateFlag(msg.AsParticleEffect().Effect)); break; } case (int)MessageId.ForcedMovement: { SetFlag(new ForcedMovementUpdateFlag(msg.AsForcedMovement().Movement)); break; } case (int)MessageId.ChatMessage: { SetFlag(new PlayerChatUpdateFlag(msg.AsChatMessage().Chat)); break; } case (int)MessageId.UpdatePlayerAppearance: { HandleAppearanceMessage(msg.AsPlayerAppearance()); break; } case (int)MessageId.TookDamageLostHealth: { SetFlag(new DamageUpdateFlag(msg.AsTookDamangeLostHealth())); break; } case (int)MessageId.NewFacingDirection: { SetFlag(new FacingCoordinateUpdateFlag(msg.AsNewFacingDirection().FacingState)); break; } case (int)MessageId.NewInteractingEntity: { SetFlag(new InteractingEntityUpdateFlag(msg.AsNewInteractingEntity().Interacting)); break; } case (int)MessageId.DefinitionChange: { SetFlag(new DefinitionChangeUpdateFlag(msg.AsDefinitionChange().Definition)); break; } case (int)MessageId.Move: { Movement = msg.AsMove(); break; } case (int)MessageId.Teleport: { Reinitialize = true; break; } case (int)MessageId.FrameEnd: { Reset(); break; } } }