Second Winner! Dwarf Berzerker

Post about your characters, your deaths, ...
Comments, videos, screenshots welcome!

Moderator: Moderator

Post Reply
Message
Author
Mopman43
Yeek
Posts: 12
Joined: Tue Jan 08, 2013 2:04 am

Second Winner! Dwarf Berzerker

#1 Post by Mopman43 »

http://te4.org/characters/18418/tome/4a ... f2a7f01aa5
It was a fun time. I was too late in the charred scar, (though not by much!).
Two strange things in my playthrough: I couldn't find one of the guardians in the Ruined Dungeon, so I couldn't get to the last room. I also managed to kill the cultist in the Dark Crypt before he summoned my shade, which I found strange.

I found Draconic Body useful, but steamroller not so much. I think I would rather have taken Giant Leap.

This was my second win, but the first that my account recorded. Every character I've gotten past Dreadfell has won.

Crim, The Red Thunder
Sher'Tul Godslayer
Posts: 2000
Joined: Fri May 07, 2004 8:26 pm
Location: Nahgharash

Re: Second Winner! Dwarf Berzerker

#2 Post by Crim, The Red Thunder »

Dark crypt has a flaw in the current version. Supposedly, the AI indicates that he summon your clone when bone shield goes down. Since the recent changes to bone shield make it stay on and eventually regenerate orbs, instead of breaking and having to be reactivated, he doesn't 'lose' the sustain. Which mean the AI never triggers the clone spell. The workaround is to manually turn his sustain off with Disperse Magic, Gloves of Dispersion, Spellhunt Remnants (Tier 5), or Corrupted Negation. The spell feedback prodigy can also work, but it's finicky since it might or might not disable a sustain on any given turn.

Other then that, good run. And the issue with missing guardians in the dungeon, is supposedly due to invisible Xorns/Xarens inside the wall that aren't aggroing to you. On the other hand, I only have secondhand information on that, since I've never run across the issue.
Currently playing under the name Aura of the Dawn 4 down, 227 to go!
Proud author of Orc Pit Restoration Project, Faction Allies, Dwarven Adventurer addons
SadistSquirrel wrote:DarkGod has two arms, one with an opened hand, one with a closed fist. You got the fist.

Mopman43
Yeek
Posts: 12
Joined: Tue Jan 08, 2013 2:04 am

Re: Second Winner! Dwarf Berzerker

#3 Post by Mopman43 »

I don't think it was Xorns. I dug through the walls all around just in case. The only thing I can say is that, when I was walking around that are, I heard what sounded like a jelly.

Mewtarthio
Uruivellas
Posts: 717
Joined: Mon Jul 16, 2012 6:03 pm

Re: Second Winner! Dwarf Berzerker

#4 Post by Mewtarthio »

Crim, The Red Thunder wrote:And the issue with missing guardians in the dungeon, is supposedly due to invisible Xorns/Xarens inside the wall that aren't aggroing to you. On the other hand, I only have secondhand information on that, since I've never run across the issue.
That doesn't sound right. The guardians are in the same spots every time; I'm pretty sure they can't get generated inside the walls.

..Actually, I think what's happening is that the Guardians are being generated as randelites. The relevant code is here:

Code: Select all

	if self.filters then f = self.filters[rng.range(1, #self.filters)] end
	if self.randelite > 0 and rng.chance(self.randelite) and self.zone:level_adjust_level(self.level, "actor") > 3 and game.difficulty ~= game.DIFFICULTY_EASY then
		print("Random elite generating")
		if not f then f = {} else f = table.clone(f, true) end
		f.random_elite = f.random_elite or true
	end
	local m = self.zone:makeEntity(self.level, "actor", f, nil, true)
	if m then
		local x, y = rng.range(self.area.x1, self.area.x2), rng.range(self.area.y1, self.area.y2)
		local tries = 0
		while (not m:canMove(x, y) or (self.map.room_map[x][y] and self.map.room_map[x][y].special)) and tries < 100 do
			x, y = rng.range(self.area.x1, self.area.x2), rng.range(self.area.y1, self.area.y2)
			tries = tries + 1
		end
You'll notice that the function decides whether to generate a randelite before it enters the loop where it checks random entities against the filter. The filter for generating guardians is in this line in the map file:

Code: Select all

defineTile(" ", "OLD_FLOOR", nil, {random_filter={not_properties = {"unique"}, random_elite={name_scheme="#rng# the Guardian", on_die=function(self)
However, the randelite function calls the createRandomBoss function, which has this pesky line in it:

Code: Select all

	b.unique = b.name
Consequentially, if the RNG decides to create a randelite when generating a Guardian, then every single entity it generates in the loop will be a randelite, and therefore every entity it checks in the filter will have the "unique" property. Therefore, every actor will fail the test against the filter, and no actor will be generated.

The solution here would be to move the code that checks the randelite chance to within the loop.

Post Reply