public void CardUseRecieved(RTPacket _packet) { Debug.Log("recivi el packete wey"); string card_name = _packet.Data.GetString(1); int pos_x = (int)_packet.Data.GetInt(2); int pos_y = (int)_packet.Data.GetInt(3); string id = _packet.Data.GetString(4); string target_id = _packet.Data.GetString(5); GameObject player = null; Player player_script = null; GameObject target = null; Player target_player_script = null; player = GetPlayerById(id); target = GetPlayerById(target_id); if (player != null) { player_script = player.GetComponent <Player>(); } if (target != null) { target_player_script = target.GetComponent <Player>(); } Player.Card card = new Player.Card(card_name, player_script); card.SetTarget(target_player_script); cards_to_attack.Add(card); }
// Update is called once per frame void Update() { switch (curr_action) { case action.wait: break; case action.card_select_target: state_text.gameObject.SetActive(true); state_text.text = "Choose a target"; if (turn_info.turn != turn_type.strategy) { state_text.gameObject.SetActive(false); curr_action = action.wait; } break; case action.card_target_selected: { if (turn_info.turn != turn_type.strategy) { state_text.gameObject.SetActive(false); break; } Player client = GetClientPlayer().GetComponent <Player>(); CardUseSend(last_clicked_card, (int)client.GetNavigationEntity().GetGridPos().x, (int)client.GetNavigationEntity().GetGridPos().y, client.GetInstanceID().ToString(), target.GetNetworkId().ToString()); state_text.gameObject.SetActive(false); curr_action = action.wait; } break; case action.check_if_all_players_finished_moving: { if (turn_info.turn == turn_type.action && players_ready_perform_actions == players.Count) { bool can_perform = true; for (int i = 0; i < players.Count; i++) { Player player = players[i].GetComponent <Player>(); if (player.IsMoving()) { can_perform = false; } } if (can_perform) { curr_action = action.perform_attacks; } } } break; case action.perform_attacks: { players_ready_perform_actions = 0; for (int i = 0; i < players.Count; i++) { Player player = players[i].GetComponent <Player>(); // Attack if (player.GetAttack()) { player.Attack(); } // SetStealth if (player.GetStealth()) { if (player.GetVisible()) { player.GainStealth(); } } else { if (!player.GetVisible()) { player.LoseStealth(); } } } for (int i = 0; i < cards_to_attack.Count; i++) { Player.Card card = cards_to_attack[i]; card.GetOwner().UseCard(card.GetName(), card.GetTarget()); } cards_to_attack.Clear(); curr_action = action.wait; } break; case action.client_die: { finish_player_turn.gameObject.SetActive(false); attack_button.gameObject.SetActive(false); nav_map.DeleteMarker(); curr_action = action.wait; } break; } DecreaseTurnTime(); }