private NodeState SetRefineryConstructPosition() { GameObject prefab; if (Singleton.classname == "Human") { prefab = AssetUtils.Instance.GetAsset("OrcRefinery") as GameObject; } else { prefab = AssetUtils.Instance.GetAsset("HumanRefinery") as GameObject; } GameObject refineryGameObj = GameObject.Instantiate(prefab); Construct refinery = refineryGameObj.GetComponentInChildren <Construct>(); refinery.Player = npc; refinery.Group = Group.NPC; refineryGameObj.SetActive(true); refinery.Build(); return(SetConstructPosition(ConstructId.Refinery, LocationOffset.Refinery, refineryGameObj.transform)); }
private NodeState SetBarrackConstructPosition() { GameObject prefab; if (Singleton.classname == "Human") { prefab = AssetUtils.Instance.GetAsset("OrcBarrack") as GameObject; } else { prefab = AssetUtils.Instance.GetAsset("HumanBarrack") as GameObject; } GameObject barrackGameObj = GameObject.Instantiate(prefab); Construct barrack = barrackGameObj.GetComponentInChildren <Construct>(); barrack.Player = npc; barrack.Group = Group.NPC; barrackGameObj.SetActive(true); barrack.Build(); return(SetConstructPosition(ConstructId.Barrack, LocationOffset.Barrack, barrackGameObj.transform)); }
private NodeState SetYardContrustPostion() { GameObject prefab; if (Singleton.classname == "Human") { prefab = AssetUtils.Instance.GetAsset("OrcYard") as GameObject; } else { prefab = AssetUtils.Instance.GetAsset("HumanYard") as GameObject; } GameObject yardGameObj = GameObject.Instantiate(prefab); Construct yard = yardGameObj.GetComponentInChildren <Construct>(); yard.Player = npc; yard.Group = Group.NPC; yardGameObj.SetActive(true); yard.Build(); return(SetConstructPosition(ConstructId.Yard, LocationOffset.Yard, yardGameObj.transform)); }
// Update is called once per frame void Update() { if (OnselectTaget == true) { foreach (CubeManager cube in ListInSelect) { if (cube != null) { if (cube.CanBuild == false) { cube.SetState("Not"); cube.OnraycastIn(); } else { cube.SetState("Can"); cube.OnraycastIn(); foreach (CubeManager _cube in ListBuildCube) { _cube.SetState("None"); _cube.OnraycastIn(); } } } } ray = rtsCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray: ray, hitInfo: out hitInfo, maxDistance: Mathf.Infinity, layerMask: LayerMask.GetMask("Floor"))) { CubeManager cube = hitInfo.collider.gameObject.GetComponent <CubeManager>(); if (cube != null) { setBuildSize(BuildSize, cube); } } if (OnholdTaget) { if (Input.GetMouseButtonDown(1)) { for (int k = 0; k < ListInSelect.Count; k++) { ListInSelect[k].SetState("None"); ListInSelect[k].OnraycastIn(); } Player _player = FindObjectOfType <MainPlayer>(); _player.TakeGold(BuildPrice); ResetTaget(); ListInSelect.Clear(); return; } if (Input.GetMouseButtonDown(0) && select() == false) { return; } else { if (Input.GetMouseButtonDown(0)) { if (ListInSelect.Count < BuildSize.x * BuildSize.y) { return; } GameObject NewGO = Instantiate(BuildModel, new Vector3(LatPoint.x + ((int)BuildSize.x / 2), 0, LatPoint.y + ((int)BuildSize.y / 2)), Quaternion.identity); Construct construct = NewGO.GetComponentInChildren <Construct>(); for (int k = 0; k < ListInSelect.Count; k++) { ListInSelect[k].CanBuild = false; ListInSelect[k].SetState("None"); ListInSelect[k].OnraycastIn(); construct.CellInfo.Add(ListInSelect[k]); } construct.Group = EnumCollection.Group.Player; SoundManager.instanece.PlayEffect(2); NewGO.SetActive(true); construct.Build(); ListInSelect.Clear(); ResetTaget(); uiControl.GetACtiveBuild(construct.Player); } } } if (Input.GetMouseButtonUp(0)) { OnholdTaget = true; } } }