public void SelectSpaceFunctionality(BoardSpaceStruct space, ICard card) { bool deselected = false; if (SelectedSpace != null) { SelectedSpace.setOutlineColor(0); //Deselect selected space if (SelectedSpace.x == space.x && space.y == SelectedSpace.y) { SelectedSpace = null; deselected = true; onSpaceDeselect(space, manager.gameModel); } } if (!deselected) { SelectedSpace = space; space.setOutlineColor(1); if (SelectedCard != null) { SelectedCard.setOutlineColor(0); SelectedCard = null; } onSpaceSelect(SelectedSpace, manager.gameModel); } }
public void SelectHandFunctionality(HandCardStruct cardspace) { bool deselected = false; cardspace.setOutlineColor(1); if (SelectedCard != null) { SelectedCard.setOutlineColor(0); if (SelectedCard.pos == cardspace.pos) { SelectedCard = null; deselected = true; } } if (!deselected) { SelectedCard = cardspace; cardspace.setOutlineColor(1); if (SelectedSpace != null) { SelectedSpace.setOutlineColor(0); SelectedSpace = null; FindObjectOfType <buttonManager>().Deselect(); } } }
// Use this for initialization void Awake() { manager = FindObjectOfType <ModelManager>(); SelectedSpace = null; SelectedCard = null; movemade = null; swapflag = false; }
// Update is called once per frame void Update() { //Deselect/Cancel all actions if (Input.GetKeyDown(KeyCode.Escape)) { CancelActions(); } else if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { if (hit.transform.tag == "BoardSpace") { var space = hit.transform.GetComponent <BoardSpaceStruct>(); var card = space.getCard(); //Swap functionality if (swapflag && SelectedSpace != null) { SwapFunctionality(space, card); } //Select/Deselect Space else if (card != null) { SelectSpaceFunctionality(space, card); } //Play Card on space else if (SelectedCard != null) { manager.gameModel.PlayCard(0, space.x, space.y, SelectedCard.card); SelectedCard.setOutlineColor(0); movemade = new GameMove(space.x, space.y, SelectedCard.card); SelectedCard = null; manager.updateBoard(); manager.switchState(); } } //Select/Deselect card in hand else if (hit.transform.tag == "Hand") { var cardspace = hit.transform.GetComponent <HandCardStruct>(); SelectHandFunctionality(cardspace); } } } }
public void CancelActions() { swapflag = false; if (SelectedSpace != null) { SelectedSpace.setOutlineColor(0); } if (SelectedCard != null) { SelectedCard.setOutlineColor(0); } SelectedSpace = null; SelectedCard = null; FindObjectOfType <buttonManager>().Deselect(); }