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