private void DeployNextWave(uint id, object cookie) { this.timers.Remove(id); this.currentWaveIndex = this.wavesDeployed; this.currentWave = this.waves[this.currentWaveIndex]; this.waveDirectionOffset = ((!this.randomizeWaves) ? 0 : Service.Rand.SimRange(0, 360)); List <DefenseTroopGroup> list = DefensiveBattleController.ParseTroopGroups(this.currentWave.Encounter.Uid, this.currentWave.Encounter.WaveGroup, this.waveDirectionOffset); int count = list.Count; for (int i = 0; i < count; i++) { DefenseTroopGroup defenseTroopGroup = list[i]; this.timers.Add(this.timerManager.CreateSimTimer(defenseTroopGroup.Seconds * 1000u, false, new TimerDelegate(this.DeployGroupAfterDelay), defenseTroopGroup)); } this.wavesDeployed++; }
public void StartDefenseMissionAfterLoadingAssets(CampaignMissionVO mission) { DefenseWave defenseWave = this.waves[this.currentWaveIndex]; List <DefenseTroopGroup> list = DefensiveBattleController.ParseTroopGroups(defenseWave.Encounter.Uid, defenseWave.Encounter.WaveGroup, 0); int count = list.Count; AssetManager assetManager = Service.Get <AssetManager>(); List <string> list2 = new List <string>(); List <object> list3 = new List <object>(); List <AssetHandle> list4 = new List <AssetHandle>(); for (int i = 0; i < count; i++) { DefenseTroopGroup defenseTroopGroup = list[i]; TroopTypeVO troopTypeVO = this.sdc.Get <TroopTypeVO>(defenseTroopGroup.TroopUid); list2.Add(troopTypeVO.AssetName); list3.Add(new InternalLoadCookie(troopTypeVO.AssetName)); list4.Add(AssetHandle.Invalid); } assetManager.MultiLoad(list4, list2, null, null, null, new AssetsCompleteDelegate(this.StartDefenseMissionAfterPreload), mission); }
public unsafe static long $Invoke11(long instance, long *args) { return(GCHandledObjects.ObjectToGCHandle(DefensiveBattleController.ParseTroopGroups(Marshal.PtrToStringUni(*(IntPtr *)args), Marshal.PtrToStringUni(*(IntPtr *)(args + 1)), *(int *)(args + 2)))); }