// Update is called once per frame void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out mouseHit)) { GridElement g = mouseHit.transform.GetComponent <GridElement>(); if (!g) { if (curHoveredGridElement) { curHoveredGridElement.GetComponent <MeshRenderer>().material.color = colOnNormal; return; } } if (Input.GetMouseButtonDown(0)) { curSelectedGridElement = g; } if (g != curHoveredGridElement) { if (!g.occupied) { mouseHit.transform.GetComponent <MeshRenderer>().material.color = colOnHover; } else { mouseHit.transform.GetComponent <MeshRenderer>().material.color = colOnOccupied; } } if (curHoveredGridElement && curHoveredGridElement != g) { curHoveredGridElement.GetComponent <MeshRenderer>().material.color = colOnNormal; } curHoveredGridElement = g; } else { if (curHoveredGridElement) { curHoveredGridElement.GetComponent <MeshRenderer>().material.color = colOnNormal; } } MoveBuilding(); PlaceBuilding(); }
private void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out mouseHit)) { GridElement gE = mouseHit.transform.gameObject.GetComponent <GridElement>(); if (gE == null) { if (currentHoveredGridElement) { currentHoveredGridElement.GetComponent <MeshRenderer>().material.color = colorOnNormal; return; } } if (Input.GetMouseButtonDown(0)) { currentSelectedGridElement = gE; } if (gE != currentHoveredGridElement) { if (!gE.occupied) { mouseHit.transform.gameObject.GetComponent <MeshRenderer>().material.color = colorOnHover; } else { mouseHit.transform.gameObject.GetComponent <MeshRenderer>().material.color = colorOnOccupied; } } if (currentHoveredGridElement && currentHoveredGridElement != gE) { currentHoveredGridElement.GetComponent <MeshRenderer>().material.color = colorOnNormal; } currentHoveredGridElement = gE; } else { currentHoveredGridElement.GetComponent <MeshRenderer>().material.color = colorOnNormal; } MoveBuilding(); PlaceBuilding(); clicked = clicker.ManoClicked; }
void ComputeRaycast(GridElement gridElem) { if (m_iSelectedToolId < 18) { if (Network.isClient || Network.isServer) { GetComponent <NetworkView>().RPC("SetGridElementMaterial", RPCMode.All, gridElem.m_iX, gridElem.m_iY, m_iSelectedToolId, true, 0); } else { SetGridElementMaterial(gridElem.m_iX, gridElem.m_iY, m_iSelectedToolId, true, 0); } } if (m_iSelectedToolId == 18) { if (gridElem.m_iLayer == 5) { m_SelectedSpawn = gridElem.gameObject; Spawn spawn = gridElem.GetComponent <Spawn>(); m_SpanwOptionPopup.GetComponent <SpawnOption>().SetSelectedPlayer(spawn.m_iPlayerID); } else { if (Network.isClient || Network.isServer) { GetComponent <NetworkView>().RPC("CreateSpawn", RPCMode.Others, gridElem.m_iX, gridElem.m_iY, false); } CreateSpawn(gridElem.m_iX, gridElem.m_iY, true); m_SpanwOptionPopup.GetComponent <SpawnOption>().SetSelectedPlayer(1); } m_SelectedRect.transform.position = new Vector3(gridElem.m_iX * 10, gridElem.m_iY * 10, -0.06f); m_SelectedRect.SetActive(true); m_SpanwOptionPopup.SetActive(true); } }
// ================================================================================================== // private void onBeforeWindowLoaded() { if (!WindowManager.Instance.IsCurrentWindow(Consts.WindowNames.OPEN_BOOK)) { return; } // go to adventure button _goToAdventureButton.gameObject.SetActive(Party.Instance.IsInVillage); // back button _backButton.Type = Party.Instance.IsInVillage ? BackButton.BackButtonType.BACK_TO_PREVIOUS : BackButton.BackButtonType.BACK_TO_HOME; // update pages grid List <int> pages = Library.Instance.GetPagesOfBook(DungeonName); _pagesGrid.Rebuild(pages.Count); for (int i = 0; i < _pagesGrid.Elements.Count; ++i) { GridElement pageGridElement = _pagesGrid.Elements[i]; pageGridElement.GetComponent <BookPage>().PageNumber = pages[i]; } // show first page DisplayPage(pages[0]); }
public Character instanciateCharacter(int _iX, int _iY) { GameObject newCharater = (GameObject)Instantiate(m_CharacterPrefab, new Vector3(_iX * 10, _iY * 10, -0.04f), Quaternion.identity); GridElement gridElem = newCharater.GetComponent <GridElement>(); gridElem.Init(_iX, _iY, 4); return(gridElem.GetComponent <Character>()); }
private void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out mouseHitPoint)) { GridElement g = mouseHitPoint.transform.gameObject.GetComponent <GridElement>(); if (g == null) { if (currentHoveringGridElement) { currentHoveringGridElement.GetComponent <MeshRenderer>().material.color = colorOnNormal; currentHoveringGridElement = null; return; } } if (Input.GetMouseButton(0)) { currentSelectedGridElement = g; PlaceBuilding(); } if (g != currentHoveringGridElement) { if (currentHoveringGridElement) { currentHoveringGridElement.GetComponent <MeshRenderer>().material.color = colorOnNormal; } currentHoveringGridElement = g; if (g.occupied == false) { currentHoveringGridElement.GetComponent <MeshRenderer>().material.color = colorOnHover; } else { currentHoveringGridElement.GetComponent <MeshRenderer>().material.color = colorOnOccupied; } } } MoveBuilding(); }
void HoverFunction() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { GridElement elementPlacement = hit.transform.GetComponent <GridElement>(); if (!elementPlacement) { if (_currentHoveredElement) { _currentHoveredElement.GetComponent <MeshRenderer>().material.color = _defaultColor; return; } } if (Input.GetMouseButton(0)) { CurrentSelectedElement = elementPlacement; } if (elementPlacement != _currentHoveredElement) { hit.transform.GetComponent <MeshRenderer>().material.color = !elementPlacement.IsOccupied ? _hoveredColor : _occupiedColor; } if (_currentHoveredElement && _currentHoveredElement != elementPlacement) { _currentHoveredElement.GetComponent <MeshRenderer>().material.color = _defaultColor; } _currentHoveredElement = elementPlacement; } else { if (_currentHoveredElement) { _currentHoveredElement.GetComponent <MeshRenderer>().material.color = _defaultColor; } } }
public static void GenerateWorld(int rows, int columns, GridElement gridElement, Transform parent) { float elementWidth = gridElement.GetComponent <Renderer>().bounds.size.x; float elementDepth = gridElement.GetComponent <Renderer>().bounds.size.z; for (int x = 0; x < rows; x++) { for (int y = 0; y < columns; y++) { Transform gridEl = GameObject.Instantiate( gridElement.gameObject, new Vector3(x * elementWidth, 0, y * elementDepth), Quaternion.identity ).transform; gridEl.SetParent(parent); gridEl.GetComponent <GridElement>().coordinates = new Vector2(x, y); } } }
void PopulateNeighbors(GridElement gridElement) { bool doorGenerated; if (Random.value < .5f) { doorGenerated = GenerateDoor(0, 1, "Top", gridElement); if (doorGenerated) { gridElement.GetComponent <Room> ().northDoor = true; } } if (Random.value < .5f) { doorGenerated = GenerateDoor(0, -1, "Bottom", gridElement); if (doorGenerated) { gridElement.GetComponent <Room> ().southDoor = true; } } if (Random.value < .5f) { doorGenerated = GenerateDoor(1, 0, "Right", gridElement); if (doorGenerated) { gridElement.GetComponent <Room> ().eastDoor = true; } } if (Random.value < .5f) { doorGenerated = GenerateDoor(-1, 0, "Left", gridElement); if (doorGenerated) { gridElement.GetComponent <Room> ().westDoor = true; } } }
private void DisplayPullerInfluenceWest(int distance, bool shouldHighlight) { if (!westWall && westNeighbor && distance > 0) { GridElement west = westNeighbor.GetComponent <GridElement>(); if (shouldHighlight) { west.ChangeColor(GridMenu.pullColor); if (west.piece && (west.piece.GetComponent <GamePiece>() is Unit || west.piece.GetComponent <GamePiece>() is Trap)) { west.isHighlighted = shouldHighlight; } else { west.GetComponent <Image>().color += new Color(0.2F, 0.2F, 0.2F); } } else { west.ChangeColor(Menu.defaultColor); } west.DisplayPullerInfluenceWest(distance - 1, shouldHighlight); } }
private void DisplayPullerInfluenceSouth(int distance, bool shouldHighlight) { if (!southWall && southNeighbor && distance > 0) { GridElement south = southNeighbor.GetComponent <GridElement>(); if (shouldHighlight) { south.ChangeColor(GridMenu.pullColor); if (south.piece && (south.piece.GetComponent <GamePiece>() is Unit || south.piece.GetComponent <GamePiece>() is Trap)) { south.isHighlighted = shouldHighlight; } else { south.GetComponent <Image>().color += new Color(0.2F, 0.2F, 0.2F); } } else { south.ChangeColor(Menu.defaultColor); } south.DisplayPullerInfluenceSouth(distance - 1, shouldHighlight); } }
private bool ColorMatches(GridElement neighbor) { return(colorIndex == neighbor.GetComponent<GridElement>().colorIndex); }
// Update is called once per frame void Update() { if (!EventSystem.current.IsPointerOverGameObject()) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfos; if (Physics.Raycast(ray, out hitInfos)) { GridElement gridElem = hitInfos.collider.gameObject.GetComponent <GridElement>(); m_OverRect.transform.position = new Vector3(gridElem.m_iX * 10, gridElem.m_iY * 10, -0.06f); if (m_SelectedChar != null) { if (gridElem.m_iLayer == 10 && !m_bActionSelected) { m_SelectedChar.GetComponent <Character>().SetOverDestination(gridElem.m_iX, gridElem.m_iY); } } if (!m_bCharacterMoving && m_iCurrentTurnPlayerId == m_iCurrentPlayerId) { if (Input.GetMouseButtonDown(0)) { m_MouseDownElement = gridElem; m_vLastMousePos = Input.mousePosition; } if (Input.GetMouseButtonUp(0) && m_fCumulativeMouseMove < 10) { if (m_MouseDownElement == gridElem) { if (m_bActionSelected) { if (gridElem.m_iLayer == 10) { if (m_SelectedChar != null) { m_SelectedChar.GetComponent <Character>().Act(gridElem.m_iX, gridElem.m_iY); /*m_SelectedRect.SetActive(false); * m_bActionSelected = false;*/ } } } else { if (gridElem.m_iLayer == 10) { if (m_SelectedChar != null) { m_bCharacterMoving = m_SelectedChar.GetComponent <Character>().SetDestination(gridElem.m_iX, gridElem.m_iY); m_SelectedRect.SetActive(false); } } else if (gridElem.m_iLayer == 4) { if (m_SelectedChar != gridElem) { if (m_SelectedChar != null) { m_SelectedChar.GetComponent <Character>().HideDestinations(); m_SelectedChar.GetComponent <Character>().Cancel(); m_ActionPanel.SetActive(false); } m_SelectedChar = gridElem; m_SelectedRect.transform.position = new Vector3(gridElem.m_iX * 10, gridElem.m_iY * 10, -0.06f); m_SelectedRect.SetActive(true); if (m_iCurrentPlayerId == gridElem.GetComponent <Character>().m_iPlayerID) { if (!gridElem.GetComponent <Character>().IsTurnFinish()) { m_SelectedChar.GetComponent <Character>().ShowDestinations(); m_SelectedRect.GetComponent <Renderer>().material.color = Color.white; } else { m_SelectedChar = null; m_SelectedRect.SetActive(false); m_ActionPanel.SetActive(false); } } else { if (m_iCurrentPlayerTeam == gridElem.GetComponent <Character>().m_iTeam) { m_SelectedRect.GetComponent <Renderer>().material.color = Color.yellow; } else { m_SelectedRect.GetComponent <Renderer>().material.color = Color.red; } } } else { if (m_SelectedChar != null) { if (m_SelectedChar.GetComponent <Character>().CanMove()) { m_SelectedChar.GetComponent <Character>().EndMove(); m_ActionPanel.SetActive(true); m_SelectedChar.GetComponent <Character>().HideDestinations(); SetActions(); } else { m_SelectedChar.GetComponent <Character>().Cancel(); m_SelectedRect.transform.position = new Vector3(m_SelectedChar.m_iX * 10, m_SelectedChar.m_iY * 10, -0.06f); m_ActionPanel.SetActive(false); m_SelectedChar.GetComponent <Character>().ShowDestinations(); } } //m_SelectedChar = null; //m_SelectedRect.SetActive(false); } } else { if (m_SelectedChar != null) { m_SelectedChar.GetComponent <Character>().HideDestinations(); m_SelectedChar.GetComponent <Character>().Cancel(); m_ActionPanel.SetActive(false); } m_SelectedChar = null; m_SelectedRect.SetActive(false); } } } } } } } if (m_bCharacterMoving) { if (m_SelectedChar != null) { m_bCharacterMoving = m_SelectedChar.GetComponent <Character>().IsMoving(); if (m_bCharacterMoving == false) { m_SelectedRect.transform.position = new Vector3(m_SelectedChar.m_iX * 10, m_SelectedChar.m_iY * 10, -0.06f); m_SelectedRect.SetActive(true); m_ActionPanel.SetActive(true); SetActions(); } } else { m_bCharacterMoving = false; } } if (Input.GetMouseButton(0)) { m_fCumulativeMouseMove += (m_vLastMousePos - Input.mousePosition).magnitude; } if (Input.GetMouseButtonUp(0)) { m_fCumulativeMouseMove = 0; m_MouseDownElement = null; } if (Input.GetMouseButtonUp(1)) { if (m_SelectedChar != null) { if (!m_SelectedChar.GetComponent <Character>().IsActing()) { if (m_SelectedChar.GetComponent <Character>().m_iPlayerID == m_iCurrentPlayerId) { m_SelectedChar.GetComponent <Character>().m_SelectableElem.SetActive(true); } if (m_bActionSelected) { m_ActionPanel.SetActive(true); m_bActionSelected = false; m_SelectedChar.GetComponent <Character>().HideDestinations(); } else { m_SelectedChar.GetComponent <Character>().HideDestinations(); m_SelectedChar.GetComponent <Character>().Cancel(); m_SelectedRect.SetActive(false); m_ActionPanel.SetActive(false); m_SelectedChar = null; } } } } if (m_SelectedChar != null) { if (m_SelectedChar.GetComponent <Character>().m_iPlayerID == m_iCurrentTurnPlayerId) { if (m_SelectedChar.GetComponent <Character>().IsTurnFinish()) { m_SelectedChar = null; m_SelectedRect.SetActive(false); m_ActionPanel.SetActive(false); m_bActionSelected = false; } } } if (m_bAutoEndTurn && m_iCurrentPlayerId == m_iCurrentTurnPlayerId) { bool bEndTurn = true; foreach (Character character in m_vCharacterList) { if (character.m_iPlayerID == m_iCurrentPlayerId) { if (!character.IsTurnFinish()) { bEndTurn = false; break; } } } if (bEndTurn) { if (Network.isServer || Network.isClient) { GetComponent <NetworkView>().RPC("NextTurn", RPCMode.All); } else { NextTurn(); } } } }