New health system (idea)

All creatures have bodies. All bodies have cells. The cells contain the organs / part of organs. Organs responsible for the actions of creatures possibility. I.e.:
class body {
bodycell cell[50][50];

}
class bodycell
{
vector cells; //e.g. [0]-skin [1]-fat [2]-muscle [3]-bones …
vector armor; //armor layers

}
class organs {
string name; // skin/fat/muscle/bone/lung/guts …
int max_hp;
int hp;
int damage_reset;
int damage_absorb; //in percent -> damage*=damage_absorb; damage-=damage_reset;
organfunction orgfunction; // +
int coverage; //++
}
class armorcell
{
int hp,max_hp,danage_reset,absorb …
}

[+] if organ.hp=0 creature lost function, writed in orgfunctions.
[++] coverage system:
incoming damage (dmg=30) ->
{skin hp=5 cover=100%;
fat hp=10 cover=100%;
muscle hp=10 cover=100%;
bone hp=30 cover=50%;
lung hp=5 cover=50%;}
algorithm:
dmg 30 -> skin -> 25 -> fat -> 15 -> muscle -> 5 -> 50/50: bone(25 hp left)/lung(0 hp left)

bash strikes ingore 50% damage_reset of each organ/armor and hit many cells, but less damage.
cut strikes hit cells on line, but damage_reset of organ/armor +200%
point strikes hit 1 cell with standart damage_reset.

It will look something like this:
//###___
//000
//0
//
#######

//0###X
//0###0
//
#####_
//___###___
//__##___
//__##___
//0_0
//0_0
//__##___
[#] - armor
[0] - body

If hp of all ornans in cell marked X=0 then creature lost arm.

Somehow I don’t think Kevin’ll go for that… :stuck_out_tongue_winking_eye:

Wow that sounds even more complicated than the system Dwarf Fortress uses.

Why?

Requires much more time that you think and isn’t really needed right now.

Placing it short

Why?[/quote]

Pretty much what Candlebury said. Tracking limbs is code-intensive enough for the player character. It isn’t done for everything, and will not be markedly expanded in the foreseeable future.

Tracking by individual body location? Takes way too much memory and CPU time. Not to mention coding resources.

CPU time
No. CPU need 1 times - if body get damage.
too much memory
100 cells*10 organs - stored values: type (2 byte), hp (2 byte) - all other can get static storage classes by link (type) = ~ 4-8 kb. per creature - not too much.

Not damaged bodies not write in savefile… Write is saves only damaged part…

It’s very interesting on a simulation level, but as a player I much prefer having a number/bar I can quickly glance at to see if I’m ok or dying. Having to perform keyhole surgery to fix a lung or something is a bit too far hehe.

You’ll find that bash damage causes a lot of smaller fractures and bruising, all of those slow down a fighting character.
Even detailed design, horrible to code in would be of determining the level of your opponent’s injury as it is (most certainly) dependent on experience (this game has focus system). What we know from stories is of the fearlessness the veteran warrior posesses, being able to both overcome self-restrainment and feign one, defeating more than one enemy even though struck with a lethal injury. You’d never know if you pierced his lung, until the game writes a Morgue file with such detail abound.
I mean, you can as well as grow wings in this game. How the hell would you get to worry about hollow bones?
Of all the suggestions ever found about the Cataclysm system, there was (or, here it is) one to be appreciated and it focuses on bleeding, limping enemies. Once wildlife exists with principal, self-sustaining intelligence, it could be a difference between dinner and no dinner - nevermind the Unreal_World idea.

Well, in fact, i’d like to use it. Really. But i don’t think it could be added so easily.

It is not very difficult to add. (Especially if you know the code and/or have time)
In player cpp in player::hurt:

Remove switch with decrement hp_cur[bodypart] add call hurt cell body:
switch (bphurt) {
case bp_torso: body->hurt(bp_torso,dmg,cut,side)
…}
Convert cell hurt model to hp:
hp_cur[hp_torso]=body->get_hp(hp_torso)

(for example if we broke him left arm “body” returns hp_arm_left = 0 )
-add window with health status, and heal player from it. (remove old healing methods (using first aid,bandage,knive from inventory))
-link bleeding with class “body”
-do something with player::heal
-add mutation and bionic effects to class “body”
-debug
-play it!

If you code it and make a PR I can promise that it will be looked at (though I can’t promise that it will go in).

What’s the actual benefit to the game?

That’s the important question, the most important question (in the end, the only important question) and it’s not one you’ve actually addressed in the proposal. Yes, we could do things that way - but we could do it a million different mutually exclusive ways. A good suggestion tells us why we should - why it’s worth implementing AND why it’s better than the alternatives that could accomplish the same end.

Personally, I don’t feel any real need for a hugely complex hit location system. It seems to me like complexity for complexity’s sake, and that it would detract more (in terms of bugs / processor time) than it would add (in terms of occasionally hilarious DF-like part removal). Personally, if any work towards a hit-location system were to be planned in the near future, I’d much rather have basic enemies use the same basic limb HP tracking system as the player uses; that way, you could implement a basic ‘called shots’ mechanic, and do headshots and limb severing and whatnot.

What Gryph said.

What’s the difference in-game between shooting something in the shoulder and “just a little to the left of the shoulder”?

What’s the benefit between being able to tell the difference between damage to the shoulder and damage to the arm? Both have mechanically enough of the same effect anyway. Hence the current system.

Dorf Forts’ system is ridiculously detailed for hilarious/ultra-violent narrative purposes. It long ago stopped being a parody and just became the way it is. IIRC Liberal Crime squad was sort of the precursor for that.

DF’s system is the way it is because it’s an approximation of how things work in real life. Cataclysm, on the other hand, doesn’t have any plans to be a realistic medical simulator (at the moment) so we can get by with a much less intensive system.

I don’t think DF was intended to be a 1:1 injury simulator. I’ll have to dig up the quote but I’m pretty sure Toady said in an interview that the reason for all the anatomy was so that combat descriptors would be really violent sounding, not realism.

It’s madcap flavor that has been incorrectly accepted as gritty realism over time.

DF’s system is the way it is because it’s an approximation of how things work in real life. Cataclysm, on the other hand, doesn’t have any plans to be a realistic medical simulator (at the moment) so we can get by with a much less intensive system.[/quote]

Yeah, confirming that “realism” in and of itself isn’t the reason DF’s system works the way it does - but rather narrarative expression (from the things the Toad has says). He wrote things they way he did because they make for more interesting (and brutally descriptive) combat logs, and DF is essentially a log+description generating system with a game tacked on top. An actual body part system was simply the easiest way to achieve this with the large amount of fighting going on the player wasn’t involved in, and it had to be “realistic” enough for the logs to be convincing. DF is also a simulation of course, but he has intentionally made changes that are not like real life - one needs to remember that “realistic” and “like in real life” aren’t actually the same thing after all.

There’s a reason why it is/was so unwieldy in adventure mode - it was never designed as a game system, but as a tool for generating procedural narrative to flesh out combat logs in fortress mode.

Cataclysm is a lot more game than procedural narrative generator, so any major change like this would need a good gameplay reason to go in or at least provide a clear benefit to the player in exchange for the implementation lock-in and investment involved.

Nothing like chopping your foe’s arm off and then beating them over the head with it.

Or strangling them to death with their own underwear.

I love me some Dwarf Fortress.

Wrote 20% of the code for a player. I’m having trouble with pointers (all kind of works, but I do not know how) and I do not have much time. But maybe I will complete this at weekend.