public bool ServerChangeSelectWeapon(WeaponData weaponData, int ammoAmount)
    {
        if (weaponData == null || string.IsNullOrEmpty(weaponData.GetId()) || weaponData.equipPosition < 0 || weaponData.equipPosition >= equippedWeapons.Count)
        {
            return(false);
        }
        var equipPosition  = weaponData.equipPosition;
        var equippedWeapon = equippedWeapons[equipPosition];
        var updated        = equippedWeapon.ChangeWeaponId(weaponData.GetId(), ammoAmount);

        if (updated)
        {
            InterruptAttack();
            InterruptReload();
            RpcInterruptAttack();
            RpcInterruptReload();
            equippedWeapons[equipPosition] = equippedWeapon;
            equippedWeapons.Dirty(equipPosition);
            // Trigger change weapon
            if (selectWeaponIndex == equipPosition)
            {
                OnWeaponChanged(selectWeaponIndex);
                RpcWeaponChanged(selectWeaponIndex);
            }
        }
        return(updated);
    }
    public void UpdateSelectButtonInteractable()
    {
        if (selectWeaponButton == null || weaponData == null)
        {
            return;
        }
        selectWeaponButton.interactable = true;
        if (textSelectWeaponButton != null)
        {
            textSelectWeaponButton.text = messageWeaponSelectable;
        }
        var savedWeapons = PlayerSave.GetWeapons();

        foreach (var savedWeapon in savedWeapons)
        {
            if (GameInstance.GetAvailableWeapon(savedWeapon.Value).GetId().Equals(weaponData.GetId()))
            {
                selectWeaponButton.interactable = false;
                if (textSelectWeaponButton != null)
                {
                    textSelectWeaponButton.text = messageWeaponSelected;
                }
                break;
            }
        }
    }
    public void AddWeapon(int indexInAvailableList, WeaponData weaponData)
    {
        if (weaponData == null || UIs.ContainsKey(weaponData.GetId()) || weaponData.equipPosition != equipPosition)
        {
            return;
        }
        var uiObject = Instantiate(prefab.gameObject);

        uiObject.SetActive(true);
        uiObject.transform.SetParent(container, false);
        var ui = uiObject.GetComponent <UIWeaponSelectEntry>();

        ui.weaponData           = weaponData;
        ui.indexInAvailableList = indexInAvailableList;
        ui.list = this;
        ui.UpdateSelectButtonInteractable();
        UIs[weaponData.GetId()] = ui;
    }
Beispiel #4
0
    public bool ServerFillWeaponAmmo(WeaponData weaponData, int ammoAmount)
    {
        if (weaponData == null || weaponData.equipPosition < 0 || weaponData.equipPosition >= equippedWeapons.Count)
        {
            return(false);
        }
        var equipPosition  = weaponData.equipPosition;
        var equippedWeapon = equippedWeapons[equipPosition];
        var updated        = false;

        if (equippedWeapon.weaponId.Equals(weaponData.GetId()))
        {
            updated = equippedWeapon.AddReserveAmmo(ammoAmount);
            if (updated)
            {
                equippedWeapons[equipPosition] = equippedWeapon;
                equippedWeapons.Dirty(equipPosition);
            }
        }
        return(updated);
    }
    public void KilledTarget(CharacterEntity target)
    {
        var gameplayManager = GameplayManager.Singleton;
        var targetLevel     = target.level;
        var maxLevel        = gameplayManager.maxLevel;

        Exp   += Mathf.CeilToInt(target.RewardExp * TotalExpRate);
        score += Mathf.CeilToInt(target.KillScore * TotalScoreRate);
        if (connectionToClient != null)
        {
            foreach (var rewardCurrency in gameplayManager.rewardCurrencies)
            {
                var currencyId = rewardCurrency.currencyId;
                var amount     = rewardCurrency.amount.Calculate(targetLevel, maxLevel);
                TargetRewardCurrency(connectionToClient, currencyId, amount);
            }
        }
        ++killCount;
        GameNetworkManager.Singleton.SendKillNotify(playerName, target.playerName, WeaponData == null ? string.Empty : WeaponData.GetId());
    }
    public static void Draw()
    {
        if (!MenuInventory.show)
        {
            return;
        }
        float num = Time.time - MenuInventory.showtime + 0.001f;

        if (num > 0.05f)
        {
            num = 0.05f;
        }
        num *= 20f;
        Matrix4x4 matrix = GUI.matrix;
        Vector3   s      = new Vector3(num, num, 1f);
        Vector3   pos    = new Vector3(MenuInventory.rBack.center.x - MenuInventory.rBack.center.x * num, MenuInventory.rBack.center.y - MenuInventory.rBack.center.y * num, 1f);

        GUI.matrix = Matrix4x4.TRS(pos, Quaternion.identity, s);
        GUIM.DrawBox(MenuInventory.rBack, MenuInventory.tBlack);
        MenuInventory.DrawButtonCategory(0, new Rect(MenuInventory.rBackBody.x + GUIM.YRES(4f) + GUIM.YRES(84f) * 0f, MenuInventory.rBackBody.y + GUIM.YRES(4f), GUIM.YRES(80f), GUIM.YRES(24f)), Lang.Get("_ALL"), false);
        MenuInventory.DrawButtonCategory(1, new Rect(MenuInventory.rBackBody.x + GUIM.YRES(4f) + GUIM.YRES(84f) * 1f, MenuInventory.rBackBody.y + GUIM.YRES(4f), GUIM.YRES(80f), GUIM.YRES(24f)), Lang.Get("_STOCK"), false);
        MenuInventory.DrawButtonCategory(2, new Rect(MenuInventory.rBackBody.x + GUIM.YRES(4f) + GUIM.YRES(84f) * 2f, MenuInventory.rBackBody.y + GUIM.YRES(4f), GUIM.YRES(80f), GUIM.YRES(24f)), Lang.Get("_BADGES"), false);
        MenuInventory.DrawButtonCategory(3, new Rect(MenuInventory.rBackBody.x + GUIM.YRES(4f) + GUIM.YRES(84f) * 3f, MenuInventory.rBackBody.y + GUIM.YRES(4f), GUIM.YRES(80f), GUIM.YRES(24f)), Lang.Get("_MASKS"), false);
        MenuInventory.DrawButtonCategory(4, new Rect(MenuInventory.rBackBody.x + GUIM.YRES(4f) + GUIM.YRES(84f) * 4f, MenuInventory.rBackBody.y + GUIM.YRES(4f), GUIM.YRES(80f), GUIM.YRES(24f)), Lang.Get("_WEAPONS"), false);
        MenuInventory.scroll = GUIM.BeginScrollView(new Rect(MenuInventory.rBackBody.x + GUIM.YRES(4f), MenuInventory.rBackBody.y + GUIM.YRES(32f), MenuInventory.rBackBody.width - GUIM.YRES(8f), MenuInventory.rBackBody.height - GUIM.YRES(40f)), MenuInventory.scroll, new Rect(0f, 0f, 0f, (float)MenuInventory.hcount * GUIM.YRES(100f) - GUIM.YRES(4f)));
        int num2 = 0;
        int num3 = 0;

        for (int i = 0; i < 1024; i++)
        {
            if (BaseData.item[i] != 0 || i <= 127)
            {
                if (MenuShop.shopdata[i] != null)
                {
                    if (MenuInventory.currCat != 0)
                    {
                        if (MenuInventory.currCat == 1 && MenuShop.shopdata[i].section != 0)
                        {
                            goto IL_602;
                        }
                        if (MenuInventory.currCat == 2 && MenuShop.shopdata[i].section != 1 && MenuShop.shopdata[i].section != 2)
                        {
                            goto IL_602;
                        }
                        if (MenuInventory.currCat == 3 && MenuShop.shopdata[i].section != 3 && MenuShop.shopdata[i].section != 4)
                        {
                            goto IL_602;
                        }
                        if (MenuInventory.currCat == 4 && MenuShop.shopdata[i].section != 5)
                        {
                            goto IL_602;
                        }
                    }
                    if (MenuShop.DrawItem(new Rect((GUIM.YRES(96f) + GUIM.YRES(4f)) * (float)num2, (GUIM.YRES(96f) + GUIM.YRES(4f)) * (float)num3, GUIM.YRES(96f), GUIM.YRES(96f)), MenuShop.shopdata[i]))
                    {
                        if (MenuShop.shopdata[i].section == 1)
                        {
                            BaseData.badge_back = i;
                            PlayerPrefs.SetInt(BaseData.uid + "_badge_back", i);
                        }
                        else if (MenuShop.shopdata[i].section == 2)
                        {
                            BaseData.badge_icon = i;
                            PlayerPrefs.SetInt(BaseData.uid + "_badge_icon", i);
                        }
                        else if (MenuShop.shopdata[i].section == 3)
                        {
                            BaseData.mask_merc = i;
                            PlayerPrefs.SetInt(BaseData.uid + "_mask_merc", i);
                        }
                        else if (MenuShop.shopdata[i].section == 4)
                        {
                            BaseData.mask_warcorp = i;
                            PlayerPrefs.SetInt(BaseData.uid + "_mask_warcorp", i);
                        }
                        else if (MenuShop.shopdata[i].section == 5)
                        {
                            int id = WeaponData.GetId(MenuShop.shopdata[i].name2);
                            if (id > 0)
                            {
                                BaseData.profileWeapon[id] = i;
                                BaseData.currentWeapon[id] = i;
                                PlayerPrefs.SetInt(BaseData.uid + "_custom_" + MenuShop.shopdata[i].name2, i);
                            }
                        }
                    }
                    num2++;
                    if (num2 >= 6)
                    {
                        num2 = 0;
                        num3++;
                    }
                }
            }
            IL_602 :;
        }
        MenuInventory.hcount = num3 + 1;
        GUIM.EndScrollView();
        GUI.matrix = matrix;
    }
Beispiel #7
0
    public static bool DrawItem(Rect r, MenuShop.CShopData data)
    {
        int num = (int)GUIM.YRES(1f);

        if (num < 1)
        {
            num = 1;
        }
        bool    flag = false;
        Vector2 mpos = new Vector2(Input.mousePosition.x, (float)Screen.height - Input.mousePosition.y);

        if (data == MenuShop.currData)
        {
            GUI.DrawTexture(r, MenuShop.tWhite);
        }
        else if (GUIM.Contains(r, mpos))
        {
            GUI.DrawTexture(r, MenuShop.tGray);
            GUI.color = new Color(1f, 1f, 1f, 0.1f);
            GUI.DrawTexture(r, MenuShop.tWhite);
            GUI.color = Color.white;
            flag      = true;
        }
        else
        {
            if (BaseData.item[data.wid] == 1)
            {
                GUI.color = new Color(1f, 1f, 1f, 0.05f);
                GUI.DrawTexture(r, MenuShop.tWhite);
                GUI.color = Color.white;
            }
            GUI.DrawTexture(new Rect(r.x, r.y, r.width, (float)num), MenuShop.tGray);
            GUI.DrawTexture(new Rect(r.x, r.y + r.height - (float)num, r.width, (float)num), MenuShop.tGray);
            GUI.DrawTexture(new Rect(r.x, r.y, (float)num, r.height), MenuShop.tGray);
            GUI.DrawTexture(new Rect(r.x + r.width - (float)num, r.y, (float)num, r.height), MenuShop.tGray);
        }
        if (data.level > 0)
        {
            BaseColor fontcolor = BaseColor.White;
            if (BaseData.iLevel < data.level)
            {
                fontcolor = BaseColor.Red;
            }
            GUIM.DrawText(r, "Lv." + data.level.ToString() + " ", TextAnchor.LowerRight, fontcolor, 1, 12, false);
        }
        if (data.section == 1)
        {
            GUI.DrawTexture(new Rect(r.x + GUIM.YRES(4f), r.y + GUIM.YRES(4f) + GUIM.YRES(33f), GUIM.YRES(88f), GUIM.YRES(22f)), data.icon);
        }
        if (data.section == 2)
        {
            GUI.DrawTexture(new Rect(r.x + GUIM.YRES(4f), r.y + GUIM.YRES(4f), GUIM.YRES(88f), GUIM.YRES(88f)), data.icon);
        }
        if (data.section == 3 || data.section == 4)
        {
            GUI.DrawTexture(new Rect(r.x + GUIM.YRES(4f), r.y + GUIM.YRES(4f), GUIM.YRES(88f), GUIM.YRES(88f)), data.icon);
        }
        if (data.section == 5)
        {
            GUI.DrawTexture(new Rect(r.x + GUIM.YRES(4f), r.y + GUIM.YRES(4f), GUIM.YRES(88f), GUIM.YRES(88f)), data.icon);
        }
        if (data.section == 0)
        {
            GUI.DrawTexture(new Rect(r.x + GUIM.YRES(4f), r.y + GUIM.YRES(4f) + GUIM.YRES(22f), GUIM.YRES(88f), GUIM.YRES(44f)), data.icon);
        }
        if (MenuInventory.isActive())
        {
            bool flag2 = false;
            int  id    = WeaponData.GetId(data.name2);
            if (id > 0 && BaseData.profileWeapon[id] == data.wid)
            {
                flag2 = true;
            }
            if (BaseData.badge_back == data.wid || BaseData.badge_icon == data.wid || BaseData.mask_merc == data.wid || BaseData.mask_warcorp == data.wid || flag2)
            {
                GUI.color = Color.green;
                GUI.DrawTexture(new Rect(r.x + GUIM.YRES(4f), r.y + GUIM.YRES(4f), GUIM.YRES(10f), GUIM.YRES(10f)), MenuShop.apply);
                GUI.color = Color.white;
            }
            else if (flag && data.section > 0)
            {
                GUIM.DrawText(r, Lang.Get("_CLICK_TO_EQUIP"), TextAnchor.LowerCenter, BaseColor.White, 1, 10, false);
            }
        }
        bool result = false;

        if (GUIM.HideButton(r))
        {
            MenuShop.currData = data;
            if (MenuShop.show)
            {
                if (MenuShop.currData.section == 3 || MenuShop.currData.section == 4)
                {
                    MenuPlayer.PreviewMask(MenuShop.currData);
                    MenuPlayer.SetPosition(0.9f, 0.03f, -1f);
                }
                else if (MenuShop.currData.section == 5)
                {
                    MenuPlayer.playermodel = -1;
                    if (MenuShop.currData.name2 == "ak47")
                    {
                        MenuPlayer.ChangePlayer(0, 6, 22);
                    }
                    else if (MenuShop.currData.name2 == "aks74u")
                    {
                        MenuPlayer.ChangePlayer(0, 7, 22);
                    }
                    else if (MenuShop.currData.name2 == "asval")
                    {
                        MenuPlayer.ChangePlayer(0, 8, 22);
                    }
                    else if (MenuShop.currData.name2 == "aug")
                    {
                        MenuPlayer.ChangePlayer(0, 18, 22);
                    }
                    else if (MenuShop.currData.name2 == "awp")
                    {
                        MenuPlayer.ChangePlayer(0, 22, 8);
                    }
                    else if (MenuShop.currData.name2 == "beretta")
                    {
                        MenuPlayer.ChangePlayer(0, 2, 22);
                    }
                    else if (MenuShop.currData.name2 == "bm4")
                    {
                        MenuPlayer.ChangePlayer(0, 9, 22);
                    }
                    else if (MenuShop.currData.name2 == "colt")
                    {
                        MenuPlayer.ChangePlayer(0, 3, 8);
                    }
                    else if (MenuShop.currData.name2 == "deagle")
                    {
                        MenuPlayer.ChangePlayer(0, 4, 8);
                    }
                    else if (MenuShop.currData.name2 == "famas")
                    {
                        MenuPlayer.ChangePlayer(0, 10, 22);
                    }
                    else if (MenuShop.currData.name2 == "glock17")
                    {
                        MenuPlayer.ChangePlayer(0, 1, 8);
                    }
                    else if (MenuShop.currData.name2 == "m4a1")
                    {
                        MenuPlayer.ChangePlayer(0, 11, 22);
                    }
                    else if (MenuShop.currData.name2 == "m24")
                    {
                        MenuPlayer.ChangePlayer(0, 21, 22);
                    }
                    else if (MenuShop.currData.name2 == "m90")
                    {
                        MenuPlayer.ChangePlayer(0, 23, 22);
                    }
                    else if (MenuShop.currData.name2 == "m110")
                    {
                        MenuPlayer.ChangePlayer(0, 20, 22);
                    }
                    else if (MenuShop.currData.name2 == "m249")
                    {
                        MenuPlayer.ChangePlayer(0, 25, 22);
                    }
                    else if (MenuShop.currData.name2 == "mp5")
                    {
                        MenuPlayer.ChangePlayer(0, 12, 22);
                    }
                    else if (MenuShop.currData.name2 == "mp7")
                    {
                        MenuPlayer.ChangePlayer(0, 13, 22);
                    }
                    else if (MenuShop.currData.name2 == "p90")
                    {
                        MenuPlayer.ChangePlayer(0, 14, 22);
                    }
                    else if (MenuShop.currData.name2 == "pkp")
                    {
                        MenuPlayer.ChangePlayer(0, 24, 22);
                    }
                    else if (MenuShop.currData.name2 == "qbz95")
                    {
                        MenuPlayer.ChangePlayer(0, 15, 22);
                    }
                    else if (MenuShop.currData.name2 == "remington")
                    {
                        MenuPlayer.ChangePlayer(0, 5, 22);
                    }
                    else if (MenuShop.currData.name2 == "spas12")
                    {
                        MenuPlayer.ChangePlayer(0, 16, 8);
                    }
                    else if (MenuShop.currData.name2 == "svd")
                    {
                        MenuPlayer.ChangePlayer(0, 19, 22);
                    }
                    else if (MenuShop.currData.name2 == "ump45")
                    {
                        MenuPlayer.ChangePlayer(0, 17, 22);
                    }
                    MenuPlayer.SetPosition(0.9f, 0.03f, -1f);
                }
            }
            result = true;
        }
        return(result);
    }