New Content - Implemented Naughty Sorceress' Tower has been revamped!

Veracity

Developer
Staff member
Revision 15177 adds a per-ascension setting: nsTowerDoorKeysUsed which is a comma separated list of item names.
 

Darzil

Developer
Also Quest Logging. Anybody want to do the heavy lifting for that? Council text and Quest Log text at every stage...
I can do, I have done quite a number of the recent ones. I'm not sure when, as I'm trying to get the Conspiracy Island stuff nailed before ascending.
 

Veracity

Developer
Staff member
I wondered why it did not reset skills, etc. last time I freed the king. Here is why:

place.php?whichplace=nstower&action=ns_11_prism

Revision 15192 should detect when we are entering the battle with the Naughty Sorceress and also when we free King Ralph.
 

Bale

Minion
Found a couple of misspelled monsters:

KoL nameKoLmafia's mistake
Accountant-BarbarianAccountant Barbarian
KleptobrainiacKleptobraniac
 

Bale

Minion
Here are the missing monsters from the "Spookiest Adventurer Contest"
  • Batburglar
  • Ghostpuncher
  • Plague Chef
They are all scaling Dudes with no elemental affinity who never win initiative. Just like all the others.
 
Last edited:

Veracity

Developer
Staff member
Here are the missing monsters from the "Spookiest Adventurer Contest"
  • Batburglar
  • Ghostpuncher
  • Plague Chef
I am sure they are ordered Ghostpuncher, Plague Chef, and BatBurglar (fighter, rogue, thief) per images, like the others.
Thanks. Revision 14194
 

Veracity

Developer
Staff member
How does the Universal Key from KOLHS work with the new door? Previously, you would choose to use it and it would morph into a key you did not have. I would guess that now you attempt a lock whose key you don't have and the key morphs into it. If so, with what message?

I diked out the code we used to have to support the universal key. I expect we can reimplement it for the new scheme, once we find out what it is...
 

Veracity

Developer
Staff member
If you click on a lock with the correct key in inventory, the lock opens.
If you click on a lock without the correct key in inventory, Frank gives you a hint about how to get the right key.

The easy and obvious way for them to handle the universal key would be:

If you click on a lock without the correct key in inventory, but you do have a universal key, there is a message about the key morphing, perhaps Frank says something, and the lock opens with the expected message.

Given that, revision 15196 looks for the string "universal key" in the response text, and if it is present, removes that key from inventory. It sets the nsTowerDoorKeysUsed with the "morphed" (i.e. the normal expected) key name, not "universal key".

If they end up doing something else, we will have to adapt, but if they do the rational thing, we are all set. :)
 

Veracity

Developer
Staff member
I also forgot to mention the Topiary Nuggletcrafting Coinmaster, but revision 15197 includes that. Untested.
 

Bale

Minion
I am sure they are ordered Ghostpuncher, Plague Chef, and BatBurglar (fighter, rogue, thief) per images, like the others.
Thanks. Revision 14194

Gorram. I forgot we list image names for monsters now. Yep, you got them right!
 

Veracity

Developer
Staff member
We need to log the Hedge Maze better. We don't put turn numbers on chained choices, because they tend to not take turns - but these do. Additionally, this has choices that lead to fights that lead to choices. Here is what I just got:

Code:
[897] The Hedge Maze
Encounter: 'Allo
Took choice 1005/1: topiary nugglet and advance to Room 2
choice.php?pwd&whichchoice=1005&option=1
Encounter: One Small Step For Adventurer
You acquire an item: topiary nugglet
Took choice 1006/1: topiary nugglet and advance to Room 3
choice.php?pwd&whichchoice=1006&option=1
Encounter: Twisty Little Passages, All Hedge
You acquire an item: topiary nugglet
Took choice 1007/2: Fight topiary chihuahua herd and advance to Room 5
choice.php?pwd&whichchoice=1007&option=2
Encounter: topiary chihuahua herd
Round 0: Veracity loses initiative!
...
Round 3: Veracity wins the fight!
Encounter: Good Ol' 44% Duck
Took choice 1009/1: topiary nugglet and advance to Room 6
choice.php?pwd&whichchoice=1009&option=1
Encounter: Another Day, Another Fork
You acquire an item: topiary nugglet
Took choice 1010/2: Fight topiary kiwi and advance to Room 8
choice.php?pwd&whichchoice=1010&option=2
Encounter: topiary kiwi
Round 0: Veracity loses initiative!
Round 3: Veracity wins the fight!
Encounter: The Last Temptation
Took choice 1012/1: unknown
choice.php?pwd&whichchoice=1012&option=1
Encounter: Mazel Tov!
You acquire an item: topiary nugglet
Took choice 1013/1: unknown
choice.php?pwd&whichchoice=1013&option=1
At the end of each fight, it had "found in this fight" the previously acquired topiary nugglets, complete with use links - even though my "next" link was to choice.php...

Here is what I'd like to see:

Code:
[897] The Hedge Maze
Encounter: 'Allo
Took choice 1005/1: topiary nugglet and advance to Room 2
choice.php?pwd&whichchoice=1005&option=1

[898] The Hedge Maze
Encounter: One Small Step For Adventurer
You acquire an item: topiary nugglet
Took choice 1006/1: topiary nugglet and advance to Room 3
choice.php?pwd&whichchoice=1006&option=1

[899] The Hedge Maze
Encounter: Twisty Little Passages, All Hedge
You acquire an item: topiary nugglet
Took choice 1007/2: Fight topiary chihuahua herd and advance to Room 5
choice.php?pwd&whichchoice=1007&option=2
Encounter: topiary chihuahua herd
Round 0: Veracity loses initiative!
...
Round 3: Veracity wins the fight!

[900] The Hedge Maze
Encounter: Good Ol' 44% Duck
Took choice 1009/1: topiary nugglet and advance to Room 6
choice.php?pwd&whichchoice=1009&option=1

[901] The Hedge Maze
Encounter: Another Day, Another Fork
You acquire an item: topiary nugglet
Took choice 1010/2: Fight topiary kiwi and advance to Room 8
choice.php?pwd&whichchoice=1010&option=2
Encounter: topiary kiwi
Round 0: Veracity loses initiative!
...
Round 3: Veracity wins the fight!

[902] The Hedge Maze
Encounter: The Last Temptation
Took choice 1012/1: unknown
choice.php?pwd&whichchoice=1012&option=1

[903] The Hedge Maze
Encounter: Mazel Tov!
You acquire an item: topiary nugglet
Took choice 1013/1: unknown
choice.php?pwd&whichchoice=1013&option=1
... and at the end of the entire chain, when we finally exit the last choice, have a "Previously Found" section with all 4 nugglets.

Fortunately, I saved the full log of this. I'll see what I can figure out.

(I remember similar difficulties in the Gourd Psychoses, which has series of fights broken up by choices. Unfortunately, THAT was something I could repeat at will, not once per ascension.)
 

Bale

Minion
There is only one possible response to choiceAdventure1003 (Test Your Might And Also Test Other Things), so please make it default to 1.
 

Veracity

Developer
Staff member
There is only one possible response to choiceAdventure1003 (Test Your Might And Also Test Other Things), so please make it default to 1.
That is incorrect. As I said, farther up the thread:

Took choice 1003/1: unknown
Took choice 1003/2: unknown
Took choice 1003/3: unknown

The above are registering for the three contests.

Took choice 1003/4: unknown
You acquire an item: World's Best Adventurer sash

Collecting your reward

Took choice 1003/6: unknown

Leaving without doing anything.
 

Veracity

Developer
Staff member
(I remember similar difficulties in the Gourd Psychoses, which has series of fights broken up by choices. Unfortunately, THAT was something I could repeat at will, not once per ascension.)
As it turns out, I implemented ChoiceManager.registerDeferredChoice specifically to handle this situation in the Gourd.
Revision 15207 adds the choice numbers for Hedge Maze rooms 2-9 to that method and, hopefully, that will do it.

I'm about to ascend, so won't be able to test it until Sunday. I'd be interested to hear any earlier reports of how the Hedge Maze now logs!

(The "found in this fight" use links being given while in the middle of a fight/choice chain is a different issue. I'll look at that next.
 

Veracity

Developer
Staff member
There is only one possible response to choiceAdventure1003 (Test Your Might And Also Test Other Things), so please make it default to 1.
Upon further reflection, it would make sense to set the default to 4 - which is the one and only choice to claim your prize, when you reach that point, and is otherwise not available. I believe that if that is the default, if that choice is not available, it defaults to Manual Control.

Regarding the Adventurer Contest monsters:

Every one of them has Atk 0 Def 0 and HP 0 in Manuel, but I was unable to make any sense of the numbers Manual was telling me for any of the normal mooks while I was fighting them; they seemed to have no connection to my Muscle or Moxie, as you would expect for regular scaling monsters. However, while fighting the three "bosses", Manuel had the following stats:

The Tasmanian Dervish - 300/150/300
The Mastermind = 250/250/200
Arthur Frankenstein - 300/150/300

Those could very well be scaling monsters with the above as capped stats, or something.
 

Bale

Minion
OH! I didn't realize the option to claim my prize was still the same choice adventure. My bad. :(

I'm glad you were more on the ball with this than I was.


Upon further reflection, it would make sense to set the default to 4 - which is the one and only choice to claim your prize, when you reach that point, and is otherwise not available.

Are you sure that it was choice 4? I seem to remember checking and seeing that the single choice was actually choice 1. That's why I was so easily misled about it being a different choice adventure.
 
Last edited:

Veracity

Developer
Staff member
Here's a progress report on this: my entire trip through the lair just now, with excess details of fights, etc., trimmed.

[932] Tower: Contest Booth
Encounter: Test Your Might And Also Test Other Things
Registering for the Fastest Adventurer Contest
Encounter: Test Your Might And Also Test Other Things
Registering for the Strongest Adventurer Contest
Encounter: Test Your Might And Also Test Other Things
Registering for the Sleaziest Adventurer Contest
Encounter: Test Your Might And Also Test Other Things

[932] Fastest Adventurer Contest
Encounter: The Tasmanian Dervish
Round 0: Veracity wins initiative!
...
Round 6: Veracity wins the fight!

[933] Strongest Adventurer Contest
Encounter: Macho Man
Round 0: Veracity wins initiative!
...
Round 4: Veracity wins the fight!

... and so on...

[953] Tower: Contest Booth
Encounter: Test Your Might And Also Test Other Things
Claiming your prize
You acquire an item: World's Best Adventurer sash

[953] Tower: Closing Ceremony
Encounter: Closing Ceremony
Encounter: Meet Frank
Encounter: Meet Frank

[953] The Hedge Maze
Encounter: 'Allo

[953] The Hedge Maze (Room 2)
Encounter: One Small Step For Adventurer
You acquire an item: topiary nugglet
Encounter: topiary gopher
Round 0: Veracity loses initiative!
Round 4: Veracity wins the fight!

[955] The Hedge Maze (Room 4)
Encounter: Pooling Your Resources

[955] The Hedge Maze (Room 5)
Encounter: Good Ol' 44% Duck
You acquire an item: topiary nugglet
Encounter: topiary duck
Round 0: Veracity loses initiative!
Round 7: Veracity wins the fight!

[957] The Hedge Maze (Room 7)
Encounter: Of Mouseholes and Manholes

[957] The Hedge Maze (Room 8)
Encounter: The Last Temptation
You acquire an item: topiary nugglet

[958] The Hedge Maze (Room 9)
Encounter: Mazel Tov!
You acquire an item: topiary nugglet

[960] Tower Door
Tower Door: Boris's lock
Tower Door: Jarlsberg's lock
Tower Door: Sneaky Pete's's lock
Tower Door: star lock
Tower Door: digital's lock
Tower Door: skeleton's lock
Tower Door: doorknob

[960] Tower Level 1
Encounter: wall of skin
Round 0: Veracity wins initiative!
Round 1: Veracity uses the beehive!
Round 2: Veracity wins the fight!

[961] Tower Level 2
Encounter: wall of meat
Round 0: Veracity wins initiative!
Round 6: Veracity wins the fight!

[962] Tower Level 2
Encounter: wall of meat
Round 0: Veracity wins initiative!
Round 6: Veracity wins the fight!

[963] Tower Level 3
Encounter: wall of bones
Round 0: Veracity wins initiative!
Round 1: Veracity uses the electric boning knife!
Round 2: Veracity wins the fight!

[964] Tower Level 4
Encounter: The Mirror in the Tower has the View that is True
You acquire an intrinsic: Confidence!

[965] Tower Level 5
Encounter: Shadow Cannelloni Conjurer
Round 0: Veracity loses initiative!
Round 3: Veracity wins the fight!

[966] The Naughty Sorceress' Chamber
Encounter: The Naughty Sorceress
Round 0: Veracity loses initiative!
Round 6: Veracity wins the fight!

[967] The Naughty Sorceress' Chamber
Encounter: The Naughty Sorceress (2)
Round 0: Veracity loses initiative!
Round 7: Veracity wins the fight!

[967] The Naughty Sorceress' Chamber
Encounter: The Naughty Sorceress (3)
Round 0: Veracity loses initiative!
Round 1: Veracity wins the fight!

[967] Tower: Breaking the Prism
- I like how the rooms of the Hedge Maze are logged - but the turn numbers are wonky. I don't understand that. We surely had a charpane refresh in there between my clicking the "next" link. I'll turn on the DEBUG log next time.
- After every fight in the Hedge Maze, even though there was a "next" link to choice.php (i.e., we were still in a multi-fight/choice), I got a "found in this fight" section with the previous topiary nugglets. The aforementioned DEBUG log should help me figure that out too. I wish I'd done it this time.
- We still need configuration/spoilers for the mirror on Tower Level 4
- We have all the contest monsters except the Hottest "mage"
- We have no Atk/Def/HP for the (scaling) contest monsters

Other than that, this is looking good.

I also need to remove the built-in quest scripts (which are no more) from the Quests menu.
 

Theraze

Active member
The Last Temptation didn't have spoilers. All of the other choices seemed to.

It would be nice, if possible, if the spoilers for the hedge-tests told you whether you'd pass or not. Once the tests are fully spaded.
 

Theraze

Active member
Here's the unspoilered Last Temptation. This is after the Kiwi fight.
HTML:
<html><head>
<script language=Javascript>
<!--
if (parent.frames.length == -1) location.href="game.php";
top.charpane.location.href="charpane.php";
//-->
</script>
<script language=Javascript src="//images.kingdomofloathing.com/scripts/jquery-1.5.1.js"></script>
<script language=Javascript src="//images.kingdomofloathing.com/scripts/keybinds.min.2.js"></script>
<script language=Javascript src="//images.kingdomofloathing.com/scripts/window.20111231.js"></script>
<script language="javascript">function chatFocus(){if(top.chatpane.document.chatform.graf) top.chatpane.document.chatform.graf.focus();}
if (typeof defaultBind != 'undefined') { defaultBind(47, 2, chatFocus); defaultBind(190, 2, chatFocus);defaultBind(191, 2, chatFocus); defaultBind(47, 8, chatFocus);defaultBind(190, 8, chatFocus); defaultBind(191, 8, chatFocus); }</script><script>
function switchFocus()
{
	if (top.chatpane.document.chatform.graf.focus) 
		top.chatpane.document.chatform.graf.focus(); 
	return false;
}
function repeat()
{
	var linx = document.getElementsByTagName("A");
	for (var i = 0; i < linx.length; i++)
	{
		if (typeof timersfunc != 'undefined') {
			if (!timersfunc()) { 
				return; 
			}
			timersfunc = null;
		}
		var link = linx[i];
		if (link.innerHTML.match(/Adventure Again/) || link.innerHTML.match(/Do it again/))
			location.href = link.href;
	}
}

defaultBind(47, CTRL, switchFocus);
defaultBind(191, CTRL, switchFocus);
defaultBind(47, META, switchFocus);
defaultBind(191, META, switchFocus);
defaultBind(192, NONE, repeat);
defaultBind(220, NONE, repeat);
</script><script language="javascript">
	function updateParseItem(iid, field, info) {
		var tbl = $('#ic'+iid);
		var data = parseItem(tbl);
		if (!data) return;
		data[field] = info;
		var out = [];
		for (i in data) {
			if (!data.hasOwnProperty(i)) continue;
			out.push(i+'='+data[i]);
		}
		tbl.attr('rel', out.join('&'));
	}
	function parseItem(tbl) {
		tbl = $(tbl);
		var rel = tbl.attr('rel');
		var data = {};
		if (!rel) return data;
		var parts = rel.split('&');
		for (i in parts) {
			if (!parts.hasOwnProperty(i)) continue;
			var kv = parts[i].split('=');
			tbl.data(kv[0], kv[1]);
			data[kv[0]] = kv[1];
		}
		return data;
	}
</script><script type="text/javascript" src="/images/scripts/pop_query.20130705.js"></script>
<script type="text/javascript"> function pop_ircm(clicked) { return false; } </script><script>

var currentkey = 49;
$(document).ready(function () {
	$('form').each(function () {
		var form = this;
		defaultBind(currentkey++, NONE, function () { form.submit(); });
		return currentkey < 58;
	});
});

</script><link rel="stylesheet" type="text/css" href="//images.kingdomofloathing.com/styles.20150113.css">
<style type='text/css'>
.faded {
	zoom: 1;
	filter: alpha(opacity=35);
	opacity: 0.35;
	-khtml-opacity: 0.35; 
    -moz-opacity: 0.35;
}
</style>

<script src="http://code.jquery.com/jquery-1.9.1.js"></script><script src="/stationarybuttons.1.js"></script><link rel="stylesheet" type="text/css" href="/stationarybuttons.1.css"><script src="/hotkeys.js"></script><script language="Javascript" src="/basics.js"></script><link rel="stylesheet" href="/basics.1.css" /></head>

<body onkeyup="handleCombatHotkey(event,false);" onkeydown="handleCombatHotkey(event,true);" ><div id="page"><div id="mafiabuttons"><center><table width="95%"><tr><td align=left><div id="btnwrap"><input type="button" onClick="document.location.href='choice.php?action=auto';void(0);" value="auto" id="defaultButton"> <input type="button" onClick="document.location.href='choice.php?whichchoice=1012&option=1&pwd=de7b8547e925482335ae8c62c626373b';void(0);" value="Follow the left wall"> <input type="button" onClick="document.location.href='choice.php?whichchoice=1012&option=2&pwd=de7b8547e925482335ae8c62c626373b';void(0);" value="Go straight through"> </div></td></tr></table></center></div><div class='content' id='content_'><div id='effdiv' style='display: none;'></div><div>
<Center><centeR><!--faaaaaaart--><table  width=95%  cellspacing=0 cellpadding=0><tr><td style="color: white;" align=center bgcolor=blue><b>The Last Temptation</b></td></tr><tr><td style="padding: 5px; border: 1px solid blue;"><center><table><tr><td><center><img src="/images/adventureimages/sorcdoor.gif" width=100 height=100></center><p>Frank says "We are 78% of the way through this thing, Chief.  So close I can taste it.  Or I would be able to, if I still had a tongue."
<p>
"Speaking of which," you say, "how are you talking, exactly?"
<p>
"Don't worry about it.  Worry about this maze.  And finishing it.  By hugging the left wall."
<p>
You take a look around.  There is a direct path from you to the exit.  You can see the door at the base of the tower.<p>Frank says "You're killin' me, Chief.  Please.  Just stick to the left wall and let's get this over with."<center><form style='margin: 0px 0px 0px 0px;' name=choiceform1 action=choice.php method=post><input type=hidden name=pwd value='de7b8547e925482335ae8c62c626373b'><input type=hidden name=whichchoice value=1012><input type=hidden name=option value=1><input class=button type=submit value="Follow the left wall"></form><p><form style='margin: 0px 0px 0px 0px;' name=choiceform2 action=choice.php method=post><input type=hidden name=pwd value='de7b8547e925482335ae8c62c626373b'><input type=hidden name=whichchoice value=1012><input type=hidden name=option value=2><input class=button type=submit value="Go straight through"></form><p></center></td></tr></table></center></td></tr><tr><td height=4></td></tr></table></center><!--faaaaaaart--><script>top.charpane.location.href="charpane.php";</script>
</div></div></div></body><script src="/onfocus.1.js"></script></html>
 
Top