public virtual void SetKit(WeaponKitData data, KitSlot slot)
        {
            for (int i = 0; i < WeaponKit.Count; i++)
            {
                if (kit[i] != null)
                {
                    Drop(WeaponKit.IndexToSlot(i));
                }
            }

            for (int i = 0; i < WeaponKit.Count; i++)
            {
                kit[i] = SpawnWeapon(data.Kit[i]);

                kit[i].Init(This);

                if (i == WeaponKit.SlotToIndex(slot))
                {
                    EquipInternal(slot);
                }
                else
                {
                    kit[i].UnEquip.Apply();
                }
            }
        }
        public virtual void Equip(KitSlot newSlot)
        {
            if (newSlot == slot)
            {
            }
            else
            {
                if (kit[newSlot] == null)
                {
                    Debug.LogWarning("Trying To Equip " + newSlot + " But No Weapon Is Located In That Slot");
                }
                else
                {
                    if (CurrentWeapon == null || CurrentWeapon.CanUnEquip)
                    {
                        UnEquip();

                        EquipInternal(newSlot);
                    }
                    else
                    {
                    }
                }
            }
        }
        public virtual KitSlot GetPreviousValidSlot()
        {
            KitSlot newSlot = slot;

            do
            {
                newSlot = slot.GetPreviousValue();
            }while (kit[newSlot] == null);

            return(newSlot);
        }
        public virtual TWeapon this[KitSlot slot]
        {
            get
            {
                switch (slot)
                {
                case KitSlot.Primary:
                    return(primary);

                case KitSlot.Secondary:
                    return(secondary);

                case KitSlot.Melee:
                    return(melee);
                }

                throw new NotImplementedException();
            }
            set
            {
                switch (slot)
                {
                case KitSlot.Primary:
                    Primary = value;
                    return;

                case KitSlot.Secondary:
                    Secondary = value;
                    return;

                case KitSlot.Melee:
                    Melee = value;
                    return;
                }

                throw new NotImplementedException();
            }
        }
        protected virtual void UpdateSwitch(int input)
        {
            if (input == 0)
            {
            }
            else
            {
                KitSlot newSlot = slot;

                if (input > 0)
                {
                    newSlot = GetNextValidSlot();
                }
                else
                {
                    newSlot = GetPreviousValidSlot();
                }

                if (newSlot != slot)
                {
                    Equip(newSlot);
                }
            }
        }
 protected virtual void Drop(KitSlot slot)
 {
     kit[slot].Drop.Process();
 }
        protected virtual void EquipInternal(KitSlot newSlot)
        {
            kit[newSlot].Equip.Process();

            slot = newSlot;
        }
 public virtual void Swap(KitSlot newSlot, WeaponData weapon)
 {
     Swap(newSlot, SpawnWeapon(weapon));
 }
        public virtual void Swap(KitSlot newSlot, Weapon weapon)
        {
            Drop(newSlot);

            kit[newSlot] = weapon;
        }
Beispiel #10
0
        protected override void EquipInternal(KitSlot newSlot)
        {
            base.EquipInternal(newSlot);

            Level.MenuInstance.HUD.Weapons.UpdateWeapon(kit[newSlot]);
        }
 public static int SlotToIndex(KitSlot slot)
 {
     return((int)slot);
 }