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); } }
private void ConstructAchievementBuilding(BattleAchievementBuildingParameter param, Age age) { AchievementBuildingConfigData configData = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(param.AchievementBuildingType); string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME, ClientStringConstants.ACHIEVEMENT_BULIDING_PREFAB_PREFIX_NAME, configData.PrefabName); GameObject buildingPrefab = Resources.Load(prefabName) as GameObject; GameObject buildingObject = GameObject.Instantiate(buildingPrefab) as GameObject; buildingObject.transform.position = PositionConvertor.GetWorldPositionFromBuildingTileIndex (new TilePosition(param.PositionColumn, param.PositionRow)); buildingObject.transform.parent = this.m_ParentNode; AchievementBuildingPropertyBehavior property = buildingObject.GetComponent <AchievementBuildingPropertyBehavior>(); property.AchievementBuildingType = param.AchievementBuildingType; property.BuildingNO = param.AchievementBuildingNo; property.IsDropProps = param.IsDropProps; property.BuildingCategory = (BuildingCategory)configData.Category; property.BuildingPosition = new TilePosition(param.PositionColumn, param.PositionRow); property.BuildingObstacleList = new List <TilePosition>(); property.ActorObstacleList = new List <TilePosition>(); foreach (TilePoint buildingObstacle in configData.BuildingObstacleList) { property.BuildingObstacleList.Add(buildingObstacle.ConvertToTilePosition()); } foreach (TilePoint actorObstacle in configData.ActorObstacleList) { property.ActorObstacleList.Add(actorObstacle.ConvertToTilePosition()); } property.Buffs = BuildingBuffSystem.Instance.GetBuffs(property.BuildingCategory); AchievementBuildingHPBehavior hp = buildingObject.GetComponent <AchievementBuildingHPBehavior>(); hp.TotalHP = Mathf.Max(1, configData.MaxHP + property.BuffHPEffect); hp.SceneHelper = this.m_SceneHelper; hp.ArmorCategory = configData.ArmorCategory; BuildingSurfaceBehavior surface = buildingObject.GetComponent <BuildingSurfaceBehavior>(); if (surface != null) { surface.SetSurface(age, param.AchievementBuildingType); } this.m_SceneHelper.ConstructAchievementBuilding(buildingObject); }
//Popup Button message void OnRepairBuilidng() { if (this.AchievementBuildingLogicData.Life >= this.AchievementBuildingLogicData.MaxLife) { return; } AchievementBuildingConfigData achievementBuildingConfigData = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(this.AchievementBuildingLogicData.AchievementBuildingType); PropsType propsType = achievementBuildingConfigData.NeedPropsType; int currentPropsCount = LogicController.Instance.AllProps.Count(a => a.PropsType == propsType && a.RemainingCD <= 0); if (currentPropsCount > 0) { LogicController.Instance.RepairAchievementBuilding(this.AchievementBuildingLogicData.BuildingNo); } else { UIErrorMessage.Instance.ErrorMessage(39, this.AchievementBuildingLogicData.Name, achievementBuildingConfigData.Name); } }
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 void DestroyAchievementBuilding(TilePosition position, AchievementBuildingConfigData configData) { this.PopulateMapData(position, configData.BuildingObstacleList, null); }