CONTENT CONTRACT · VERSION 1
projectile
A flying spell body: its flight, what a hit does and how it looks.
Signature
{ burst: (ProjectileBurst)?, damage_type: DamageTypeId, hit_status: (StatusId)?, homing: boolean, id: ContentId, impact: (FxId)?, kind: "projectile", look: FxId, radius_mm: PositiveDistance, range_mm: PositiveDistance, speed_mm_per_tick: MovementSpeed }Fields
| Name | Type | Meaning |
|---|---|---|
burst | ProjectileBurst | Area it bursts into where it ends, struck body or ground. |
damage_type | DamageTypeId | Damage type of its hit and its burst. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: damage_type |
hit_status | StatusId | Status its hit applies to the struck body for the status's duration. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: status |
homing | boolean | Whether it follows the body the caster's aim chose. |
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
impact | FxId | Look of its end (the burst or the hit). Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: fx |
kind | "projectile" | Discriminant |
look | FxId | Look of the body in flight. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: fx |
radius_mm | PositiveDistance | Radius a body must come within to be struck. Range: 1…2147483647; Unit: mm |
range_mm | PositiveDistance | Distance it flies before it ends. Range: 1…2147483647; Unit: mm |
speed_mm_per_tick | MovementSpeed | Flight speed. Range: 1…2147483647; Unit: mm/tick |
Validated example
{
"burst": {
"damage_permille": 700,
"radius_mm": 3000,
"status": "core:burning"
},
"damage_type": "core:fire_damage",
"hit_status": "core:burning",
"homing": false,
"id": "core:fireball_shot",
"impact": "core:fireball_blast",
"kind": "projectile",
"look": "core:fireball_look",
"radius_mm": 450,
"range_mm": 24000,
"speed_mm_per_tick": 720
}