public void ReduceDamage(Pawn pawn, EventBus.DamageHealEvent dmgEvent) { int intensity = pawn.GetAilment(this); dmgEvent.amount -= intensity; pawn.CmdSetAilment(this, 0); }
public void Burn(Battle battle, Pawn pawn) { int intensity = pawn.GetAilment(this); EventBus.DamageHealEvent damageEvent = new EventBus.DamageHealEvent(this, intensity, intensity); pawn.CmdDamage(damageEvent); pawn.CmdSetAilment(this, intensity - 1); }
public void Regen(Battle battle, Pawn pawn) { int regen = pawn.GetAilment(this); EventBus.DamageHealEvent healEvent = new EventBus.DamageHealEvent(this, regen, regen); pawn.CmdHeal(healEvent); pawn.CmdSetAilment(this, regen - 1); }
public override void Execute(Spell spell, RollContext context) { context.GetCaster().OnSpellComponentCaster.Invoke(spell, context, this); int dmg = GetValue(); GetTargets(context).ForEach(pawn => { DamageComponent singleTarget = new DamageComponent(targetType, dmg); pawn.OnSpellComponentTarget.Invoke(spell, context, singleTarget); EventBus.DamageHealEvent damageEvent = new EventBus.DamageHealEvent(spell, singleTarget, singleTarget.GetValue()); pawn.CmdDamage(damageEvent); }); }
public void CmdHeal(EventBus.DamageHealEvent heal) { OnHeal.Invoke(this, heal); int hl = heal.amount; if (hl < 0) { hl = 0; } Heal(hl); NetworkServer.SendToAll(GameMsg.Heal, new GameMsg.MsgIntegerArray(id, hl)); //NetworkServer.SendToAll(GameMsg.UpdatePawn, new GameMsg.MsgPawn() { pawn = this }); }
public void CmdDamage(EventBus.DamageHealEvent damage) { OnTakeDamage.Invoke(this, damage); int dmg = damage.amount; if (dmg < 0) { dmg = 0; } Damage(dmg); NetworkServer.SendToAll(GameMsg.TakeDamage, new GameMsg.MsgIntegerArray(id, dmg)); //NetworkServer.SendToAll(GameMsg.UpdatePawn, new GameMsg.MsgPawn() { pawn = this }); }