using System.Xml.Linq; public class MinEventActionChangeClassRebirth : MinEventActionRemoveBuff { private int classID = 1; public override void Execute(MinEventParams _params) { if (GameManager.IsDedicatedServer) { //Log.Out("MinEventActionChangeClassRebirth-Execute IS SERVER"); return; } //Log.Out("MinEventActionChangeClassRebirth-Execute IS CLIENT"); EntityPlayerLocal player = _params.Self as EntityPlayerLocal; if (player == null) { //Log.Out("MinEventActionChangeClassRebirth-Execute NO Player"); return; } string className = RebirthUtilities.GetClassNameFromID(classID); player.Buffs.SetCustomVar("$FR_SelectedClass", 0f); //Log.Out("MinEventActionChangeClassRebirth-Execute className: " + className); float currentClassID = player.Buffs.GetCustomVar("$ActiveClass_FR"); string optionJumpstart = RebirthVariables.customJumpstart; player.Buffs.SetCustomVar("$ActiveClass_FR", classID); RebirthVariables.localConstants["$varFuriousRamsayClassPercUnit"] = RebirthVariables.localVariables["$varFuriousRamsay" + className + "PercUnit"]; RebirthVariables.RefreshVariables(player); if (classID == 1) //HUNTER { ProgressionValue progressionValue = player.Progression.GetProgressionValue("craftingRifles"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "LongRangeRifles"; int PerkLevel = 3; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); //Log.Out("MinEventActionChangeClassRebirth-Execute key: " + key); //Log.Out("MinEventActionChangeClassRebirth-Execute categoryValue: " + categoryValue); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipeRifle"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "PipeRifle"; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); //Log.Out("MinEventActionChangeClassRebirth-Execute key: " + key); //Log.Out("MinEventActionChangeClassRebirth-Execute categoryValue: " + categoryValue); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("craftingBows"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Bows"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); //Log.Out("MinEventActionChangeClassRebirth-Execute key: " + key); //Log.Out("MinEventActionChangeClassRebirth-Execute categoryValue: " + categoryValue); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("craftingSpears"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Spears"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); //Log.Out("MinEventActionChangeClassRebirth-Execute key: " + key); //Log.Out("MinEventActionChangeClassRebirth-Execute categoryValue: " + categoryValue); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnSpearT1IronSpear"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnSpearT1IronSpear"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunBowT1WoodenBow"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunBowT1WoodenBow"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammoArrowIron"), player, 50, ""); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunRifleT1HuntingRifle"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunRifleT1HuntingRifle"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo762mmBulletBall"), player, 100, ""); RebirthUtilities.InitWeapon("LongRangeRifles", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModHunter"), player, 1, ""); } } } else if (classID == 2) // THUG { ProgressionValue progressionValue = player.Progression.GetProgressionValue("craftingShotguns"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Shotguns"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipeShotgun"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipeShotgun"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("craftingClubs"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Clubs"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnClubT1BaseballBat"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnClubT1BaseballBat"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunShotgunT1DoubleBarrel"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunShotgunT1DoubleBarrel"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammoShotgunShell"), player, 75, ""); RebirthUtilities.InitWeapon("Shotguns", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModThug"), player, 1, ""); } } } else if (classID == 3) // BUTCHER { ProgressionValue progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingAssaultRifles"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "AssaultRifles"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipeMachinegun"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipeMachinegun"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingSwords"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Swords"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnBladeT3Machete"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnBladeT3Machete"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunMGT1AK47"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunMGT1AK47"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo762mmBulletBall"), player, 100, ""); RebirthUtilities.InitWeapon("AssaultRifles", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModButcher"), player, 1, ""); } } } else if (classID == 4) // SOLDIER { ProgressionValue progressionValue = player.Progression.GetProgressionValue("craftingMachineGuns"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "MachineGuns"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipeMachinegun"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipeMachinegun"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingAxes"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Axes"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeToolAxeT1IronFireaxe"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeToolAxeT1IronFireaxe"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunMGT3M60"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunMGT3M60"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo762mmBulletBall"), player, 100, ""); RebirthUtilities.InitWeapon("MachineGuns", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModSoldier"), player, 1, ""); } } } else if (classID == 5) // TECHNOGEEK { ProgressionValue progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingRevolvers"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Revolvers"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipePistol"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipePistol"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingBatons"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Batons"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingDeployableTurrets"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "DeployableTurrets"; int PerkLevel = 3; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; progressionValue = player.Progression.GetProgressionValue("FuriousRamsayPerkDeployableTurrets"); if (progressionValue != null) { progressionValue.Level = 0; } } else if (progressionValue.Level == 50) { progressionValue = player.Progression.GetProgressionValue("FuriousRamsayPerkDeployableTurrets"); if (progressionValue != null) { progressionValue.Level = 0; } } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnSpearT1meleeWpnBatonT0PipeBatonIronSpear"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnBatonT0PipeBaton"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunHandgunT2Magnum44"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunHandgunT2Magnum44"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo44MagnumBulletBall"), player, 100, ""); RebirthUtilities.InitWeapon("Revolvers", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModTechnogeek"), player, 1, ""); } } } else if (classID == 6) // MADMAN { ProgressionValue progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingSubmachineGuns"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "SubmachineGuns"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipeMachinegun"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipeMachinegun"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("craftingKnuckles"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Knuckles"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnKnucklesT1IronKnuckles"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnKnucklesT1IronKnuckles"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunHandgunT3SMG5"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunHandgunT3SMG5"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo9mmBulletBall"), player, 150, ""); RebirthUtilities.InitWeapon("SubmachineGuns", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModMadman"), player, 1, ""); } } } else if (classID == 7) // BUILDER { ProgressionValue progressionValue = player.Progression.GetProgressionValue("craftingHandguns"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Pistols"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipePistol"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipePistol"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("craftingSledgehammers"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Hammers"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnSledgeT1IronSledgehammer"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnSledgeT1IronSledgehammer"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunHandgunT1Pistol"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunHandgunT1Pistol"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo9mmBulletBall"), player, 150, ""); RebirthUtilities.InitWeapon("Pistols", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModBuilder"), player, 1, ""); } } } else if (classID == 8) // CHEF { ProgressionValue progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingHeavyHandguns"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "HeavyHandguns"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipePistol"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipePistol"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("craftingBlades"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Knives"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnBladeT1HuntingKnife"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnBladeT1HuntingKnife"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunHandgunT3DesertVulture"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunHandgunT3DesertVulture"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo44MagnumBulletBall"), player, 100, ""); RebirthUtilities.InitWeapon("HeavyHandguns", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayAuraModChef"), player, 1, ""); } } } else if (classID == 9) // WITCH DOCTOR { ProgressionValue progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingTacticalRifles"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "TacticalRifles"; int PerkLevel = 2; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingPipeMachinegun"); if (progressionValue != null) { if (progressionValue.Level < 50) { string key = "PipeMachinegun"; progressionValue.Level = 50; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingScythes"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Scythes"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("ItemsWeaponsScythe004_FR"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ItemsWeaponsScythe004_FR"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("gunMGT2TacticalAR"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunMGT2TacticalAR"), player, 1, "", 1, true, 2); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo762mmBulletBall"), player, 100, ""); RebirthUtilities.InitWeapon("TacticalRifles", player); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { //RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsaySpawnNPCHorrorPanther_FR"), player, 1, ""); } } } else if (classID == 10) // BERSERKER { ProgressionValue progressionValue = player.Progression.GetProgressionValue("craftingSpears"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Spears"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("craftingClubs"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Clubs"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingSwords"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Swords"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingAxes"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Axes"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingBatons"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Batons"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("craftingKnuckles"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Knuckles"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("craftingSledgehammers"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Hammers"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("craftingBlades"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Knives"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } progressionValue = player.Progression.GetProgressionValue("FuriousRamsayCraftingScythes"); if (progressionValue != null) { if (progressionValue.Level < 50) { progressionValue.Level = 50; string key = "Scythes"; int PerkLevel = 1; float categoryValue = RebirthUtilities.GetDirectCraftingPerksCategoryValue(key, progressionValue.Level); RebirthVariables.localVariables["$varFuriousRamsay" + key + "PercUnit"] = categoryValue; RebirthUtilities.ProcessAttribute(player, "$varFuriousRamsay" + key + "PercUnit"); RebirthVariables.localConstants["$varFuriousRamsayPerk" + PerkLevel + "PercUnit"] = categoryValue; } } if (currentClassID == 0 && optionJumpstart != "none" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnSpearT1IronSpear"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnSpearT1IronSpear"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnClubT1BaseballBat"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnClubT1BaseballBat"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnBladeT3Machete"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnBladeT3Machete"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeToolAxeT1IronFireaxe"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeToolAxeT1IronFireaxe"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnBatonT0PipeBaton"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnBatonT0PipeBaton"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnKnucklesT1IronKnuckles"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnKnucklesT1IronKnuckles"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnSledgeT1IronSledgehammer"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnSledgeT1IronSledgehammer"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("meleeWpnBladeT1HuntingKnife"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("meleeWpnBladeT1HuntingKnife"), player, 1, "", 1, true, 2); if (!RebirthUtilities.hasItem(ItemClass.GetItem("ItemsWeaponsScythe004_FR"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ItemsWeaponsScythe004_FR"), player, 1, "", 1, true, 2); if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { //RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsaySpawnNPCRagePanther_FR"), player, 1, ""); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("gunMGT0PipeMachineGun"), player, 1, "", 1, true, 1); RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("ammo762mmBulletBall"), player, 100, ""); } } } if (currentClassID == 0 && optionJumpstart == "classbookessentials") { if (!RebirthUtilities.hasItem(ItemClass.GetItem("armorPrimitiveHelmet"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("armorPrimitiveHelmet"), player, 1, "", 1, true, 1); if (!RebirthUtilities.hasItem(ItemClass.GetItem("armorPrimitiveOutfit"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("armorPrimitiveOutfit"), player, 1, "", 1, true, 1); if (!RebirthUtilities.hasItem(ItemClass.GetItem("armorPrimitiveGloves"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("armorPrimitiveGloves"), player, 1, "", 1, true, 1); if (!RebirthUtilities.hasItem(ItemClass.GetItem("armorPrimitiveBoots"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("armorPrimitiveBoots"), player, 1, "", 1, true, 1); if (!RebirthUtilities.hasItem(ItemClass.GetItem("FuriousRamsayHammerPliers"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayHammerPliers"), player, 1, ""); if (!RebirthUtilities.hasItem(ItemClass.GetItem("FuriousRamsayScrewdriver"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayScrewdriver"), player, 1, ""); if (!RebirthUtilities.hasItem(ItemClass.GetItem("WorkbenchToolbox001_FR"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("WorkbenchToolbox001_FR"), player, 1, ""); if (!RebirthUtilities.hasItem(ItemClass.GetItem("toolCookingPot"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("toolCookingPot"), player, 1, ""); if (!RebirthUtilities.hasItem(ItemClass.GetItem("vehicleBicyclePlaceable"), player)) RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("vehicleBicyclePlaceable"), player, 1, ""); } if (optionJumpstart == "classbookessentials" || (RebirthVariables.customScenario == "purge" && currentClassID == 0)) { RebirthUtilities.addToPlayerInventory(ItemClass.GetItem("FuriousRamsayLootCorpses"), player, 1, ""); } GameManager.Instance.StartCoroutine(RebirthUtilities.UpdateActiveClasses(player)); foreach (var localAuras in RebirthVariables.localAuras.Keys) { //Log.Out("MinEventActionChangeClassRebirth-Execute localAuras: " + localAuras); bool remove = true; bool add = false; if (RebirthVariables.localAuras[localAuras].className == className) { remove = false; add = true; } foreach (string classMetaKey in RebirthVariables.localClassMeta.Keys) { if (classMetaKey == RebirthVariables.localAuras[localAuras].className) { if (RebirthVariables.localClassMeta[classMetaKey].isActive) { //Log.Out("MinEventActionChangeClassRebirth-Execute classMetaKey: " + classMetaKey); remove = false; break; } } } if (RebirthVariables.localAuras[localAuras].className == "") { remove = false; } if (remove) { //Log.Out("MinEventActionChangeClassRebirth-Execute REMOVE"); //Log.Out("MinEventActionChangeClassRebirth-Execute AURA: " + RebirthVariables.localAuras[localAuras].allyAura); bool hasBuff = player.Buffs.HasBuff(RebirthVariables.localAuras[localAuras].allyAura); //Log.Out("MinEventActionChangeClassRebirth-Execute hasBuff: " + hasBuff); if (hasBuff) { player.Buffs.RemoveBuff(RebirthVariables.localAuras[localAuras].allyAura); } } if (add) { bool hasMod = RebirthUtilities.HasMod(player, "FuriousRamsayAuraMod" + className); //Log.Out("MinEventActionChangeClassRebirth-Execute HasMod: " + HasMod); if (RebirthUtilities.HasMod(player, "FuriousRamsayAuraMod" + className)) { player.Buffs.AddBuff(RebirthVariables.localAuras[localAuras].allyAura); } } } } public override bool ParseXmlAttribute(XAttribute _attribute) { var flag = base.ParseXmlAttribute(_attribute); if (flag) return true; var name = _attribute.Name; if (name == null) { return flag; } else if (name == "classID") { classID = Int32.Parse(_attribute.Value); return true; } else { return false; } } }