//Shuijing CreateCrystal(PATileTerrain.PACrystalTile crystalTile, int level,PATileTerrain.TileElementType elementType) Shuijing CreateCrystal(int level, PATileTerrain.TileElementType elementType) { string preShuijingName = ""; if (elementType == PATileTerrain.TileElementType.Fire) { preShuijingName = "v_"; } else if (elementType == PATileTerrain.TileElementType.Wood) { preShuijingName = "w_"; } string shuijingPrefabName = preShuijingName + shuijingName + level.ToString(); GameObject shuijingGo = PoolManager.Pools["Shuijing"].Spawn(shuijingPrefabName).gameObject; GameUtility.SetLayerRecursive(shuijingGo.transform, toPlaceBuildingLayer); Shuijing shuijing = shuijingGo.GetComponent <Shuijing>(); shuijing.level = level; shuijing.elementType = elementType; shuijing.prefabName = shuijingPrefabName; shuijing.Reset(); //shuijing.SetSelectTag(true); RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0)); Physics.Raycast(ray, out hit, Mathf.Infinity, terrainChunkLayermask); shuijing.transform.position = hit.point; return(shuijing); }
NestBuilding CreateNest(PATileTerrain.TileElementType elementType) { string preName = ""; if (elementType == PATileTerrain.TileElementType.Fire) { preName = "v_"; } else if (elementType == PATileTerrain.TileElementType.Wood) { preName = "w_"; } string nestPrefabName = preName + nestName; GameObject nestGo = PoolManager.Pools["Shuijing"].Spawn(nestPrefabName).gameObject; GameUtility.SetLayerRecursive(nestGo.transform, toPlaceBuildingLayer); NestBuilding nest = nestGo.GetComponent <NestBuilding>(); nest.elementType = elementType; nest.prefabName = nestPrefabName; RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0)); Physics.Raycast(ray, out hit, Mathf.Infinity, terrainChunkLayermask); nest.transform.position = hit.point; return(nest); }
Shuijing CreateCrystal(PATileTerrain.PATile tile, int level, PATileTerrain.TileElementType elementType) { PATileTerrain.PABuildingTile buildingTile = PATileTerrain.PABuildingTile.GetByTile(tileTerrain, tile); Shuijing shuijing = CreateCrystal(level, elementType); return(PlaceCrystal(shuijing, buildingTile)); }
public void UpgradeSelectShuijing() { if (selectShuijing == null) { return; } PATileTerrain.PATile tile = selectShuijing.tile; int newLevel = selectShuijing.level + 1; PATileTerrain.TileElementType elementType = selectShuijing.elementType; RemoveCrystal(selectShuijing); Shuijing shuijing = CreateCrystal(tile, newLevel, elementType); //PaintCrystal(shuijing); RepaintAllCrystals(); SetSelectShuijing(null); }
bool CalTileElement(PATileTerrain.PATile tile, Vector2 crystalPos, float centerValue, float atten, PATileTerrain.TileElementType elementType) { //tile.Reset(); Vector2 tilePos = new Vector2(tile.x + 0.5f, tile.y + 0.5f); float distance = Vector2.Distance(crystalPos, tilePos); //if (tile.distance.Equals(-1)) // tile.distance = distance; //else // tile.distance = Mathf.Min(tile.distance, distance); float tileElementValue = Mathf.Max(centerValue - atten * distance, 0); if (tileElementValue > 0f) { tile.element.AddElement(elementType, tileElementValue); return(true); } return(false); }