// [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); }