示例#1
0
    void Update()
    {
        RaycastHit hit;
        Vector3    position = shootPoint.position;

        position.y += 1;                // Adjust height differences

        // Debug.DrawRay(position, transform.TransformDirection(Vector3.forward * detectRange), Color.red);
        if (Physics.Raycast(position, transform.TransformDirection(Vector3.forward * detectRange), out hit, detectRange))
        {
            if (hit.transform.tag == "Shop")
            {
                Shop     shop          = hit.transform.GetComponent <Shop>();
                ShopType shopType      = shop.shopType;
                string   shopTitle     = shop.title;
                string   shopDesc      = shop.description;
                int      shopPrice     = shop.price;
                bool     isPurchasable = true;

                WeaponManager weaponManager = transform.Find("WeaponHolder").GetComponent <WeaponManager>();
                WeaponBase    weaponBase    = weaponManager.currentWeaponGO.GetComponent <WeaponBase>();
                Weapon        weapon        = weaponManager.currentWeapon;

                if (shopType == ShopType.AMMO)
                {
                    shopPrice     = GetAmmoPrice(weapon);
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }
                else if (shopType == ShopType.UPGRADE_DAMAGE)
                {
                    int upgraded = weaponBase.upgradeDamage;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradePrice(weaponManager.currentWeapon, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_RELOAD)
                {
                    int upgraded = weaponBase.upgradeReload;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradePrice(weaponManager.currentWeapon, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_RECOIL)
                {
                    int upgraded = weaponBase.upgradeRecoil;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradePrice(weaponManager.currentWeapon, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else
                {
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }

                if (isPurchasable && (Input.GetButtonDown("Fire3") || Input.GetKeyDown(KeyCode.X)))
                {
                    nextFire = myTime + fireDelta;

                    FundSystem fundSystem = transform.parent.GetComponent <FundSystem>();
                    int        fund       = fundSystem.GetFund();

                    if (fund < shopPrice)
                    {
                        PrintWarning("Not enough money!");
                    }
                    else
                    {
                        bool wasPurchased = true;

                        if (shopType == ShopType.AMMO)
                        {
                            weaponBase.bulletsLeft = weaponBase.startBullets + weaponBase.bulletsPerMag;
                            weaponBase.UpdateAmmoText();
                        }
                        else if (shopType == ShopType.WEAPON_MP5K)
                        {
                            if (!weaponManager.HasWeapon(Weapon.MP5K))
                            {
                                BuyWeapon(Weapon.MP5K);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_AKM)
                        {
                            if (!weaponManager.HasWeapon(Weapon.AKM))
                            {
                                BuyWeapon(Weapon.AKM);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_M870)
                        {
                            if (!weaponManager.HasWeapon(Weapon.M870))
                            {
                                BuyWeapon(Weapon.M870);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_DAMAGE)
                        {
                            if (weaponBase.upgradeDamage >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_DAMAGE);
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_RELOAD)
                        {
                            if (weaponBase.upgradeReload >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_RELOAD);
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_RECOIL)
                        {
                            if (weaponBase.upgradeRecoil >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_RECOIL);
                            }
                        }
                        else
                        {
                            wasPurchased = false;
                        }

                        if (wasPurchased)
                        {
                            fundSystem.TakeFund(shopPrice);
                            SoundManager soundManager = transform.Find("SoundManager").GetComponent <SoundManager>();
                            soundManager.Play(purchasedSound);
                        }
                    }

                    nextFire = nextFire - myTime;
                    myTime   = 0.0F;
                }
            }
        }
        else
        {
            shopText.text = "";
        }
    }
示例#2
0
    void Update()
    {
        RaycastHit hit;
        Vector3    position = shootPoint.position;

        position.y += 1;                // Adjust height differences

        //მაუსის დაფიქსირება როდესაც რომელიმე მაღაზიასთან შევა კონტაკტში
        if (Physics.Raycast(position, transform.TransformDirection(Vector3.forward * detectRange), out hit, detectRange))
        {
            if (hit.transform.tag == "Shop")
            {
                Shop     shop          = hit.transform.GetComponent <Shop>();
                ShopType shopType      = shop.shopType;
                string   shopTitle     = shop.title;
                string   shopDesc      = shop.description;
                int      shopPrice     = shop.price;
                bool     isPurchasable = true;

                WeaponManager weaponManager = transform.parent.gameObject.GetComponent <WeaponManager>();
                WeaponBase    weaponBase    = weaponManager.currentWeaponGO.GetComponent <WeaponBase>();
                Weapon        weapon        = weaponManager.currentWeapon;
                Player        player        = transform.parent.GetComponent <Player>();

                //ტყვიების მომატება
                if (shopType == ShopType.AMMO)
                {
                    shopPrice     = GetAmmoCost(weapon, weaponBase);
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }
                // სიცოცხლეს ამატება
                else if (shopType == ShopType.HEAL)
                {
                    shopPrice     = 100 + (75 * healUsed);
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }
                //დაკლების გაძლიერება
                else if (shopType == ShopType.UPGRADE_DAMAGE)
                {
                    int upgraded = weaponBase.upgradeDamage;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                //გადატენვის გაძლიერება
                else if (shopType == ShopType.UPGRADE_RELOAD)
                {
                    int upgraded = weaponBase.upgradeReload;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                //მჭიდის გაძლიერება
                else if (shopType == ShopType.UPGRADE_MAGAZINE)
                {
                    int upgraded = weaponBase.upgradeMag;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                //ტყვიების რაოდენობის გაძ₾იერება მჭიდში
                else if (shopType == ShopType.UPGRADE_MAX_AMMO)
                {
                    int upgraded = weaponBase.upgradeMaxAmmo;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else
                {
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }

                if (isPurchasable && Input.GetKeyDown(KeyCode.F))
                {
                    FundSystem fundSystem = transform.parent.GetComponent <FundSystem>();
                    int        fund       = fundSystem.GetFund();
                    //არასაკმარისი თანხა
                    if (fund < shopPrice)
                    {
                        PrintWarning("Not enough money!");
                    }
                    else
                    {
                        bool wasPurchased = true;

                        if (shopType == ShopType.AMMO)
                        {
                            if (weaponBase.bulletsLeft >= (weaponBase.maxAmmo + weaponBase.bulletsPerMag))
                            {
                                wasPurchased = false;
                                PrintWarning("You have full ammo.");
                            }
                            else
                            {
                                weaponBase.bulletsLeft = weaponBase.maxAmmo + weaponBase.bulletsPerMag;
                                weaponBase.UpdateAmmoText();
                            }
                        }
                        else if (shopType == ShopType.HEAL)
                        {
                            HealthManager healthManager = transform.parent.GetComponent <HealthManager>();

                            if (healthManager.Health >= healthManager.MaxHealth)
                            {
                                wasPurchased = false;
                                PrintWarning("You have full health.");
                            }
                            else
                            {
                                healthManager.Heal();
                                healUsed++;
                            }
                        }

                        else if (shopType == ShopType.WEAPON_PYTHON)
                        {
                            if (!weaponManager.HasWeapon(Weapon.Python))
                            {
                                BuySecondaryWeapon(Weapon.Python);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_UMP45)
                        {
                            if (!weaponManager.HasWeapon(Weapon.UMP45))
                            {
                                BuyPrimaryWeapon(Weapon.UMP45);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_AKM)
                        {
                            if (!weaponManager.HasWeapon(Weapon.AKM))
                            {
                                BuyPrimaryWeapon(Weapon.AKM);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_M870)
                        {
                            if (!weaponManager.HasWeapon(Weapon.M870))
                            {
                                BuyPrimaryWeapon(Weapon.M870);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_DAMAGE)
                        {
                            if (weaponBase.upgradeDamage >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_DAMAGE);
                                weaponBase.upgradeSpent += shopPrice;
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_RELOAD)
                        {
                            if (weaponBase.upgradeReload >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_RELOAD);
                                weaponBase.upgradeSpent += shopPrice;
                            }
                        }

                        else if (shopType == ShopType.UPGRADE_MAGAZINE)
                        {
                            if (weaponBase.upgradeMag >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_MAGAZINE);
                                weaponBase.upgradeSpent += shopPrice;
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_MAX_AMMO)
                        {
                            if (weaponBase.upgradeMaxAmmo >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_MAX_AMMO);
                                weaponBase.upgradeSpent += shopPrice;
                            }
                        }
                        else
                        {
                            wasPurchased = false;
                        }

                        if (wasPurchased)
                        {
                            fundSystem.TakeFund(shopPrice);
                            SoundManager soundManager = transform.Find("SoundManager").GetComponent <SoundManager>();
                            soundManager.Play(purchasedSound);
                        }
                    }
                }
            }
        }
        else
        {
            shopText.text = "";
        }
    }
示例#3
0
    void Update()
    {
        if (healthManager.IsDead && !isDestroyed)
        {
            isDestroyed = true;

            if (photonView.isMine)
            {
                DestroyAllIndicators();

                WeaponManager weaponManager = GetComponent <WeaponManager>();
                FundSystem    fundSystem    = GetComponent <FundSystem>();
                Transform     fpsChar       = transform.Find("FirstPersonCharacter");
                Transform     weaponHolder  = fpsChar.Find("WeaponHolder");
                int           weaponsCount  = weaponHolder.childCount;
                float         totalFund     = fundSystem.GetFund();

                // Add weapon cost
                switch (weaponManager.primaryWeapon)
                {
                case Weapon.AKM:
                    totalFund += 850;
                    break;

                case Weapon.M870:
                    totalFund += 650;
                    break;

                case Weapon.UMP45:
                    totalFund += 450;
                    break;

                case Weapon.MP5K:
                    totalFund += 250;
                    break;
                }

                switch (weaponManager.secondaryWeapon)
                {
                case Weapon.Python:
                    totalFund += 300;
                    break;
                }

                // Accumulate upgraded costs
                for (int i = 0; i < weaponsCount; i++)
                {
                    Transform  weapon     = weaponHolder.GetChild(i);
                    WeaponBase weaponBase = weapon.GetComponent <WeaponBase>();

                    totalFund += weaponBase.upgradeSpent;
                    weaponBase.upgradeSpent = 0;
                }

                // Accumulate other upgraded costs
                // Upgrade Health
                if (upgradeHealth > 1)
                {
                    int cost = 100 + ((upgradeHealth - 1) * 90);
                    totalFund += cost;
                }

                // Upgrade Regeneration
                if (upgradeRegeneration > 1)
                {
                    int cost = 100 + ((upgradeRegeneration - 1) * 70);
                    totalFund += cost;
                }

                networkManager.SaveFund(System.Convert.ToInt32(totalFund));

                fpsChar.gameObject.SetActive(false);
                character.gameObject.SetActive(true);

                GameObject.Find("UI/InGameUI/PlayerUI").SetActive(false);
                GameObject.Find("UI/InGameUI/InspectorUI").SetActive(true);

                DeployInspector();

                networkManager.CheckPlayerDead();

                photonView.RPC("RPCDeployBody", PhotonTargets.All);
            }
        }
    }
示例#4
0
    void Update()
    {
        RaycastHit hit;
        Vector3    position = shootPoint.position;

        position.y += 1;                // Adjust height differences

        if (Physics.Raycast(position, transform.TransformDirection(Vector3.forward * detectRange), out hit, detectRange))
        {
            if (hit.transform.tag == "Shop")
            {
                Shop     shop          = hit.transform.GetComponent <Shop>();
                ShopType shopType      = shop.shopType;
                string   shopTitle     = shop.title;
                string   shopDesc      = shop.description;
                int      shopPrice     = shop.price;
                bool     isPurchasable = true;

                WeaponManager weaponManager = transform.parent.gameObject.GetComponent <WeaponManager>();
                WeaponBase    weaponBase    = weaponManager.currentWeaponGO.GetComponent <WeaponBase>();
                Weapon        weapon        = weaponManager.currentWeapon;
                Player        player        = transform.parent.GetComponent <Player>();

                if (shopType == ShopType.AMMO)
                {
                    shopPrice     = GetAmmoCost(weapon, weaponBase);
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }
                else if (shopType == ShopType.HEAL)
                {
                    shopPrice     = 100 + (75 * healUsed);
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }
                else if (shopType == ShopType.RESURRECTION)
                {
                    shopPrice     = GetResurrectionCost();
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }
                else if (shopType == ShopType.UPGRADE_HEALTH)
                {
                    int upgraded = player.upgradeHealth;

                    if (upgraded < 10)
                    {
                        shopPrice     = 100 + (upgraded * 100);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "You are fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_REGENERATION)
                {
                    int upgraded = player.upgradeRegeneration;

                    if (upgraded < 10)
                    {
                        shopPrice     = 100 + (upgraded * 75);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "You are fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_DAMAGE)
                {
                    int upgraded = weaponBase.upgradeDamage;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_RELOAD)
                {
                    int upgraded = weaponBase.upgradeReload;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_RECOIL)
                {
                    int upgraded = weaponBase.upgradeRecoil;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_MAGAZINE)
                {
                    int upgraded = weaponBase.upgradeMag;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else if (shopType == ShopType.UPGRADE_MAX_AMMO)
                {
                    int upgraded = weaponBase.upgradeMaxAmmo;

                    if (upgraded < 10)
                    {
                        shopPrice     = GetUpgradeCost(weaponManager.currentWeapon, weaponBase, upgraded);
                        shopText.text = shopTitle + " Lv" + (upgraded + 1) + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                    }
                    else
                    {
                        isPurchasable = false;
                        shopText.text = "Your weapon is fully upgraded.";
                    }
                }
                else
                {
                    shopText.text = shopTitle + "\n(" + shopPrice + "$)\n\n" + shopDesc + "\n\n";
                }

                if (isPurchasable && Input.GetKeyDown(KeyCode.F))
                {
                    FundSystem fundSystem = transform.parent.GetComponent <FundSystem>();
                    int        fund       = fundSystem.GetFund();

                    if (fund < shopPrice)
                    {
                        PrintWarning("Not enough money!");
                    }
                    else
                    {
                        bool wasPurchased = true;

                        if (shopType == ShopType.AMMO)
                        {
                            if (weaponBase.bulletsLeft >= (weaponBase.maxAmmo + weaponBase.bulletsPerMag))
                            {
                                wasPurchased = false;
                                PrintWarning("You have full ammo.");
                            }
                            else
                            {
                                weaponBase.bulletsLeft = weaponBase.maxAmmo + weaponBase.bulletsPerMag;
                                weaponBase.UpdateAmmoText();
                            }
                        }
                        else if (shopType == ShopType.HEAL)
                        {
                            HealthManager healthManager = transform.parent.GetComponent <HealthManager>();

                            if (healthManager.Health >= healthManager.MaxHealth)
                            {
                                wasPurchased = false;
                                PrintWarning("You have full health.");
                            }
                            else
                            {
                                healthManager.Heal();
                                healUsed++;
                            }
                        }
                        else if (shopType == ShopType.RESURRECTION)
                        {
                            if (GetResurrectionCost() <= 0)
                            {
                                wasPurchased = false;
                                PrintWarning("No players to revive.");
                            }
                            else
                            {
                                networkManager.RevivePlayers();
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_HEALTH)
                        {
                            HealthManager healthManager   = transform.parent.GetComponent <HealthManager>();
                            float         addtionalHealth = 20f;

                            healthManager.SetHealth(healthManager.Health + addtionalHealth);
                            healthManager.SetMaxHealth(healthManager.MaxHealth + addtionalHealth);

                            player.upgradeHealth++;
                        }
                        else if (shopType == ShopType.UPGRADE_REGENERATION)
                        {
                            if (player.upgradeRegeneration <= 0)
                            {
                                player.ActivateHealthRegeneration();
                            }

                            player.upgradeRegeneration++;
                        }
                        else if (shopType == ShopType.WEAPON_MP5K)
                        {
                            if (!weaponManager.HasWeapon(Weapon.MP5K))
                            {
                                BuyPrimaryWeapon(Weapon.MP5K);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_PYTHON)
                        {
                            if (!weaponManager.HasWeapon(Weapon.Python))
                            {
                                BuySecondaryWeapon(Weapon.Python);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_UMP45)
                        {
                            if (!weaponManager.HasWeapon(Weapon.UMP45))
                            {
                                BuyPrimaryWeapon(Weapon.UMP45);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_AKM)
                        {
                            if (!weaponManager.HasWeapon(Weapon.AKM))
                            {
                                BuyPrimaryWeapon(Weapon.AKM);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.WEAPON_M870)
                        {
                            if (!weaponManager.HasWeapon(Weapon.M870))
                            {
                                BuyPrimaryWeapon(Weapon.M870);
                            }
                            else
                            {
                                wasPurchased = false;
                                PrintWarning("You already have weapon.");
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_DAMAGE)
                        {
                            if (weaponBase.upgradeDamage >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_DAMAGE);
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_RELOAD)
                        {
                            if (weaponBase.upgradeReload >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_RELOAD);
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_RECOIL)
                        {
                            if (weaponBase.upgradeRecoil >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_RECOIL);
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_MAGAZINE)
                        {
                            if (weaponBase.upgradeMag >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_MAGAZINE);
                            }
                        }
                        else if (shopType == ShopType.UPGRADE_MAX_AMMO)
                        {
                            if (weaponBase.upgradeMaxAmmo >= 10)
                            {
                                wasPurchased = false;
                                PrintWarning("Your weapon is fully upgraded.");
                            }
                            else
                            {
                                UpgradeWeapon(weaponBase, ShopType.UPGRADE_MAX_AMMO);
                            }
                        }
                        else
                        {
                            wasPurchased = false;
                        }

                        if (wasPurchased)
                        {
                            fundSystem.TakeFund(shopPrice);
                            SoundManager soundManager = transform.Find("SoundManager").GetComponent <SoundManager>();
                            soundManager.Play(purchasedSound);

                            playerStatus.spentCash += shopPrice;
                        }
                    }
                }
            }
        }
        else
        {
            shopText.text = "";
        }
    }
示例#5
0
    void Update()
    {
        if (healthManager.IsDead && !isDestroyed)
        {
            isDestroyed = true;

            if (photonView.isMine)
            {
                DestroyAllIndicators();

                FundSystem fundSystem   = GetComponent <FundSystem>();
                Transform  fpsChar      = transform.Find("FirstPersonCharacter");
                Transform  weaponHolder = fpsChar.Find("WeaponHolder");
                int        weaponsCount = weaponHolder.childCount;
                int        savingFund;
                float      totalFund = fundSystem.GetFund();

                // Accumulate upgraded costs
                for (int i = 0; i < weaponsCount; i++)
                {
                    Transform  weapon      = weaponHolder.GetChild(i);
                    WeaponBase weaponBase  = weapon.GetComponent <WeaponBase>();
                    int        upgrades    = weaponBase.GetUpgrades();
                    int        upgradeCost = weaponBase.upgradeCost;
                    totalFund += (upgradeCost * upgrades);
                }

                // Accumulate other upgraded costs
                // Upgrade Health
                if (upgradeHealth > 1)
                {
                    int cost = 100 + ((upgradeHealth - 1) * 75);
                    totalFund += cost;
                }

                // Upgrade Regeneration
                if (upgradeRegeneration > 1)
                {
                    int cost = 100 + ((upgradeRegeneration - 1) * 75);
                    totalFund += cost;
                }

                totalFund *= 0.9f;
                savingFund = System.Convert.ToInt32(totalFund);

                networkManager.SaveFund(savingFund);

                fpsChar.gameObject.SetActive(false);
                character.gameObject.SetActive(true);

                GameObject.Find("UI/InGameUI/PlayerUI").SetActive(false);
                GameObject.Find("UI/InGameUI/InspectorUI").SetActive(true);

                DeployInspector();

                networkManager.CheckPlayerDead();

                photonView.RPC("RPCDeployBody", PhotonTargets.All);
            }
        }
    }