コード例 #1
0
        private void AddStartItemToInventory()
        {
            Workshop       workshop      = (Workshop)(byte)(int)nebulaObject.Tag((byte)PlayerTags.Workshop);
            SchemeDropper  schemeDropper = new SchemeDropper(workshop, 1, resource, ObjectColor.white);
            MaterialObject material      = new MaterialObject("CraftOre0001", workshop, 1, resource.Materials.Ore("CraftOre0001"));
            SchemeObject   scheme        = schemeDropper.Drop() as SchemeObject;

            scheme.ReplaceCraftingMaterials(new Dictionary <string, int> {
                { "CraftOre0001", 1 }
            });
            Inventory.Add(scheme, 1);
            Inventory.Add(material, 5);
            log.InfoFormat("adding tutorial crafting materials at start yellow");
        }
コード例 #2
0
        private void UpdateDropList()
        {
            content.Clear();
            switch (dropList)
            {
            case DropList.RandomSchemeOfWorldLevel:
            {
                SchemeDropper dropper = new SchemeDropper(
                    CommonUtils.GetRandomEnumValue <Workshop>(new List <Workshop>()),
                    (nebulaObject.world as MmoWorld).Zone.Level,
                    nebulaObject.resource);

                SchemeObject scheme = dropper.Drop() as SchemeObject;
                AddContent(new ServerInventoryItem(scheme, 1));
            }
            break;
            }
        }
コード例 #3
0
 private void CheckComplete()
 {
     if (pirates.Count > 0)
     {
         if (allIsDead)
         {
             log.InfoFormat("Activator complete create chest".Yellow());
             pirates.Clear();
             SchemeDropper dropper = new SchemeDropper(CommonUtils.GetRandomEnumValue <Workshop>(new List <Workshop>()), 1, nebulaObject.resource, ObjectColor.orange);
             SchemeObject  scheme  = dropper.Drop() as SchemeObject;
             ConcurrentBag <ServerInventoryItem> dropList = new ConcurrentBag <ServerInventoryItem> {
                 new ServerInventoryItem(scheme, 1)
             };
             var obj = ObjectCreate.SharedChest((nebulaObject.world as MmoWorld), transform.position + Rand.UnitVector3() * 4, 5 * 60, dropList);
             obj.AddToWorld();
             SetCooldownTimer(cooldown);
             SetInteractable(false);
         }
     }
 }
コード例 #4
0
        public void TestCase()
        {
            Dictionary <ShipModelSlotType, int> countDict = new Dictionary <ShipModelSlotType, int>()
            {
                { ShipModelSlotType.CB, 0 },
                { ShipModelSlotType.CM, 0 },
                { ShipModelSlotType.DF, 0 },
                { ShipModelSlotType.DM, 0 },
                { ShipModelSlotType.ES, 0 }
            };
            Res res = new Res(@"C:\development\Nebula\TestClient\bin\Debug");

            res.Load();

            DropManager dropManager  = DropManager.Get(res);
            int         totalModules = 0;

            while (!Check(countDict))
            {
                SchemeDropper schemeDropper = new SchemeDropper(Workshop.RedEye, 5, res);
                var           scheme        = schemeDropper.Drop() as SchemeObject;
                var           module        = scheme.Transform(dropManager) as ShipModule;
                totalModules++;
                if (module.Color == ObjectColor.green)
                {
                    Console.WriteLine("Green module {0} = {1}", module.SlotType, module.Set);
                    countDict[module.SlotType]++;
                }
            }

            Console.WriteLine("============================");
            Console.WriteLine("Total modules = {0}", totalModules);
            foreach (var pair in countDict)
            {
                Console.WriteLine("{0}={1}", pair.Key, pair.Value);
            }
            Console.WriteLine("===============================");
        }