Jump to content

[Explanation] Buffs


Recommended Posts

Posted

Buffs and debuffs (both controlled by the same system), can either help or harm the player. They are applied to a player using either Lua scripting (WIP) or using a weapon. This replaces the damagetype field in .wpn files. Buffs are defined in buffs.json; a player can have a total of 16 buffs (each stack of a buff consumes one slot) applied to them at a time.

 

Here is the current buffs.json, to help you get an idea of how they work in code:

 

 

{
    "standard-fire": {
        "category": "fire",

        "canceling": {
            "priority": 50,
            "noBuffStack": true,
            "noCategoryStack": true,
            "waterRemoval": true,
            "rollRemoval": true,

            "cancelOther": [
                {
                    "category": "cold",
                    "priority": 50
                }
            ]
        },

        "damage": {
            "damage": 2,
            "means": "MOD_IGNITED",
            "damageRate": 500
        },

        "visuals": {
            "efx": {
                "effect": "player/fire",
                "bolt": "lower_lumbar",
                "debounce": 200
            }
        }
    },

    "standard-freeze": {
        "category": "cold",

        "canceling": {
            "priority": 50,
            "noBuffStack": true,
            "noCategoryStack": true,

            "cancelOther": [
                {
                    "category": "fire",
                    "priority": 100
                }
            ]
        },

        "damage": {
            "damage": 2,
            "means": "MOD_FROZEN",
            "damagerate": 1000
        },

        "passive": {
            "pmove": "PM_FREEZE"
        },

        "visuals": {
            "shader": {
                "shader": "gfx/PlayerOverlays/ice",
                "shaderRGBA": [ 63, 63, 127, 255 ],
                "shaderLen": 100000
            }
        }
    },

    "standard-stun": {
        "category": "stun",

        "canceling": {
            "noBuffStack": true,
            "noCategoryStack": true
        },

        "passive": {
            "pmove": "PM_FREEZE"
        },

        "visuals": {
            "shader": {
                "shader": "gfx/PlayerOverlays/stun",
                "shaderRGBA": [ 0, 0, 127, 255 ],
                "shaderLen": 400
            }
        }
    },

    "standard-carbonite": {
        "category": "carbonite",

        "canceling": {
            "noBuffStack": true,
            "noCategoryStack": true
        },

        "damage": {
            "damage": 2,
            "means": "MOD_CARBONITE",
            "damagerate": 1000
        },

        "passive": {
            "pmove": "PM_FREEZE"
        },

        "visuals": {
            "shader": {
                "shader": "gfx/PlayerOverlays/carbonite",
                "shaderRGBA": [ 50, 50, 50, 255 ],
                "shaderLen": 100000
            }
        }
    },

    "standard-bleed": {
        "category": "bleed",

        "canceling": {
            "noBuffStack": true,
            "noCategoryStack": true
        },

        "damage": {
            "damage": 1,
            "means": "MOD_BLEEDING",
            "damagerate": 1000
        }
    },

    "standard-poison": {
        "category": "poison",

        "canceling": {
            "noBuffStack": true,
            "noCategoryStack": true
        },

        "damage": {
            "damage": 4,
            "means": "MOD_POISONED",
            "damagerate": 1000
        }
    }

    // movement speed modifier is not implemented yet
    //"standard-cold": {
    //    "category": "cold",
    //
    //    "canceling": {
    //    },
    //
    //    "damage": {
    //    }
    //}
}

(For a full explanation about what all these fields do, check the Extended Data.txt in the source branch)

 

Buffs can cancel out buffs either in their own category or in other categories. For example, fire can cancel out freezing and so on. (Fire can also be canceled out by freezing, or by rolling/swimming).

For right now, all they can do is either damage the player or freeze them in place. In the future some buffs might grant you additional stats like invisibility/cloaking, resistance towards certain damage types, etc; fleshing out the content is still a work in progress.

Smoo, Noodle, Agent Jones and 1 other like this

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...