Exemple #1
0
        public void AddModulesToShip(IShip ship, int numMods, CargoSynchronizer cargoSynchronizer, LocalIDManager galaxyIDManager)
        {
            for (int i = 0; i < numMods; i++)
            {
                Module m        = null;
                int    moduleID = galaxyIDManager.PopFreeID();
                byte   level    = (byte)Rand.Random.Next(1, 4);
                int    modnum   = Rand.Random.Next(1, 11);
                {
                    switch (modnum)
                    {
                    case 1:
                        m = new EnergyRegenModule(moduleID, level);
                        break;

                    case 2:
                        m = new ThrustModule(moduleID, level);
                        break;

                    case 3:
                        m = new MaxShieldModule(moduleID, level);
                        break;

                    case 4:
                        m = new ShieldRegenModule(moduleID, level);
                        break;

                    case 5:
                        m = new MaxEnergyModule(moduleID, level);
                        break;

                    case 6:
                        m = new DamageModule(moduleID, level);
                        break;

                    case 7:
                        m = new DefenseModule(moduleID, level);
                        break;

                    case 8:
                        m = new TurnRateModule(moduleID, level);
                        break;

                    case 9:
                        m = new LateralThrustModule(moduleID, level);
                        break;

                    case 10:
                        m = new TopSpeedModule(moduleID, level);
                        break;
                    }
                }
                TransactionAddStatefulCargo str = new TransactionAddStatefulCargo(ship, m, true);
                str.OnCompletion += ship.CargoAdded;
                cargoSynchronizer.RequestTransaction(str);
            }
        }
Exemple #2
0
        public static Module InstantiateModule(CargoModuleData data)
        {
            Module retModule = null;

            int  id    = data.Id;
            byte level = data.Level;

            switch (data.ModuleType)
            {
            case ModuleTypes.EnergyRegenModule:
            {
                retModule = new EnergyRegenModule(id, level);
                break;
            }

            case ModuleTypes.MaxEnergyModule:
            {
                retModule = new MaxEnergyModule(id, level);
                break;
            }

            case ModuleTypes.MaxShieldModule:
            {
                retModule = new MaxShieldModule(id, level);
                break;
            }

            case ModuleTypes.ShieldRegenModule:
            {
                retModule = new ShieldRegenModule(id, level);
                break;
            }

            case ModuleTypes.ThrustModule:
            {
                retModule = new ThrustModule(id, level);
                break;
            }

            case ModuleTypes.DamageModule:
            {
                retModule = new DamageModule(id, level);
                break;
            }

            case ModuleTypes.DefenseModule:
            {
                retModule = new DefenseModule(id, level);
                break;
            }

            case ModuleTypes.TurnRateModule:
            {
                retModule = new TurnRateModule(id, level);
                break;
            }

            case ModuleTypes.LateralThrustModule:
            {
                retModule = new LateralThrustModule(id, level);
                break;
            }

            case ModuleTypes.TopSpeedModule:
            {
                retModule = new TopSpeedModule(id, level);
                break;
            }

            default:
                throw new NotImplementedException("Module type not implemented in MessageReader.ReadModule");
            }

            return(retModule);
        }