示例#1
0
        public static void Add(this ActorCommonData Actor, MapItemElement Ele, int I = -1, int EliteOff = -1, bool IsMonster = false)
        {
            IMapActor Monster = new IMapActor(Actor, Ele, EliteOff, I, IsMonster);

            Monsters.Add(Actor.Address, Monster);
            MonstersAdd.Add(Monster);
        }
示例#2
0
        private static async Task MapWithSingleActorAsync(string fileName, IMapActor mapActor, IReduceActor reduceActor)
        {
            var exception = (Exception)null;

            using (var fileObserver = new FileObserver(fileName))
            {
                var processCompleteSignal = new SemaphoreSlim(0, 1);

                var observer = fileObserver
                               .Observable
                               .SubscribeAsync(async(line) =>
                {
                    var map = await mapActor.MapAsync(line);
                    await reduceActor.ReduceAsync(map);
                },
                                               (e) =>
                {
                    exception = e;
                },
                                               () =>
                {
                    processCompleteSignal.Release();
                });

                await processCompleteSignal.WaitAsync();
            }

            if (exception != null)
            {
                throw exception;
            }
        }
示例#3
0
 public GameRoom(IMapActor map, IActorBase illumination, IEnemyManager enemyManager,
                 IPlayerManager playerManager)
 {
     _map           = map;
     _illumination  = illumination;
     _enemyManager  = enemyManager;
     _playerManager = playerManager;
 }