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