summary refs log tree commit diff
path: root/whispers-qol/superload/mod/class
diff options
context:
space:
mode:
Diffstat (limited to 'whispers-qol/superload/mod/class')
-rw-r--r--whispers-qol/superload/mod/class/Player.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/whispers-qol/superload/mod/class/Player.lua b/whispers-qol/superload/mod/class/Player.lua
new file mode 100644
index 0000000..3a6068e
--- /dev/null
+++ b/whispers-qol/superload/mod/class/Player.lua
@@ -0,0 +1,18 @@
+local _M = loadPrevious(...)
+
+-- detect Auto-Transmo Gems, hopefully durably
+if type(config.settings.tome.auto_transmo_gems) ~= 'nil' then
+	local super_pickupFloor = _M.pickupFloor
+	function _M:pickupFloor(i, vocal, no_sort)
+		local ret = { super_pickupFloor(self, i, vocal, no_sort) }
+
+		local o = ret[1]
+		if not (o and type(o) == 'table' and o.type == 'gem' and o.imbue_powers and o.__transmo == true) then
+			return unpack(ret)
+		if o.imbue_powers.stun_immune or o.imbue_powers.resists_pen then
+			o.__transmo = false
+		end
+
+		return unpack(ret)
+	end
+end