/// <summary> /// Select the specified unit, which will display all the tiles that it can move to /// </summary> /// <param name="pUnit">The specific unit that should be selected</param> public void SelectUnit(Unit pUnit) { if ((selectedUnit == null || !selectedUnit.IsMoving()) && !pUnit.GetSelected()) { if (pUnit != null && pUnit != selectedUnit) { DeselectUnit(); } canDeselect = false; pUnit.BecomeSelected(); UnitSelectMessage message; message.unitID = pUnit.GetID(); message.selected = '1'; ChampNetManager.SendUnitSelectMessage(message.unitID, message.selected); selectedUnit = pUnit; GridManagerScript.instance.DisplayWalkableTiles(pUnit.Tile, pUnit.GetMovesLeft(), pUnit.endedOnDiagonal); StartCoroutine(DeflagDeselect()); } }
/// <summary> ///Sets up a server and starts the game /// </summary> public void HostServer() { ChampNetManager.InitHost(userName.text); PersistentData.SetUserName(userName.text); PersistentData.SetHosting(true); NextScene(); }
/// <summary> /// Connects the player to the server based on the given IP address. /// </summary> public void JoinServer() { ChampNetManager.InitClient(userName.text, serverIP.text); PersistentData.SetUserName(userName.text); PersistentData.SetHosting(false); NextScene(); }
/// <summary> /// Move the selected unit to the secified node /// </summary> /// <param name="targetNode">The specific node that the unit should move to.</param> public void MoveUnit(Node targetNode) { if (selectedUnit != null && !selectedUnit.IsMoving()) { EndShooting(); ChampNetManager.SendMoveMessage(selectedUnit.GetID(), targetNode.parentTile.xLoc, targetNode.parentTile.zLoc); selectedUnit.MoveToNode(targetNode); } }
public void SendTypedMessage() { if (!(inputField.text == "")) { AddMessage(PersistentData.GetUserName(), inputField.text); ChampNetManager.SendChatMessage(inputField.text); inputField.text = ""; } ActivateInput(); }
/// <summary> /// Deals damage to the Unit based on the Selected Unit's damage value. /// </summary> /// <param name="pUnit">Unit to take damage.</param> public void Shoot(Unit pUnit) { if (isShooting && pUnit.GetShootable()) { pUnit.TakeDamage(selectedUnit.GetDamage()); selectedUnit.SetShot(); ChampNetManager.SendDamageMessage(pUnit.GetID(), selectedUnit.GetID(), selectedUnit.GetDamage()); } EndShooting(); }
/// <summary> /// Deselect the selected unit, which will stop displaying it's walkable tiles. /// </summary> public void DeselectUnit() { if (canDeselect && selectedUnit && !selectedUnit.IsMoving()) { UnitSelectMessage message; message.unitID = selectedUnit.GetID(); message.selected = '0'; ChampNetManager.SendUnitSelectMessage(message.unitID, message.selected); selectedUnit.DeselectUnit(); selectedUnit = null; GridManagerScript.instance.ClearDisplayedTiles(); EndShooting(); } }
private void Start() { JSONReadManager.LoadFile("mapFile"); JSONReadManager.LoadFile("personalityFile"); gridInstance = GridManagerScript.instance; playerUnitManager = PlayerUnitManager.instance; enemyUnitManager = EnemyUnitManager.instance; gridInstance.Initialize(); display = GetComponent <StatDisplay>(); display.Initialize(); DisableText(); chat.InitializeChatBox(); chat.ShowAndHide(false); showingChat = false; AddMessageToChat("HOST", "Left click controls Units."); AddMessageToChat("HOST", "Right click deselects Units."); AddMessageToChat("HOST", "Press E to Prepare to Shoot."); AddMessageToChat("HOST", "Left click to shoot enemies."); AddMessageToChat("HOST", "WASD moves camera."); AddMessageToChat("HOST", "Middle Mouse rotates camera."); localTurnOver = false; networkedTurnOver = false; localStartTurn = false; networkedStartTurn = false; if (PersistentData.GetHosting()) { randomSeed = (int)System.DateTime.Now.Ticks; ChampNetManager.SendSeedMessage(randomSeed); InitUnitManagers(randomSeed); } }
public void CheckEnd() { if (playerUnitManager.GetUnitList().Count == 0) { //Players lose //Stop Networking ChampNetManager.StopNetworkConnection(); PersistentData.SetPlayerHasWon(true); PersistentData.SetIsEndScene(true); SceneManager.LoadScene("EndScene"); } else if (enemyUnitManager.GetUnitList().Count == 0) { //Enemies lose //Stop networking ChampNetManager.StopNetworkConnection(); PersistentData.SetPlayerHasWon(false); PersistentData.SetIsEndScene(true); SceneManager.LoadScene("EndScene"); } }
void Update() { // Updates score each frame scoreText.text = score.ToString(); // Handles timer for events timer += Time.deltaTime; if (timer >= waitTime) { timer = 0f; ChangeTip(); } int clientNum = ChampNetManager.GetClientNum(); if (clientNum == 2) { GoToGame(); } }
private void HandleNetworking() { int messageType = ChampNetManager.GetMessageType(); if (messageType != -1) { switch (messageType) { case (int)CHAMPNET_MESSAGE_ID.ID_UNIT_SELECT_DATA: { UnitSelectMessage message = ChampNetManager.GetUnitSelectMessage(); if (TurnManager.instance.GetCurrentManager() == playerUnitManager) { if (message.selected == '1') { playerUnitManager.AlternateSelectUnit(message.unitID); } else if (message.selected == '0') { playerUnitManager.AlternateDeselect(message.unitID); } else { Debug.LogError("INVALID MESSAGE"); } } // Handle an enemy being selected else { } } break; case (int)CHAMPNET_MESSAGE_ID.ID_MESSAGE_DATA: { ChatMessage message = ChampNetManager.GetChatMessage(); AddMessageToChat(message.userName, message.message); } break; case (int)CHAMPNET_MESSAGE_ID.ID_SEED_DATA: { InitUnitManagers(ChampNetManager.GetSeedMessage()); } break; case (int)CHAMPNET_MESSAGE_ID.ID_UNIT_MOVE_DATA: { UnitMoveMessage message = ChampNetManager.GetMoveMessage(); if (TurnManager.instance.GetCurrentManager() != playerUnitManager) { return; } playerUnitManager.PrepareMoveUnit(message.gridPos); } break; case (int)CHAMPNET_MESSAGE_ID.ID_UNIT_DAMAGE_DATA: { UnitDamageMessage message = ChampNetManager.GetDamageMessage(); if (TurnManager.instance.GetCurrentManager() != playerUnitManager) { return; } enemyUnitManager.NetworkShoot(message.unitID, message.damageDealt); playerUnitManager.FindUnit(message.shooterID).SetShot(); } break; case (int)CHAMPNET_MESSAGE_ID.ID_FINALIZE_TURN_DATA: { ChampNetManager.PopMessage(); NetworkTurnOver(); } break; case (int)CHAMPNET_MESSAGE_ID.ID_START_TURN_DATA: { ChampNetManager.PopMessage(); NetworkTurnStart(); } break; } } }
private void OnApplicationQuit() { ChampNetManager.StopNetworkConnection(); }