New Content - Implemented Crimbo Town 2014

Veracity

Developer
Staff member
Collect items from the Factory, turn them in for Crimbo Credit in The Elf Resistance Camp, buy stuff for Crimbo Credit at the Crimbo Factory Vending Machine. Which looks like two halves of a Coinmaster.

Turn in items for Crimbo Credit at The Elf Resistance Camp:

Crimbo Credit (1) = peppermint tailings (10) = row 397
Crimbo Credit (1) = recovered elf toothbrush = row 390 = item 7906/188531471
Crimbo Credit (1) = recovered elf magazine = row 389 = item 7905/904897344
Crimbo Credit (2) = recovered elf sleeping pills = row 391 = item 7907/54865758
Crimbo Credit (2) = recovered elf underpants = row 392 = item 7908/652661394
Crimbo Credit (3) = recovered elf pocketwatch = row 394 = item ???/666025858
Crimbo Credit (3) = recovered elf wallet = row 393 = item ???/869099448
Crimbo Credit (4) = recovered elf photo album = row 395 = item ???/195689858
Crimbo Credit (5) = recovered elf smartphone = row 396 = item ???/902026506

shop.php?pwd&whichshop=crimbo14turnin&action=buyitem&quantity=XXX&whichrow=YYY

Buy items for Crimbo Credit from the Crimbo Factory Vending Machine:

choco-Crimbot = Crimbo Credit (5) = row 398 = item 7999/269888246
fitness wristband = Crimbo Credit (10) = row 410 = item 8016/515708282
smart watch = Crimbo Credit (10) = row 399 = item 8000/887647767
augmented-reality shades = Crimbo Credit (10) = row 400 = item 8001/201387692
... and 9 more which have not been unlocked yet, apparently.

shop.php?pwd&whichshop=crimbo14&action=buyitem&quantity=XXX&whichrow=YYY

Yup. Unfortunately, each half is its own shop.php. Some refactoring to Coinmasters will be needed to handle this cleanly, since we'd really like to have a single Coinmaster to handle both buying and selling - like the Crimbo11 Coinmaster, for example, where you could turn in candy for Candy Credits and turn in Candy Credits for loot.

(And what with Mr. Store taking two kinds of currency now, they've given us a double whammy of required refactoring...)
 

lostcalpolydude

Developer
Staff member
Even with the simpler option of making it two Coinmasters (which I briefly started on last night), I wasn't sure how to handle peppermint tailings -> Crimbo Credit.
 

Darzil

Developer
Have been looking at this a bit. Peppermint Tailings are the most awkward looking bit, seem to be the first time we've had to trade multiple of X for 1 currency.
 
Last edited:

Veracity

Developer
Staff member
Well... perhaps we could handle it like concoctions.txt:

Code:
bottle of gin (3)	MIX	fermenting powder	juniper berries
The "output" of that recipe is 3 bottles of gin - and we store that as an AdventureResult.

Looking at CoinmasterData, I see "private final LockableListModel<AdventureResult> buyItems;", which is the list of items you can buy, along with a "private final Map<String, Integer> buyPrices;" which goes from item name to the currency cost. We use buyItems for making the items available to the "buy" command, for example; CoinmasterDatabase initializes them like this: "AdventureResult item = new AdventureResult( name, PurchaseRequest.MAX_QUANTITY, false );"

I see only "private final Map<String, Integer> sellPrices;" Seems like we could have a list of sellItems as well, as AdventureResults where the count is how many you have to turn in.

But, yeah - this is new.

I expect we could handle two shop.php in one Coinmaster if we had a buyURL and a sellURL - which would be the same for all existing Coinmasters, but would be different for this one. That seems like an easy change.
 

Veracity

Developer
Staff member
P.S. It looks like three of us are looking at this. To avoid conflicts, I'll step back and let you guys finish it, although I'll be happy to advise. :)
 

Veracity

Developer
Staff member
Here is how we log a single factory exploration:

Code:
place.php?whichplace=crimbo2014&action=c14_factory
Encounter: Build a Crimbot!
Took choice 991/1: unknown
choice.php?leftarm=4&rightarm=3&torso=5&propulsion=2&choice1=Deploy+this+Crimbot+%281+fuel+rod%2C+1+Adventure%29&whichchoice=991&option=1&pwd
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/1: unknown
choice.php?pwd&whichchoice=992&option=1
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/1: unknown
choice.php?pwd&whichchoice=992&option=1
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/2: unknown
choice.php?pwd&whichchoice=992&option=2
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/2: unknown
choice.php?pwd&whichchoice=992&option=2
Encounter: Inside the Fully Automated Crimbo Factory
You acquire an item: recovered elf sleeping pills
Took choice 992/1: unknown
choice.php?pwd&whichchoice=992&option=1
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/1: unknown
choice.php?pwd&whichchoice=992&option=1
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/2: unknown
choice.php?pwd&whichchoice=992&option=2
Encounter: Inside the Fully Automated Crimbo Factory
Took choice 992/2: unknown
choice.php?pwd&whichchoice=992&option=2
Encounter: Inside the Fully Automated Crimbo Factory
You acquire an item: Crimbot schematic: Security Chassis
Took choice 992/1: unknown
choice.php?pwd&whichchoice=992&option=1
So, once you are inside, it's all a single choice.php. I don't think that's a big deal. However, the following could be logged better, I think:

Code:
place.php?whichplace=crimbo2014&action=c14_factory
This is adventuring in the factory. It takes a turn. How about something like:

Code:
[1332] The Fully Automated Crimbo Factory

Code:
Encounter: Build a Crimbot!
Took choice 991/1: unknown
choice.php?leftarm=4&rightarm=3&torso=5&propulsion=2&choice1=Deploy+this+Crimbot+%281+fuel+rod%2C+1+Adventure%29&whichchoice=991&option=1&pwd
This consumes a fuel rod.

I think it's be nice if it logged as something like:

Deploy Crimbot NAME: LEFTARM, RIGHTARM, TORSO, PROPULSION

NAME would be the randomly generated name it gave your Crimbot. Just for fun.
The others are the various components you built with. It will be a while before we have all the possibilities, sinec many schematics have not been unlocked yet.
 
Last edited:

Veracity

Developer
Staff member
Well, I'm ready to commit the infrastructure changes to make it possible for a Coinmaster to have a buyURL and a sellURL - and Sourceforge is currently not allowing me to commit.

Eventually, they will fix their security issue and I will submit the new code.
 

Veracity

Developer
Staff member
Now that the factory is open, you can now actually use the schematics - once each; if you try to use the same schematic a second time, it says "The machine already knows how to build that part."

I assume the item is consumed the first time, and not consumed on subsequent uses.
 

Veracity

Developer
Staff member
Actually, probably better to search for a positive response: "You feed the schematic into the Crimbot assembler and it emits a series of friendly-sounding beeps." Once the factory closes, "using" these will probably go back to failing.
 

Veracity

Developer
Staff member
Revision 15045 heavily whacks CoinmasterData to allow a different URL for buying vs. selling. It also puts in the bare skeleton of a Crimbo14 Coinmaster. It also allows for a SellItems list of AdventureResults. Currently, it puts in a quantity of "1", since I did not make it parse a count field. (This is for peppermint tailings). And lastly, it will not remove a schematic from inventory unless it got a positive response to using it.

I think that's (almost) all the infrastructure somebody else will need to finish up this Coinmaster. :)

There's also a non-zero chance that I busted something else. We'll see.
 

parastra

New member
Building a Crimbot should remove a fuel rod from inventory but doesn't

Choosing to "Deploy this Crimbot" from "Encounter: Build a Crimbot!" costs 1 fuel rod, but mafia isn't removing one from your inventory.

Edit: Oops! Sorry, didn't see that this had already been mentioned.
 
Last edited:
That isn't a bug, it is new content.

Also, there is already a thread for the new content. You should peruse through there and if you don't find that particular instance mentioned, post it in there.
 

Veracity

Developer
Staff member
I already mentioned this in an existing New Content thread.
I'll be happy to move this report to that same thread.
 

lostcalpolydude

Developer
Staff member
I've made a good amount of progress on the coinmaster. It shows up, and clicking things trades in items as expected. Fixed a NPE from buyAction and sellAction being the same. Inventory isn't updating properly still, so that's something for me to track down tomorrow.
 

Veracity

Developer
Staff member
Code:
--------------------
8006	Crimbot battery	740930772	crimbattery.gif	usable	t	0
Crimbot battery	Effect: "Batteries Included", Effect Duration: 50
--------------------
--------------------
1787	Batteries Included	crimbattery.gif	d3d098dbf31cd15cafa87fb43bdf0197	use 1 Crimbot battery
# Batteries Included: +4 Crimbot Power
--------------------
8002	toy Crimbot mega face	769336750	crimbothead.gif	hat	t	0
toy Crimbot mega face	50	none
# toy Crimbot mega face: +1 Crimbot Power
# toy Crimbot mega face: Allows use of LIGHT in combat
toy Crimbot mega face	Item Drop: +10
--------------------
--------------------
8003	toy Crimbot power glove	778543026	crimbotrarm.gif	weapon	t	0
toy Crimbot power glove	50	Mus: 0	1-handed 
# toy Crimbot power glove: +1 Crimbot Power
# toy Crimbot power glove: Allows use of ZAP in combat
toy Crimbot power glove	Weapon Damage: +15
--------------------
--------------------
8005	toy Crimbot rocket legs	714381491	crimbotlegs.gif	pants	t	0
toy Crimbot rocket legs	50	none
# toy Crimbot rocket legs: +1 Crimbot Power
# toy Crimbot rocket legs: Allows use of BURN in combat
toy Crimbot rocket legs	Initiative: +30
--------------------
--------------------
8004	toy Crimbot super fist	303500633	crimbotlarm.gif	offhand	t	0
toy Crimbot super fist	0	none
# toy Crimbot super fist: +1 Crimbot Power
# toy Crimbot super fist: Allows use of POW in combat
toy Crimbot super fist	Damage Reduction: 10
--------------------
Looks like "Crimbot Power" is a new modifier.

I like the equipment. Adds a whole new level of complexity to how you configure your Crimbot.
 

Darzil

Developer
Actually, Crimbot Power just affects the skills given by the equipment. Not all that clear from the description, I guess.
Phew, so worth having, but as it doesn't affect stats we don't have to parse it first then have a second pass like we do Smithsness (and like KoL still doesn't have working right because they don't). Or indeed handle it like hobo power etc, it's just another modifier.

r15049
 
Last edited:
Top