public DamagerMono TakePooledDamager(DamagerMono damager) { for (int i = 0; i < PooledDamagers.Count; i++) { DamagerMono dam = PooledDamagers[i]; if (dam.GetType() == damager.GetType()) { PooledDamagers.RemoveAt(i); return(dam); } } return(null); }
private void DropWeapon() { if (Weapon != null) { Pickup pToMatch = Weapon.damagerSO.pickup.GetComponent <Pickup>(); Pickup p = pToMatch.pool.TakePooledPickup(pToMatch); if (p) { p.transform.position = DropPos; } else { GameObject.Instantiate(Weapon.damagerSO.pickup, DropPos, Quaternion.identity); } Weapon.gameObject.SetActive(false); } Weapon = null; }
private void InteractChecks() { if (ShouldInteract) { IInteractable inter = Tracker.GetNearestInteractable(); if (inter != null) { inter.Interact(); } else if (PickupInRange) { DamagerMono damager = PickupInRange.GetPickup().GetComponent <DamagerMono>(); if (damager != null) { PickupWeapon(damager); } } else if (PickupInRange == false && Weapon) { DropWeapon(); } } }
public void AddPooledDamager(DamagerMono damager) { damager.gameObject.SetActive(false); PooledDamagers.Add(damager); }
private void PickupWeapon(DamagerMono damager) { DropWeapon(); Weapon = GameObject.Instantiate(damager, DominantHand.transform); }