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