Ejemplo n.º 1
0
    public void ConstructAchievementBuilding(GameObject achievementBuilding)
    {
        AchievementBuildingPropertyBehavior property = achievementBuilding.GetComponent <AchievementBuildingPropertyBehavior>();

        this.m_AchievementBuildingList.Add(achievementBuilding);
        if (!this.m_BuildingsCategoryDict.ContainsKey(property.BuildingCategory))
        {
            this.m_BuildingsCategoryDict[property.BuildingCategory] = new List <GameObject>();
        }
        this.m_BuildingsCategoryDict[property.BuildingCategory].Add(achievementBuilding);

        this.m_CachedTransformDict.Add(achievementBuilding, property.AnchorTransform);
        BattleMapData.Instance.RefreshInformationWithConstructObstacle(achievementBuilding);
    }
Ejemplo n.º 2
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);
    }
Ejemplo n.º 3
0
    public void DestroyAchievementBuilding(GameObject achievementBuilding)
    {
        AchievementBuildingPropertyBehavior property = achievementBuilding.GetComponent <AchievementBuildingPropertyBehavior>();

        this.m_AchievementBuildingList.Remove(achievementBuilding);
        this.m_BuildingsCategoryDict[property.BuildingCategory].Remove(achievementBuilding);
        if (this.m_BuildingsCategoryDict[property.BuildingCategory].Count == 0)
        {
            this.m_BuildingsCategoryDict.Remove(property.BuildingCategory);
        }
        this.m_CachedTransformDict.Remove(achievementBuilding);

        BattleMapData.Instance.RefreshInformationWithDestroyObstacle(achievementBuilding);

        if (BattleDirector.Instance != null)
        {
            if (BattleRecorder.Instance.DestroyBuildingCount == this.m_TotalSummaryBuildingCount &&
                this.m_AchievementBuildingList.Count == 0)
            {
                BattleDirector.Instance.EndMatch();
            }
        }
    }
 public override void Start()
 {
     base.Start();
     this.m_Property = (AchievementBuildingPropertyBehavior)this.m_BaseProperty;
 }