//void Search(BoardGenerator.Cell start, int range, TargetType type) //{ // int cx = (int)start.index.x, cy = (int)start.index.y; //get center xy // for (int x = cx - range; x <= cx + range; x++) //from left to right // { // int val = cx - x; // val = Mathf.Abs(val); // val = range - val; //closer to leftmost,rightmost, y range will be lowest // for (int y = cy - val; y <= cy + val; y++) // { // BoardGenerator.Cell temp = GameManagerScript.getBoard().isValidCell(new Vector2(x, y)); // if (temp != null) // { // checking(temp, type); // } // } // } //} //void checking(BoardGenerator.Cell cell, TargetType type) //{ // switch (type) // { // case TargetType.Empty: // { // if (!cell.occupiedObject) // availableCells.Add(cell); // break; // } // case TargetType.Ally: // { // if (cell.occupiedObject) // if (cell.occupiedObject.tag == "Ally") // availableCells.Add(cell); // break; // } // case TargetType.Enemy: // { // if (cell.occupiedObject) // if (cell.occupiedObject.tag == "Enemy") // availableCells.Add(cell); // break; // } // default: // break; // } //} public void Clicked(ClickerTile tile) { if (tile.tileType != ClickerTile.TileType.Range) { _func(tile); CloseTiles(); } }
protected int HolyCleave(ClickerTile tile) { GameObject target = tile.gmc.currentCell.occupiedObject; target.GetComponent <Stats>().hurt(stats.getDamage * 2, Stats.DamageType.True); numActions--; GameManagerScript.SubtractAction(); return(0); }
protected int ClawSwipe(ClickerTile tile) { GameObject target = tile.gmc.currentCell.occupiedObject; target.GetComponent <Stats>().hurt(2 + stats.getNimBleness, Stats.DamageType.True); numActions--; GameManagerScript.SubtractAction(); return(0); }
protected int Heal(ClickerTile tile) { int amount = 10; // TODO change to stats; GameObject target = tile.gmc.currentCell.occupiedObject; target.GetComponent <Stats>().heal(amount); numActions--; GameManagerScript.SubtractAction(); return(0); }
int Move(ClickerTile tile) { if (numMoves > 0) { GameManagerScript.getBoard().MoveToCell(tile.gmc.currentCell.index, gameObject, m_moveControl); numMoves--; GameManagerScript.SubtractAction(); } else if (numActions > 0) { GameManagerScript.getBoard().MoveToCell(tile.gmc.currentCell.index, gameObject, m_moveControl); numActions--; GameManagerScript.SubtractAction(); } return(0); }
public void setupClickBoard(BoardGenerator.Cell start, int range, TargetType type, bool Attack, System.Func <ClickerTile, int> func) { _func = func; foreach (var item in ClickTiles) { item.gameObject.SetActive(false); } int cx = (int)start.index.x, cy = (int)start.index.y; //get center xy switch (type) { case TargetType.Empty: { List <BoardGenerator.Cell> walkable = new List <BoardGenerator.Cell>(); for (int x = cx - range; x <= cx + range; x++) //from left to right { int val = cx - x; val = Mathf.Abs(val); val = range - val; //closer to leftmost,rightmost, y range will be lowest for (int y = cy - val; y <= cy + val; y++) { BoardGenerator.Cell temp = GameManagerScript.getBoard().isValidCell(new Vector2(x, y)); if (temp != null) { if (!temp.occupiedObject) { walkable.Add(temp); } } } } foreach (var cell in walkable) { ClickerTile temptile = null; //If have any available tile foreach (var tile in ClickTiles) { if (!tile.used) { //get tile ref temptile = tile; break; } } if (temptile == null) { //else instantiate a new one GameObject temp = Instantiate(dot, transform); temptile = temp.GetComponent <ClickerTile>(); temptile.setClicker(this); ClickTiles.Add(temptile); } //set position GridMovementController gmc = temptile.GetComponent <GridMovementController>(); GameManagerScript.getBoard().MoveToCell(cell.index, temptile.gameObject, gmc); //set active temptile.TurnOn(ClickerTile.TileType.Walkable); } break; } case TargetType.Ally: case TargetType.Enemy: { List <BoardGenerator.Cell> withinRange = new List <BoardGenerator.Cell>(); for (int x = cx - range; x <= cx + range; x++) //from left to right { int val = cx - x; val = Mathf.Abs(val); val = range - val; //closer to leftmost,rightmost, y range will be lowest for (int y = cy - val; y <= cy + val; y++) { BoardGenerator.Cell temp = GameManagerScript.getBoard().isValidCell(new Vector2(x, y)); if (temp != null) { withinRange.Add(temp); } } } foreach (var cell in withinRange) { ClickerTile temptile = null; //If have any available tile foreach (var tile in ClickTiles) { if (!tile.used) { //get tile ref temptile = tile; break; } } if (temptile == null) { //else instantiate a new one GameObject temp = Instantiate(dot, transform); temptile = temp.GetComponent <ClickerTile>(); temptile.setClicker(this); ClickTiles.Add(temptile); } //set position GridMovementController gmc = temptile.GetComponent <GridMovementController>(); GameManagerScript.getBoard().MoveToCell(cell.index, temptile.gameObject, gmc); //set active if (!cell.occupiedObject) { temptile.TurnOn(ClickerTile.TileType.Range); } else { if (cell.occupiedObject.tag == "Ally") { if (type == TargetType.Ally) { if (Attack) { temptile.TurnOn(ClickerTile.TileType.Attackable); } else { temptile.TurnOn(ClickerTile.TileType.Healable); } } else { temptile.TurnOn(ClickerTile.TileType.Range); } } else if (cell.occupiedObject.tag == "Enemy") { if (type == TargetType.Enemy) { if (Attack) { temptile.TurnOn(ClickerTile.TileType.Attackable); } else { temptile.TurnOn(ClickerTile.TileType.Healable); } } else { temptile.TurnOn(ClickerTile.TileType.Range); } } else { temptile.TurnOn(ClickerTile.TileType.Range); } } } break; } default: break; } //Search(start, range, type); //foreach (var item in availableCells) //{ // ClickerTile temptile = null; // //If have any available tile // foreach (var tile in ClickTiles) // { // if (!tile.used) // { // //get tile ref // temptile = tile; // break; // } // } // if (temptile == null) // { // //else instantiate a new one // GameObject temp = Instantiate(dot, transform); // temptile = temp.GetComponent<ClickerTile>(); // temptile.setClicker(this); // ClickTiles.Add(temptile); // } // //set position // GridMovementController gmc = temptile.GetComponent<GridMovementController>(); // GameManagerScript.getBoard().MoveToCell(item.index, temptile.gameObject, gmc); // //set active // temptile.gameObject.SetActive(true); // temptile.used = true; //} }