Feature - Implemented Distention pills are usable with a full stomach now.

nworbetan

Member
No clue when it was changed, but now you can use a distention pill after your stomach is full, and then eat a 1 fullness food.

I tried using mafia's item manager to see if this was really only happening with chat commands, and it turns out that yes, it is, but at least partially because the item manager currently won't even try to use a distention pill when you have a full stomach.

Also:
Code:
[COLOR=olive]> use distention pill[/COLOR]

(usable quantity of distention pill is limited to 0 by remaining fullness)
...isn't The Right Thing To Do any more.
 

roippi

Developer
Can someone else confirm this? I don't see any mention of it on kol forums or the wiki (I know, I know).
 
I just did this. I ate my full, used a distention pill and eat one more 1 fullness item. It seems to be working as nworbetan described.
 

roippi

Developer
But it still operates on the subtract-one-fullness-from-next-item motif, ya? Sure would be nicer if it just cleared one fullness.

I'll have a look at this tonight.
 

roippi

Developer
Unfortunately no - if consumption fails, for whatever reason, the distention effect is lost.
 

Bale

Minion
Just a second, if you're full and eat a distention pill then it will allow you to eat a fortune cookie, but...

if consumption fails, for whatever reason, the distention effect is lost.

So if you eat a 2 fullness item instead and it fails because even with a distention pill that's too much, then you cannot eat that fortune cookie afterwards? You've used your distention pill for the day, but it has been wasted?
 

roippi

Developer
I'm not sure if that counts as a 'failure.' Eating a black pudding and getting the fight will clear it, and I believe having insufficient HP to use a helper will also clear it.
 

nworbetan

Member
Well... Is there a way to tell the difference? I mean isn't it the same thing really?

If it were either a temporary +1 max fullness, or -1 current fullness, milk of magnesium would be applied to the entire fullness of the next food eaten. As it is, it's still -1 fullness (and -1 turns from milk) from the next food eaten.

After my stomach's full today, I'll try using a pill but not eating anything else until after rollover. I'm assuming the distented effect is probably reset at rollover, but maybe not.
 

slyz

Developer
Mafia's internals probably need some sort of is_distended() function, so the fullness of the next food consumed can be reduced by one before the checks are applied.
 

nworbetan

Member
Maybe it used to be, but the fortune cookie I ate a minute ago was definitely affected by the distention pill I used before rollover.

Code:
Purchasing 1 fortune cookie.
Using 1 milk of magnesium.
You acquire an item: fortune cookie
You spent 40 Meat
You acquire an effect: Got Milk (duration: 20 Adventures)
You gain 1 Adventure
Incrementing fullness by 0 instead of 1 because your stomach was distended.
Lucky numbers: 97, 18, 164
Lucky number 18 ignored - too soon to be a semirare.
Lucky number 164 ignored - too large to be a semirare.

I also got the "You feel your stomach shrink back to normal size." message in the relay browser.

Today's (and tomorrow's too) experiment is to see if you can stack 2 days' worth of distended.
 
Maybe it used to be, but the fortune cookie I ate a minute ago was definitely affected by the distention pill I used before rollover.

Code:
Purchasing 1 fortune cookie.
Using 1 milk of magnesium.
You acquire an item: fortune cookie
You spent 40 Meat
You acquire an effect: Got Milk (duration: 20 Adventures)
You gain 1 Adventure
Incrementing fullness by 0 instead of 1 because your stomach was distended.
Lucky numbers: 97, 18, 164
Lucky number 18 ignored - too soon to be a semirare.
Lucky number 164 ignored - too large to be a semirare.

Says Mafia. Which is only as accurate as spading and coding allows it to be. Did you then check the accuracy of that by eating an additional 15 fullness?
EDIT: Oh, I suppose that would have been 2 adventures gained. Redacted.
 

roippi

Developer
Mafia currently parses the "You feel your stomach shrink" message in order to handle distension adjustments.

We'll need another boolean preference (that persists through rollover, apparently) to track if the pill is active, in order to adjust consumption limits. I really dislike ninja changes to KoL mechanics.
 

nworbetan

Member
I was able to use another distention pill today, after having used one before rollover. Only one fullness was removed from the first thing I ate, and the second food I ate worked perfectly normally.
 

roippi

Developer
almost got it on my first try, but not quite. Consuming at 15 fullness:

Code:
> use distentpill

Using 1 distention pill...
Finished using 1 distention pill.

> prefref distent

_distentionPillActive (user, now 'true', default false)
_distentionPillUsed (user, now 'true', default false)

> eat fortcook

Searching for "fortune cookie"...
Search complete.
Purchasing fortune cookie (1 @ 40)...
You acquire an item: fortune cookie
You spent 40 Meat
Purchases complete.
Eating 1 fortune cookie...
You gain 1 Adventure
Incrementing fullness by 0 instead of 1 because your stomach was distended.
Lucky numbers: 114, 86, 37
Finished eating 1 fortune cookie.

> prefref distent

_distentionPillActive (user, now 'false', default false)
_distentionPillUsed (user, now 'true', default false)

Unfortunately while this looks like it works, my fullness ended up at 14. Looks like I need to let registerRequest temporarily bump up my fullness to 16 since parseResponse rolls it back when it sees the stomach shrinking message. Hrm.

And I just noticed on rereading the thread that distentionPillActive shouldn't reset at rollover.

I'll commit this after rollover assuming that the change to registerRequest works. With the rather large caveat that this is very lightly tested since it's a once-per-day item.
 

nworbetan

Member
I'll be in aftercore in 5 quick post-rollover adventures. If it would be helpful, I'll volunteer to test whatever specific case you might not have enough stomachs to test in one day. :)
 

roippi

Developer
Let's give r9848 a try.

Code:
> eat fortcook

(usable quantity of fortune cookie is limited to 0 by fullness)

> prefref distent

_distentionPillUsed (user, now 'false', default false)
distentionPillActive (user, now 'false', default false)

> ash my_fullness();

Returned: 15

> use distentpill

Using 1 distention pill...
Finished using 1 distention pill.

> prefref distent

_distentionPillUsed (user, now 'true', default false)
distentionPillActive (user, now 'true', default false)

> eat fortcook

Searching for "fortune cookie"...
Search complete.
Purchasing fortune cookie (1 @ 40)...
You acquire an item: fortune cookie
You spent 40 Meat
Purchases complete.
Eating 1 fortune cookie...
You gain 1 Adventure
Incrementing fullness by 0 instead of 1 because your stomach was distended.
Lucky numbers: 82, 272, 75
Finished eating 1 fortune cookie.

> ash my_fullness();

Returned: 15

> prefref distent

_distentionPillUsed (user, now 'true', default false)
distentionPillActive (user, now 'false', default false)

As above, very lightly tested. I'll leave this open since there is likely still work to be done with enqueueing food in the item manager.
 

roippi

Developer
With the recent fix to charpane parsing, I believe this can be marked implemented. I forget exactly how this was implemented, but I don't think we consider distention pills as special "food" items like munchies pills - meaning no work needs to be done to the enqueuePanel to make it work with distention pills. If I'm wrong, we can reopen.
 
Top