private void GiveRandomPerk(Entity player)
        {
            var pc = player.GetField <int>("shrp_perkc");

            if (pc < 3)
            {
                var usedPerks = player.GetField <string[]>("shrp_perks");

                var validPerk         = false;
                SharpshooterPerk perk = null;

                while (!validPerk)
                {
                    perk = _perkList[_rng.Next(0, _perkList.Length)];

                    if (!usedPerks.Contains(perk.perks[0]))
                    {
                        validPerk = true;
                    }
                }

                foreach (var p in perk.perks)
                {
                    player.SetPerk(p, true, false);
                }

                UpdatePerkHUD(player, pc, perk);

                usedPerks[pc] = perk.perks[0];
                player.SetField("shrp_perkc", pc + 1);
            }
        }
        private void UpdatePerkHUD(Entity player, int index, SharpshooterPerk perk)
        {
            var icons = player.GetField <HudElem[]>("shrp_perkIcons");

            icons[index].SetShader(perk.perks[0] + (perk.isWeapon ? "" : "_upgrade"), 40, 40);
            icons[index].Alpha = 1;

            var texts = player.GetField <HudElem[]>("shrp_perkNames");

            texts[index].SetText(perk.perkName);
            texts[index].Alpha = 1;
        }
Exemple #3
0
        private void UpdatePerkHUD(Entity player, int index, SharpshooterPerk perk)
        {
            var icons = player.GetField<HudElem[]>("shrp_perkIcons");
            icons[index].SetShader(perk.perks[0] + (perk.isWeapon ? "" : "_upgrade"), 40, 40);
            icons[index].Alpha = 1;

            var texts = player.GetField<HudElem[]>("shrp_perkNames");
            texts[index].SetText(perk.perkName);
            texts[index].Alpha = 1;
        }