private void GenerateNewShipModel(DropManager dropManager) { if (StartModel == null) { SetStartModel(nebulaObject.Tag((byte)PlayerTags.Model) as Hashtable); } ShipModule prevModule = null; var character = GetComponent <CharacterObject>(); Hashtable model = new Hashtable(); foreach (DictionaryEntry entry in StartModel) { log.InfoFormat("start model {0} = {1}", entry.Key, entry.Value); model.Add(int.Parse(entry.Key.ToString()), entry.Value); } log.InfoFormat("Module: {0}", (string)model[(int)ShipModelSlotType.CB]); ModuleDropper.ModuleDropParams dpCB = new ModuleDropper.ModuleDropParams(nebulaObject.world.Resource(), (string)model[(int)ShipModelSlotType.CB], character.level, Difficulty.none, this.GenerateStartModuleCraftMaterials(), ObjectColor.white, string.Empty); var module = dropManager.GetModuleDropper(dpCB).Drop() as ShipModule; SetModule(module, out prevModule); log.InfoFormat("Generate module with skill = {0}", module.Skill); log.InfoFormat("Module: {0}", (string)model[(int)ShipModelSlotType.CM]); ModuleDropper.ModuleDropParams dpCM = new ModuleDropper.ModuleDropParams(nebulaObject.world.Resource(), (string)model[(int)ShipModelSlotType.CM], character.level, Difficulty.none, this.GenerateStartModuleCraftMaterials(), ObjectColor.white, string.Empty); module = dropManager.GetModuleDropper(dpCM).Drop() as ShipModule; SetModule(module, out prevModule); log.InfoFormat("Generate module with skill = {0}", module.Skill); log.InfoFormat("Module: {0}", (string)model[(int)ShipModelSlotType.DF]); ModuleDropper.ModuleDropParams dpDF = new ModuleDropper.ModuleDropParams(nebulaObject.world.Resource(), (string)model[(int)ShipModelSlotType.DF], character.level, Difficulty.none, this.GenerateStartModuleCraftMaterials(), ObjectColor.white, string.Empty); module = dropManager.GetModuleDropper(dpDF).Drop() as ShipModule; SetModule(module, out prevModule); log.InfoFormat("Generate module with skill = {0}", module.Skill); log.InfoFormat("Module: {0}", (string)model[(int)ShipModelSlotType.DM]); ModuleDropper.ModuleDropParams dpDM = new ModuleDropper.ModuleDropParams(nebulaObject.world.Resource(), (string)model[(int)ShipModelSlotType.DM], character.level, Difficulty.none, this.GenerateStartModuleCraftMaterials(), ObjectColor.white, string.Empty); module = dropManager.GetModuleDropper(dpDM).Drop() as ShipModule; SetModule(module, out prevModule); log.InfoFormat("Generate module with skill = {0}", module.Skill); log.InfoFormat("Module: {0}", (string)model[(int)ShipModelSlotType.ES]); ModuleDropper.ModuleDropParams dpES = new ModuleDropper.ModuleDropParams(nebulaObject.world.Resource(), (string)model[(int)ShipModelSlotType.ES], character.level, Difficulty.none, this.GenerateStartModuleCraftMaterials(), ObjectColor.white, string.Empty); module = dropManager.GetModuleDropper(dpES).Drop() as ShipModule; SetModule(module, out prevModule); log.InfoFormat("Generate module with skill = {0}", module.Skill); }
protected virtual void GenerateModule(DropManager dropManager, ShipModelSlotType slotType) { ModuleDropper moduleDropper = null; ShipModule prevModule = null; var CB = resource.ModuleTemplates.RandomModule((Workshop)mCharacter.workshop, slotType); var CBParams = new ModuleDropper.ModuleDropParams( resource, CB.Id, mCharacter.level, mDifficulty, new Dictionary <string, int>(), ObjectColor.white, string.Empty ); moduleDropper = dropManager.GetModuleDropper(CBParams); shipModel.SetModule(moduleDropper.Drop() as ShipModule, out prevModule); }
public override ServerInventoryItem Roll(IRes resource, int level, Workshop workshop) { DropManager dropManager = DropManager.Get(resource); var cl = resource.colorLists.GetList(colorList); ObjectColor color = cl.Roll(); string moduleTemplate = string.Empty; string setId = string.Empty; if (color != ObjectColor.green) { moduleTemplate = resource.ModuleTemplates.RandomModule(workshop, moduleType).Id; } else { var generatedSetInfo = dropManager.GenerateSet(level, workshop, moduleType); if (!string.IsNullOrEmpty(generatedSetInfo.setId)) { moduleTemplate = generatedSetInfo.moduleTemplateId; setId = generatedSetInfo.setId; } else { color = ObjectColor.orange; moduleTemplate = resource.ModuleTemplates.RandomModule(workshop, moduleType).Id; } } ModuleDropper.ModuleDropParams dropParams = new ModuleDropper.ModuleDropParams( resource, moduleTemplate, level, Difficulty.none, new Dictionary <string, int>(), color, setId); ModuleDropper moduleDropper = dropManager.GetModuleDropper(dropParams); ShipModule module = moduleDropper.Drop() as ShipModule; return(new ServerInventoryItem(module, 1)); }