New Content - Implemented Feb 2018 IotM - Fortune Teller (Clan VIP room)

antipasta

Member
Here you go. It did result in setting _clanFortuneBuffUsed=true, and _clanFortuneConsultUses=3.

I see a pwdhash in there, I guess I have to log out before posting...

Code:
> fortune buff item

class net.sourceforge.kolmafia.request.ClanLoungeRequest
Visiting Fortune Teller in clan VIP lounge
Connecting to clan_viplounge.php...

Requesting: https://www.kingdomofloathing.com/clan_viplounge.php?preaction=lovetester
4 request properties
Field: Cookie = [PHPSESSID=3dg8fmgoop5nbuisu07qfip847; AWSALB=4iMD2FT3rD4j7RWyBcxjWCwFHF1G+YwVcno18as5x05Nbxrjr4rHayViAUI1x3KGoNOBNWaOi/4I6R9XvloSjun8zLf6l7oWaBwQulMgPx2eyUFpUA/LckAi6k9Q]
Field: User-Agent = [KoLmafia v17.12]
Field: Accept-Encoding = [gzip]
Field: Content-Type = [application/x-www-form-urlencoded]

Retrieving server reply...

Retrieved: https://www.kingdomofloathing.com/clan_viplounge.php?preaction=lovetester
13 header fields
Field: Transfer-Encoding = [chunked]
Field: null = [HTTP/1.1 200 OK]
Field: Server = [nginx/1.8.1]
Field: Connection = [keep-alive]
Field: Pragma = [no-cache]
Field: Date = [Fri, 09 Nov 2018 15:44:59 GMT]
Field: Cache-Control = [no-store, no-cache, must-revalidate, post-check=0, pre-check=0]
Field: Content-Encoding = [gzip]
Field: Vary = [Accept-Encoding]
Field: Set-Cookie = [AWSALB=Y5BDyufmnyme9rrbIpLRrBGzeOLfejIxgXZzNPad8Z9pECYip0N59XDWiwGG8meL9Y2M1RgkxY6dFxFDD1a4cg880yqv5l5Frtf6vpJue8+zHi72nXerMhbYb47f; Expires=Fri, 16 Nov 2018 15:44:59 GMT; Path=/]
Field: Expires = [Thu, 19 Nov 1981 08:52:00 GMT]
Field: X-Powered-By = [PHP/5.3.29]
Field: Content-Type = [text/html; charset=UTF-8]

Retrieving server reply
ResponseText has 7768 characters.
<html><head><script language=Javascript><!--if (parent.frames.length == 0) location.href="game.php";top.charpane.location.href="charpane.php";//--></script><script language=Javascript src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/keybinds.min.2.js"></script><script language=Javascript src="https://s3.amazonaws.com/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 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 language=Javascript src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/jquery-1.3.1.min.js"></script><script type="text/javascript" src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/pop_query.20130705.js"></script><script type="text/javascript" src="https://s3.amazonaws.com/images.kingdomofloathing.com/scripts/ircm.20161111.js"></script><script type="text/javascript">var tp = top;function pop_ircm_contents(i, some) {var contents = '',shown = 0,da = ' <a href="#" rel="?" class="small dojaxy">[some]</a> <a href="#" rel="',db = '" class="small dojaxy">[all]</a>',dc = '<div style="width:100%; padding-bottom: 3px;" rel="',dd = '<a href="#" rel="1" class="small dojaxy">[';one = 'one'; ss=some;if (i.d==1 && i.s>0) { shown++;contents += dc + 'sellstuff.php?action=sell&ajax=1&type=quant&whichitem%5B%5D=IID&howmany=NUM&pwd=ea5547561a9c9e20f99fe3a9115a65bc" id="pircm_'+i.id+'"><b>Auto-Sell ('+i.s+' meat):</b> '+dd+one+']</a>';if (ss) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.q==0) { shown++;contents += dc + 'inventory.php?action=closetpush&ajax=1&whichitem=IID&qty=NUM&pwd=ea5547561a9c9e20f99fe3a9115a65bc" id="pircm_'+i.id+'"><b>Closet:</b> '+dd+one+']</a>';if (ss) { contents += da + i.n + db;}contents += '</div>';}one = 'one'; ss=some;if (i.q==0 && i.g==0 && i.t==1) { shown++;contents += dc + 'managestore.php?action=additem&qty1=NUM&item1=IID&price1=&limit1=&ajax=1&pwd=ea5547561a9c9e20f99fe3a9115a65bc" id="pircm_'+i.id+'"><b>Stock in Mall:</b> '+dd+one+']</a>';if (ss) { contents += da + i.n + db;}contents += '</div>';}return [contents, shown];}tp=topvar todo = [];function nextAction() {var next_todo = todo.shift();if (next_todo) {eval(next_todo);}}function dojax(dourl, afterFunc, hoverCaller, failureFunc, method, params) {$.ajax({type: method || 'GET', url: dourl, cache: false,data: params || null,global: false,success: function (out) {nextAction();if (out.match(/no\|/)) {var parts = out.split(/\|/);if (failureFunc) failureFunc(parts[1]);else if (window.dojaxFailure) window.dojaxFailure(parts[1]);else if (tp.chatpane.handleMessage) tp.chatpane.handleMessage({type: 'event', msg: 'Oops!  Sorry, Dave, you appear to be ' + parts[1]});else  $('#ChatWindow').append('<font color="green">Oops!  Sorry, Dave, you appear to be ' + parts[1] + '.</font><br />' + "\n");return;}if (hoverCaller)  {float_results(hoverCaller, out);if (afterFunc) { afterFunc(out); }return;}$(tp.mainpane.document).find("#effdiv").remove(); if(!window.dontscroll || (window.dontscroll && dontscroll==0)) { window.scroll(0,0);}var $eff = $(tp.mainpane.document).find('#effdiv');if ($eff.length == 0) {var d = tp.mainpane.document.createElement('DIV');d.id = 'effdiv';var b = tp.mainpane.document.body;if ($('#content_').length > 0) {b = $('#content_ div:first')[0];}b.insertBefore(d, b.firstChild);$eff = $(d);}$eff.find('a[name="effdivtop"]').remove().end().prepend('<a name="effdivtop"></a><center>' + out + '</center>').css('display','block');if (!window.dontscroll || (window.dontscroll && dontscroll==0)) {tp.mainpane.document.location = tp.mainpane.document.location + "#effdivtop";}if (afterFunc) { afterFunc(out); }}});}</script>	<link rel="stylesheet" type="text/css" href="https://s3.amazonaws.com/images.kingdomofloathing.com/styles.20151006.css"><style type='text/css'>.faded {zoom: 1;filter: alpha(opacity=35);opacity: 0.35;-khtml-opacity: 0.35;-moz-opacity: 0.35;}</style></head><body><center><table  width=95%  cellspacing=0 cellpadding=0><tr><td style="color: white;" align=center bgcolor=blue><b>Results:</b></td></tr><tr><td style="padding: 5px; border: 1px solid blue;"><center><table><tr><td></td></tr></table></center></td></tr><tr><td height=4></td></tr></table><table  width=95%  cellspacing=0 cellpadding=0><tr><td style="color: white;" align=center bgcolor=blue><b>Clan VIP Lounge (Ground Floor)</b></td></tr><tr><td style="padding: 5px; border: 1px solid blue;"><center><table><tr><td><center><b><a href="clan_hall.php">Incoming</a></b><p></center><table cellpadding=0 cellspacing=0><tr><td rowspan=5 width=25 height=300><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/clanhall/newvipleft.gif" width=25 height=500></td><td colspan=3 width=300 height=100><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/clanhall/viptop.gif" width=300 height=100></td><td rowspan=5 width=25 height=300><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/clanhall/newvipright.gif" width=25 height=500></td></tr><tr><td width=100 height=100></td><td width=100 height=100></td><td width=100 height=100><a href=clan_viplounge.php?whichfloor=2><img src=https://s3.amazonaws.com/images.kingdomofloathing.com/adventureimages/clanstairsup.gif width=100 height=100 alt="Stairs Up" title="Stairs Up"></a></td></tr><tr><td width=100 height=100></td><td width=100 height=100></td><td width=100 height=100></td></tr><tr><td width=100 height=100></td><td width=100 height=100></td><td width=100 height=100></td></tr><tr><td width=100 height=100><a href=clan_viplounge.php?action=hottub><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/clanhall/hottub5.gif" width=100 height=100 border=0 alt="A Relaxing Hot Tub (5 uses left today)" title="A Relaxing Hot Tub (5 uses left today)"></a></td><td width=100 height=100></td><td width=100 height=100><a href=clan_viplounge.php?action=klaw><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/clanhall/mrklaw2.gif" width=100 height=100 border=0 alt="Deluxe Mr. Klaw "Skill" Crane Game" title="Deluxe Mr. Klaw "Skill" Crane Game"></a></td></tr><tr><td colspan=5 width=300 height=93><a href="clan_hall.php"><img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/clanhall/rumpbottom.gif" width=350 height=93 border=0></a></td></tr></table><p><Center><A href="clan_hall.php">Back to Clan Hall</a></center></td></tr></table></center></td></tr><tr><td height=4></td></tr></table></center></body></html>
Processing results...
class net.sourceforge.kolmafia.request.ApiRequest
Connecting to api.php...

Requesting: https://www.kingdomofloathing.com/api.php?what=status&for=KoLmafia
4 request properties
Field: Cookie = [PHPSESSID=3dg8fmgoop5nbuisu07qfip847; AWSALB=Y5BDyufmnyme9rrbIpLRrBGzeOLfejIxgXZzNPad8Z9pECYip0N59XDWiwGG8meL9Y2M1RgkxY6dFxFDD1a4cg880yqv5l5Frtf6vpJue8+zHi72nXerMhbYb47f]
Field: User-Agent = [KoLmafia v17.12]
Field: Accept-Encoding = [gzip]
Field: Content-Type = [application/x-www-form-urlencoded]

Retrieving server reply...

Retrieved: https://www.kingdomofloathing.com/api.php?what=status&for=KoLmafia
13 header fields
Field: Transfer-Encoding = [chunked]
Field: null = [HTTP/1.1 200 OK]
Field: Server = [nginx/1.8.1]
Field: Connection = [keep-alive]
Field: Pragma = [no-cache]
Field: Date = [Fri, 09 Nov 2018 15:44:59 GMT]
Field: Cache-Control = [no-store, no-cache, must-revalidate, post-check=0, pre-check=0]
Field: Content-Encoding = [gzip]
Field: Vary = [Accept-Encoding]
Field: Set-Cookie = [AWSALB=lawhN1oiP94dfCxf8TXQIzX1YJR9Jfky3By8JBmdmCJ9CCB5Idog6JuZr/CnXoAXriXO3+cwKXJKxBSPeVWEQ+hvpHOTnLnLumPnm7C6KHlo4zc3Skfw8dVUqZCt; Expires=Fri, 16 Nov 2018 15:44:59 GMT; Path=/]
Field: Expires = [Thu, 19 Nov 1981 08:52:00 GMT]
Field: X-Powered-By = [PHP/5.3.29]
Field: Content-Type = [text/html; charset=UTF-8]

Retrieving server reply
ResponseText has 3169 characters.
{"playerid":"1486285","name":"coyotik","hardcore":"0","ascensions":"15","path":"0","sign":"Opossum","roninleft":"0","casual":"0","drunk":"21","full":"0","turnsplayed":"740158","familiar":"267","hp":"6720","mp":"664","meat":"472534231","adventures":"144","level":"63","rawmuscle":"15123869","rawmysticality":"7153342","rawmoxie":"6626880","basemuscle":"3888","basemysticality":"2674","basemoxie":"2574","familiarexp":400,"class":"1","lastadv":{"id":"39","name":"The Dungeons of Doom","link":"adventure.php?snarfblat=39","container":"da.php"},"title":"63","pvpfights":"100","maxhp":6720,"maxmp":3482,"spleen":"0","muscle":4477,"mysticality":3482,"moxie":3352,"famlevel":30,"locked":false,"limitmode":0,"daysthisrun":"1354","equipment":{"hat":"8701","shirt":"9843","pants":"6860","weapon":"7024","offhand":"9133","acc1":"9990","acc2":"6617","acc3":"896","container":"5738","familiarequip":"9940","fakehands":0,"cardsleeve":0},"stickers":["3509","3509","3509"],"soulsauce":0,"fury":"5","pastathrall":0,"pastathralllevel":1,"folder_holder":["21","19","22","00","00"],"eleronkey":"43efcb1bf3468c7482b6ef09768b1fb1","flag_config":{"noinvpops":0,"fastdecking":"1","devskills":0,"shortcharpane":0,"lazyinventory":0,"compactfights":0,"poppvpsearch":0,"questtracker":0,"charpanepvp":0,"australia":0,"fffights":"1","compactchar":0,"noframesize":0,"fullnesscounter":"1","nodevdebug":0,"noquestnudge":"1","nocalendar":0,"alwaystag":"1","clanlogins":0,"quickskills":"1","hprestorers":"1","hidejacko":0,"anchorshelf":"1","showoutfit":"1","wowbar":"1","swapfam":0,"hidefamfilter":0,"invimages":"1","showhandedness":0,"acclinks":"1","invadvancedsort":"1","powersort":0,"autodiscard":0,"unfamequip":0,"invclose":0,"sellstuffugly":"1","oneclickcraft":0,"dontscroll":0,"multisume":0,"threecolinv":"1","profanity":"1","tc_updatetitle":0,"tc_alwayswho":0,"tc_times":"1","tc_combineallpublic":0,"tc_eventsactive":0,"tc_hidebadges":0,"tc_colortabs":0,"tc_modifierkey":0,"tc_tabsonbottom":0,"chatversion":0,"aabosses":"1","compacteffects":0,"slimhpmpdisplay":0,"ignorezonewarnings":0,"whichpenpal":"1","compactmanuel":0,"hideefarrows":0,"questtrackertiny":0,"questtrackerscroll":0,"disablelovebugs":0,"eternalmrj":0,"autoattack":"3","topmenu":0},"recalledskills":1,"freedralph":1,"mcd":"10","pwd":"ea5547561a9c9e20f99fe3a9115a65bc","rollover":1541820603,"turnsthisrun":376414,"familiar_wellfed":0,"intrinsics":[],"familiarpic":"catburglar","pathname":"","effects":{"ac32e95f470a7e0999863fa0db58d808":["Empathy",474,"empathy","skill:2009","50"],"63e73adb3ecfb0cbf544db435eeeaf00":["Fat Leon's Phat Loot Lyric",386,"fatleons","skill:6010","67"],"06e123f9b46d3d180c97efc5ab0ad150":["Carlweather's Cantata of Confrontation",350,"cantata","skill:6016","163"],"59a1ac48440e1ea1f869f2b37753f9cc":["Ur-Kel's Aria of Annoyance",315,"urkels","skill:6017","164"],"5e788aac76c7451c42ce19d2acf6de18":["Musk of the Moose",15,"stench","skill:1019","166"],"5ac8444ac684a7f9113690c1f254c1e4":["Singer's Faithful Ocelot",39,"ocelot","skill:88","1193"],"e2c20a6b5f99d594264e60b9aff4e14b":["Pride of the Puffin",5,"trophy","skill:1040",1367],"91635be2834f8a07c8ff9e3b47d2e43a":["On the Trail",34,"snout",null,331]}}
class net.sourceforge.kolmafia.request.ClanFortuneRequest
Connecting to choice.php...

Requesting: https://www.kingdomofloathing.com/choice.php?whichchoice=1278&option=1&which=-2&q1=pizza&q2=batman&q3=thick
4 request properties
Field: Cookie = [PHPSESSID=3dg8fmgoop5nbuisu07qfip847; AWSALB=lawhN1oiP94dfCxf8TXQIzX1YJR9Jfky3By8JBmdmCJ9CCB5Idog6JuZr/CnXoAXriXO3+cwKXJKxBSPeVWEQ+hvpHOTnLnLumPnm7C6KHlo4zc3Skfw8dVUqZCt]
Field: User-Agent = [KoLmafia v17.12]
Field: Accept-Encoding = [gzip]
Field: Content-Type = [application/x-www-form-urlencoded]

Retrieving server reply...

Retrieved: https://www.kingdomofloathing.com/choice.php?whichchoice=1278&option=1&which=-2&q1=pizza&q2=batman&q3=thick
13 header fields
Field: Transfer-Encoding = [chunked]
Field: null = [HTTP/1.1 200 OK]
Field: Server = [nginx/1.8.1]
Field: Connection = [keep-alive]
Field: Pragma = [no-cache]
Field: Date = [Fri, 09 Nov 2018 15:45:00 GMT]
Field: Cache-Control = [no-store, no-cache, must-revalidate, post-check=0, pre-check=0]
Field: Content-Encoding = [gzip]
Field: Vary = [Accept-Encoding]
Field: Set-Cookie = [AWSALB=XERgEOOLWsIucavcPfM6U9FMbIeARrknYtl6P3BL2V5s1mXYMHjN8tuxUZ1p06LSfn6dVuqygLSLFcu6rFJ6o81DqJjTfJ9tFI4sE/kkQwLh6JE+2RrMSGdcp4kC; Expires=Fri, 16 Nov 2018 15:45:00 GMT; Path=/]
Field: Expires = [Thu, 19 Nov 1981 08:52:00 GMT]
Field: X-Powered-By = [PHP/5.3.29]
Field: Content-Type = [text/html; charset=UTF-8]
 

Darzil

Developer
The love potions still aren't tracked right. Extract from session results:



It would also be useful to have its modifiers updated when a new potion is created. According to the wiki, the number determines each modifier

r19003
 

taltamir

Member
Thank you. I tested it, and before this update, love potion simply did not show up in the maximizer at all and had to be manually handled. Now it shows up incorrectly.

The love potion I summoned has these stats
Code:
[COLOR=blue][B]Muscle -42
Mysticality -54
Moxie -60
Maximum HP -30%
Maximum MP +20%[/B][/COLOR]

It shows up in maximizer for "mus" as giving +105 to muscle. when in fact it gives -42.
105 is the maximum possible bonus for muscle. (it varies from -98 to +105)

also i tried the other stats. it shows +102 for mys (range -102 to +102 according to wiki)
and it shows +105 for mox (range -100 to 105 according to wiki)
it shows up on HP and MP maximizer as well.

So yea, it just shows up as maximum potion value in maximizer instead of the potion you actually have
 
Last edited:

Darzil

Developer
Did you summon it bwfore using this version? In that case it would have no lovePotion preference set which would give those values?
 

Darzil

Developer
After playing around with it for an hour or so, I am not going to support learning the preference in any other way.

If the number appeared in the description that'd be one thing, but appearing only in the inventory list and not in the item itself is a pain. We wouldn't want to load inventory just to grab the name. And I don't want to reverse engineer the number from the enchantments!

You'll have to live with it being incorrect until you next summon one!
 

taltamir

Member
Did you summon it bwfore using this version? In that case it would have no lovePotion preference set which would give those values?
I did summon before this version, this explains it.
Now that I ascended and summoned a new one it works just fine. Thank you.

And yes, there is really no good reason to change this just for such an edge case that solves itself.
 
Last edited:

Malibu Stacey

Active member
Results of using the boxes:

Code:
inv_use.php?pwd&which=3&whichitem=9742&ajax=1&_=1582959684577
--------------------
10476	rubber doll head	592150148	rubberbabyhead.gif	usable	t	0
# Item rubber doll head
--------------------
You acquire an item: rubber doll head

inv_use.php?pwd&which=3&whichitem=9741&ajax=1&_=1582959724322
--------------------
10477	rubber doll body	833926717	rubberbabybody.gif	none	t	0
# Item rubber doll body
--------------------
You acquire an item: rubber doll body
inv_use.php?pwd&which=3&whichitem=9740&ajax=1&_=1582959729002
--------------------
10478	plastic doll arms	310790003	rubberbabyarms.gif	none	t	0
# Item plastic doll arms
--------------------
You acquire an item: plastic doll arms
inv_use.php?pwd&which=3&whichitem=9739&ajax=1&_=1582959741892
--------------------
10479	plastic doll legs	881534687	rubberbabylegs.gif	none	t	0
# Item plastic doll legs
--------------------
You acquire an item: plastic doll legs

use 1 rubber doll head
--------------------
10480	rubber baby doll	455517746	rubberbaby.gif	offhand		0
rubber baby doll	0	none
# Item rubber baby doll: Deals 13 <font color=gray>Spooky Damage</font> to your enemies every round
--------------------
You acquire an item: rubber baby doll
 

Veracity

Developer
Staff member
Revision 19787 adds items and concoctions and marks the Mysterious Boxes as usable. Not multi-usable, alas.
 

Veracity

Developer
Staff member
Is this done? Considering the last post before the Mysterious Box changes was over a year ago, I think yes.
 

Malibu Stacey

Active member
Looks like it. Also the boxes are once again not opening when used just in case there's further changes needed to support them only being openable on the 29th of January.
 

Veracity

Developer
Staff member
We could add some code in UseItemRequest for the four types of mysterious box to recognize that the "use" failed if you didn't get an item and to not remove the box from inventory. That is a "correctness" thing, but pretty unimportant, to my eye.
 

King Dave

New member
You're obviously discussing it but the Creatable section of the Item Manager menu shows the doll parts as being, well, creatable when you have a mysterious box in your inventory and that is no longer the case. Trying to create it gives "Using 1 Mysterious [colour] Box doesn't make anything interesting." in the gCLI.

Very minor and not sure if it's worth making a change for, but there you go.
 

Veracity

Developer
Staff member
Revision 19793 recognizes failure message for using a Mysterious Box and does not remove it from inventory. It also comments out the concoctions for using a Mysterious Box to get doll parts.
 

taltamir

Member
Results of using the boxes:

Code:
inv_use.php?pwd&which=3&whichitem=9742&ajax=1&_=1582959684577
--------------------
10476    rubber doll head    592150148    rubberbabyhead.gif    usable    t    0
# Item rubber doll head
--------------------
You acquire an item: rubber doll head

inv_use.php?pwd&which=3&whichitem=9741&ajax=1&_=1582959724322
--------------------
10477    rubber doll body    833926717    rubberbabybody.gif    none    t    0
# Item rubber doll body
--------------------
You acquire an item: rubber doll body
inv_use.php?pwd&which=3&whichitem=9740&ajax=1&_=1582959729002
--------------------
10478    plastic doll arms    310790003    rubberbabyarms.gif    none    t    0
# Item plastic doll arms
--------------------
You acquire an item: plastic doll arms
inv_use.php?pwd&which=3&whichitem=9739&ajax=1&_=1582959741892
--------------------
10479    plastic doll legs    881534687    rubberbabylegs.gif    none    t    0
# Item plastic doll legs
--------------------
You acquire an item: plastic doll legs

use 1 rubber doll head
--------------------
10480    rubber baby doll    455517746    rubberbaby.gif    offhand        0
rubber baby doll    0    none
# Item rubber baby doll: Deals 13 <font color=gray>Spooky Damage</font> to your enemies every round
--------------------
You acquire an item: rubber baby doll
huh, they actually implemented them...

and dammit. I missed it this year and will need to wait almost a year to open them.
 
Top