public void LoadRoom() { roomTiles = new Tile[level.roomWidth, level.roomHeight]; for (int x = 0; x < level.roomWidth; x++) { int columnHeight = level.levelNoise.GetNoise(((int)levelPos.x * level.roomWidth * ((int)levelPos.y + 1)) + x, 10); int columnTop = 1 + level.levelNoise.GetNoise(((int)levelPos.x * level.roomWidth * ((int)levelPos.y + 1)) + x, 7); for (int y = 0; y < level.roomHeight; y++) { if (y == columnHeight || y == level.roomHeight - columnTop) { roomTiles[x, y] = new TileGrass(); } else if (y <= columnHeight || y >= level.roomHeight - columnTop) { roomTiles[x, y] = new TileGround(); } else { roomTiles[x, y] = new TileVoid(); } } } UpdateRoom(); }
private void CmdSpawnPillar(GameObject hitObject, GameObject pillar, int time) { TileGround tileGround = hitObject.GetComponentInParent <TileGround>(); if (tileGround != null && tileGround.pillar == null) { tileGround.insertPillar(pillar, time); } }
private void CmdSpawnTrap(GameObject hitObject, GameObject trap, int time) { TileGround tileGround = hitObject.GetComponentInParent <TileGround>(); if (tileGround != null && tileGround.trap == null) { tileGround.insertTrap(trap, time); } else { source.PlayOneShot(soundError, volSoundError); } }
private void previewSkill(TileGround tile) { if (skill == PILLAR) { tile.insertPreviewPillar(previewPillar); } else if (skill == TRAPDAMAGE) { tile.insertPreviewTrap(previewTrapDamage); } else if (skill == TRAPSLOW) { tile.insertPreviewTrap(previewTrapSlow); } else if (skill == TRAPSTUN) { tile.insertPreviewTrap(previewTrapStun); } }
private void calculateDirection(out RaycastHit hit, out Vector3 realDirection) { Physics.Raycast(player.Cam.transform.position, player.Cam.transform.forward, out hit, 100); if (lastCollider != null && lastCollider != hit.collider) { if (lastCollider.name.StartsWith("Ground")) { lastCollider.gameObject.GetComponent <TileGround>().cleanPreview(); } } lastCollider = hit.collider; if (hit.collider == null) { hit.point = Camera.main.transform.position + Camera.main.transform.forward * 100f; } else if (hit.collider.name.StartsWith("Ground")) { TileGround tile = hit.collider.gameObject.GetComponent <TileGround>(); previewSkill(tile); } realDirection = hit.point - rightHand.position; mark.transform.position = hit.point; }
void SpawnTiles() { //Destory any previous map ClearMap (); //Calculate the start tile position Vector3 vStart = new Vector3 (-(float)_width * 0.5f, 0.0f, -(float)_height * 0.5f); m_tiles = new TileGround[_height,_width]; for (int j=0; j<_height; ++j) { for (int i=0; i<_width; ++i) { Vector3 origin = vStart + new Vector3((float)i,0.0f,(float)j); int mask = (1 << 10); if( Physics.Raycast(origin,new Vector3(0.0f,-1.0f,0.0f),1000.0f,mask) ) { m_tiles[j,i] = (TileGround)Instantiate(_tileGround,origin,Quaternion.identity); m_tiles[j,i].transform.parent = gameObject.transform; m_tiles[j,i].SetState((ETileState)Random.Range(0, 2)); _tileCount++; } } } }