New Content - Implemented Pastamancer Revamp

Veracity

Developer
Staff member
Your Pasta Thrall shows up on the charpane above your familiar.

Regular charpane:

HTML:
<center>
<font size=2><b>Pasta Thrall:</b></font><br><img onClick='javascript:window.open("desc_guardian.php","","height=200,width=300")' src=http://images.kingdomofloathing.com/itemimages/t_spiceghost.gif width=30 height=30><br><font size=2><b>Wingwang</b><br>the Lvl. 1 Spice Ghost</font>
<table width=90%><tr><td colspan=2 align=center><font size=2><b>Familiar:</b></font></td></tr><tr><td align=center valign=center><a target=mainpane href="familiar.php" class="familiarpick"><img src="http://images.kingdomofloathing.com/itemimages/hobomonkey.gif" width=30 height=30 border=0></a></td><td valign=center align=left><a target=mainpane href="familiar.php" class="familiarpick"><b><font size=2>Grobert</a></b>, the  <b>50</b> pound Hobo Monkey</font></td></tr></table>
</center>
Compact charpane:

HTML:
<center>
<font size=2><b>Pasta Thrall:</b></font><br><img onClick='javascript:window.open("desc_guardian.php","","height=200,width=300")' src=http://images.kingdomofloathing.com/itemimages/t_spiceghost.gif width=30 height=30><br><font size=2><b>Wingwang</b><br>the Lvl. 1 Spice Ghost</font>
<hr width=50%><centeR><a target=mainpane href="familiar.php" class="familiarpick"><img src="http://images.kingdomofloathing.com/itemimages/hobomonkey.gif" width=30 height=30 border=0></a><br>50 lbs.
</center>
As you can see, the Pasta Thrall is identical, but the familiar becomes more compact.

It would not surprise me if they get around to compacting the Pasta Thrall on the compact charpane.
 

Veracity

Developer
Staff member
You can click on the image of your Pasta Thrall in the charpane. It invokes desc_guardian.php, which, for my multi, with a 0-experince Spice Ghost, says this:

HTML:
<html><head><title>Pasta Thrall Description</title></head><body bgcolor=white text=black link=black alink=black vlink=black><div id="description"><font face=Arial><center><img src=http://images.kingdomofloathing.com/itemimages/t_spiceghost.gif width=30 height=30><p><font size=2><b>Wingwang</b>, the level 1 Spice Ghost<p><blockquote><table><tr><td><font face=Arial size=2></font></td></tr></table></blockquote><p><font color=blue size=2><b>+11% Item Drops from Monsters</font></font></div><script type="text/javascript"><!--var resizetries = 0;var fsckinresize;setTimeout(fsckinresize = function ()  {var desch = document.getElementById('description').offsetHeight;if (desch < 100 && resizetries < 5) {setTimeout(fsckinresize, 100);resizetries++;}if (desch < 100) desch = 200;//alert('resizing on try #' + resizetries);if (self.resizeTo && window.outerHeight) {self.resizeTo(400, desch + (window.outerHeight - window.innerHeight) + 50);}else if (self.resizeTo ) { self.resizeTo(400, desch+130); }else { window.innerHeight = newh; }}, 100);//--></script></body></html>
It will be interesting to see how this changes as it grows. I suspect we will need a "pasta thrall weight" variable for modifiers
 

Veracity

Developer
Staff member
And, after 10 wins with that Pasta Thrall, I got a combat message:

HTML:
<!--familiarmessage--><center><table><tr><td align=center valign=center><img src="http://images.kingdomofloathing.com/itemimages/t_spiceghost.gif" width=30 height=30></td><td valign=center><p>Wingwang looks more powerful...</td></tr></table></center>
Other Pasta Thrall combat messages are similarly tagged as familiarmessage. Convenient.

My level 2 Spice Ghost gives Item Drop +12.
 

Veracity

Developer
Staff member
The Wiki has the beginning of a page about Pasta Thralls. They said something interesting:

Pasta thralls gain experience from won combats and can level up. Each thrall maintains its experience level after being replaced and re-summoned.
I guess we need to track the XP (or level) for each thrall.

They also say that the Spaghetti Elemental (from the Nemesis Quest) is now summoned via Bind Spaghetti Elemental (no details on the skill number) for 150 MP.

Also no details on how many combats (wins?) it takes to gain a level. My experience is that the first one took 10.

Legendary Regalia of the Pasta Master used to give +1 exp per combat to Pasta Guardians. still?
Bandolier of the Spaghetti Elemental used to let you summon 5 extra Pasta Guardians per day. obsolete. what now?
The crystal orb of spirit wrangling could be used to preserve your current Pasta Guardian. Is it still necessary, if each Pasta Thrall maintains its own experience count?

There's a lot of work to do for this. I have a multi who is a Pastamancer. I'm on it.
 

Winterbay

Active member
I think the nemesis-quest interactions of the revamps are not finished and as such those items may very well still do what they did before...
 

Veracity

Developer
Staff member
Revision 13194 adds support for pasta thralls:

Support for Pasta Thralls:

- settings: pastaThrall1 ... pastaThrall8 have "level" or "level,name"
- "thralls" CLI command tells what is known of your various thralls
- pick up current thrall from charpane.php or api.php
- pick up thrall names from charpane.php or from response text of various Bind XXX spells.
- modifier variable "P" is current Pasta Thrall level
- modifiers for all pasta thralls, including L5 and L10 powers.

I think this is pretty much everything we NEED.

- We don't track experience gained after battle; unlike the old pasta guardians, the level is visible in the charpane and api.php.

It would be nice to expand the "thralls" command to list the L1, L5, and L10 powers of each thrall, much as the "accordions" command tells you details of stolen accordions.
 

Bale

Minion
It would be very nice if there was an ash command that displays the active pasta thrall. Preferably as a number from 1 to 8 so I can easily look up the preference.
 

Veracity

Developer
Staff member
Oh, yeah. I forgot about that. Hmm.

familiar my_familiar();
item minstrel_instrument();
string my_companion();

Are the three "familiar-like" things you can have. Note that the "companion" is just a string.

Short of making a "thrall" data type, complete with proxy fields, you either need the type of the thrall - as a string - or the id of the thrall - as an int. If you want to look up the modifiers for a given thrall, you need the type. If you want to look up the level or name from the preference, you need the int. So, perhaps:

string my_thrall()
int thrall_level( string )
string thrall_name( string )

Those last two are what you'd get from the preference - but you don't need to use the preference if we give you access to the level and name.
 

Veracity

Developer
Staff member
Also, hmm.

I assume that Summon Spaghetti Elemental can't be permed, since getting that skill is key to Nemesis quest. Although, I wouldn't mind if you could get that thrall without even running the quest this run. Well, what the heck. Maybe I'll do a Pastamancer run next and see for myself.
 

Fluxxdog

Active member
Out of curiosity, would it be easier to have one function return an aggregate record? I know it has been done and can be referenced.
Code:
> ash print(maximize("mus",0,0,true,true)[1].display);

Maximizing...
9488 combinations checked, best score 1,525.00
equip weapon lawn dart
Returned: void
Could use the type of each thrall as the map key, then add in record fields as needed.
my_thralls() returns {record;}[string]
my_thralls()["Spice Ghost"] returns just the record for your spice ghost.
my_thralls()["Spice Ghost"].name returns just the name for your spice ghost.

Of course, when I type it all out, it does look like a data type like that. But anyway, is there any merit to that?
 

Bale

Minion
If the player has an active Pasta Thrall and possesses the skill Thrall Unit Tactics, mp_cost() is halved for the following skills:
  • Stringozzi Serpent
  • Ravioli Shurikens
  • Cannelloni Cannon
  • Stuffed Mortar Shell
  • Weapon of the Pastalord

Candyblast is not improved, presumably because it isn't pasta themed. I regret that Lasagna Bandages also does not benefit from it.
 

lostcalpolydude

Developer
Staff member
If the player has an active Pasta Thrall and possesses the skill Thrall Unit Tactics, mp_cost() is halved for the following skills:
  • Stringozzi Serpent
  • Ravioli Shurikens
  • Cannelloni Cannon
  • Stuffed Mortar Shell
  • Weapon of the Pastalord

Candyblast is not improved, presumably because it isn't pasta themed. I regret that Lasagna Bandages also does not benefit from it.

13210. And fixed in 13211.
 
Last edited:

Veracity

Developer
Staff member
Revision 13220 soups up the "thralls" command to show the Level 1, Level 5, and Level 10 ability of each thrall, as well as current modifier string for each thrall, given its current level.

The table is a little wide. I thought my L10 Spaghetti Elemental's name - SshoYohohoponobopopopopopo - would be the thing that widened the second column, but the modifier string for my L10 Lasagmbie - Meat Drop: +40, Spooky Spell Damage: +10 - is wider.

There is enough stuff that I am thinking that ASH might actually benefit from a $thrall type, with proxy fields for image, current modifiers, L1, L5, L10 abilities, level, name, ...
 

Bale

Minion
There is enough stuff that I am thinking that ASH might actually benefit from a $thrall type, with proxy fields for image, current modifiers, L1, L5, L10 abilities, level, name, ...

Yes!

Also, there is no thrall called an "Undead Elbow Macaroni." If you bind one you'll see that "Bind Undead Elbow Macaroni" actually binds an "Elbow Macaroni." Blame Jick. It's the "Eggman" vs "Egg Man" inconsistency from Jarlsberg all over again. :(

When you add the $thrall type, please get the Elbow Macaroni correct and modify the "thralls" command to list the correct name as well.
 

Veracity

Developer
Staff member
Revision 13223 adds the "thrall" data type and the function:

thrall my_thrall().

It also renames the Undead Elbow Macaroni to Elbow Macaroni.

> ash my_thrall()

Returned: Elbow Macaroni
name => Wrapperhoop
level => 1
current_modifiers =>

> ash $thrall[ Spice Ghost ]

Returned: Spice Ghost
name => Wingwang
level => 10
current_modifiers => Item Drop: +20

> ashq foreach t in $thralls[] print( t )

Angel Hair Wisp
Elbow Macaroni
Lasagmbie
Penne Dreadful
Spaghetti Elemental
Spice Ghost
Vampieroghi
Vermincelli
 

Veracity

Developer
Staff member
I note that a Pasta Thrall is something that has a natural int associated with it. So, tomorrow, I will add (at least) the following:

thrall.to_int()
to_thrall( int)
thrall.id
thrall.image
thrall.tinyimage
thrall.skill
 
Top