Beispiel #1
0
        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))));
 }