rpherbig / dr-scripts

A series of Lich 5 (https://github.com/elanthia-online/lich-5) scripts for use with DragonRealms (http://www.play.net/dr/). Donations are welcome (http://www.paypal.me/rcuhljr)!
GNU General Public License v2.0
52 stars 177 forks source link

Add spell stances to buff scripts and yaml entries #5075

Closed robbintt closed 2 years ago

robbintt commented 3 years ago

Spell stance can make a big difference but varies based on the spell. This is a good opportunity for the buff yaml options.

KatoakDR commented 3 years ago

I could see a few ways this could be implemented based on what I've read on the wiki:

Specify the stance name and use whatever you've configured that to be:

buff_spells:
    Ethereal Shield:
      stance: potency

Specify the stance numeric values for granular control:

buff_spells:
    Ethereal Shield:
      stance: 80 120 100

I don't think it's an "either/or" situation of which way we implement because SPELL STANCE command should accept whatever is dumped after it (I think). Lich would do something like bput("spell stance #{data['stance']}", ...)

We'd also need to introduce a default_spell_stance similar to default_stance for evasion/shield/parry.

wstampley commented 3 years ago

I'm not against this, but you can easily do it with before and afters on spells today.

    Hydra Hex:
      cyclic: true
      cast: cast male offense
      mana: #
      recast: -1
      before:
      - message: spell stance X Y Z
      after:
      - message: spell stance X Y Z
KatoakDR commented 3 years ago

I'm not against this, but you can easily do it with before and afters on spells today.

    Hydra Hex:
      cyclic: true
      cast: cast male offense
      mana: #
      recast: -1
      before:
      - message: spell stance X Y Z
      after:
      - message: spell stance X Y Z

I forgot about the before/after, neat! I think you also have to provide some match strings, too, to avoid a timeout on bput? Looks like the 'before/after' are done as DRC.bput(action['message'], action['matches'])

KatoakDR commented 3 years ago

I think the before/after could be a workaround for now. If there's more demand for customizing spell stances per spell I'm a fan of making it easier for folks to configure so a single stance: property on the spell helps.

wstampley commented 3 years ago

I'm not against this, but you can easily do it with before and afters on spells today.

    Hydra Hex:
      cyclic: true
      cast: cast male offense
      mana: #
      recast: -1
      before:
      - message: spell stance X Y Z
      after:
      - message: spell stance X Y Z

I forgot about the before/after, neat! I think you also have to provide some match strings, too, to avoid a timeout on bput? Looks like the 'before/after' are done as DRC.bput(action['message'], action['matches'])

I don't have any matches on mine and they seem to work? Don't know.

  om: &om
    Osrel Meraud:
      mana: X
      cambrinth: [X, X, X, X]
      recast: -1
      cast: cast my orb
      before:
      - message: spell stance 130 70 100
      after:
      - message: spell stance 115 115 70
      - message: release sap
      - message: tap orb
KatoakDR commented 3 years ago

I don't have any matches on mine and they seem to work

Interesting.... thanks for sharing the config

MahtraDR commented 2 years ago

I've been using the recommended setup with before: after: for a month now on all mine.

Given we'd need to introduce a default stance setting, and a per-spell stance setting, I am not sure that is a major improvement over using the current method. We'd be risking adding more code, purely for the sake of neatness, when before/after already do what's expected.

@KatoakDR Does that make sense to you? If so, I propose we close this, after we document it with a wiki article on spell stances (which I am willing to write if we go this route.)

MahtraDR commented 2 years ago

This took forever, sorry. Added to https://github.com/rpherbig/dr-scripts/wiki/buff_spells.

@rpherbig We can close this.