From 660cddf297f6e16a9b40608e9faee3e35a74a6f8 Mon Sep 17 00:00:00 2001
From: Bunny <glisa825@gmail.com>
Date: Sun, 29 Dec 2019 09:20:58 -0500
Subject: [PATCH] Fix living weapons exploding in a shower of errors

---
 .../vaults/auto/greater/living-weapons.lua     | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/game/modules/tome/data/maps/vaults/auto/greater/living-weapons.lua b/game/modules/tome/data/maps/vaults/auto/greater/living-weapons.lua
index 2dadf192e6..06fba2594e 100644
--- a/game/modules/tome/data/maps/vaults/auto/greater/living-weapons.lua
+++ b/game/modules/tome/data/maps/vaults/auto/greater/living-weapons.lua
@@ -140,6 +140,15 @@ local make_poltergeist = function(type)
             {type="weapon", subtype="greatsword", autoreq=true, force_inven = "PSIONIC_FOCUS", no_drops=true},
         }
         make_req(el, o, "mindstar")
+	elseif o.subtype == "whip" then
+		class = "Corruptor"
+		e.autolevel = "warriormage"
+		e[#e+1] = resolvers.talents{
+			[Talents.T_CORRUPTED_NEGATION]={base=3, every=12, max=6},
+			[Talents.T_DRAIN]={base=5, every=10, max=7},
+			[Talents.T_BLOOD_GRASP]={base=4, every=5, max=7},
+		}
+		game.log("#LIGHT_RED#ERROR GENERATING: %s", o.name)
     elseif o.type == "weapon" and o.slot_forbid == "OFFHAND" then
         class = "Berserker"
         e.autolevel = "warrior"
@@ -154,6 +163,15 @@ local make_poltergeist = function(type)
             [Talents.T_ARMOUR_TRAINING]=2
         }
         make_req(el, o, "shield")
+	else -- failsafe for if no other category fits so we don't break generation
+		class = "Doomed"
+        e.autolevel = "wildcaster"
+        e[#e+1] = resolvers.talents{
+			[Talents.T_CALL_SHADOWS]={base=1, every=8, max=6},
+			[Talents.T_SHADOW_WARRIORS]={base=1, every=8, max=6},
+			[Talents.T_REPROACH]={base=5, every=10, max=5},
+        }
+		game.log("#LIGHT_RED#ERROR GENERATING: %s", o.name)
     end
     e[#e+1] = resolvers.auto_equip_filters(class)
 
-- 
GitLab