示例#1
0
 private void VerifyRegistry <T>(T behaviour) where T : ICollecteable
 {
     if (behaviour is ReserveAcquired)
     {
         ReserveAcquired reserve = behaviour as ReserveAcquired;
         if (!reserveSearch.ContainsKey(reserve.ID))
         {
             reserveSearch.Add(reserve.ID, reserve);
             //HandlePickupReserve(reserve);
         }
         else
         {
             Destroy(reserve.gameObject);
         }
     }
     else if (behaviour is ItemAcquired)
     {
         ItemAcquired item = behaviour as ItemAcquired;
         if (!itemSearch.ContainsKey(item.ID))
         {
             itemSearch.Add(item.ID, item);
             //HandlePickupItem(item);
         }
         else
         {
             Destroy(item.gameObject);
         }
     }
 }
示例#2
0
    private void ReserveAcquired(ReserveAcquired reserve)
    {
        itemGot = reserve.gameObject;
        var ammo       = inventory.limitedAmmo;
        var ammoSearch = inventory.limitedAmmoSearch;

        switch (reserve.ItemType)
        {
        case ReserveType.Missile:
            ammo[0].AddCapacity(999);
            break;

        case ReserveType.SuperMissile:
            //Check if is the first time on get the item.
            if (!ammoSearch.ContainsKey(1))
            {
                PlayerInventory.CountableAmmo newAmmo =
                    new PlayerInventory.CountableAmmo(false, 1, defaultAmmoPrefabs[0], 0, 0);
                ammoSearch.Add(1, newAmmo);
                if (ammo.Count > 1)
                {
                    List <PlayerInventory.CountableAmmo> aux = new List <PlayerInventory.CountableAmmo>();
                    aux.Add(ammo[0]);
                    aux.Add(newAmmo);
                    aux.Add(ammo[1]);
                    inventory.limitedAmmo = aux;
                }
                else
                {
                    ammo.Add(newAmmo);
                }
                hudUI.AddAndSubscribe(1);
            }
            ammoSearch[1].AddCapacity(999);
            break;

        case ReserveType.SuperBomb:
            //Check if is the first time on get the item.
            if (!ammoSearch.ContainsKey(2))
            {
                PlayerInventory.CountableAmmo newAmmo =
                    new PlayerInventory.CountableAmmo(false, 2, defaultAmmoPrefabs[1], 0, 0);
                ammoSearch.Add(2, newAmmo);
                ammo.Add(newAmmo);
                hudUI.AddAndSubscribe(2);
            }
            ammoSearch[2].AddCapacity(20);
            break;

        case ReserveType.EnergyTank:
            GameEvents.healthTank.Invoke();
            break;
        }
        AddToPlayerInventory(reserve);
        audioPlayer.ClipAndPlay(reserveAcquired);
        panel.transform.GetChild(0).GetComponent <TextMeshProUGUI>().text = reserve.nameItem;
        Pause.onAnyMenu = true;
    }
示例#3
0
 private void AddToPlayerInventory(ReserveAcquired reserve)
 {
     inventory.reserve.Add(reserve.ID);
 }
示例#4
0
 public void HandlePickupReserve(ReserveAcquired reserveItem)
 {
     Pickup.Invoke();
     ReserveAcquired(reserveItem);
     StartCoroutine(Resume(reserveAcquired.length));
 }