New Content - Implemented Dec 2014 IotM: Crimbo Shrub

Fluxxdog

Active member
Code:
Unknown item found: Crimbo sapling (7956, 349106235)
--------------------
7956 Crimbo sapling 349106235 crimbosapling.gif grow t 0
Crimbo sapling Free Pull
--------------------
New familiar: "Crimbo Shrub" (189) @ crimboshrub.gif
You acquire an item: Crimbo sapling
Unknown item found: box of old Crimbo decorations (7958, 114808402)
--------------------
7958 box of old Crimbo decorations 114808402 decorations.gif usable q 0
# box of old Crimbo decorations
--------------------
You acquire an item: box of old Crimbo decorations
Unknown item found: even more tinsel (7957, 813311872)
--------------------
7957 even more tinsel 813311872 moretinsel.gif familiar t,d 75
# even more tinsel
--------------------
You acquire an item: even more tinsel
Oh, this one's gonna be fun! It similar to the Robot Reindeer in that you can customize it to act as you like, but with more control.

box of old Crimbo decorations can only be used once per day to change the decorations on it. You get one when you first grow your shrub.

even more tinsel is the familiar specific gear, +5 Familiar Weight
 
Last edited:
Revision 15001 has initial datafile stuff for this. Obviously, a lot more will be needed.

I am surprised that when it looks at the box of old Crimbo decorations and even more tinsel that it didn't pick up the modifiers the way I'd expect. Investigating.
 
The answer: they have changed the format of item_desc.php to no longer label the enchantments with "Enchantment:". What a pain. Revision 15002
 
The answer: they have changed the format of item_desc.php to no longer label the enchantments with "Enchantment:". What a pain. Revision 15002
This is actually serious enough that I am considering spinning a new release before the new Crimbo area opens up in six days or whenever. The issue is that KoLmafia's auto-discovery of item properties just broke because of the change to the item description and, unless people are running 15002 or later, if you discover a brand-new item, we will correctly figure out what kind of object it is, but none of the modifiers will be correct.

It's be nice to have a point release with working auto-discovery available before the flood of new Crimbo items opens up.

Let's see how much of the Crimbo Shrub we can supported by this weekend, when I'll shoot out another release.
 
Viewing the familiar's haiku shows you how your shrub is currently decorated. That will probably need parsing.
Notice that it's a comma-delimited list of tags, in blue. Mine says this:

Code:
<html><head><title>Familiar Description</title></head><body bgcolor=white text=black link=black alink=black vlink=black><div id="description"><font face=Arial,Helvetica><center><b>Crimbo Shrub</b><p><img src="http://images.kingdomofloathing.com/itemimages/crimboshrub.gif" width=30 height=30><p><table><tr><td><font face=Arial,Helvetica>Likes Crimbo a lot.<br>Like, really a huge amount.<br>A little... <i>too</i> much.</font></td></tr></table><p><font color=blue size=2><b>Elemental attacks, pvp fights, increased stat gains, healing, and CRIMBO PRESENTS!</b></font></center></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>
In particular, the decorations look like this:

Code:
<font color=blue size=2><b>Elemental attacks, pvp fights, increased stat gains, healing, and CRIMBO PRESENTS!</b></font>
When I decorated it, I selected:

- Stat gains (moxie)
- Prismatic damage
- PVP fites
- Exchange random presents.

The blue text looks pretty useless in discriminating between some of the options:

"Elemental attacks" - That could be any element - or prismatic, like I selected
"increased stat gains" - Would be true whether you select muscle, mysticality, moxie
"healing" - What? I did NOT select the decoration that gave HP regen.
 
I'm pretty sure the blue part is useless. The stuff just above that is a bit more useful.

<p>Current decorations: <span title="Muscle-heavy stat gains" alt="Muscle-heavy stat gains">Veiny Star</span>, <span title="Deals prismatic damage" alt="Deals prismatic damage">Rainbow-Colored Lights</span>, <span title="Grants occasional PvP fights" alt="Grants occasional PvP fights">Barbed Wire</span>, and <span title="Exchange random gifts with other players!" alt="Exchange random gifts with other players!">Piles of Tiny Presents</span>.

I didn't even notice the more informative title text until viewing source just now, but either the visible or the alt text should be useful.
 
"The stuff just above that" is ... where? It's not in the haiku that I posted, which was the entire response text.

Ah. It's on the terrarium page when you have it currently equipped. Is there a more accessible way to look it up?

FWIW, here is what my session log said when I used the item to decorate the familiar:

Code:
Encounter: Shrubberatin'
Took choice 999/1: unknown
choice.php?whichchoice=999&pwd=xxx&option=1&topper=3&lights=1&garland=2&gift=3
 
How odd.

- I have the Crimbo Shrub in my terrarium
- I went to the "internal database" frame
- I selected the Crimbo Shrub and clicked on it.
- It submitted desc_familiar.php?which=189
- The response text has none of that stuff. It looks exactly like what I posted earlier.

Is this stuff on a dev server or something and is not yet pushed out?
 
This is actually serious enough that I am considering spinning a new release before the new Crimbo area opens up in six days or whenever. The issue is that KoLmafia's auto-discovery of item properties just broke because of the change to the item description and, unless people are running 15002 or later, if you discover a brand-new item, we will correctly figure out what kind of object it is, but none of the modifiers will be correct.

It's be nice to have a point release with working auto-discovery available before the flood of new Crimbo items opens up.

You're very right. Immediately before Crimbo is the worst possible time for this.


Is this stuff on a dev server or something and is not yet pushed out?

I love how KoLmafia is such a powerful tool for locating functional differences that otherwise slip the attention of TPTB.
 
... KoLmafia is such a powerful tool for locating functional differences that otherwise slip the attention of TPTB.

Ultimately, the nature of software testing is having two independent processes that are trying to accomplish the same thing being used to check each other (aka "who tests the testers?"). And yes, it does speak well of KoLmafia.
 
I'm sure that someone is working on Mafia keeping track of the current decorations, but in addition I would like if Mafia could also keep track of whether the Crimbo Shrub was decorated yet today.

I need that information for ChIT so that I know if I should add a link for it.
 
I wonder how the familiar abilities should be tracked. A comma-separated list might be best, for ease of parsing by mafia and by scripts. I don't know if anything that mafia would do with the values has been spaded yet.
 
Mafia might want to know which stat is being focused for stat-gains. I don't think that's spaded yet.

Other than that, it looks like things which BatBrain would want to consider.
 
A reasonable conclusion has been spaded for the shrub's stat gains, so now I'm thinking about how to implement this. My first thought is 4 separate settings, probably shrubTopper, shrubLights, shrubGarland, and shrubGifts. Garland would be used for displaying (or not) the PvP fight progress. Gifts might be used for knowing if a skill is available, Lights would just be for combat scripts. Parsing desc_familiar.php?which=189 at login for people who have a shrub is easy enough, and for now I would set shrubTopper to mainstat if the familiar is undecorated.

I've already updated Modifiers.java to be able to handle
Familiar Tuning: "Moxie 100"
to say how much it's tuned, and tested that it works with bander equipment, so Muscle 80 or whatever is valid as well. The messy part is that it needs to be something like 10 + 70*(check preference somehow). I now realize that it's a string value, and evaluating the number isn't straightforward, even if I do something ridiculous like I did with the Mini-Adventurer. And I don't actually want to list the off-stats there (with how I updated Modifiers.java, at least). So now I'm not really sure how to support the stat gain portion of the shrub. And I kind of want to figure that out before deciding if shrubTopper should be 1, 2, 3, or Muscle, Mysticality, Moxie.
 
Back
Top