Page 1 of 1

[1.6.7] You can still avoid WS prerequisite almost freely

Posted: Fri Jul 17, 2020 7:00 am
by helminthauge
Eat the Heart of the Sandworm Queen. Stock 1 category point and 10 generic points (3 of them can even be from unlearning talents!) and have your dexterity over 50. Move into the level-up screen. Unlock Harmony and put 10 points into it. Get Windtouched Speed prodigy and close the prodigy screen. Unlearn all talents in Harmony and unlearn this category. Exit and congratulations! You have avoid the prerequisite!

This bug must be fixed or why don't you just change the prerequisite into "Be a natural creature"?

I believe that you can also do the same to avoid the prerequisite of Never Stop Running. It's just a far less popular prodigy and the only ones who'd bother trying avoid the prerequisite are Wyrmics, Summoners and Sun Paladins (maybe plus Arcane Blades?).

Re: [1.6.7] You can still avoid WS prerequisite almost freel

Posted: Fri Jul 17, 2020 2:01 pm
by helminthauge
Plus for all the 50 stat requirements, you can also cheat the same way by stocking stat points. Just there's usually no need to do this.

Re: [1.6.7] You can still avoid WS prerequisite almost freel

Posted: Fri Jul 17, 2020 2:28 pm
by helminthauge
I propose a very simple solution to this bug.

Just change the code of the button leading to prodigy selection window in the mod/dialogs/LevelupDialog.lua file to:

Code: Select all

	self.b_prodigies = Button.new{text="Prodigies", fct=function()
			local changed = #self.actor.last_learnt_talents.class ~= #self.actor_dup.last_learnt_talents.class or #self.actor.last_learnt_talents.generic ~= #self.actor_dup.last_learnt_talents.generic
			for i = 1, #self.actor.last_learnt_talents.class do if self.actor.last_learnt_talents.class[i] ~= self.actor_dup.last_learnt_talents.class[i] then changed = true end end
			for i = 1, #self.actor.last_learnt_talents.generic do if self.actor.last_learnt_talents.generic[i] ~= self.actor_dup.last_learnt_talents.generic[i] then changed = true end end

			if self.actor.unused_stats~=self.actor_dup.unused_stats or self.actor.unused_talents_types~=self.actor_dup.unused_talents_types or
			self.actor.unused_talents~=self.actor_dup.unused_talents or self.actor.unused_generics~=self.actor_dup.unused_generics or self.actor.unused_prodigies~=self.actor_dup.unused_prodigies or changed then
				--copying EXIT function
				Dialog:simplePopup("Prodigies", "You must reopen this window and don't change anything to access the prodigy selection.")
			else
				self.on_finish_prodigies = self.on_finish_prodigies or {}
				local d = require("mod.dialogs.UberTalent").new(self.actor, self.on_finish_prodigies)
				game:registerDialog(d)
			end
		end, on_select=function()
		local str = desc_prodigies
		if self.no_tooltip then
			self.c_desc:erase()
			self.c_desc:switchItem(str, str, true)
		else
			game:tooltipDisplayAtMap(self.b_stat.last_display_x + self.b_stat.w, self.b_stat.last_display_y, str)
		end
	end}