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; } }
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); }
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); }
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); }
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); } }
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); }