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

RecoverHealth() public méthode

public RecoverHealth ( Player source, Player target, int magnitude ) : void
source Player
target Player
magnitude int
Résultat void
        public void RecoverHealth(Player source, Player target, int magnitude)
        {
            if (target.IsDead) return;
            if (target.Health >= target.MaxHealth)
            {
                return;
            }
            var args = new HealthChangedEventArgs() { Source = source, Delta = magnitude };
            args.Targets.Add(target);

            Emit(GameEvent.BeforeHealthChanged, args);

            Trace.Assert(args.Targets.Count == 1);
            if (args.Targets[0].Health + args.Delta > args.Targets[0].MaxHealth)
            {
                args.Targets[0].Health = args.Targets[0].MaxHealth;
            }
            else
            {
                args.Targets[0].Health += args.Delta;
            }

            Trace.TraceInformation("Player {0} gain {1} hp, @ {2} hp", args.Targets[0].Id, args.Delta, args.Targets[0].Health);
            NotificationProxy.NotifyRecoverHealth(args.Targets[0], args.Delta);

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