public static void giveAllPerks(Entity player) { bool[] ownedPerks = AIZ.getOwnedPerks(player); if (!ownedPerks.Contains(false)) { return; //Owns all perks, give up on life... } if (!ownedPerks[0]) { player.MaxHealth = 250; player.Health = player.MaxHealth; player.SetField("PerkBought", "cardicon_juggernaut_1"); player.SetField("perk1bought", true); hud.updatePerksHud(player, false, true); } if (!ownedPerks[1]) { player.SetPerk("specialty_lightweight", true, true); //player.SetPerk("specialty_marathon", true, true); player.SetPerk("specialty_longersprint", true, true); player.SetField("PerkBought", "specialty_longersprint_upgrade"); player.SetField("perk2bought", true); hud.updatePerksHud(player, false, true); } if (!ownedPerks[2]) { player.SetPerk("specialty_fastreload", true, true); //player.SetPerk("specialty_quickswap", true, true); player.SetPerk("specialty_quickdraw", true, true); player.SetField("PerkBought", "specialty_fastreload_upgrade"); player.SetField("perk3bought", true); hud.updatePerksHud(player, false, true); } if (!ownedPerks[3]) { player.SetField("NewGunReady", true); player.SetField("PerkBought", "specialty_twoprimaries_upgrade"); player.SetField("perk4bought", true); hud.updatePerksHud(player, false, true); } if (!ownedPerks[4]) { player.SetPerk("specialty_rof", true, true); player.SetField("PerkBought", "weapon_attachment_rof"); player.SetField("perk5bought", true); hud.updatePerksHud(player, false, true); } if (!ownedPerks[5]) { player.SetPerk("specialty_stalker", true, true); player.SetField("PerkBought", "specialty_stalker_upgrade"); player.SetField("perk6bought", true); hud.updatePerksHud(player, false, true); } if (!ownedPerks[6]) { player.SetField("autoRevive", true); player.SetField("PerkBought", "waypoint_revive"); player.SetField("perk7bought", player.GetField <int>("perk7bought") + 1); hud.updatePerksHud(player, false, true); } HudElem perkIcon = NewClientHudElem(player); perkIcon.X = 0; perkIcon.Y = 0; perkIcon.AlignX = HudElem.XAlignments.Center; perkIcon.AlignY = HudElem.YAlignments.Middle; perkIcon.VertAlign = HudElem.VertAlignments.Middle; perkIcon.HorzAlign = HudElem.HorzAlignments.Center_Adjustable; perkIcon.SetShader("specialty_perks_all", 128, 128); perkIcon.Foreground = true; perkIcon.HideWhenInMenu = true; perkIcon.Alpha = 1; perkIcon.ScaleOverTime(1, 512, 512); perkIcon.FadeOverTime(1); perkIcon.Alpha = 0; player.PlayLocalSound("earn_superbonus"); AfterDelay(1000, () => perkIcon.Destroy()); }
public static IEnumerator giveRandomPerk(Entity player, int perk = -1) { bool[] ownedPerks = AIZ.getOwnedPerks(player); if (!ownedPerks.Contains(false)) { yield break; //Owns all perks, give up on life... } if (perk == -1) { perk = AIZ.rng.Next(7); perk++; } if (ownedPerks[perk - 1]) { //re-roll int randomPerk = AIZ.rng.Next(7); randomPerk++; StartAsync(giveRandomPerk(player, randomPerk)); yield break; } hud.scoreMessage(player, AIZ.gameStrings[99]); switch (perk) { case 1: player.MaxHealth = 250; player.Health = player.MaxHealth; player.SetField("PerkBought", "cardicon_juggernaut_1"); break; case 2: player.SetPerk("specialty_lightweight", true, true); //player.SetPerk("specialty_marathon", true, true); player.SetPerk("specialty_longersprint", true, true); player.SetField("PerkBought", "specialty_longersprint_upgrade"); break; case 3: player.SetPerk("specialty_fastreload", true, true); //player.SetPerk("specialty_quickswap", true, true); player.SetPerk("specialty_quickdraw", true, true); player.SetField("PerkBought", "specialty_fastreload_upgrade"); break; case 4: player.SetField("NewGunReady", true); player.SetField("PerkBought", "specialty_twoprimaries_upgrade"); break; case 5: player.SetPerk("specialty_rof", true, true); player.SetField("PerkBought", "weapon_attachment_rof"); break; case 6: player.SetPerk("specialty_stalker", true, true); player.SetField("PerkBought", "specialty_stalker_upgrade"); break; case 7: player.SetField("autoRevive", true); player.SetField("PerkBought", "waypoint_revive"); break; case 8: player.SetPerk("specialty_scavenger", true, true); player.SetField("PerkBought", "specialty_scavenger_upgrade"); break; } if (perk != 7) { player.SetField("perk" + perk + "bought", true); } else { player.SetField("perk7bought", player.GetField <int>("perk7bought") + 1); } HudElem perkIcon = NewClientHudElem(player); perkIcon.X = 0 * (perk - 1); perkIcon.Y = -54; perkIcon.AlignX = HudElem.XAlignments.Left; perkIcon.AlignY = HudElem.YAlignments.Bottom; perkIcon.VertAlign = HudElem.VertAlignments.Bottom_Adjustable; perkIcon.HorzAlign = HudElem.HorzAlignments.Left; perkIcon.SetShader(player.GetField <string>("perkBought"), 128, 128); perkIcon.Foreground = true; perkIcon.HideWhenInMenu = true; perkIcon.Alpha = 1; perkIcon.ScaleOverTime(1, 30, 30); player.PlayLocalSound("earn_perk"); yield return(Wait(1)); perkIcon.Destroy(); hud.updatePerksHud(player, false, true); }