Jump to content

Elemental Health


Stroam

Recommended Posts

I would like a more complex health system in Vintage story to give it more of a survival feel and add to the gameplay. This included all the common reasons people die out in nature. This is my latest revision on the topic which ties conditions to systems named after the elements. Each one does things a bit differently to add variety and interesting gameplay. Also since there's a lot of people who would like to tailor their experiences, possible JSON configuration mock ups have been provided.

Air 

Starts full and decreases over time when head is in specified block. Then it takes a configurable amount of breaths(wait time) to fill the bar back up completely. When empty, player passes out and dies.

Spoiler

{
    max: 100,
    breath: 25,
    solidBlock: -5,
    block: [
        {
            code: "water",
            rate: -5,
        },
        {
            code: "smoke",
            rate: -1,
        },
    ],
}

 

 

Fire - temperature

Balancing act to prevent heat stroke and hypothermia. Clothing and sources of heat will raise your temperature. Sweating decreases temperature and hydration. Heath stroke and hypothermia keep decreasing your max hp till it reaches zero at which point player dies.

Spoiler

{
    maxTolerance: 40,
    minTolerance: 35,
    bodyHeat: 37,
    sweat: { start: 37.5, tempChange: -0.02 },
    clothing: [
        {
            code: "basic shirt"
            insulation: 5
        },
        {
            code: "basic PANTS"
            insulation: 5
        },
    ],
    block: [
        {
            code: "torch - (lit)"
            maxDistance: 3
            baseTemp: 18
        },
        {
            code: "ice"
            maxDistance: 3
            baseTemp: -18
        },
    ],
    item: [
        {
            code: "torch - (lit)"
            temp: 18
        },
    ],
}

 

 

Water - thirst, bleeding, infection, poison/venom.

Hydration level goes slowly down over time. Rate can be set but by default, with no sweating takes about three days to get to 0. When hydration gets to 0 the player dies. Bad effects like bleeding and poison accumulate until they are at the same level as the hydration level. At that point the players screen goes blurry, their hydration starts dropping at the rate of the illness, and they are unable to increase hydration. The player can wait for the illness to stop but if it doesn't stop in time it will kill the player. Bleeding can be stopped with bandages, illness with antibiotics, and poison with anti-poison.

Spoiler

{
    max: 100,
    baseRate: 1,
    sweat: 3,
    illnessRates: [
        {
            status: "bleeding"
            rate: 5
        },
        {
            status: "infection"
            rate: 1
        },
        {
            status: "poison"
            rate: 1
        },
    ],
}

 

 

Earth - appendage condition

When a player receives damage from an attack or fall, one or more of their appendages will receive damage. When an appendage gets damaged its condition will decrease and as it condition is decreased, the effectiveness of that appendage will go down. A bruised leg is damaged but will not see any negative effects. A sprained leg will result in a slight walking speed decrease. A broken leg will see a 50% walking speed decrease. Two broken legs and the player can not move. Something similar for arms.

Spoiler

{
    appendages: {
        "leg-left": {
            condition: 100
            effects: [
                99: { 
                    name: "bruised" 
                    },
                50: {
                    name: "spraind",
                    effects: [
                        {
                            effect: walkspeed,
                            amount:  -25%,
                        },
                    ]
                },
                10: {
                    name: "broken",
                    effects: [
                        {
                            effect: walkspeed,
                            amount:  -50%,
                        },
                    ]
                },
            ]
        },
        "leg-right": {
            condition: 100
            effects: [
                99: { 
                    name: "bruised" 
                    },
                50: {
                    name: "spraind",
                    effects: [
                        {
                            effect: walkspeed,
                            amount:  -25%,
                        },
                    ]
                },
                10: {
                    name: "broken",
                    effects: [
                        {
                            effect: walkspeed,
                            amount:  -50%,
                        },
                    ]
                },
            ]
        },

    },
}

 

 

All JSON like files are used for demonstrating what could possibly configured in the game files if this were added to the game. The exact numbers would need testing and the structure of the files might even change based on code requirements.

Edited by Stroam
  • Like 4
Link to comment
Share on other sites

  • 1 year later...

I like your ideas too. The only modification I suggest is with the broken legs. You can add a splint object to treat the leg other wise movement damage. Walking with a broken leg should be capable only if a crutch is crafted. If not, or if both legs are broken, the player can move backward while sitting at 10% speed (essentially dragging the legs behind) with movement damage if un-splinted. I'm pulling that last part from a real world example btw.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.