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 UnBuild(bool showBorder = true) { for (int i = 0; i < m_RealBuildObstalceList.Count; i++) { SceneManager.Instance.BuildingMapData[base.FirstZoneIndex.Row + base.m_RealBuildObstalceList[i].Row, base.FirstZoneIndex.Column + base.m_RealBuildObstalceList[i].Column] = true; SceneManager.Instance.BuildingGameObjectData[base.FirstZoneIndex.Row + base.m_RealBuildObstalceList[i].Row, base.FirstZoneIndex.Column + base.m_RealBuildObstalceList[i].Column] = null; } TilePosition actorFirstZoneIndex = PositionConvertor.GetActorTilePositionFromBuildingTilePosition(base.FirstZoneIndex); for (int i = 0; i < base.m_RealActorObstacleList.Count; i++) { //SceneManager.Instance.ActorMapData[actorFirstZoneIndex.Row + m_RealActorObstacleList[i].Row, actorFirstZoneIndex.Column + m_RealActorObstacleList[i].Column] = true; SceneManager.Instance.ActorGameObjectData[actorFirstZoneIndex.Row + base.m_RealActorObstacleList[i].Row, actorFirstZoneIndex.Column + base.m_RealActorObstacleList[i].Column] = null; } this.m_IsBuild = false; if (showBorder) { this.OnCreateBorder(); } }
public TilePosition FindCampStandablePoint(IBuildingInfo campInfo) { int index = Random.Range(0, campInfo.BuildingObstacleList.Count); TilePosition buildingObstaclePosition = campInfo.BuildingObstacleList[index]; TilePosition buildingPosition = campInfo.BuildingPosition + buildingObstaclePosition; TilePosition actorObstaclePosition = PositionConvertor.GetActorTilePositionFromBuildingTilePosition(buildingPosition); TilePosition actorOffset = actorObstaclePosition - campInfo.ActorPosition; while (!actorObstaclePosition.IsValidActorTilePosition() || campInfo.ActorObstacleList.Contains(actorOffset)) { index = Random.Range(0, campInfo.BuildingObstacleList.Count); buildingObstaclePosition = campInfo.BuildingObstacleList[index]; buildingPosition = campInfo.BuildingPosition + buildingObstaclePosition; actorObstaclePosition = PositionConvertor.GetActorTilePositionFromBuildingTilePosition(buildingPosition); actorOffset = actorObstaclePosition - campInfo.ActorPosition; } return(actorObstaclePosition); }