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(); }
private void RaiseEnergy() { dataPlayer.AddEnergy(entityDataTower.Tower.EnergyRaise); GameEntry.Sound.PlaySound(EnumSound.TDCurrency, Entity); if (entityLogicTowerLevel != null && entityLogicTowerLevel.effect != null) { entityLogicTowerLevel.effect.gameObject.SetActive(true); entityLogicTowerLevel.effect.Play(true); } }
protected override void Dead() { base.Dead(); dataPlayer.AddEnergy(EntityDataEnemy.EnemyData.AddEnergy); if (!hide) { hide = true; GameEntry.Event.Fire(this, HideEnemyEventArgs.Create(Id)); } }