diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-20 14:33:09 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-20 14:33:09 +1000 |
commit | 6352e8e3196f78388b6c771073f9e03eaa612673 (patch) | |
tree | e23772f79a7fbc41bc9108951e9e136857484bf4 /doc/lua/statuscontroller.md | |
parent | 6741a057e5639280d85d0f88ba26f000baa58f61 (diff) |
everything everywhere
all at once
Diffstat (limited to 'doc/lua/statuscontroller.md')
-rw-r--r-- | doc/lua/statuscontroller.md | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/doc/lua/statuscontroller.md b/doc/lua/statuscontroller.md new file mode 100644 index 0000000..735a746 --- /dev/null +++ b/doc/lua/statuscontroller.md @@ -0,0 +1,263 @@ +# status + +The `status` table relates to the status controller attached to an entity. It is available in: + +* monsters +* npcs +* status effects +* companion system scripts +* quest scripts +* tech +* primary status scripts for: player, monster, npc + +--- + +#### `Json` status.statusProperty(`String` name, `Json` default) + +Returns the value assigned to the specified status property. If there is no value set, returns default. + +--- + +#### `void` status.setStatusProperty(`String` name, `Json` value) + +Sets a status property to the specified value. + +--- + +#### `float` status.stat(`String` statName) + +Returns the value for the specified stat. Defaults to 0.0 if the stat does not exist. + +--- + +#### `bool` status.statPositive(`String` statName) + +Returns whether the stat value is greater than 0. + +--- + +#### `List<String>` status.resourceNames() + +Returns a list of the names of all the configured resources; + +--- + +#### `bool` status.isResource(`String` resourceName) + +Returns whether the specified resource exists in this status controller. + +--- + +#### `float` status.resource(`String` resourceName) + +Returns the value of the specified resource. + +--- + +#### `bool` status.resourcePositive(`String` resourceName) + +Returns whether the value of the specified resource is greater than 0. + +--- + +#### `void` status.setResource(`String` resourceName, `float` value) + +Sets a resource to the specified value. + +--- + +#### `void` status.modifyResource(`String` resourceName, `float` value) + +Adds the specified value to a resource. + +--- + +#### `float` status.giveResource(`String` resourceName, `float` value) + +Adds the specified value to a resource. Returns any overflow. + +--- + +#### `bool` status.consumeResource(`String` resourceName, `float` amount) + +Tries to consume the specified amount from a resource. Returns whether the full amount was able to be consumes. Does not modify the resource if unable to consume the full amount. + +--- + +#### `bool` status.overConsumeResource(`String` resourceName, `float` amount) + +Tries to consume the specified amount from a resource. If unable to consume the full amount, will consume all the remaining amount. Returns whether it was able to consume any at all of the resource. + +--- + +#### `bool` status.resourceLocked(`String` resourceName) + +Returns whether the resource is currently locked. + +--- + +#### `void` status.setResourceLocked(`String` resourceName, `bool` locked) + +Sets a resource to be locked/unlocked. A locked resource cannot be consumed. + +--- + +#### `void` status.resetResource(`String` resourceName) + +Resets a resource to its base value. + +--- + +#### `void` status.resetAllResources() + +Resets all resources to their base values. + +--- + +#### `float` status.resourceMax(`String` resourceName) + +Returns the max value for the specified resource. + +--- + +#### `float` status.resourcePercentage(`String` resourceName) + +Returns the percentage of max that the resource is currently at. From 0.0 to 1.0. + +--- + +#### `void` status.setResourcePercentage(`String` resourceName, `float` value) + +Sets a resource to a percentage of the max value for the resource. From 0.0 to 1.0. + +--- + +#### `void` status.modifyResourcePercentage(`String` resourceName, `float` value) + +Adds a percentage of the max resource value to the current value of the resource. + +--- + +#### `JsonArray` status.getPersistentEffects(`String` effectCategory) + +Returns a list of the currently active persistent effects in the specified effect category. + +--- + +#### `void` status.addPersistentEffect(`String` effectCategory, `Json` effect) + +Adds a status effect to the specified effect category. + +--- + +#### `void` status.addPersistentEffects(`String` effectCategory, `JsonArray` effects) + +Adds a list of effects to the specified effect category. + +--- + +#### `void` status.setPersistentEffects(`String` effectCategory, `JsonArray` effects) + +Sets the list of effects of the specified effect category. Replaces the current list active effects. + +--- + +#### `void` status.clearPersistentEffects(`String` effectCategory) + +Clears any status effects from the specified effect category. + +--- + +#### `void` status.clearAllPersistentEffects() + +Clears all persistent status effects from all effect categories. + +--- + +#### `void` status.addEphemeralEffect(`String` effectName, [`float` duration], [`EntityId` sourceEntity]) + +Adds the specified unique status effect. Optionally with a custom duration, and optionally with a source entity id accessible in the status effect. + +--- + +#### `void` status.addEphemeralEffects(`JsonArray` effects, [`EntityId` sourceEntity]) + +Adds a list of unique status effects. Optionally with a source entity id. + +Unique status effects can be specified either as a string, "myuniqueeffect", or as a table, {effect = "myuniqueeffect", duration = 5}. Remember that this function takes a `list` of these effect descriptors. This is a valid list of effects: { "myuniqueeffect", {effect = "myothereffect", duration = 5} } + +--- + +#### `void` status.removeEphemeralEffect(`String` effectName) + +Removes the specified unique status effect. + +--- + +#### `void` status.clearEphemeralEffects() + +Clears all ephemeral status effects. + +--- + +#### `List<pair<DamageNotification>>`, `unsigned` status.damageTakenSince([`unsigned` since = 0]]) + +Returns two values: +* A list of damage notifications for the entity's damage taken since the specified heartbeat. +* The most recent heartbeat to be passed into the function again to get the damage notifications taken since this function call. + +Example: + +```lua +_,lastStep = status.damageTakenSince() -- Returns the full buffer of damage notifications, throw this away, we only want the current step + +-- stuff + +notifications,lastStep = status.damageTakenSince(lastStep) -- Get the damage notifications since the last call, and update the heartbeat +``` + +--- + +#### `List<pair<EntityId,DamageRequest>>`, `unsigned` status.inflictedHitsSince([`unsigned` since = 0]]) + +Returns two values: +* A list {{entityId, damageRequest}} for the entity's inflicted hits since the specified heartbeat. +* The most recent heartbeat to be passed into the function again to get the inflicted hits since this function call. + +--- + +#### `List<DamageNotification>`, `unsigned` status.inflictedDamageSince([`unsigned` since = 0]) + +Returns two values: +* A list of damage notifications for damage inflicted by the entity. +* The most recent heartbeat to be passed into the function again to get the list of damage notifications since the last call. + +--- + +#### `JsonArray` status.activeUniqueStatusEffectSummary() + +Returns a list of two element tables describing all unique status effects currently active on the status controller. Each entry consists of the `String` name of the effect and a `float` between 0 and 1 indicating the remaining portion of that effect's duration. + +--- + +#### `bool` status.uniqueStatusEffectActive(`String` effectName) + +Returns `true` if the specified unique status effect is currently active and `false` otherwise. + +--- + +#### `String` status.primaryDirectives() + +Returns the primary set of image processing directives applied to the animation of the entity using this status controller. + +--- + +#### `void` status.setPrimaryDirectives([`String` directives]) + +Sets the primary set of image processing directives that should be applied to the animation of the entity using this status controller. + +--- + +#### `void` status.applySelfDamageRequest(`DamageRequest` damageRequest) + +Directly applies the specified damage request to the entity using this status controller. |