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
 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);
     }
 }
Esempio n. 4
0
    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);
    }
Esempio n. 6
0
    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;
    }
Esempio n. 7
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. 8
0
 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]);
 }