Ejemplo n.º 1
0
 public ShipFactory(IGalaxyRegistrationManager rm, WarpManager wm, ILocalIDManager galaxyIdManager, LocatorService ls, IDatabaseManager dbm)
 {
     _galaxyRegistrationManager = rm;
     _warpManager     = wm;
     _galaxyIdManager = galaxyIdManager;
     _locatorService  = ls;
     _databaseManager = dbm;
 }
Ejemplo n.º 2
0
        public AccountManager(ILocalIDManager idm, IDatabaseManager dbm)
        {
            _accountIDManager = idm;
            _databaseManager  = dbm;

            if (idm.IDType != IDTypes.AccountID)
            {
                throw new Exception("Error: " + idm.GetType().ToString() + " must be of type " + IDTypes.AccountID + " in " + this.GetType().ToString());
            }
        }
Ejemplo n.º 3
0
        public StructureManager(IDatabaseManager dbm, IAreaLocator areaLocator, ILocalIDManager galaxyIDManager, CargoSynchronizer cargoSynchronizer) : base(dbm)
        {
            if (galaxyIDManager.IDType != IDTypes.GalaxyID)
            {
                throw new Exception("Error: LocalIDManager required for StructureManager must be of IDTypes.GalaxyID");
            }

            _galaxyIDManager   = galaxyIDManager;
            _cargoSynchronizer = cargoSynchronizer;
            _areaLocator       = areaLocator;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initializes account manager by filling accounts with passed List
        /// </summary>
        /// <param name="fileName"></param>
        public AccountManager_MasterServer(ILocalIDManager idm, IDatabaseManager dbm, bool fetchAccountsFromDB = true)
            : base(idm, dbm)
        {
            if (fetchAccountsFromDB)
            {
                var accountModels = _databaseManager.GetAllAccountsAsync().Result;

                foreach (var a in accountModels)
                {
                    Account newAccount = new Account(a);
                    RegisterAccount(newAccount);
                }
            }
        }
Ejemplo n.º 5
0
        async Task AddCargoToPlayerShips(IEnumerable <IShip> ships, ILocalIDManager galaxyIDManager, GalaxyRegistrationManager registrationManager, CargoSynchronizer cargoSynchronizer)
        {
            //Making this into a grand test of transaction sequences, there's really no reason to put this all into one sequence
            CargoTransactionSequence cs = new CargoTransactionSequence();

            foreach (var s in ships)
            {
                for (int i = 0; i < _config.CARGO_NumTurrets; i++)//Sending ship state over a network might be painful while this is here...
                {
                    CargoLaserTurret            c = new CargoLaserTurret(galaxyIDManager.PopFreeID(), 666, new LaserWeaponStats());
                    TransactionAddStatefulCargo t = new TransactionAddStatefulCargo(s, c, true);
                    cs.Add(t);

                    registrationManager.RegisterObject(c);
                }

                TransactionAddStatelessCargo tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.AmbassadorMissile, _config.CARGO_NumMissiles, true);
                cs.Add(tr);

                tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.HellHoundMissile, _config.CARGO_NumMissiles, true);
                cs.Add(tr);
                tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.MissileType1, _config.CARGO_NumMissiles, true);
                cs.Add(tr);
                tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.MissileType2, _config.CARGO_NumMissiles, true);
                cs.Add(tr);
                tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.MissileType3, _config.CARGO_NumMissiles, true);
                cs.Add(tr);
                tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.MissileType4, _config.CARGO_NumMissiles, true);
                cs.Add(tr);

                tr = new TransactionAddStatelessCargo(s, StatelessCargoTypes.Biodome, _config.CARGO_NumBiodomes, true);
                cs.Add(tr);
            }
            cargoSynchronizer.RequestAtomicTransactionSequence(cs);
            await cs.ResultTask;

            if (cs.ResultTask.Result != CargoResult.Success)
            {
                ConsoleManager.WriteLine(cs.ResultTask.Result.ToString());
            }
            return;
        }