New Content - Implemented Crimbo Town 2014

lostcalpolydude

Developer
Staff member
Added the coinmaster in 15056. Funny enough, my problems in implementing it were based on the fact that this is the first Sell shop that uses real items for the currency, and the first one that uses whichrow, rather than merging Buy and Sell into a single interface (which actually worked flawlessly with your changes).

Turning in peppermint tailings does not work yet, and I haven't really looked at how to make it work other than setting things up to parse a quantity from coinmasters.txt (using a format that I'm not all that happy with, now that I look back at it).
 

Veracity

Developer
Staff member
this is the first Sell shop that uses real items for the currency
Does not surprise me that this was an issue, since there was obviously an assumption that "sell" shops did not use real items. After all, this started out specifically to handle the Dimemaster and the Quartersmaster, which were the only "sell" shops for a long time, and they didn't use actual items.

When I was working on making the coinmaster frame be able to handle multiple currencies, yesterday, I saw a conditional in the renderer that I couldn't understand:

Code:
            if ( show && this.usesTokens )
It looked like "usesTokens" was false if you were selling. I immediately realized that that was not going to hold for Crimbo 14 - and that what _I_ needed was buying vs. selling, so, I adjusted it to the following:

Code:
            if ( show && this.buying)
No actual change in behavior, since the boolean was something passed in when the renderer was created, but makes the intent clearer.

But, yes - that was an example of the same assumption you ran in to.
 

Veracity

Developer
Staff member
Turning in peppermint tailings does not work yet, and I haven't really looked at how to make it work other than setting things up to parse a quantity from coinmasters.txt (using a format that I'm not all that happy with, now that I look back at it).
I suggested that you use the format we use in concoctions. Thus:

Code:
bottle of gin (3)	MIX	fermenting powder	juniper berries
for the coinmaster would become:

Code:
Crimbo 2014	sell	1	peppermint tailings (10)	ROW397
which I think is pleasant enough and is very simple to parse by replacing:

Code:
			String rname = data[ 3 ];
			String name = StringUtilities.getCanonicalName( rname );
with

Code:
			AdventureResult item = AdventureResult.parseItem( data[ 3 ], true );
			String name = StringUtilities.getCanonicalName( item.getName() );
and simply storing "item" in the list for "sell" entries.

Revision 15059 does this. I'll leave it to do you figure out how to finish making peppermint tailings work.
 

Darzil

Developer
r15063 adds Crimbo skills. Still needs the item numbers for two of the used skillbooks, as I have only bought the free crafting one so far.
 

Razorsoup

Member
r15063 adds Crimbo skills. Still needs the item numbers for two of the used skillbooks, as I have only bought the free crafting one so far.

r15061 so some of this is already added but this does include the used skillbooks.

Code:
--------------------
8007	Crimbot ROM: Rapid Prototyping	550492564	crimbotchip.gif	usable	t	0
# Crimbot ROM: Rapid Prototyping
--------------------
You acquire an item: Crimbot ROM: Rapid Prototyping

use 1 Crimbot ROM: Rapid Prototyping
--------------------
8013	Crimbot ROM: Rapid Prototyping (dirty)	777486184	crimbotchip.gif	usable		0
# Crimbot ROM: Rapid Prototyping (dirty)
--------------------
You acquire an item: Crimbot ROM: Rapid Prototyping (dirty)
--------------------
8008	Crimbot ROM: Mathematical Precision	828239577	crimbotchip.gif	usable	t	0
# Crimbot ROM: Mathematical Precision
--------------------
You acquire an item: Crimbot ROM: Mathematical Precision

use 1 Crimbot ROM: Mathematical Precision
--------------------
8014	Crimbot ROM: Mathematical Precision (dirty)	603332262	crimbotchip.gif	usable		0
# Crimbot ROM: Mathematical Precision (dirty)
--------------------
You acquire an item: Crimbot ROM: Mathematical Precision (dirty)
--------------------
8009	Crimbot ROM: Ruthless Efficiency	842035173	crimbotchip.gif	usable	t	0
# Crimbot ROM: Ruthless Efficiency
--------------------
You acquire an item: Crimbot ROM: Ruthless Efficiency

use 1 Crimbot ROM: Ruthless Efficiency
--------------------
8015	Crimbot ROM: Ruthless Efficiency (dirty)	858719961	crimbotchip.gif	usable		0
# Crimbot ROM: Ruthless Efficiency (dirty)
--------------------
You acquire an item: Crimbot ROM: Ruthless Efficiency (dirty)
 

Veracity

Developer
Staff member
Fixed in 15064. Looks like canPurchase is only false in Crimbo11Request, and probably should have been true in that case too, so it's probably safe to remove that variable completely?
I had to study a bit to see why the variable is there. I direct you to CoinmasterData.registerPurchaseRequests:

Code:
		// If this Coin Master doesn't sell anything that goes into
		// your inventory, nothing to register
		if ( !this.canPurchase )
		{
			return;
		}
Crimbo 2011 was the one where you could trade in candy for candy credits and use candy credits to send gifts to somebody else. You could not buy the gifts for yourself. Hence, there was no need for a PurchaseRequest, which would make the items show up on the Mall Purchase frame.

That is the whole point of that variable, and it is true that the Crimbo11 coinmaster is the only one so far that needs it.
 

lostcalpolydude

Developer
Staff member
I saw that, apparently I misread it as being equivalent to buyItems == null or similar. Since it has a purpose, there's no particular reason to refactor that.

I was worried I was missing something, which is why I posted instead of just making the change. Turns out I completely forgot how that shop worked.
 
re: multi-using flask of (tainted) mining oil.

in v 15065, i told mafia "use 540 tainted mining oil". It used 100 (kol's multi-use limit) but removed all 540 from inventory.
 

Veracity

Developer
Staff member
Yes, we mentioned this earlier in this thread.
Nothing has been submitted to fix it.
Therefore, it is still a (known) bug.
 
Re mining oil multi-use: a two part fix? : (1) Count the used flasks accurately; (2) Use batches of 100 until the full multi-use request is filled - ? (2) takes care of (1).
 

lostcalpolydude

Developer
Staff member
Mining oil is covered in 15068. I doubt Jick actually wants to implement things like this much (people using potentially hundreds of mining oil per day kind of forced it on him), so it should be fine to handle it on a case by case basis, and I just copied the warm subject gift certificate code.
 

Bale

Minion
I doubt Jick actually wants to implement things like this much (people using potentially hundreds of mining oil per day kind of forced it on him)

Yeah, I thought it was a bit excessive when I used 200 flasks of mining oil and saw mafia do 200 server hits. I'm glad it's only 2 server hits now. Big performance improvement if a thousand people do that.

Personally, I think that Jick kinda screwed up with his decision that each vial gives a random one of 3 different effects instead of a third the duration of all three effects. It would have worked out exactly the same in the end.
 

lostcalpolydude

Developer
Staff member
Personally, I think that Jick kinda screwed up with his decision that each vial gives a random one of 3 different effects instead of a third the duration of all three effects. It would have worked out exactly the same in the end.

The mistake was having mining oil in any form, really. People are supposed to spend turns mining.
 
People are supposed to spend turns mining.
- unaccompanied miner
- minin' dynamite
- mining oil
- wasn't there something else?

So, maybe amend that statement to "spend some turns mining" - ? But doesn't the creation of amassable turn-free mining resources explicitly negate that? Hard to think that the impact of those items wasn't obvious to the creator(s), so inferring intent seems safe.
 

Razorsoup

Member
r15070:
tiny plastic from the advent calendar
Code:
--------------------
7851	tiny plastic exo-suited miner	391771316	crimbo14tp1.gif	accessory	t	0
tiny plastic exo-suited miner	0	none
tiny plastic exo-suited miner	Muscle: +1
--------------------

new schematic from the elves
Code:
--------------------
7881	Crimbot schematic: Data Analyzer	781860661	crimschem.gif	usable		0
# Crimbot schematic: Data Analyzer
--------------------

new item from the vending machine - hatches into the Mini-Crimbot familiar
Code:
--------------------
8010	Mini-Crimbot crate	735760360	crate.gif	grow	t	0
# Mini-Crimbot crate
--------------------

equipment for the new familiar
Code:
--------------------
8011	heavy-duty Crimbot aerial	697101835	heavyaerial.gif	familiar	t,d	70
heavy-duty Crimbot aerial	Familiar Weight: +5
--------------------

and finally, familiar trainer data for the new familiar (taken from my familiars.txt after running the familiar trainer's learn strength's option)
Code:
190	Mini-Crimbot	minicrimbot.gif	none	8010		1	2	3	0
 
Top