Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
        }
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    //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);
        }
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
 public void DestroyAchievementBuilding(TilePosition position, AchievementBuildingConfigData configData)
 {
     this.PopulateMapData(position, configData.BuildingObstacleList, null);
 }