Ejemplo n.º 1
0
    public void PickUp(Item item)
    {
        bool remain = false;

        switch (item.type)
        {
        case "Ammo":
            PlayerWeaponManager wm = player.GetComponent <PlayerWeaponManager>();
            wm.ammo_count[wm.ammo_type.IndexOf(item.name)] += Mathf.RoundToInt(item.count);
            items.Remove(item);
            break;

        case "Health":
            PlayerStats ps = player.GetComponent <PlayerStats>();
            ps.health += item.count;
            items.Remove(item);
            break;

        case "Fuel":
            PlayerMove pm       = player.GetComponent <PlayerMove>();
            float      leftover = pm.AddFuel(item.count);
            if (leftover != 0)
            {
                item.count = leftover;
                remain     = true;
            }
            items.Remove(item);
            break;

        case "Module":
            PlayerModuleManager mm = player.GetComponent <PlayerModuleManager>();
            if (mm.InsertModule(item.module) == false)
            {
                remain = true;
            }
            items.Remove(item);
            break;

        case "Weapon":
            GameObject wp = Instantiate((item.obj), transform.position, Quaternion.identity);
            wp.GetComponent <WeaponStats>()._GM_ = GameObject.FindGameObjectWithTag("GM").GetComponent <GM>();
            wp.GetComponent <WeaponStats>().PickUp(player.GetComponent <PlayerPickUp>().weaponsFolder.transform);
            items.Remove(item);
            break;
        }
        if (remain)
        {
            items.Add(item);
        }

        RefreshSlots();
    }
Ejemplo n.º 2
0
    public void PickUp(int index)
    {
        //Debug.Log("Picking Up: " + index);
        if (index >= items.Count)
        {
            return;
        }
        Item item   = items[index];
        bool remain = false;

        switch (item.type)
        {
        case "Ammo":
            PlayerWeaponManager wm = player.GetComponent <PlayerWeaponManager>();
            wm.ammo_count[wm.ammo_type.IndexOf(item.name)] += Mathf.RoundToInt(item.count);
            items.Remove(item);
            GM.DisplayText3("Picked up: " + item.name + " x (" + item.count + ")", false, 0);
            break;

        case "Health":
            PlayerStats ps = player.GetComponent <PlayerStats>();
            ps.health += item.count;
            items.Remove(item);
            GM.DisplayText3("Health += " + item.count, false, 0);
            break;

        case "Fuel":
            PlayerMove pm       = player.GetComponent <PlayerMove>();
            float      leftover = pm.AddFuel(item.count);
            if (leftover != 0)
            {
                if (leftover == item.count)
                {
                    GM.DisplayText3("Maximum fuel capacity reached", false, 0);
                }
                else
                {
                    item.count = leftover;
                    remain     = true;
                    GM.DisplayText3("Fuel += " + (item.count - leftover) + "mL", false, 0);
                }
            }
            else
            {
                GM.DisplayText3("Fuel += " + item.count + "mL", false, 0);
            }
            items.Remove(item);
            break;

        case "Module":
            PlayerModuleManager mm = player.GetComponent <PlayerModuleManager>();
            if (mm.InsertModule(item.module) == false)
            {
                remain = true;
            }
            //GM.DisplayText3("Module Added: " + item.module.ID + " [LV. " + item.module.level + "]", false, 0);
            //GM.DisplayText("Module Added: " + item.module.ID + " [LV. " + item.module.level + "]", false);
            items.Remove(item);
            break;

        case "Weapon":
            GameObject wp = Instantiate((item.obj), transform.position, Quaternion.identity);
            wp.GetComponent <WeaponStats>()._GM_ = GameObject.FindGameObjectWithTag("GM").GetComponent <GM>();
            wp.GetComponent <WeaponStats>().PickUp(player.GetComponent <PlayerPickUp>().weaponsFolder.transform);
            GM.DisplayText("Picked up: " + item.name, false);
            GM.DisplayText3("Picked up: " + item.name, false, 0);
            items.Remove(item);
            break;

        case "Deployable":
            DeployablesManager dm = player.GetComponent <DeployablesManager>();
            dm.dplybles_count[dm.deployables.IndexOf(item.obj)] += (int)item.count;
            GM.DisplayText3("Picked up: " + item.name + " GRND x (" + item.count + ")", false, 0);
            GM.DisplayText("Picked up: " + item.name + " GRND x (" + item.count + ")", false);
            items.Remove(item);
            break;
        }
        if (remain)
        {
            items.Add(item);
        }
        RefreshSlots();
    }
Ejemplo n.º 3
0
    public void Access()
    {
        bool remain = false;

        switch (type)
        {
        case "Ammo":
            PlayerWeaponManager wm = GM.GetPlayer().GetComponent <PlayerWeaponManager>();
            wm.ammo_count[wm.ammo_type.IndexOf(name)] += Mathf.RoundToInt(count);
            GM.DisplayText3("Picked up: " + name + " x (" + count + ")", false, 0);
            break;

        case "Deployable":
            bool ant = false;
            foreach (Item _GM_I in GM.GetGM().itemsList)
            {
                if (_GM_I.name == name)
                {
                    Item a = _GM_I;
                    a.count = Mathf.RoundToInt(count);
                    DeployablesManager dm = GM.GetPlayer().GetComponent <DeployablesManager>();
                    dm.dplybles_count[dm.deployables.IndexOf(a.obj)] += (int)a.count;
                    GM.DisplayText3("Picked up: " + name + " GRND x (" + count + ")", false, 0);
                    ant = true;
                    break;
                }
            }
            if (!ant)
            {
                Debug.Log("ERR: Unknown deployable item name");
            }
            break;

        case "Health":
            PlayerStats ps = GM.GetPlayer().GetComponent <PlayerStats>();
            ps.health += count;
            GM.DisplayText3("Health += " + count, false, 0);
            break;

        case "Fuel":
            PlayerMove pm       = GM.GetPlayer().GetComponent <PlayerMove>();
            float      leftover = pm.AddFuel(count);
            if (leftover != 0)
            {
                if (leftover == count)
                {
                    GM.DisplayText3("Maximum fuel capacity reached", false, 0);
                }
                else
                {
                    GM.DisplayText3("Fuel += " + (count - leftover) + "mL", false, 0);
                    count  = leftover;
                    remain = true;
                }
            }
            else
            {
                GM.DisplayText3("Fuel += " + count + "mL", false, 0);
            }
            break;
        }

        if (!remain)
        {
            Destroy(gameObject);
        }
    }