Template:Condition page: Difference between revisions

From Baldur's Gate 3 Wiki
Jump to navigation Jump to search
(The name of the condition is defined by every part before the "(Condition)" instead of the first parenthesis, if not specified.)
mNo edit summary
(37 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<includeonly><div class="bg3wiki-tooltip-box"><!--Extract name and icon from the page title-->{{#lvardef: name
<includeonly>__NOTOC__<div class="bg3wiki-tooltip-box"><!--Extract name and icon from the page title-->{{#lvardef: name
| {{{name | {{#explode: {{#titleparts: {{PAGENAME}} }} | (Condition) | 0 }} }}}
| {{{name | {{#explode: {{#titleparts: {{PAGENAME}} }} | ( | 0 }} }}}
}}{{#lvardef: page
| {{#explode: {{#titleparts: {{PAGENAME}} }} | (Condition) | 0 }}
}}{{#lvardef: icon
}}{{#lvardef: icon
| {{{icon | {{#replace: {{#lvar:name}} | : | }} Condition Icon.webp }}}
| {{{icon | {{#replace: {{#lvar:name}} | : | }} Condition Icon.webp }}}
Line 6: Line 8:
<!--backwards compat for disease-->
<!--backwards compat for disease-->
| {{#ifeq:{{{disease|}}}|yes|disease|{{{type|}}} }}
| {{#ifeq:{{{disease|}}}|yes|disease|{{{type|}}} }}
}}<!-- Check if the stack ID is used by any other conditions and save it as #lvar:stackid --> {{#if:{{{stack id|}}}|{{#vardefine:counter|0
}}{{#cargo_query:tables=conditions|fields=name|where=stack_id='{{{stack id}}}'||order by=name ASC|format=template|template=counter|default=
}}{{#lvardef:stackid|{{#ifeq:{{#var:counter}}|1||1}}}}
}}<!-- Status properties --> {{#lvardef:FreezeDuration|{{#if:{{#invoke:String2|matchAny|source={{{properties}}}|FreezeDuration}}|1|}}
}}{{PageSeo
}}{{PageSeo
| title = {{PAGENAME}}
| title = {{PAGENAME}}
Line 17: Line 26:


== [[Honour mode]] ==
== [[Honour mode]] ==
{{{honour mode}}}}}{{#if:{{{status groups|}}}{{{tick type|}}}{{{stack type|}}}|{{blank}}
{{{honour mode}}}}}{{#if:{{#lvar:stackid}}{{{status groups|}}}{{{tick type|}}}{{{stack type|}}}{{{properties|}}}|{{blank}}


== Properties ==
== Properties ==
{{#if: {{{stack id|}}}|{{blank}}
{{#if:{{#lvar:stackid}}|{{blank}}


{{SmallIcon|Info Icon.png|link=Status ID}}[[Stack ID]]: {{code|{{{stack id}}}}}{{Main namespace only|[[Category:Has stack ID]]}}|{{Main namespace only|[[Category:No stack ID]]}}}}{{#if: {{{status groups|}}}|{{blank}}
{{SmallIcon|Info Icon.png|link=Status ID}}[[Stack ID]]: {{code|{{{stack id}}}}}{{Main namespace only|[[Category:Has stack ID]]}}|{{Main namespace only|[[Category:No stack ID]]}}
}}{{#if: {{{status groups|}}}|{{blank}}
{{#arraydefine:status groups|{{{status groups|}}}|,}}
{{#arraydefine:status groups|{{{status groups|}}}|,}}
{{SmallIcon|Plus Icon.png|link=Status groups}}[[Status groups]]: {{#arrayprint:status groups|,&nbsp;|@|{{SG|@}}}}{{Main namespace only|[[Category:Has status groups]]}}|{{Main namespace only|[[Category:No status groups]]}}}}
{{SmallIcon|Plus Icon.png|link=Status groups}}[[Status groups]]: {{#arrayprint:status groups|,&nbsp;|@|{{SG|@}}}}{{Main namespace only|[[Category:Has status groups]]}}|{{Main namespace only|[[Category:No status groups]]}}
{{#if: {{{tick type|}}}|{{blank}}
}}{{#if: {{{tick type|}}}{{#lvar:FreezeDuration}}|{{blank}}


{{SmallIcon|Duration Icons.png}}[[Conditions#Duration|Loses duration]]: {{#switch: {{{tick type}}}
{{SmallIcon|Duration Icons.png}}[[Conditions#Duration|Loses duration]]: {{#if:{{#lvar:FreezeDuration}}|{{SP|FreezeDuration|No}}|{{#switch: {{lc:{{{tick type}}}}}
  | start = start of turn
  | start | start turn | startturn = start of turn
  | end = end of turn
  | end | end turn | endturn = end of turn
| start round | startround = start of round
| end round | endround = end of round
  | none = N/A
  | none = N/A
  | #default = !syntax error!
  | #default = !syntax error!
}}{{Main namespace only|[[Category:Has tick type]]}}|{{Main namespace only|[[Category:No tick type]]}}}}{{#if: {{{stack type|}}}|{{blank}}
}}}}{{Main namespace only|[[Category:Has tick type]]}}|{{Main namespace only|[[Category:No tick type]]}}}}{{#if: {{{stack type|}}}|{{blank}}


{{SmallIcon|Sort Icon.png}}[[Conditions#Stack type|If already applied]]: {{#switch: {{{stack type}}}
{{SmallIcon|Sort Icon.png}}[[Conditions#Stack type|If already applied]]: {{#switch: {{lc:{{{stack type}}}}}
  | additive = add to duration
  | additive = add to duration
  | overwrite = replace current
  | overwrite = replace current
Line 40: Line 52:
  | none = N/A
  | none = N/A
  | #default = !syntax error!
  | #default = !syntax error!
}}{{Main namespace only|[[Category:Has stack type]]}}|{{Main namespace only|[[Category:No stack type]]}}}}{{#if: {{{properties|}}}|{{blank}}
}}{{Main namespace only|[[Category:Has stack type]]}}|{{Main namespace only|[[Category:No stack type]]}}
}}{{#if: {{{stack priority|}}}|{{blank}}
 
{{SmallIcon|Empty Icon.png}}[[Stack priority]]: {{{stack priority}}}{{Main namespace only|[[Category:Has stack priority]]}}|{{Main namespace only|[[Category:No stack priority]]}}
}}{{#if: {{{properties|}}}|{{blank}}


{{SmallIcon|Options Icon.png}}[[Status properties|More properties]]:{{#invoke:ParseList|main|{{#arraydefine:propertiesList|{{{properties|}}}|,}}{{#arrayprint:propertiesList|,|@|[[Status properties/@|@]]}}|type=htmlList}}{{Main namespace only|[[Category:Has status properties]]}}|{{Main namespace only|[[Category:No status properties]]}}}}|{{Main namespace only|[[Category:No stack ID]][[Category:No status groups]][[Category:No tick type]][[Category:No stack type]][[Category:No status properties]]}}}}
{{SmallIcon|Options Icon.png}}[[Status properties|More properties]]:{{#invoke:ParseList|main|{{#arraydefine:propertiesList|{{{properties|}}}|,}}{{#arrayprint:propertiesList|,|@|{{SP|@}}}}|type=htmlList}}{{Main namespace only|[[Category:Has status properties]]}}|{{Main namespace only|[[Category:No status properties]]}}}}|{{Main namespace only|[[Category:No stack ID]][[Category:No status groups]][[Category:No tick type]][[Category:No stack type]][[Category:No stack priority]][[Category:No status properties]]}}}}
</div><references/>
</div> {{#if: {{{grants|}}} |
{{#if:{{{notes|}}}|
== Notes ==
{{{notes}}}
}}
{{#if:{{{suppress sources|}}}||
== Sources of {{#lvar:name}} ==
{{Condition sources|{{#lvar:name}}}}
}}
<!--some housekeeping:categories and cargo-->{{Main namespace only|[[Category:Conditions]]}}{{#switch: {{{this is an example|}}}
| yes =
| #default = {{#cargo_store: _table = conditions
| name = {{#lvar:name}}
| icon = {{#lvar:icon}}
| types = {{#lvar:type}}
}}
}}</includeonly><noinclude>{{documentation|content=
If the page title is {{C|Blah (Condition)}}, then you don't have to provide the {{C|name}} parameter.  Likewise, if the icon for the condition is called {{C|Blah Condition Icon.webp}} then you don't have to provide the {{C|icon}} parameter.


If a condition has multiple types, separate them with a semicolon.
<h2> Grants: </h2>


<pre>
<div class="bg3wiki-tooltip-box bg3wiki-tooltip-gradient-common">
{{Condition page
{{#invoke: ParseList | main | {{{grants}}} | type = htmlListNoBullets | useTemplate = SAI/fixed }}
| effects =
</div>
| type =
| honour mode =
| stack id =
| status groups =
| tick type =  
| properties =  
| stack type =
| notes =
}}
</pre>


Examples:
}}{{#if: {{{condition|}}} |


== Blade Ward (Condition) ==
<h2> Condition: {{{condition}}} </h2>


{{Condition page
<div class="bg3wiki-tooltip-box bg3wiki-tooltip-gradient-common">
| name = Blade Ward
{{Condition | {{{condition}}}
| effects =
| save = {{{condition save|}}}
* Has [[resistance]] against {{DamageType|Bludgeoning}}, {{DamageType|Piercing}}, and {{DamageType|Slashing}} damage dealt by weapon attacks. Damage of these types is halved.
| dc = {{{condition dc|}}}
| this is an example = yes
| duration = {{{condition duration|}}}
| honour mode = * If you get hit by anything you are not resistant too, you immediately die.
| type = Cursed, Prone
| status groups = SG_RemoveOnRespec
| tick type = end
| stack id = BLADE_WARD
| stack type = ignore
| properties = FreezeDuration, IgnoreResting, InitiateCombat, ApplyToDead
| notes = * note 1
* note 2
}}
}}
{{main namespace only|{{Inflicts|{{{condition}}}|cond}}}}
</div>
}}{{#if: {{{condition2|}}} | {{blank}}


== Bone Chilled (Condition) ==
<h2> Condition: {{{condition2}}} </h2>


{{Condition page
<div class="bg3wiki-tooltip-box bg3wiki-tooltip-gradient-common">
| name = Bone Chilled
{{Condition | {{{condition2}}}
| effects =  
| save = {{{condition2 save|}}}
* Can not regain [[Hit Points]].
| dc = {{{condition2 dc|}}}
* If Undead, has {{Disadvantage}} on [[Attack Roll]]s.
| duration = {{{condition2 duration|}}}
| this is an example = yes
| tick type = end
| properties = FreezeDuration, IgnoreResting, InitiateCombat, ApplyToDead
}}
}}
{{main namespace only|{{Inflicts|{{{condition2}}}|cond}}}}
</div>
}}{{#if: {{{condition3|}}} | {{blank}}


== Flesh Rot (Condition) ==
<h2> Condition: {{{condition3}}} </h2>


{{Condition page
<div class="bg3wiki-tooltip-box bg3wiki-tooltip-gradient-common">
| name = Flesh Rot
{{Condition | {{{condition3}}}
| effects =  
| save = {{{condition3 save|}}}
* Flesh is decaying.
| dc = {{{condition3 dc|}}}
* {{Disadvantage}} on [[Ability Check]]s and {{SavingThrow}}s using Charisma.
| duration = {{{condition3 duration|}}}
* Vulnerable to all damage.
}}
| type = diseased
{{main namespace only|{{Inflicts|{{{condition3}}}|passive}}}}
| this is an example = yes
</div>
}}<references/>
{{#if:{{{notes|}}}|
== Notes ==
{{{notes}}}
}}
}}
{{#if:{{{bugs|}}}|
== Bugs ==
{{{bugs}}}
[[Category:Bugs]]
}}{{#if:{{#lvar:stackid}}|{{blank}}
== Conditions with the same stack ID ==
Conditions with the [[stack ID]] {{code|{{{stack id}}}}}, only one of these can be applied at the same time:
{{#cargo_query:
tables = conditions
|fields = _pageName = page, name, icon, effects
|where = stack_id='{{{stack id}}}'
|order by = name
|format=template
|named args = yes
|template=ConditionsTableRow
|intro={{ConditionsTableHeader}}
|outro={{ConditionsTableFooter}}
}}{{Main namespace only|[[Category:Conditions with shared stack IDs]]}}
}}{{#if: {{{suppress sources|}}} | | {{blank}}


== Multiple types example ==
== Sources of {{#lvar:name}} ==


{{Condition page
{{Condition sources | {{#lvar:page}} }}
| name = Absolutely Ruined
| icon = Generic Death Icon.webp
| effects =
* How are you still alive?
* {{Disadvantage}} on [[Ability Check]]s and {{SavingThrow}}s using Charisma.
* Vulnerable to all damage.
| type = diseased, cursed,incapacitated, prone, charmed
| this is an example = yes
| suppress sources = true
}}
}}
 
<!--some housekeeping:categories and cargo-->{{Main namespace only|[[Category:Conditions]]{{#cargo_store: _table = conditions
[[Category:Page generating templates]][[Category:Condition templates]]
| name = {{#lvar:name}}
 
| icon = {{#lvar:icon}}
{{#cargo_declare: _table = conditions
| brief = {{{brief | {{{effects|}}} }}}
| types = {{#lvar:type}}
}}
}}</includeonly><noinclude>{{documentation}}{{#cargo_declare: _table = conditions
| name = String (unique, mandatory)
| name = String (unique, mandatory)
| icon = File
| icon = File
| effects = Wikitext
| effects = Wikitext
| brief = Wikitext
| types = List (,) of String
| types = List (,) of String
| stack_id = string
| stack_id = string
Line 148: Line 152:
| properties = List (,) of String
| properties = List (,) of String
| stack_type = String
| stack_type = String
}}
}}</noinclude>
== Template data ==
<templatedata>
{
"params": {
"name": {
"description": "If specified, overrides the name.",
"type": "string",
"default": "Uses the name of the page, minus (Condition)."
},
"icon": {
"description": "If specified, overrides the icon.",
"type": "wiki-file-name",
"default": "Uses the \"name\" plus Condition.webp"
},
"disease": {
"description": "If specified, sets the type to be disease",
"type": "boolean",
"deprecated": true
},
"type": {
"description": "The type or types of the condition. If multiple, separate the types with commas.",
"type": "string",
"suggestedvalues": [
"Cursed",
"Diseased",
"Poisoned",
"Polymorphed",
"Charmed",
"Frightened",
"Incapacitated",
"Prone",
"Unconscious",
"Blinded",
"Maimed"
]
},
"stack id": {
"description": "Stack ID for the condition. Conditions with the same Stack ID can not be present at the same time.",
"type": "string",
"example": "HASTE, Polymorph_WildShape "
},
"status groups": {
"description": "Any status groups the condition belongs too. If multiple, separate the types with commas.",
"type": "string",
"example": "mad, invisible, helpable condition, light, weapon coating, "
},
"tick type": {
"description": "When the condition loses duration. This can be at the start or end of a turn. If marked with '''none''' the condition will be marked as not having a duration. This may be used by conditions who are active based on something else like a passive feature or standing near something. If you are unsure, leave it empty.",
"type": "string",
"suggestedvalues": [
            "start",
            "end",
            "none"
            ]
},
"properties": {
"description": "Properties for the condition. If multiple, separate the types with commas.",
"type": "string",
            "example": "FreezeDuration, IgnoreResting, InitiateCombat, ApplyToDead"
},
"stack type": {
"description": "Decides what happends when the condition is applied while already being present. '''additive''' adds the durations together, '''overwrite''' replaces the present condition and duration with the new, and '''ignore''' will keep the present condition and duration. This can be important on conditions who have the same stack ID as other conditions to show which of them takes priority, and for showing if you can increase the duration of a condition by applying it again.",
"type": "string",
"suggestedvalues": [
            "additive",
            "overwrite",
            "ignore"
            ]
},
"effects": {
"description": "The description of the condition.",
"type": "content",
"suggested": true
},
"this is an example": {
"description": "If specified, does not insert into the Conditions table.",
"type": "boolean"
},
"suppress sources": {
"description": "If specified, will not display \"sources of\".",
"type": "boolean"
},
"honour mode": {
"description": "Changes that apply under the honour mode difficulty.",
"type": "string"
},
"notes": {
"description": "Notes, displayed before the list of sources",
"type": "string"
}
}
}
</templatedata>}}</noinclude>

Revision as of 07:38, 9 May 2024

Template documentation

If the page title is Blah (Condition), then you don't have to provide the name parameter. Likewise, if the icon for the condition is called Blah Condition Icon.webp then you don't have to provide the icon parameter.

If a condition has multiple types, separate them with a semicolon.

{{Condition page
| effects =
| type =
| honour mode = 
| stack id = 
| status groups = 
| tick type = 
| stack type = 
| stack priority = 
| properties = 
| grants = 
| condition =
| condition duration = 
| condition save = 
| condition dc =
| condition2 =
| condition2 duration = 
| condition2 save = 
| condition2 dc =
| condition3 =
| condition3 duration = 
| condition3 save = 
| condition3 dc =
| notes =
| bugs =
}}

Examples:

Blade Ward (Condition)

Condition Type Icon.pngCursedProne

Honour mode

  • If you get hit by anything you are not resistant too, you immediately die.

Properties

Status IDStack ID: HASTE

Status groupsStatus groups: SG_RemoveOnRespec

Loses duration: end of turn

If already applied: don't apply

Stack priority: 10

More properties:

Notes

  • note 1
  • note 2

Bugs

  • bug 1
  • bug 2

Conditions with the same stack ID

Conditions with the stack ID HASTE, only one of these can be applied at the same time:

Condition Effects

Absorbed Essence: Illasera (Condition) Absorbed Essence: Illasera

Celestial Haste (Condition) Celestial Haste

Haste Spores (Condition) Haste Spores

Hastened (Condition) Hastened

Sources of Blade Ward

No results


Bone Chilled (Condition)

Sources of Bone Chilled

No results


Flesh Rot (Condition)

Condition Type Icon.pngDiseased

Sources of Flesh Rot

No results


Multiple types example

Condition Type Icon.pngDiseasedCursedIncapacitatedProneCharmed

Template data

No description.

Template parameters

This template prefers block formatting of parameters.

ParameterDescriptionTypeStatus
namename

If specified, overrides the name.

Default
Uses the name of the page, minus (Condition).
Stringoptional
iconicon

If specified, overrides the icon.

Default
Uses the "name" plus Condition.webp
Fileoptional
diseasedisease

If specified, sets the type to be disease

Booleandeprecated
typetype

The type or types of the condition. If multiple, separate the types with commas.

Suggested values
Cursed Diseased Poisoned Polymorphed Charmed Frightened Incapacitated Prone Unconscious Blinded Maimed
Stringoptional
stack idstack id

Stack ID for the condition. Conditions with the same stack ID can not be present at the same time. If a stack ID is specified, it will only display if there are other conditions with that stack ID. It will also display those conditions.

Example
HASTE, Polymorph_WildShape
Stringoptional
status groupsstatus groups

Any status groups the condition belongs too. If multiple, separate the types with commas.

Example
mad, invisible, helpable condition, light, weapon coating,
Stringoptional
tick typetick type

When the condition loses duration. This can be at the start or end of a turn. If marked with '''none''' the condition will be marked as not having a duration. This may be used by conditions who are active based on something else like a passive feature or standing near something. If you are unsure, leave it empty.

Suggested values
start end none
Stringoptional
stack typestack type

Decides what happends when the condition is applied while already being present. '''additive''' adds the durations together, '''overwrite''' replaces the present condition and duration with the new, and '''ignore''' will keep the present condition and duration. This can be important on conditions who have the same stack ID as other conditions to show which of them takes priority, and for showing if you can increase the duration of a condition by applying it again.

Suggested values
additive overwrite ignore
Stringoptional
stack prioritystack priority

Conditions with higher stack priority overwrite conditions with lower stack priority when applied.

Example
1, 3, 5, 10
Stringoptional
propertiesproperties

Properties for the condition. If multiple, separate the types with commas.

Example
FreezeDuration, IgnoreResting, InitiateCombat, ApplyToDead
Stringoptional
effectseffects

The description of the condition.

Contentsuggested
briefbrief

Optional brief description to be used in infoboxes and other places where the text should be short. If left out, defaults to the same value as the effects field.

Contentsuggested
conditioncondition

The full name of the condition (if any) that this action applies to its target/s. Leave blank if there is no condition.

Example
Hastened
Stringoptional
condition durationcondition duration

The duration in turns of the action's applied condition. Leave blank if the duration is unlimited.

Example
5
Numberoptional
condition savecondition save

The save that the action's target must roll to avoid or reduce its effects. Can use short or long name, e.g: "STR" or "Strength"

Suggested values
Strength Dexterity Constitution Intelligence Wisdom Charisma
Example
WIS
Stringoptional
condition dccondition dc

The optional fixed DC of the condition that targets have to pass to apply it

Example
12
Numberoptional
condition2condition2

The full name of the condition (if any) that is applied if there is a second condition.

Example
Hastened
Stringoptional
condition2 durationcondition2 duration

The duration in turns of the action's second condition. Leave blank if the duration is unlimited.

Example
5
Numberoptional
condition2 savecondition2 save

The save that the action's target must roll to avoid or reduce the effects of the second condition. Can use short or long name, e.g: "STR" or "Strength"

Suggested values
Strength Dexterity Constitution Intelligence Wisdom Charisma
Example
WIS
Stringoptional
condition2 dccondition2 dc

The optional fixed DC of the second condition that targets have to pass to apply it

Example
12
Numberoptional
condition3condition3

The full name of the condition (if any) that is applied if there is a third condition.

Example
Hastened
Stringoptional
condition3 durationcondition3 duration

The duration in turns of the action's third condition. Leave blank if the duration is unlimited.

Example
5
Numberoptional
condition3 savecondition3 save

The save that the action's target must roll to avoid or reduce the effects of the third condition. Can use short or long name, e.g: "STR" or "Strength"

Suggested values
Strength Dexterity Constitution Intelligence Wisdom Charisma
Example
WIS
Stringoptional
condition3 dccondition3 dc

The optional fixed DC of the third condition that targets have to pass to apply it

Example
12
Numberoptional
grantsgrants

This specifies what spells/actions are granted to whoever has this condition

Example
Heart of the Storm
Stringoptional
this is an examplethis is an example

If specified, does not insert into the Conditions table.

Booleanoptional
suppress sourcessuppress sources

If specified, will not display "sources of".

Booleanoptional
honour modehonour mode

Changes that apply under the honour mode difficulty.

Stringoptional
notesnotes

Notes, displayed before the list of sources

Stringoptional
This template defines the table "conditions". View table.