public List <int> BuildAchievementBuilding(AchievementBuildingType type) { List <int> result = new List <int>(); AchievementBuildingConfigData buildingConfigData = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(type); int number = 0; foreach (KeyValuePair <int, PropsLogicObject> props in this.m_Props) { if (props.Value.Data.PropsType == buildingConfigData.NeedPropsType && props.Value.Data.RemainingCD == 0) { result.Add(props.Key); if (++number == buildingConfigData.NeedPropsNumber) { break; } } } foreach (int propsNo in result) { this.m_Props.Remove(propsNo); } return(result); }
public void ConstructAchievementBuilding(AchievementBuildingType type) { AchievementBuildingConfigData configData = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(type); TilePosition centerPosition = PositionConvertor.GetBuildingTileIndexFromWorldPosition(this.m_SceneCamare.position); TilePosition position = this.FindValidBuildingPosition(centerPosition, configData.BuildingObstacleList); if (position != null) { this.ConstructAchievementBuilding(type, position); } }
public void RecordDestroyAchievementBuilding(int buildingNo, AchievementBuildingType type, bool isDropProps) { if (isDropProps) { this.m_PropsTrophy.Add(ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(type).NeedPropsType); } if (BattleDirector.Instance != null) { DestroyAchievementBuildingInBattleRequestParameter request = new DestroyAchievementBuildingInBattleRequestParameter(); request.OperateTime = TimeTickRecorder.Instance.CurrentTimeTick - BattleDirector.Instance.MatchStartTick; request.AchievementBuildingNo = buildingNo; CommunicationUtility.Instance.DestroyAchievementBuildingInBattle(request); } }
public AchievementBuildingLogicData BuildAchievementBuilding(AchievementBuildingType achievementBuildingType, TilePosition position) { AchievementBuildingLogicData result = this.m_AchievementBuildingModule.BuildAchievementBuilding(achievementBuildingType, position); List <int> useProps = this.m_PropsModule.BuildAchievementBuilding(achievementBuildingType); BuildAchievementBuildingRequestParameter request = new BuildAchievementBuildingRequestParameter(); request.AchievementBuildingType = achievementBuildingType; request.PositionRow = position.Row; request.PositionColumn = position.Column; request.UseProps = useProps; CommunicationUtility.Instance.BuildAchievementBuilding(request); return(result); }
public AchievementBuildingLogicData BuildAchievementBuilding(AchievementBuildingType type, TilePosition position) { AchievementBuildingData data = new AchievementBuildingData(); data.AchievementBuildingType = type; data.BuildingNo = ++this.m_StartNo; data.BuildingPosition = position; data.ConfigData = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(type); data.Life = data.ConfigData.NeedPropsNumber; AchievementBuildingLogicObject newObject = new AchievementBuildingLogicObject(data); this.m_Buildings.Add(data.BuildingNo, newObject); return(newObject.Data); }
public void SetSurface(Age newAge, AchievementBuildingType buildingType) { if (this.m_Surface != null) { GameObject.Destroy(this.m_Surface); } string prefabName = ClientConfigConstants.Instance.GetSurfacePrefabName(buildingType, newAge); GameObject surfacePrefab = Resources.Load(prefabName, typeof(GameObject)) as GameObject; GameObject surface = GameObject.Instantiate(surfacePrefab) as GameObject; Vector3 localPosition = surface.transform.position; surface.gameObject.transform.parent = this.m_SurfaceParent; surface.gameObject.transform.localPosition = localPosition; this.m_Surface = surface; }
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); }
public string GetSurfacePrefabName(AchievementBuildingType type, Age age) { return(string.IsNullOrEmpty(this.m_SurfacePrefabPrefix) ? this.m_SurfaceAchievPrefabDict[type][(int)age] : this.m_SurfacePrefabPrefix + "/" + this.m_SurfaceAchievPrefabDict[type][(int)age]); }