示例#1
0
    public void ReduceDamage(Pawn pawn, EventBus.DamageHealEvent dmgEvent)
    {
        int intensity = pawn.GetAilment(this);

        dmgEvent.amount -= intensity;
        pawn.CmdSetAilment(this, 0);
    }
示例#2
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);
    }
示例#3
0
    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);
    }
示例#4
0
    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);
        });
    }
示例#5
0
文件: Pawn.cs 项目: svwilke/Spellzee
    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 });
    }
示例#6
0
文件: Pawn.cs 项目: svwilke/Spellzee
    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 });
    }