new void Build() { for (int i = 0; i < m_RealBuildObstalceList.Count; i++) { SceneManager.Instance.BuildingMapData[base.FirstZoneIndex.Row + m_RealBuildObstalceList[i].Row, base.FirstZoneIndex.Column + m_RealBuildObstalceList[i].Column] = false; SceneManager.Instance.BuildingGameObjectData[base.FirstZoneIndex.Row + m_RealBuildObstalceList[i].Row, base.FirstZoneIndex.Column + m_RealBuildObstalceList[i].Column] = this.gameObject; } TilePosition actorFirstZoneIndex = PositionConvertor.GetActorTilePositionFromBuildingTilePosition(base.FirstZoneIndex); for (int i = 0; i < m_RealActorObstacleList.Count; i++) { //SceneManager.Instance.ActorMapData[actorFirstZoneIndex.Row + m_RealActorObstacleList[i].Row, actorFirstZoneIndex.Column + m_RealActorObstacleList[i].Column] = false; SceneManager.Instance.ActorGameObjectData[actorFirstZoneIndex.Row + m_RealActorObstacleList[i].Row, actorFirstZoneIndex.Column + m_RealActorObstacleList[i].Column] = this.gameObject; } if (!base.FirstZoneIndex.Equals(this.AchievementBuildingLogicData.BuildingPosition)) { LogicController.Instance.MoveAchievementBuiding(this.AchievementBuildingLogicData.BuildingNo, base.FirstZoneIndex); this.OnCreateBorder(BorderType.BuildingOutlineBorder); } else { this.OnDestroyBorder(); } this.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); this.m_IsBuild = true; base.EnableCreate = true; this.CreateDropDownFX(); this.SetCellVisible(false); }
void OnDrawGizmos() { if (this.m_BuildingObstacleArray != null && this.m_ActorObstacleArray != null) { int column = ClientSystemConstants.BUILDING_TILE_MAP_SIZE.width; int row = ClientSystemConstants.BUILDING_TILE_MAP_SIZE.height; for (int i = 0; i < column; i++) { for (int j = 0; j < row; j++) { if (this.m_BuildingObstacleArray[j, i] != null) { TilePosition tp = new TilePosition(i, j); Gizmos.color = Color.blue; Gizmos.DrawSphere(PositionConvertor.GetWorldPositionByBuildingTileIndex(tp), 8); } } } int columnActor = ClientSystemConstants.ACTOR_TILE_MAP_SIZE.width; int rowActor = ClientSystemConstants.ACTOR_TILE_MAP_SIZE.height; for (int i = 0; i < columnActor; i++) { for (int j = 0; j < rowActor; j++) { if (this.m_ActorObstacleArray[j, i] != null) { TilePosition tp = new TilePosition(i, j); Gizmos.color = Color.magenta; Gizmos.DrawSphere(PositionConvertor.GetWorldPositionByActorTileIndex(tp), 4); } } } } }
void OnMoveWall() { print("OnMoveWall"); if (base.FirstZoneIndex.Equals(base.FirstZoneIndexPrevious))//this.BuildingBehavior.BuildingLogicData.BuildingPosition)) { if (base.IsBuild) { base.UnBuild(); UIManager.Instance.HidePopuBtnByCurrentSelect(true); } } if (base.MouseOrTouchDictionary.Count > 0) { List <UICamera.MouseOrTouch> mouseOrTouchList = new List <UICamera.MouseOrTouch>(base.MouseOrTouchDictionary.Values); TilePosition touchDownZone = PositionConvertor.GetBuildingTileIndexFromScreenPosition(mouseOrTouchList[0].pos); TilePosition offsetZone = touchDownZone - base.TouchDownZone; if (!((base.FirstZoneIndexPrevious + offsetZone).Equals(base.FirstZoneIndex))) { AudioController.Play("BuildingMoving"); } base.FirstZoneIndex = base.FirstZoneIndexPrevious + offsetZone; Vector3 position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); position.z = base.BUILDING_PICK_AXIS_Z; this.transform.position = position; //this.BuildingBehavior.EnableCreate = base.CheckTile(); base.SetButtonOkState(); } }
void OnMoveAllWall() { //print("OnMoveAllWall"); //m_EnableBuildAll = true; for (int i = 0; i < SceneManager.Instance.SelectedAllWallList.Count; i++) { WallBehavior wallBehavior = SceneManager.Instance.SelectedAllWallList[i]; if (wallBehavior.FirstZoneIndex.Equals(wallBehavior.BuildingLogicData.BuildingPosition)) { if (wallBehavior.IsBuild) { wallBehavior.UnBuild(); this.SetSelectWallState(); } } UIManager.Instance.HidePopuBtnByCurrentSelect(true); List <UICamera.MouseOrTouch> mouseOrTouchList = new List <UICamera.MouseOrTouch>(base.MouseOrTouchDictionary.Values); TilePosition touchDownZone = PositionConvertor.GetBuildingTileIndexFromScreenPosition(mouseOrTouchList[0].pos); TilePosition offsetZone = touchDownZone - base.TouchDownZone; if (!((wallBehavior.FirstZoneIndexPrevious + offsetZone).Equals(wallBehavior.FirstZoneIndex))) { AudioController.Play("BuildingMoving"); } wallBehavior.FirstZoneIndex = wallBehavior.FirstZoneIndexPrevious + offsetZone; Vector3 position = PositionConvertor.GetWorldPositionByBuildingTileIndex(wallBehavior.FirstZoneIndex); position.z = wallBehavior.BUILDING_PICK_AXIS_Z; wallBehavior.transform.position = position; wallBehavior.CheckTile(); } }
//void InitObstaclePosition() //{ // if (this.RemovableObjectLogicData.BuildingPosition != null) // { // base.FirstZoneIndex = this.RemovableObjectLogicData.BuildingPosition; // this.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); // this.BuildObstacle(); // } //} void InitObstaclePosition() { if (!this.Created) { base.FirstZoneIndex = PositionConvertor.GetBuildingTileIndexFromWorldPosition(CameraManager.Instance.MainCamera.transform.position); if (!base.CheckTile()) { base.SearchBuildingPosition(); } this.CheckTile(); Vector3 position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); position.z = BUILDING_PICK_AXIS_Z; this.transform.position = position; base.SetArrowState(true); base.IsClick = true; } else { if (this.RemovableObjectLogicData.BuildingPosition != null) { base.FirstZoneIndex = this.RemovableObjectLogicData.BuildingPosition; this.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); this.BuildObstacle(); base.SetArrowState(false); } } }
public void ConstructDefenseObject(PropsType type, TilePosition position) { PropsDefenseScopeConfigData scopeConfigData = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeConfigData; PropsDefenseScopeLastingConfigData lastingConfigData = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeLastingConfigData; string p = scopeConfigData != null ? scopeConfigData.PrefabName : lastingConfigData.PrefabName; List <TilePoint> buildingObstacleList = scopeConfigData != null ? scopeConfigData.BuildingObstacleList : lastingConfigData.BuildingObstacleList; string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME, ClientStringConstants.DEFENSE_OBJECT_PREFAB_PREFIX_NAME, p); GameObject objectPrefab = Resources.Load(prefabName) as GameObject; GameObject newObject = GameObject.Instantiate(objectPrefab) as GameObject; GameObject.DestroyImmediate(newObject.GetComponent <DefenseObjectAI>()); EditorDefenseObjectBehavior objectBehavior = newObject.AddComponent <EditorDefenseObjectBehavior>(); objectBehavior.Position = position; objectBehavior.PropsType = type; newObject.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(position); newObject.transform.parent = this.m_SceneParent; this.PopulateMapData(position, buildingObstacleList, newObject); }
public void Drag() { Vector3 worldPosition = EditorConfigInterface.Instance.SceneCamera.ScreenToWorldPoint(Input.mousePosition); TilePosition currentPosition = PositionConvertor.GetBuildingTileIndexFromWorldPosition(worldPosition); this.Position = currentPosition; this.OperatorBehavior.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(this.Position); }
public void BuyBuilderHut() { BuildingIdentity buildingIdentity = UIManager.Instance.UIWindowBuyBuilding.BuilerNo >= 0 ? LogicController.Instance.BuyBuilderHut(UIManager.Instance.UIWindowBuyBuilding.BuilerNo, this.BuildingBehavior.FirstZoneIndex) : LogicController.Instance.BuyBuilderHut(this.BuildingBehavior.FirstZoneIndex); this.BuildingLogicData = LogicController.Instance.GetBuildingObject(buildingIdentity); this.BuildingBehavior.BuildingLogicData = this.BuildingLogicData; BuildingBehavior bb = this.ConstructBuilding(); bb.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(this.BuildingBehavior.BuildingLogicData.BuildingPosition); SceneManager.Instance.CreateUpgradeFX(bb); }
public void ConstructRemovableObject(RemovableObjectType type, TilePosition position) { RemovableObjectConfigData configData = ConfigInterface.Instance.RemovableConfigHelper.GetRemovableObjectData(type); string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME, ClientStringConstants.REMOVABLE_OBJECT_PREFAB_PREFIX_NAME, configData.PrefabName); GameObject objectPrefab = Resources.Load(prefabName) as GameObject; GameObject newObject = GameObject.Instantiate(objectPrefab) as GameObject; EditorRemovableObjectBehavior objectBehavior = newObject.AddComponent <EditorRemovableObjectBehavior>(); objectBehavior.Position = position; objectBehavior.RemovableObjectType = type; newObject.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(position); newObject.transform.parent = this.m_SceneParent; this.PopulateMapData(position, configData.BuildingObstacleList, newObject); }
public void BuildObstacle() { for (int i = 0; i < this.RemovableObjectLogicData.BuildingObstacleList.Count; i++) { SceneManager.Instance.BuildingMapData[base.FirstZoneIndex.Row + this.RemovableObjectLogicData.BuildingObstacleList[i].Row, base.FirstZoneIndex.Column + this.RemovableObjectLogicData.BuildingObstacleList[i].Column] = false; SceneManager.Instance.BuildingGameObjectData[base.FirstZoneIndex.Row + this.RemovableObjectLogicData.BuildingObstacleList[i].Row, base.FirstZoneIndex.Column + this.RemovableObjectLogicData.BuildingObstacleList[i].Column] = this.gameObject; } for (int i = 0; i < this.RemovableObjectLogicData.ActorObstacleList.Count; i++) { //SceneManager.Instance.ActorMapData[this.RemovableObjectLogicData.ActorPosition.Row + this.RemovableObjectLogicData.ActorObstacleList[i].Row, this.RemovableObjectLogicData.ActorPosition.Column + this.RemovableObjectLogicData.ActorObstacleList[i].Column] = false; SceneManager.Instance.ActorGameObjectData[this.RemovableObjectLogicData.ActorPosition.Row + this.RemovableObjectLogicData.ActorObstacleList[i].Row, this.RemovableObjectLogicData.ActorPosition.Column + this.RemovableObjectLogicData.ActorObstacleList[i].Column] = this.gameObject; } base.SetCellVisible(false); base.m_IsBuild = true; base.EnableCreate = true; this.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); }
void OnDrag(Vector2 delta) { if (UICamera.currentTouchID == -1) { Vector3 worldPosition = EditorConfigInterface.Instance.SceneCamera.ScreenToWorldPoint(Input.mousePosition); TilePosition currentPosition = PositionConvertor.GetBuildingTileIndexFromWorldPosition(worldPosition) + this.m_SelectOffset; this.Position = currentPosition; this.gameObject.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(this.Position); foreach (var b in this.m_Selections) { if (b != this) { b.OnDrag(delta); } } } }
public void ConstructAchievementBuilding(AchievementBuildingType type, TilePosition position) { AchievementBuildingConfigData configData = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(type); string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME, ClientStringConstants.ACHIEVEMENT_BULIDING_PREFAB_PREFIX_NAME, configData.PrefabName); GameObject objectPrefab = Resources.Load(prefabName) as GameObject; GameObject newObject = GameObject.Instantiate(objectPrefab) as GameObject; GameObject.DestroyImmediate(newObject.GetComponent <AchievementBuildingHPBehavior>()); EditorAchievementBuildingBehavior objectBehavior = newObject.AddComponent <EditorAchievementBuildingBehavior>(); objectBehavior.Position = position; objectBehavior.AchievementBuildingType = type; newObject.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(position); newObject.transform.parent = this.m_SceneParent; this.PopulateMapData(position, configData.BuildingObstacleList, newObject); }
void OnMoveBuilding() { if (base.MouseOrTouchDictionary.Count > 0) { List <UICamera.MouseOrTouch> mouseOrTouchList = new List <UICamera.MouseOrTouch>(base.MouseOrTouchDictionary.Values); TilePosition touchDownZone = PositionConvertor.GetBuildingTileIndexFromScreenPosition(mouseOrTouchList[0].pos); TilePosition offsetZone = touchDownZone - base.TouchDownZone; if (!((base.FirstZoneIndexPrevious + offsetZone).Equals(base.FirstZoneIndex))) { AudioController.Play("BuildingMoving"); } base.FirstZoneIndex = base.FirstZoneIndexPrevious + offsetZone; this.LimitBuildingPosition(); Vector3 position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); position.z = BUILDING_PICK_AXIS_Z; this.transform.position = position; base.CheckTile(); base.SetButtonOkState(); } }
void LateUpdate() { if (!base.Created) { return; } if (this.RemovableObjectLogicData.BuildingPosition == null) { if (LogicController.Instance.GeneratePosition(this.RemovableObjectLogicData.RemovableObjectNo, SceneManager.Instance)) { base.FirstZoneIndex = this.RemovableObjectLogicData.BuildingPosition; this.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(base.FirstZoneIndex); this.BuildObstacle(); base.SetArrowState(false); } else { GameObject.Destroy(this.gameObject); } } }
public void ConstructBuilding(BuildingType type, int level, TilePosition position) { BuildingConfigData configData = ConfigInterface.Instance.BuildingConfigHelper.GetBuildingData(type, level); string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME, ClientStringConstants.BUILDING_OBJECT_PREFAB_PREFIX_NAME, configData.BuildingPrefabName); GameObject buildingPrefab = Resources.Load(prefabName) as GameObject; GameObject newBuilding = GameObject.Instantiate(buildingPrefab) as GameObject; GameObject.DestroyImmediate(newBuilding.GetComponent <BuildingAI>()); GameObject.DestroyImmediate(newBuilding.GetComponent <BuildingHPBehavior>()); ResourceStoreBehavior storeBehavior = newBuilding.GetComponent <ResourceStoreBehavior>(); if (storeBehavior != null) { GameObject.DestroyImmediate(storeBehavior); } WallUtility wall = newBuilding.GetComponent <WallUtility>(); if (wall != null) { GameObject.DestroyImmediate(wall); newBuilding.AddComponent <EditorWallUtility>(); } EditorBuildingBehavior buildingBehavior = newBuilding.AddComponent <EditorBuildingBehavior>(); buildingBehavior.Position = position; buildingBehavior.BuildingType = type; buildingBehavior.Level = level; newBuilding.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(position); newBuilding.transform.parent = this.m_SceneParent; this.PopulateMapData(position, configData.BuildingObstacleList, newBuilding); }
public void SetArrowPosition(bool initialPosition) { if (initialPosition) { for (int i = 0; i < base.m_ArrowList.Count; i++) { Vector3 localPosition = Vector3.zero; localPosition.x = base.m_ArrowOffset[i].x; localPosition.y = base.m_ArrowOffset[i].y; localPosition.z = 0; base.m_ArrowList[i].transform.localPosition = localPosition; } } else { int count = SceneManager.Instance.SelectedAllWallList.Count; if (count > 1) { int width = ClientSystemConstants.BUILDING_TILE_MAP_SIZE.width * SceneManager.Instance.SelectedAllWallList.Count; int height = ClientSystemConstants.BUILDING_TILE_MAP_SIZE.height; float offsetwidthTop = 20; float offsetwidthRight = 40; float offsetHeight = 18; int degree = 0; List <WallBehavior> selectedAllWallList = SceneManager.Instance.SelectedAllWallList; if ((selectedAllWallList[0].FirstZoneIndex.Row - selectedAllWallList[1].FirstZoneIndex.Row) == 0) { selectedAllWallList.Sort((a, b) => a.FirstZoneIndex.Column - b.FirstZoneIndex.Column); degree = 0; } else { selectedAllWallList.Sort((a, b) => a.FirstZoneIndex.Row - b.FirstZoneIndex.Row); degree = 90; } Vector2 minWorldPosition = PositionConvertor.GetWorldPositionByBuildingTileIndex(selectedAllWallList[0].FirstZoneIndex); Vector2 maxWorldPosition = PositionConvertor.GetWorldPositionByBuildingTileIndex(selectedAllWallList[count - 1].FirstZoneIndex); Vector2 halfWorldPosition = (maxWorldPosition - minWorldPosition) * 0.5f + minWorldPosition; Vector2 worldPosition = Vector2.zero; switch (degree) { case 0: worldPosition.x = halfWorldPosition.x + (width * 0.5f + offsetwidthRight); worldPosition.y = halfWorldPosition.y + (0 + offsetHeight); base.m_ArrowList[0].transform.position = worldPosition; worldPosition.x = halfWorldPosition.x + (0 + offsetwidthTop); worldPosition.y = halfWorldPosition.y + (height + offsetHeight); base.m_ArrowList[1].transform.position = worldPosition; worldPosition.x = halfWorldPosition.x + (-width * 0.5f); worldPosition.y = halfWorldPosition.y + (0 + offsetHeight); base.m_ArrowList[2].transform.position = worldPosition; worldPosition.x = halfWorldPosition.x + (0 + offsetwidthTop); worldPosition.y = halfWorldPosition.y + (-height + offsetHeight); base.m_ArrowList[3].transform.position = worldPosition; break; case 90: worldPosition.x = halfWorldPosition.x + (height + offsetwidthTop); worldPosition.y = halfWorldPosition.y + (0 + offsetHeight); base.m_ArrowList[0].transform.position = worldPosition; worldPosition.x = halfWorldPosition.x + (0 + offsetwidthTop); worldPosition.y = halfWorldPosition.y + (width * 0.5f + offsetwidthRight); base.m_ArrowList[1].transform.position = worldPosition; worldPosition.x = halfWorldPosition.x + (-height + offsetwidthTop); worldPosition.y = halfWorldPosition.y + (0 + offsetHeight); base.m_ArrowList[2].transform.position = worldPosition; worldPosition.x = halfWorldPosition.x + (0 + offsetwidthTop); worldPosition.y = halfWorldPosition.y + (-width * 0.5f); base.m_ArrowList[3].transform.position = worldPosition; break; } } } }
void RotateWallRow(List <WallBehavior> wallBehaviorList) { if (wallBehaviorList.Count > 0) { for (int i = 0; i < wallBehaviorList.Count; i++) { if (wallBehaviorList[i].FirstZoneIndex.Equals(wallBehaviorList[i].BuildingLogicData.BuildingPosition)) { if (wallBehaviorList[i].IsBuild) { wallBehaviorList[i].UnBuild(); } } } if ((base.FirstZoneIndex.Row - wallBehaviorList[0].FirstZoneIndex.Row) == 0) { //degree = 0 if (wallBehaviorList[0].FirstZoneIndex.Column > base.FirstZoneIndex.Column) { wallBehaviorList.Sort((a, b) => a.FirstZoneIndex.Column - b.FirstZoneIndex.Column); for (int i = 0; i < wallBehaviorList.Count; i++) { wallBehaviorList[i].FirstZoneIndex = new TilePosition(base.FirstZoneIndex.Column, base.FirstZoneIndex.Row - 1 - i); wallBehaviorList[i].transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(wallBehaviorList[i].FirstZoneIndex); wallBehaviorList[i].CheckTile(); } } else { //degree = 180 wallBehaviorList.Sort((a, b) => b.FirstZoneIndex.Column - a.FirstZoneIndex.Column); for (int i = 0; i < wallBehaviorList.Count; i++) { wallBehaviorList[i].FirstZoneIndex = new TilePosition(base.FirstZoneIndex.Column, base.FirstZoneIndex.Row + 1 + i); wallBehaviorList[i].transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(wallBehaviorList[i].FirstZoneIndex); wallBehaviorList[i].CheckTile(); } } } else { //degree = 90 if (wallBehaviorList[0].FirstZoneIndex.Row > base.FirstZoneIndex.Row) { wallBehaviorList.Sort((a, b) => a.FirstZoneIndex.Row - b.FirstZoneIndex.Row); for (int i = 0; i < wallBehaviorList.Count; i++) { wallBehaviorList[i].FirstZoneIndex = new TilePosition(base.FirstZoneIndex.Column + 1 + i, base.FirstZoneIndex.Row); wallBehaviorList[i].transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(wallBehaviorList[i].FirstZoneIndex); wallBehaviorList[i].CheckTile(); } } else { //degree = 270 wallBehaviorList.Sort((a, b) => b.FirstZoneIndex.Row - a.FirstZoneIndex.Row); for (int i = 0; i < wallBehaviorList.Count; i++) { wallBehaviorList[i].FirstZoneIndex = new TilePosition(base.FirstZoneIndex.Column - 1 - i, base.FirstZoneIndex.Row); wallBehaviorList[i].transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(wallBehaviorList[i].FirstZoneIndex); wallBehaviorList[i].CheckTile(); } } } } }