Sanguosha.Core.Games.Game.LoseHealth C# (CSharp) Méthode

LoseHealth() public méthode

public LoseHealth ( Player source, int magnitude ) : void
source Player
magnitude int
Résultat void
        public void LoseHealth(Player source, int magnitude)
        {
            if (source.IsDead) return;
            var args = new HealthChangedEventArgs() { Source = null, Delta = -magnitude };
            args.Targets.Add(source);

            Emit(GameEvent.BeforeHealthChanged, args);

            Trace.Assert(args.Targets.Count == 1);
            args.Targets[0].Health += args.Delta;
            Trace.TraceInformation("Player {0} lose {1} hp, @ {2} hp", args.Targets[0].Id, -args.Delta, args.Targets[0].Health);
            NotificationProxy.NotifyLoseHealth(args.Targets[0], -args.Delta);
            GameDelays.Delay(GameDelays.Damage);

            try
            {
                Emit(GameEvent.AfterHealthChanged, args);
            }
            catch (TriggerResultException)
            {
            }
        }