Пример #1
0
 public void OnCastSpell(NetworkMessage msg)
 {
     if (msg.conn.connectionId == battle.currentTurn)
     {
         GameMsg.MsgCastSpell actualMsg = msg.ReadMessage <GameMsg.MsgCastSpell>();
         battle.CastSpell(actualMsg.spellId, actualMsg.targetId);
     }
 }
Пример #2
0
    public void OnCastSpellEnd(NetworkMessage msg)
    {
        GameMsg.MsgCastSpell actualMsg = msg.ReadMessage <GameMsg.MsgCastSpell>();
        Pawn target = null;

        if (actualMsg.targetId >= 0)
        {
            target = battle.GetPawn(actualMsg.targetId);
        }
        EventBus.CastSpellPost.Invoke(battle, battle.GetCurrentPawn(), target, actualMsg.spellId);
    }
Пример #3
0
    public void OnCastSpell(NetworkMessage msg)
    {
        BattleScreen screen = (game.GetOpenScreen() as BattleScreen);
        Battle       b      = screen.battle;
        Pawn         caster = b.GetCurrentPawn();

        GameMsg.MsgCastSpell actualMsg = msg.ReadMessage <GameMsg.MsgCastSpell>();
        Pawn target = null;

        if (actualMsg.targetId >= 0)
        {
            target = b.GetPawn(actualMsg.targetId);
        }
        EventBus.CastSpellPre.Invoke(b, caster, target, actualMsg.spellId);
    }
Пример #4
0
    public void CastSpell(string spellId, int targetPawnId = -1)
    {
        GameMsg.MsgCastSpell msg = new GameMsg.MsgCastSpell()
        {
            spellId = spellId, targetId = targetPawnId
        };

        Pawn pawn = GetCurrentPawn();

        if (Random.value < pawn.MissChance.GetValue())
        {
            NetworkServer.SendToAll(GameMsg.Miss, msg);
            NextTurn();
            return;
        }

        NetworkServer.SendToAll(GameMsg.CastSpell, msg);
        Spells.Get(spellId).Cast(BuildContext(targetPawnId));
        NetworkServer.SendToAll(GameMsg.CastSpellEnd, msg);
    }