Update Spells authored by Taiyou06's avatar Taiyou06
...@@ -17,21 +17,87 @@ Spells are just Mythic Skills with extra options. All regular Mythic metaskill o ...@@ -17,21 +17,87 @@ Spells are just Mythic Skills with extra options. All regular Mythic metaskill o
| LearnConditions: [conditions]| A list of conditions that must be met to learn the spell. | | LearnConditions: [conditions]| A list of conditions that must be met to learn the spell. |
| Trigger: [trigger] | What triggers the spell. Defaults to `~onCombat` | | Trigger: [trigger] | What triggers the spell. Defaults to `~onCombat` |
| Targeter: [targeter] | The main targeter for the spell. If this is set the spell will fail to cast and not consume resources if a valid target isn't found. Defaults to `@self`. <br> *Remember to put the targeter between string delimiters such as `"` or `'` so that the yaml file can parse correctly* | | Targeter: [targeter] | The main targeter for the spell. If this is set the spell will fail to cast and not consume resources if a valid target isn't found. Defaults to `@self`. <br> *Remember to put the targeter between string delimiters such as `"` or `'` so that the yaml file can parse correctly* |
| Cost: [reagents] | A list of reagents this spell costs to cast. | | Cost: [reagents] | A list of [reagents](Spells/Reagents) this spell costs to cast. |
| Global: true | Makes it a [global spell], causing it to be automatically applied to all players | | Global: true | Makes it a [global spell], causing it to be automatically applied to all players |
| Upgrades: [integer] | The maximum level the spell can reach. Defaults to `1` | | Upgrades: [integer] | The maximum level the spell can reach. Defaults to `1` |
| Bindable: [true/false] | Whether the slot from which this spell can be cast can be binded. Defaults to `false`<br><br>Once binded, the `~onUse` trigger is needed to cast the skill | | Bindable: [true/false] | Whether the slot from which this spell can be cast can be bound. Defaults to `false`<br><br>Once bound, the `~onUse` trigger is needed to cast the skill |
| Binding: [1-9] | Forces the spell into a specific hotbar slot when bound (slots are 1-indexed) |
| ClickCombo: [combo] | A click combo string that triggers this spell (e.g. `LRR`). See [Casting](Spells/Casting) |
| ClickCombos: [list] | A list of click combo strings, any of which can trigger this spell |
| ChildSpells: [list] | A list of other spell ids that are auto-learned alongside this one. They share this spell's level |
| Modifiers | Per-level scaling values used in the spell's description and skill mechanics. See [Modifiers](#modifiers) |
| Stats | Stat modifiers granted to the player as long as they know the spell. See [Stats](#stats) |
### Aesthetic Options ### Aesthetic Options
| Option | Description | | Option | Description |
|------------------------------|-------------------------------------------------------------------------| |------------------------------|-------------------------------------------------------------------------|
| Display: [name] | The display name of the spell | | Display: [name] | The display name of the spell |
| DisplayOrder: [integer] | Sort order in menus. Lower values appear first. Defaults to `0` |
| Description: [list] | A description of what the spell does for GUIs and info commands | | Description: [list] | A description of what the spell does for GUIs and info commands |
| Icon.Material: [material] | | | Icon.Material: [material] | |
| Icon.Model: [material] | | | Icon.Model: [material] | |
| Icon.Generation | [Crucible's Generation Option](/../../../mythiccrucible/-/wikis/ResourcePack-Generator#item-configurations) | | Icon.Generation | [Crucible's Generation Option](/../../../mythiccrucible/-/wikis/ResourcePack-Generator#item-configurations) |
| KillMessage: [list] | | | KillMessages: [list] | Random kill-message lines used when this spell finishes off a target |
## Modifiers
Modifiers are per-level numeric values that you can reference inside `Description:` lines and inside the spell's mechanics via `<spell.modifier.<key>>` placeholders. They come in two forms:
**Block form** (with per-level scaling):
```yaml
Modifiers:
DAMAGE:
Base: 5
PerLevel: 2
Min: 0
Max: 50
```
**Line form** (formula expressions):
```yaml
Modifiers:
- DAMAGE 5+(level*2)
```
| Option | Description | Default |
|----------|------------------------------------------------------------------------------|------------------|
| Base | Value at level 1 | 1 |
| PerLevel | Amount added per additional level (`Base + (level - 1) * PerLevel`) | 0 |
| Min | Lower clamp | unbounded |
| Max | Upper clamp | unbounded |
`{KEY}` placeholders in the `Description:` are substituted with the modifier's value at the player's current spell level.
## Stats
Stats let a spell directly grant the player stat bonuses for as long as they know the spell — no need for an aura. Each entry under `Stats:` is keyed by a stat name and configures how it scales with spell level.
```yaml
passive_health:
Spell: true
Bindable: false
Trigger: ~onJoin
Display: 'Bonus Health'
Description:
- '&b&lPassive &f- Grants {HEALTH} maximum health per spell level'
Stats:
HEALTH:
Base: 1
PerLevel: 1
Max: 3
```
| Option | Description | Default |
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
| Base | Value granted at level 1 | 0 |
| PerLevel | Amount added per additional spell level (`Base + (level - 1) * PerLevel`) | 0 |
| Min | Lower clamp | unbounded |
| Max | Upper clamp | unbounded |
| Operation | Modifier operation: `Additive`, `Multiply`, `Compound`, or `Set` | `Additive` |
The stat name (`HEALTH` in the example) can also be used inside `Description:` as a placeholder — `{HEALTH}` is replaced with the current value at the player's spell level.
Stats are applied automatically when the spell is learned and removed when it's forgotten.
# Examples # Examples
...@@ -40,21 +106,26 @@ MAGIC_MISSILE: ...@@ -40,21 +106,26 @@ MAGIC_MISSILE:
Cooldown: 2 Cooldown: 2
Display: 'Magic Missile' Display: 'Magic Missile'
Description: Description:
- 'Shoots a magic missile' - 'Shoots a magic missile dealing {DAMAGE} damage'
Icon: Icon:
Material: NETHER_STAR Material: NETHER_STAR
Model: 20 Model: 20
Learnable: true Spell: true
LearnConditions: LearnConditions:
- archetype{group=class;type=wizard} - archetype{group=class;type=wizard}
Targeter: "@target" Targeter: "@target"
Trigger: ~onUse Trigger: ~onUse
Upgrades: 5
Modifiers:
DAMAGE:
Base: 5
PerLevel: 2
Cost: Cost:
- mana 40 - mana 40
TargetConditions: TargetConditions:
- distance{d=<20} true - distance{d=<20} true
Skills: Skills:
- missile{} - damage{a=<spell.modifier.DAMAGE>} @target
``` ```
... ...
......