-
Notifications
You must be signed in to change notification settings - Fork 36
Range
Range represents the distance and area of effect for weapons, abilities, and other game mechanics. Ranges can be defined using specific types and values to indicate how far an effect can reach or how it impacts an area. COMP/CON does not handle positioning or grids, so range is primarily used for display and context.
Range is stored as IRangeData objects, typically in an array.
IRangeData: {
"type": RangeType;
"val": string | number;
"min"?: string | number;
}The type field indicates the type of range being defined. This must be one of the following strings:
ThreatRangeBurstBlastConeLine
Range indicates a standard ranged attack.
The val field indicates the maximum range value. This can be a number (e.g. 10) or a string representing a dice expression. A dice expression is a string of the form XdY+Z or XdY or Z, where:
-
Xis the number of dice (optional, defaults to 1) -
Yis the die type (eg. 6 for a d6, 20 for a d20) -
Zis a flat bonus (optional, defaults to 0)
As of v3, Range values may also include special bonus strings that are interpreted by COMP/CON based on context. See Bonus Strings for more information.
Finally, range values will be evaluated as normal arithmetic expressions, so you can use +, -, *, /, and parentheses to create more complex calculations (e.g. 2d6+4, (1d8+2)*2, 2+1d6+{agi} etc).
The min field indicates the minimum range value. This can be a number (e.g. 2) or a string representing a dice expression, following the same format as the val field. A minimum range is typically used to indicate that a weapon or ability cannot be used at very close distances and is not managed by COMP/CON beyond display purposes.