public DefenseObjectConfigWrapper(object configData)
    {
        if (configData is PropsDefenseScopeConfigData)
        {
            PropsDefenseScopeConfigData data = (PropsDefenseScopeConfigData)configData;

            this.PrefabName       = data.PrefabName;
            this.BuildingObstacle = new List <TilePosition>();
            foreach (TilePoint tp in data.BuildingObstacleList)
            {
                this.BuildingObstacle.Add(tp.ConvertToTilePosition());
            }
            this.TriggerScope = data.TriggerScope;
            this.Scope        = data.Scope;
        }
        else if (configData is PropsDefenseScopeLastingConfigData)
        {
            PropsDefenseScopeLastingConfigData data = (PropsDefenseScopeLastingConfigData)configData;

            this.PrefabName       = data.PrefabName;
            this.BuildingObstacle = new List <TilePosition>();
            foreach (TilePoint tp in data.BuildingObstacleList)
            {
                this.BuildingObstacle.Add(tp.ConvertToTilePosition());
            }
            this.TriggerScope = data.TriggerScope;
            this.Scope        = data.Scope;
        }
    }
Пример #2
0
    public void ConstructDefenseObject(PropsType type, TilePosition position)
    {
        PropsDefenseScopeConfigData        scopeConfigData   = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeConfigData;
        PropsDefenseScopeLastingConfigData lastingConfigData = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeLastingConfigData;

        string           p = scopeConfigData != null ? scopeConfigData.PrefabName : lastingConfigData.PrefabName;
        List <TilePoint> buildingObstacleList = scopeConfigData != null ? scopeConfigData.BuildingObstacleList : lastingConfigData.BuildingObstacleList;

        string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME,
                                          ClientStringConstants.DEFENSE_OBJECT_PREFAB_PREFIX_NAME, p);
        GameObject objectPrefab = Resources.Load(prefabName) as GameObject;
        GameObject newObject    = GameObject.Instantiate(objectPrefab) as GameObject;

        GameObject.DestroyImmediate(newObject.GetComponent <DefenseObjectAI>());

        EditorDefenseObjectBehavior objectBehavior = newObject.AddComponent <EditorDefenseObjectBehavior>();

        objectBehavior.Position  = position;
        objectBehavior.PropsType = type;


        newObject.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(position);
        newObject.transform.parent   = this.m_SceneParent;
        this.PopulateMapData(position, buildingObstacleList, newObject);
    }
Пример #3
0
    private void ConstructDefenseObject(BattleDefenseObjectParameter param)
    {
        PropsConfigData                    configData    = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(param.PropsType);
        PropsDefenseScopeConfigData        defenseData   = configData.FunctionConfigData as PropsDefenseScopeConfigData;
        PropsDefenseScopeLastingConfigData lastingData   = configData.FunctionConfigData as PropsDefenseScopeLastingConfigData;
        DefenseObjectConfigWrapper         configWrapper = new DefenseObjectConfigWrapper(configData.FunctionConfigData);

        GameObject defenseObjectPrefab = Resources.Load(ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME +
                                                        ClientStringConstants.DEFENSE_OBJECT_PREFAB_PREFIX_NAME + configWrapper.PrefabName) as GameObject;

        GameObject defenseObject = GameObject.Instantiate(defenseObjectPrefab) as GameObject;

        defenseObject.transform.position = PositionConvertor.GetWorldPositionFromBuildingTileIndex
                                               (new TilePosition(param.PositionColumn, param.PositionRow));

        DefenseObjectAI ai = defenseObject.GetComponent <DefenseObjectAI>();

        ai.enabled = false;

        DefenseObjectPropertyBehavior property = defenseObject.GetComponent <DefenseObjectPropertyBehavior>();

        property.DefenseObjectID      = param.DefenseObjectID;
        property.BuildingPosition     = new TilePosition(param.PositionColumn, param.PositionRow);
        property.ActorObstacleList    = new List <TilePosition>();
        property.BuildingObstacleList = new List <TilePosition>();

        if (defenseData != null)
        {
            BombBehavior bomb = defenseObject.GetComponent <BombBehavior>();
            bomb.AttackCategory = defenseData.AttackCategory;
            bomb.Damage         = defenseData.Damage;
            bomb.PushVelocity   = defenseData.PushVelocity;
            bomb.PushTicks      = defenseData.PushTicks;
            bomb.Scope          = defenseData.Scope;
            bomb.TriggerScope   = defenseData.TriggerScope;
            bomb.TriggerTick    = defenseData.TriggerTicks;
            bomb.TargetType     = (TargetType)defenseData.TargetType;
            bomb.ParentNode     = this.m_BulletParent;
        }
        else if (lastingData != null)
        {
            LastingEffectBehavior lasting = defenseObject.GetComponent <LastingEffectBehavior>();
            lasting.AttackCategory = lastingData.AttackCategory;
            lasting.Damage         = lastingData.Damage;
            lasting.IntervalTicks  = lastingData.IntervalTicks;
            lasting.TotalTimes     = lastingData.TotalTimes;
            lasting.Scope          = lastingData.Scope;
            lasting.TriggerScope   = lastingData.TriggerScope;
            lasting.TriggerTick    = lastingData.TriggerTicks;
            lasting.TargetType     = (TargetType)lastingData.TargetType;
            //lasting.ParentNode = this.m_ParentNode;
        }

        defenseObject.transform.parent = this.m_ParentNode;

        this.m_SceneHelper.ConstructDefenseObject(defenseObject);
    }
Пример #4
0
    public void DestroyDefenseObject(TilePosition position, PropsConfigData configData)
    {
        PropsDefenseScopeConfigData        scopeConfigData   = configData.FunctionConfigData as PropsDefenseScopeConfigData;
        PropsDefenseScopeLastingConfigData lastingConfigData = configData.FunctionConfigData as PropsDefenseScopeLastingConfigData;

        List <TilePoint> buildingObstacleList = scopeConfigData != null ? scopeConfigData.BuildingObstacleList : lastingConfigData.BuildingObstacleList;

        this.PopulateMapData(position, buildingObstacleList, null);
    }
Пример #5
0
    public void ConstructDefenseObject(PropsType type)
    {
        PropsDefenseScopeConfigData        scopeConfigData   = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeConfigData;
        PropsDefenseScopeLastingConfigData lastingConfigData = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeLastingConfigData;

        List <TilePoint> buildingObstacleList = scopeConfigData != null ? scopeConfigData.BuildingObstacleList : lastingConfigData.BuildingObstacleList;
        TilePosition     centerPosition       = PositionConvertor.GetBuildingTileIndexFromWorldPosition(this.m_SceneCamare.position);
        TilePosition     position             = this.FindValidBuildingPosition(centerPosition, buildingObstacleList);

        if (position != null)
        {
            this.ConstructDefenseObject(type, position);
        }
    }
Пример #6
0
    protected override List <TilePosition> GetBuildingObstacleInfo(PropsType type)
    {
        List <TilePosition> result = new List <TilePosition>();

        PropsDefenseScopeConfigData        scopeConfigData   = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeConfigData;
        PropsDefenseScopeLastingConfigData lastingConfigData = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(type).FunctionConfigData as PropsDefenseScopeLastingConfigData;

        List <TilePoint> buildingObstacleList = scopeConfigData != null ? scopeConfigData.BuildingObstacleList : lastingConfigData.BuildingObstacleList;

        foreach (TilePoint tp in buildingObstacleList)
        {
            result.Add(tp.ConvertToTilePosition());
        }
        return(result);
    }