public void CreateTower(TowerData towerData, IPlacementArea placementArea, IntVector2 placeGrid, Vector3 position, Quaternion rotation) { if (towerData == null) { return; } TowerLevelData towerLevelData = towerData.GetTowerLevelData(0); if (dataPlayer.Energy < towerLevelData.BuildEnergy) { return; } dataPlayer.AddEnergy(-towerLevelData.BuildEnergy); Tower tower = dataTower.CreateTower(towerData.Id); if (tower == null) { Log.Error("Create tower fail,Tower data id is '{0}'.", towerData.Id); return; } entityLoader.ShowEntity(towerData.EntityId, TypeUtility.GetEntityType(tower.Type), (entity) => { EntityTowerBase entityTowerBase = entity.Logic as EntityTowerBase; dicTowerInfo.Add(tower.SerialId, TowerInfo.Create(tower, entityTowerBase, placementArea, placeGrid)); } , EntityDataTower.Create(tower, position, rotation)); HidePreviewTower(); }
public static EntityDataTower Create(Tower tower, object userData = null) { EntityDataTower entityData = ReferencePool.Acquire <EntityDataTower>(); entityData.Tower = tower; return(entityData); }
protected override void OnHide(bool isShutdown, object userData) { base.OnHide(isShutdown, userData); entityDataTower = null; entityTowerLevel = null; entityLogicTowerLevel = null; }
public static EntityDataTower Create(Tower tower, Vector3 position, Quaternion rotation, object userData = null) { EntityDataTower entityData = ReferencePool.Acquire <EntityDataTower>(); entityData.Tower = tower; entityData.Position = position; entityData.Rotation = rotation; return(entityData); }
protected override void OnShow(object userData) { base.OnShow(userData); entityDataTower = userData as EntityDataTower; if (entityDataTower == null) { Log.Error("Entity tower '{0}' tower data invaild.", Id); return; } hp = entityDataTower.Tower.MaxHP; ShowTowerLevelEntity(entityDataTower.Tower.Level); Subscribe(UpgradeTowerEventArgs.EventId, OnUpgradeTower); }