Exemplo n.º 1
0
        public static UNetServerEquipmentCollection <IEquippableItemInstance> CreateServerEquipmentCollection(
            string collectionName,
            System.Guid collectionGuid,
            NetworkIdentity owner,
            EquipmentCollectionSlot <IEquippableItemInstance>[] slots,
            IEquippableCharacter <IEquippableItemInstance> character)
        {
            var collection = new UNetServerEquipmentCollection <IEquippableItemInstance>(owner, 0, character)
            {
                collectionName = collectionName,
                ID             = collectionGuid
            };

            collection.slots = slots;
            for (int i = 0; i < collection.slots.Length; i++)
            {
                collection.slots[i].collection = collection;
                collection.slots[i].index      = i;
            }

            collection.Server_Register();

            // The server's owner object always has read/write permission.
            UNetPermissionsRegistry.collections.SetPermission(collection, owner, ReadWritePermission.ReadWrite);

            _logger.Log($"[Server] Created and registered equipment collection with name {collection.collectionName} and guid {collection.ID} for netID: {owner.netId}", collection);
            return(collection);
        }
Exemplo n.º 2
0
 public EquipmentCollectionSlot <IEquippableItemInstance> ToSlotInstance(IEquippableCharacter <IEquippableItemInstance> character)
 {
     return(new EquipmentCollectionSlot <IEquippableItemInstance>()
     {
         equipmentTypes = equipmentTypes.Cast <IEquipmentType>().ToArray(),
     });
 }
Exemplo n.º 3
0
        public static PUN2ClientEquipmentCollection <IEquippableItemInstance> CreateClientEquipmentCollection(
            string collectionName,
            System.Guid collectionGuid,
            PhotonView owner,
            PUN2ActionsBridge playerBridge,
            EquipmentCollectionSlot <IEquippableItemInstance>[] slots,
            IEquippableCharacter <IEquippableItemInstance> character)
        {
            var collection = new PUN2ClientEquipmentCollection <IEquippableItemInstance>(owner, playerBridge, 0, character)
            {
                collectionName = collectionName,
                ID             = collectionGuid
            };

            collection.slots = slots;
            for (int i = 0; i < collection.slots.Length; i++)
            {
                collection.slots[i].collection = collection;
                collection.slots[i].index      = i;
            }

            collection.Register();

            // The server's owner object always has read/write permission.
            PUN2PermissionsRegistry.collections.SetPermission(collection, owner, ReadWritePermission.None);

            _logger.Log($"[Client] Created and registered equipment collection with name '{collection.collectionName}' and guid '{collection.ID}' for ViewID: {owner.ViewID}", collection);

            return(collection);
        }
        public UNetServerEquipmentCollection(NetworkIdentity owner, int slotCount, IEquippableCharacter <TEquippableType> character, ILogger logger = null)
            : base(slotCount, character, logger)
        {
            this.owner = owner;

            OnSlotsChanged += NotifyOnSlotsChanged;
            OnSizeChanged  += NotifyOnSizeChanged;
        }
Exemplo n.º 5
0
        public static void SetItemProperty(IEquippableCharacter character, StatDecorator stat, SetItemPropertiesAction action, bool fireEvents = true)
        {
            Assert.IsNotNull(character, "Null player object passed, make sure the InventoryPlayerManager.instance.currentPlayer is set!");

            float multiplier = GetMultiplier(action);

            character.stats.Set(stat, multiplier);
        }
        public PUN2ServerEquipmentCollection(PhotonView owner, int slotCount, IEquippableCharacter <TEquippableType> character, ILogger logger = null)
            : base(slotCount, character, logger)
        {
            this.owner = owner;

            OnSlotsChanged += NotifyOnSlotsChanged;
            OnSizeChanged  += NotifyOnSizeChanged;
        }
Exemplo n.º 7
0
 public static void SetItemProperties(IEquippableCharacter character, StatDecorator[] stats, SetItemPropertiesAction action, bool fireEvents = true)
 {
     // Use the item's properties.
     if (character != null)
     {
         foreach (var property in stats)
         {
             SetItemProperty(character, property, action, fireEvents);
         }
     }
 }
        public bool CanUse(IEquippableCharacter character)
        {
            Assert.IsNotNull(character, "IEquippableCharacter object given is null");

            var stat = character.stats.Get(this.stat.category, this.stat.statName);

            if (stat != null)
            {
                switch (statValueType)
                {
                case StatValueType.CurrentValue:
                    return(IsAbbidingFilter(stat.currentValue, value, filterType));

                case StatValueType.Level:
                    return(IsAbbidingFilter(stat.currentLevelIndex + 1, value, filterType));

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(false);
        }
Exemplo n.º 9
0
 public EquipmentCollection(int slotCount, IEquippableCharacter <TEquippableType> character, ILogger logger = null)
     : base(slotCount, character, logger)
 {
 }
Exemplo n.º 10
0
 public UNetClientEquipmentCollection(NetworkIdentity owner, UNetActionsBridge actionBridge, int slotCount, IEquippableCharacter <TEquippableType> character, ILogger logger = null)
     : base(slotCount, character, logger)
 {
     this.actionBridge = actionBridge;
     this.owner        = owner;
 }
Exemplo n.º 11
0
        public EquipmentCollectionSlot <IEquippableItemInstance> ToSlotInstance(IDatabase <UnityEquipmentType> database, IEquippableCharacter <IEquippableItemInstance> character)
        {
            var slot = new EquipmentCollectionSlot <IEquippableItemInstance>
            {
                equipmentTypes = equipmentTypeGuids.Select(o => database.Get(new Identifier(o.guid)).result).Cast <IEquipmentType>().ToArray()
            };

            return(slot);
        }
Exemplo n.º 12
0
 public EquipmentCollectionBase(int slotCount, IEquippableCharacter <TEquippableType> characterOwner, ILogger logger = null)
     : base(slotCount, logger)
 {
     this.characterOwner = characterOwner;
     GenerateSlots <TSlotType>();
 }
 public PUN2ClientEquipmentCollection(PhotonView owner, PUN2ActionsBridge actionBridge, int slotCount, IEquippableCharacter <TEquippableType> character, ILogger logger = null)
     : base(slotCount, character, logger)
 {
     this.actionBridge = actionBridge;
     this.owner        = owner;
 }