DefenseModule CreateDefenseModule(AICharacterData data) { var defenseModule = new DefenseModule(); defenseModule.damageReduction = data.damageReduction; return(defenseModule); }
DefenseModule CreateDefenseModule(BasePlayerCharacterStats baseStats) { var defenseModule = new DefenseModule(); defenseModule.damageReduction = baseStats.baseDamageReduction; return(defenseModule); }
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); } }
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); }
/* isp InstallDefensiveModule() * * Input variables: * defenseModule: * defenseModule.Size = * defenseModule.name = * slot = * * State variables: * DefenseModules [slot -1] = null, defenseModule * */ public void InstallDefensiveModule(DefenseModule defenseModule, uint slot) { if (slot >= DefenseModules.Length) { throw new ArgumentOutOfRangeException(nameof(slot), "Invalid slot."); } if (this is Shuttle || this is Corvette || this is Frigate) { if (defenseModule.Size == DefenseModuleGrades.Small) { DefenseModules[slot - 1] = defenseModule; } else { throw new InvalidOperationException($"Can not install a small '{defenseModule.Name}' defensive module in '{Name}' ship"); } } else if (this is Destroyer || this is Cruiser || this is BattleCruiser) { if (defenseModule.Size == DefenseModuleGrades.Medium) { DefenseModules[slot - 1] = defenseModule; } else { throw new InvalidOperationException($"Can not install a medium '{defenseModule.Name}' defensive module in '{Name}' ship"); } } else if (this is Battleship || this is Dreadnaut || this is Juggernaut) { if (defenseModule.Size == DefenseModuleGrades.Large) { DefenseModules[slot - 1] = defenseModule; } else { throw new InvalidOperationException($"Can not install a large '{defenseModule.Name}' defensive module in '{Name}' ship"); } } else if (this is Carrier || this is SuperCarrier) { if (defenseModule.Size == DefenseModuleGrades.XLarge) { DefenseModules[slot - 1] = defenseModule; } else { throw new InvalidOperationException($"Can not install a xlarge '{defenseModule.Name}' defensive module in '{Name}' ship"); } } else if (this is Titan || this is SuperTitan) { if (defenseModule.Size == DefenseModuleGrades.XXLagre) { DefenseModules[slot - 1] = defenseModule; } else { throw new InvalidOperationException($"Can not install a xxlarge '{defenseModule.Name}' defensive module in '{Name}' ship"); } } else if (this is DeathStar) { if (defenseModule.Size == DefenseModuleGrades.Doomsday) { DefenseModules[slot - 1] = defenseModule; } else { throw new InvalidOperationException($"Can not install a doomsday '{defenseModule.Name}' defensive module in '{Name}' ship"); } } else { throw new InvalidOperationException("Invlid ship"); } }