Healing liquid and regrowing limbs

Oct 16, 2:18 am
#1
red_kangaroo's avatar
goblin prince


Joined: Apr 2, 2014
Location: North Tyris
Posts: 396
I was thinking about all the ways a player can regain his or her lost limbs and I would rather like to tweak the way healing liquid and troll blood allow you to regrow your lost limbs. Why?

There are many ways how to get your limbs back. Praying to gods is interesting, because you can get various artificial limbs and generally interact with the material system. Priests are also good, they require money and some travel, so loosing a limb does not feel inconsequential. Wands of resurrection have a second, very nice and powerful effect, so you will consider whether to use them on yourself or to revive a killed powerful pet; so again, they are interesting. I tried adding a new Regeneration status that allows you to slowly regrow lost limbs (but does not speed up healing, that would be OP together) and I again thinks thats interesting, because you require time to restore your body and eventually regrowing your limbs just feels badass.

Healing liquid and troll blood, on the other hand, are the second most common liquids in bottles (after water) and give you a new limb whenever you drink at least 250 ml of them. Bottles come prepacked in 1 litre, though, so even if you dip into an empty one to ahve two half litres of healing, you will still get two full heals and two regrown limbs from it. I think this makes regrowing lost limbs with those way too easy, plus there's nothing interesting on drinking some healing potion to restore yourself back and continue. There's no player choice, time or travelling (and the time spent waiting for your limb to regenerate or travelling back to a priest without a limb can be interesting one indeed). It's boring and everyone can do it quite often with the amount of haling liquid they will have, plus it stops the player from considering the more interesting ways of getting new limbs.

I have two ideas: We could simply remove the ability of healing liquid and troll blood to regrow limbs. IMHO there's already enough ways and they are all accessible enough that getting rind of healing regrowing limbs would not unbalance the game. Or we could change the regrowing so that it only occurs if the player drinks the healing liquid when already on full HP - you could still drink half the bottle to full heal, then the second half to regrow a limb, but at least it would not be so OP as now. I'm afraid, though, that the second approach will still not solve the issue completely due to abundance of healing liquid, only lessen it.

What do you think? Any more ideas or counterarguments?
Oct 16, 2:49 am
#2
Joined: Dec 11, 2008
Posts: 1,765
This idea has been bounced around the forum a couple of times.

The idea I had to address this was to introduce a new subtype of bottle called "flask" and these would be much smaller doses of liquid (say 100ml) that are likewise quicker to drink. Enough to heal you but not enough to regrow a limb.
Then we'd make bottles of healing liquid or troll blood much rarer, since they contain enough for 4 full limb replacements. The addition of flasks would also add another dynamic to the liquid separation mechanics, since you'd have even finer control of how much liquid to distribute in order to address your needs, unlike now when in most cases chugging down even a half portion of potion makes most of it go to waste.

As it is, bottles being 1 litre makes them pretty big. Doesn't it make sense for more specialized fluids to be more commonly found in smaller amounts?

--

With your suggestions there though I'd be more in favor of limbs only regrowing when you consume a potion at full HP, or more specifically if the amount of health restored by however much you drank heals you to full but there's enough "overheal" on top of it to restore a limb. That makes more sense than having to annoyingly waste a dose on say 5 or less HP to get your limb back in a stressful situation because of some arbitrary boolean set for "is this guy's HP full".
Oct 16, 4:13 am
#3
red_kangaroo's avatar
goblin prince


Joined: Apr 2, 2014
Location: North Tyris
Posts: 396
4zb4 wrote
With your suggestions there though I'd be more in favor of limbs only regrowing when you consume a potion at full HP, or more specifically if the amount of health restored by however much you drank heals you to full but there's enough "overheal" on top of it to restore a limb. That makes more sense than having to annoyingly waste a dose on say 5 or less HP to get your limb back in a stressful situation because of some arbitrary boolean set for "is this guy's HP full".

Hm, maybe simply increasing the amount of healing liquid you need to drink to regrow a limb would do the trick?

What if you needed to drink a full litre to assuredly regrow a limb, but only had a chance of regrowing one with half a litre? That could work nicely, actually, making healing liquid more precious by requiring larger quantities.
Oct 16, 5:21 am
#4
Joined: Sep 8, 2010
Occupation: Petty Functionary
Location: Drinking pea soup in the world map
Interests: Mangoes
Posts: 926
Here's ye olde liquids discussion thread

https://attnam.com/topics/Liquid-Rework

Maybe ask Ighalli what more needs to be done? He's got an open PR on github
Oct 16, 6:42 am
#5
Joined: Nov 22, 2013
Occupation: Unemployed bastard
Location: Chile
Interests: Gaming, Modding
Posts: 64
I agree with the idea of healing liquid only healing and doing nothing else. I did some testing and if you put the EffectStrength string in it and set it to 15, it will prevent limb regrowth even if you drink a completely full bottle of it. It also affects the normal healing quite a bit but the healing potion restoring to full health was a bit too OP, IMO.

I also like the idea of flasks... I shall steal it. :3
Oct 16, 7:16 am
#6
Joined: Dec 11, 2008
Posts: 1,765
EDIT POST

I deleted my old post because I realised I'm a huge dummy.
I was going to say to Chiko that you can't make subvariants of potions because I tried it almost exactly a year ago and it didn't work, but that's not true. I found out that I had simply made a typo and that's why they didn't work.

Here's the code again, fixed this time:

potion /* materialcontainer-> */
{
  ...
  
  Config VIAL;
  {
	DefaultSize = 10;
	Possibility = 600;
	NameSingular = "vial";
	DefaultMainVolume = 20;
	DefaultSecondaryVolume = 200;
	SecondaryMaterialConfig = { 11, WATER, HEALING_LIQUID, OMMEL_URINE, POISON_LIQUID, VALDEMAR, ANTIDOTE_LIQUID, VODKA, TROLL_BLOOD, OMMEL_SWEAT, OMMEL_TEARS, SULPHURIC_ACID; }
	MaterialConfigChances = { 11, 15, 25, 15, 5, 5, 30, 5, 20, 15, 15, 5; }
  }
}

I've tested it out now, and they work fine except for one problem: they turn into broken bottles when they shatter.
This is, because as I mentioned in my now-deleted post, bottles and broken bottles are entirely separate entities and a bottle that "dies" turns into a broken bottle entity. Since vials are sub-entities of bottles, they also turn into broken bottles when they break.
There's no way to fix this without messing with the source code, but for most intents and purposes this is a quick way to test out the balance of my vials/flasks suggestion.

Do note the above code is just lifted almost wholesale from regular potions, particularly the materialconfigchances part which would be our balancing factor. So don't worry about those numbers too much.

EDIT: I uh, should've considered this earlier but vials don't play nice with d!pping between each other. It doesn't crash the game, but dipping a vial into a bottle takes a full 500ml portion... despite the vial only being able to hold 200ml.
So in order to correctly implement additional liquid containers, we're going to have to make the dipping function more modular too - currently it looks like it just transfers a flat rate of 500ml of fluid into/onto whatever you specify. Regardless of anything other than the container already being full.
However it should be noted that the smaller capacity of spawned vials actually is taken into account by the game correctly - when shattered or drank, the appropriate amount of fluid is spilled or consumed. It's just the dip and vials-turning-into-broken-bottles functions that would need revising.
Oct 16, 8:27 am
#7
Joined: Nov 22, 2013
Occupation: Unemployed bastard
Location: Chile
Interests: Gaming, Modding
Posts: 64
Aww... well, it's still a good idea. I would have loved the idea of using a vial as a way to refill my empty bottles with a measure of 200ml each.
Oct 16, 1:24 pm
#8
Joined: Sep 5, 2010
Posts: 103
the code is quite easy to fix too. actually, i think it will be better to add a flag, something like "Indivisable" (my Engrish sux), that indicates that the given bottle type cannot be divided by two with "!". then we'll be able to get vials of different size. this way, trying to dip a bottle into a full "indivisable" vial will transfer liquid from vial, so refilling bottles will be easy. yet, this is somewhat harder to do, 'cause you will need to relax the check used to build "!" list, and check for "compatible" liquids.

i feel that the next step will be: "but i want to mix healing liquid and water to get 'smaller healing liquid'!" a can of worms.

as for breaking, this is in `potion::Break()`: it uncoditionally creates "brokenbottle" item. quite easy to fix: the code can take config id from potion, and create the corresponding "brokenbottle" config, instead of defaulting to... default — see `item::Break()` for the code.
Oct 17, 3:26 pm
#9
Joined: Sep 5, 2010
Posts: 103
p.s.: is is somewhat… inconsistent that the bottle is the only thing which spawns separate "broken" object instead of BROKEN config. i guess it is either leftover from the early developement stages, or a hack to ease implementing damage from broken bottles lying on the floor.
Oct 17, 4:03 pm
#10
red_kangaroo's avatar
goblin prince


Joined: Apr 2, 2014
Location: North Tyris
Posts: 396
vasiliy wrote
p.s.: is is somewhat… inconsistent that the bottle is the only thing which spawns separate "broken" object instead of BROKEN config. i guess it is either leftover from the early developement stages, or a hack to ease implementing damage from broken bottles lying on the floor.

I thought this was because a (non-broken) bottle is a container, while a broken bottle is not? There's not much difference between a non-broken and a broken sword, but a non-boken and broken bottle behave completely differently.
Oct 17, 5:44 pm
#11
Joined: Dec 11, 2008
Posts: 1,765
red_kangaroo wrote
I thought this was because a (non-broken) bottle is a container, while a broken bottle is not?

Yep this is exactly the case outlined by some comments in the files by the devs.

A bottle is a container, but a CONFIG beneath it would also need to be a container.
Instead they made broken bottles a separate object since a broken bottle logically cannot contain anything.
Nov 7, 8:10 pm
#12
Joined: Mar 17, 2008
Occupation: Software developer
Location: Ohio
Interests: Physics
Posts: 67
My approach to this was to try to make drinking a liter somewhat closer to real life in that doing it in combat will take quite some time. That way, if you lost a limb in a fight, you'd have to consider praying or WoR to get back in the fight, or else consider your escape options.

The stuff in my PR doesn't affect limb regrowth directly, but because you only get to drink 100 mL of liquid at a time, it's never guaranteed that you'll regrow a limb. In practice, if you were at full HP, half a liter or so would likely give you a limb back. Also, I added vials which hold 100 mL and work with breaking.

I hope the Regeneration status subtracts the nutritional value of the limb it regrows when you grow it! Should make you very hungry to generate all that meat. He he he.
Jump to