Beispiel #1
0
//        [ServerCallback]
        private void Start()
        {
            if (isServer)
            {
                collection = UNetCollectionUtility.CreateServerVendorItemCollection(10, _vendorCollectionName, _vendorCollectionGuid.guid, _identity);
                foreach (var itemDef in _itemDefs)
                {
                    if (itemDef == null)
                    {
                        continue;
                    }

                    var inst = ItemFactory.CreateInstance(itemDef, Guid.NewGuid());
                    var prod = new VendorProduct <IItemInstance>(inst, itemDef.buyPrice, itemDef.sellPrice);
                    collection.Add(prod);
                }
            }

            _vendor = new UNetVendor <IItemInstance>(_vendorGuid.guid, _vendorCollectionName, _vendorCollectionGuid.guid, _identity, collection, new InfiniteCurrencyCollection()); // TODO: Make currency customizable

            if (isServer)
            {
                ServerVendorRegistry.itemVendors.Register(_vendorGuid.guid, _vendor);
            }

            if (isClient)
            {
                VendorRegistry.itemVendors.Register(_vendorGuid.guid, _vendor);
            }
        }
        public void TargetRpc_AddVendorItemCollection(NetworkConnection target, AddCollectionMessage data)
        {
            var collection = UNetActionsBridge.collectionFinder.GetClientCollection(data.collectionGuid) as UNetClientCollection <IVendorProduct <IItemInstance> >;

            if (collection == null)
            {
                collection = UNetCollectionUtility.CreateClientVendorItemCollection(data.slotCount, data.collectionName, data.collectionGuid, data.owner, bridge);
            }
        }
        public void TargetRpc_AddEquipmentCollection(NetworkConnection target, AddEquipmentCollectionMessage data)
        {
            var collection = UNetActionsBridge.collectionFinder.GetClientCollection(data.collectionGuid);

            if (collection == null)
            {
                var equippableCharacter = bridge.GetComponent <IEquippableCharacter <IEquippableItemInstance> >();
                var restoreItemsToGroup = bridge.GetComponent <IInventoryCollectionOwner>().itemCollectionGroup;
                collection = UNetCollectionUtility.CreateClientEquipmentCollection(data.collectionName, data.collectionGuid, data.owner, bridge, data.slots.Select(o => o.ToSlotInstance(bridge.equipmentTypeDatabase, equippableCharacter)).ToArray(), equippableCharacter);
            }
        }
        public UNetServerEquipmentCollection <IEquippableItemInstance> Server_AddEquipmentCollectionToServer(AddEquipmentCollectionMessage data)
        {
            var col = GetServerCollection(data.collectionGuid) as UNetServerEquipmentCollection <IEquippableItemInstance>;

            if (col == null)
            {
                var equippableCharacter = GetComponent <IEquippableCharacter <IEquippableItemInstance> >();
//                var restoreItemsToGroup = GetComponent<IInventoryCollectionOwner>().itemCollectionGroup;
                col = UNetCollectionUtility.CreateServerEquipmentCollection(data.collectionName, data.collectionGuid, data.owner, data.slots.Select(o => o.ToSlotInstance(_equipmentTypeDatabase, equippableCharacter)).ToArray(), equippableCharacter);
            }

            return(col);
        }
        public IUNetCollection Server_AddVendorItemCollectionToServer(AddCollectionMessage data)
        {
            // NOTE: The collection might already exist server side on the target objects (for example, a trigger)

            var col = GetServerCollection(data.collectionGuid);

            if (col == null)
            {
                col = UNetCollectionUtility.CreateServerVendorItemCollection(data.slotCount, data.collectionName, data.collectionGuid, data.owner);
            }

            return(col);
        }
        public UNetServerCollection <IItemInstance> Server_AddCollectionToServer(AddCollectionMessage data)
        {
            // NOTE: The collection might already exist server side on the target objects (for example, a trigger)

            var col = GetServerCollection(data.collectionGuid) as UNetServerCollection <IItemInstance>;

            if (col == null)
            {
                col = UNetCollectionUtility.CreateServerItemCollection(data.slotCount, data.collectionName, data.collectionGuid, data.owner);
//                unetPlayer.Server_AddCollection(col, new CollectionPriority<IItemInstance>());
            }

            return(col);
        }