summary refs log tree commit diff
path: root/whispers-qol
diff options
context:
space:
mode:
Diffstat (limited to 'whispers-qol')
-rw-r--r--whispers-qol/data/.keep0
-rw-r--r--whispers-qol/hooks/load.lua0
-rw-r--r--whispers-qol/init.lua19
-rw-r--r--whispers-qol/overload/.keep0
-rw-r--r--whispers-qol/superload/mod/class/Player.lua18
5 files changed, 37 insertions, 0 deletions
diff --git a/whispers-qol/data/.keep b/whispers-qol/data/.keep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/whispers-qol/data/.keep
diff --git a/whispers-qol/hooks/load.lua b/whispers-qol/hooks/load.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/whispers-qol/hooks/load.lua
diff --git a/whispers-qol/init.lua b/whispers-qol/init.lua
new file mode 100644
index 0000000..a0d6666
--- /dev/null
+++ b/whispers-qol/init.lua
@@ -0,0 +1,19 @@
+long_name = "Whispers' QoL"
+short_name = "whispers_qol"
+for_module = "tome"
+addon_version = {0,1,0}
+version = {1,7,6}
+-- weight >50 to patch ZOmnibus
+weight = 51
+author = {'Rabbit Whispers'}
+homepage = {'starfall.systems'}
+description = [[Rabbit Whispers' quality of life collection:
+
+- Auto-Transmo Gems (if installed) will no longer transmute quartz, turquoise, or bloodstone regardless of settings
+]]
+tags = { }
+
+data = false
+hooks = false
+overload = false
+superload = true
diff --git a/whispers-qol/overload/.keep b/whispers-qol/overload/.keep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/whispers-qol/overload/.keep
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