public void BuyWeapon(int itemID) { // we take price from UI short price = System.Convert.ToInt16(this.price.text.TrimStart('£')); // sound of click if we have money AudioSystem.inst.Click(GameManager.inst.myPlayerData.money >= price && lockedItems.BinarySearch(itemID) < 0); // exit if we dont have money, or this item is locked for us if (GameManager.inst.myPlayerData.money < price || lockedItems.BinarySearch(itemID) > -1) { return; } GameManager.inst.myPlayerData.money -= price; if (GameManager.inst.myCharacterControl.isDead) { StartCoroutine(WaitUntilSpawn(itemID)); ShopOpenAndClose(); return; } // spawn buyed item GameObject newPortal = PhotonNetwork.Instantiate(weaponsPortal.name , GameManager.inst.myPlayerData.gameObject.transform.position + new Vector3(0.45f * ((GameManager.inst.myCharacterControl.facingRight) ? 1 : -1), 0.1f, 0) , Quaternion.identity); WeaponsPortal script = newPortal.GetComponent <WeaponsPortal> (); script.pView.RPC("SpawnOfSpawner", RpcTarget.AllBuffered, false); script.OrderOfSpawn((byte)itemID); ShopOpenAndClose(); }
IEnumerator WaitUntilSpawn(int itemID) { // wait while (GameManager.inst.myCharacterControl.isDead) { yield return(new WaitForSeconds(0.4f)); } // spawn buyed item GameObject newPortal = PhotonNetwork.Instantiate(weaponsPortal.name , GameManager.inst.myPlayerData.gameObject.transform.position + new Vector3(0.45f * ((GameManager.inst.myCharacterControl.facingRight) ? 1 : -1), 0.1f, 0) , Quaternion.identity); WeaponsPortal script = newPortal.GetComponent <WeaponsPortal> (); script.pView.RPC("SpawnOfSpawner", RpcTarget.AllBuffered, false); script.OrderOfSpawn((byte)itemID); }