Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }