public void OnCastSpell(NetworkMessage msg) { if (msg.conn.connectionId == battle.currentTurn) { GameMsg.MsgCastSpell actualMsg = msg.ReadMessage <GameMsg.MsgCastSpell>(); battle.CastSpell(actualMsg.spellId, actualMsg.targetId); } }
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); }
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); }
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); }