Implementation of a jump attack ability


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 18:09

Implementation of a jump attack ability

Note: I've edited this first post to give an up-to-date description of the current ability, to avoid confusion.

Jump attack is now in trunk! You can start a game as a felid to get the ability innately at start, and other species can look out for boots of jumping or artefacts with the +Jump property.

Details:
  • A new ability where the player can perform a jump attack on a monster for 120% damage, landing on a random, habitable square that's adjacent to the target.
  • Boots of jumping grant the evocable ability costing 2mp and hunger.
  • The attack range is 3, but the landing site can be at a greater distance, so long as it's in-LOS, adjacent, and habitable.
  • Currently, training evocations affects only the fail rate.
  • Felids get start with an innate jump 1 mutation, increasing in range at XL6 and XL12, with a failure rate based on experience level.
  • Both forms have a hunger cost and set exhaustion after use (like berserk, but without slowness). The costs/durations are the same as draconian breath.
  • Jump attack paths are blocked by flying monsters, or giant monsters that aren't submerged in deep water/lava.
  • If you jump attack and it turns out that an invisible flying/giant monster blocked your path, or that any invisible monster was on the random landing site chosen, the jump 'rebounds', wasting the turn and any associated MP/hunger costs.
  • You can attempt to jump-attack a square with no visible monster. If it turns out there was no monster, the jump fails and you lose the turn.
  • You can jump while flying, but you can't jump from water (of any kind), lava, or liquefied ground. You can jump into those surfaces, if they're safe, however.
  • If you are already adjacent to your target, you can still jump-attack as long as there's a non-adjacent landing site (on the other side of the monster).
  • If any of the possible landing sites have traps, clouds, exclusions, or deep water/lava and you have expiring flight/transformation, you'll be prompted before the jump.
  • Currently stasis doesn't block jump, and Chei is, like, totally cool with it, man.
  • The attack uses ordinary melee, including any brands, but does not process either reach or cleave.
  • It gives a stabbing bonus, but one where the stab bonus class is increased by one point, which reduces damage.
  • Makes no noise other than what your melee attack might do.
  • You can jump in forms, including bad forms, but not tree or wisp.
  • You also can't jump attack while constricted, but I'll be fixing this so that it counts as an escape attempt.


Below is the original post I made on the first version of the patch, which was a very different ability. The dev wiki entry has been removed (most discussion happens on ##crawl-dev and in this post), and my webtiles server is not online, but as mentioned above you can try it out on CSZO

I've written a patch that implements a jump attack ability and a new class (Dragoon) that starts with that ability. The basic idea is combining translocations and multi-hit melee. This will need lots of tweaking for balance, and I'm open to taking the 'translocations attack' idea in other direction(s). Constructive criticism regarding improving the interface, the ability itself, or the code internals are also greatly appreciated.

I've made a dev wiki entry goes into the details:
https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:combat:jump_attack

Here's the mantis report where you can download the patch if you want to make a build.
https://crawl.develz.org/mantis/view.php?id=7188

If you want to test it in webtiles, I have a public webtiles server. Just register and start a game under 'trunk' using the new 'Dragoon' class (or play a Felid of any class).
http://gammafunk.no-ip.org:8080/#lobby
None of these games are tracked on CAO or anything; it's just a test server. No guarantees that it won't slow down under much of a load, either :)
You can use a fake email address if you're fearful of enduring the onslaught from my massive spam empire.

Short summary (dev wiki goes into greater depth):

  • A new ability where the player can jump or perform a jumping attack that can hit one to a few targets.
  • The user can target a monster to perform a jump attack dealing additional melee damage and secondary damage to hostiles along the jump path.
  • A jump with no primary attack can be performed by targeting an empty square, although hostile monsters along the jump path will be hit by the secondary
    attack.
  • Tested on tiles and ascii builds on OS X and a webtiles server on linux.
  • The jump evocation ability comes from an armour ego (either boots or hat).
  • There's also a player mutation, which Felids now start with at level one,
    increasing to levels 2 and 3 at XL 6 and XL 12.
  • It costs 2mp to cast, uses hunger similar to a breath attack, and has a 'jump power' mechanic to limit
    consecutive jumps.
  • There's a Dragoon class that starts with boots of jumping or a hat of jumping,appropriate skills in evocations and 2mp.
Last edited by gammafunk on Friday, 4th October 2013, 15:56, edited 7 times in total.
User avatar

Slime Squisher

Posts: 382

Joined: Thursday, 12th April 2012, 02:07

Location: Standing right behind you...

Post Sunday, 9th June 2013, 18:33

Re: Implementation of a jump attack ability

Seems to me like Dredmor, Clockwork Knights. But I'll give it a shot anyway.

EDIT: Shouldn't have it's own buff; should be a breath or exh attack.

EDIT2: This is a weird question, but how exactly is this supposed to work in the first place? I can only jump one tile, and if something is there, it won't let me.

EDIT3: There shouldn't be a Dragoon class. No other class has an evocable gimmick; they just define starting stats and equipment. Adding this gimmick to only one class makes this class better than any other playable class, if you're willing to grind...but I'm perfectly open to the prospect of jumping felids.
Last edited by giygas on Sunday, 9th June 2013, 18:43, edited 2 times in total.
Jabberwocky wrote:You came back on the forums. Everything in the corner has been worse since 11/4/12. It got better when you left, but now it's bad again.


"You cannot grasp the true form of Giygas's attack!"

Spider Stomper

Posts: 211

Joined: Thursday, 5th January 2012, 08:32

Post Sunday, 9th June 2013, 18:39

Re: Implementation of a jump attack ability

Initial reactions:

We don't need more indicator lights. Replace jump power with exhaustion.

Remove the ability to jump to empty squares that are not adjacent to a dude. There's no reason this should be strictly better than cblink.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 18:48

Re: Implementation of a jump attack ability

giygas wrote:Seems to me like Dredmor, Clockwork Knights. But I'll give it a shot anyway.

EDIT: Shouldn't have it's own buff; should be a breath or exh attack.

EDIT2: This is a weird question, but how exactly is this supposed to work in the first place? I can only jump one tile, and if something is there, it won't let me.


By it's own buff, do you mean JPow? If so, yeah my initial plan was to use Exh. It actually does check Exh, in fact. The only problem with making it use exhaustion as that exhaustion is currently a simple duration, not like JPow with multiple levels. I'd have to make exhaustion function like JPow, which would also require coordinating with the berserk code carefully. I'm open to the idea, but there was some suggestion against that on ##crawl-dev.

The way it works at start is that it's pretty limited. You can only jump one tile at level 1, so the only thing you can use it for at that level is a jump attack for something two tiles away. You can't jump-attack adjacent dudes unless you can jump over them, which would require jump level 2 or higher. It's still useful at level one, but perhaps the initial range should be two just so it's not as annoying.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 18:51

Re: Implementation of a jump attack ability

yogaFLAME wrote:Initial reactions:

We don't need more indicator lights. Replace jump power with exhaustion.

Remove the ability to jump to empty squares that are not adjacent to a dude. There's no reason this should be strictly better than cblink.


I'm open to the restriction of having to jump attack only and removing a non-attack jump. But the range is very limited and there are jump path restrictions you don't have with cblink. Also, you can use a non-adjacent to enemy jump to kite enemies with the secondary attack, which I think is cool.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 20:00

Re: Implementation of a jump attack ability

giygas wrote:Seems to me like Dredmor, Clockwork Knights. But I'll give it a shot anyway.

EDIT3: There shouldn't be a Dragoon class. No other class has an evocable gimmick; they just define starting stats and equipment. Adding this gimmick to only one class makes this class better than any other playable class, if you're willing to grind...but I'm perfectly open to the prospect of jumping felids.


Well the gimmick is coming from equipment, not something innate to the class. It's an ego for boots (or hats, but that's a kludge to let all species test). Other classes can find armour with the ego, and I don't think it'd be as rare as something like running. Branded boots are pretty rare in general, so its random generation might need to be tweaked. It can also show up as an artefact property. I could also just move the jump ego to a dedicated amulet or ring, similar to Rage, but using jewelry slots can make it less desirable.

Other precedents for a class starting with a non-innate ability is simply Berserker or DK. Yes, that ability is coming from a god that anyone can join, but having one piece of branded equipment is hardly earth-shattering. CK also starts with a branded weapon. I think the problem of not making simply better than gladiator is valid, though. It might need to have a bit less in the stat department, for instance.

At a bare minimum, it makes it easy to test play without wizmode, so it's staying in for now :)
User avatar

Dungeon Master

Posts: 762

Joined: Thursday, 25th April 2013, 02:43

Post Sunday, 9th June 2013, 20:36

Re: Implementation of a jump attack ability

Note: I haven't tested to class, so everything I say is not based on that.

I think having JPow is a bad idea, as said we have enough status lights (maybe Crawl should implement cool downs? I know Dungeons of Dredmor and TOME4 use them). The obvious choice is to use Magic Contamination, but that pushes this even more toward being just Telelocations in disguise. On that note, 2MP seems bad to me. I think it would be irrelevant most of the time, and it also makes this seem like a spell. If you remove the MP cost, you can nerf it somewhere else.

I'd just combine them Dragoon with Gladiators - I imagine that throwing synergies well with the Jump ability, and I think Gladiators and Fighters need more differentiation.
giygas wrote:There shouldn't be a Dragoon class. No other class has an evocable gimmick; they just define starting stats and equipment. Adding this gimmick to only one class makes this class better than any other playable class, if you're willing to grind.
If the this was true, nobody would choice Hunter over Arcane Marksman, or Gladiator over Skald, because the latters start with books, which are likely to be used even longer than simple branded boots. I rather like the idea of a class starting with a particular brand of equipment- I think it works toward differentiation and gives classes a longer term effect.
On IRC my nick is reaverb. I play online under the name reaver, though.

For this message the author reaver has received thanks:
gammafunk

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 21:14

Re: Implementation of a jump attack ability

reaver wrote:Note: I haven't tested to class, so everything I say is not based on that.

I think having JPow is a bad idea, as said we have enough status lights (maybe Crawl should implement cool downs? I know Dungeons of Dredmor and TOME4 use them). The obvious choice is to use Magic Contamination, but that pushes this even more toward being just Telelocations in disguise. On that note, 2MP seems bad to me. I think it would be irrelevant most of the time, and it also makes this seem like a spell. If you remove the MP cost, you can nerf it somewhere else.

I'd just combine them Dragoon with Gladiators - I imagine that throwing synergies well with the Jump ability, and I think Gladiators and Fighters need more differentiation.


Actually, magic contam should have been obvious to me, yes. If I add magic contam with each jump and set an exhaustion duration perhaps one jump after the jump level, that would do the trick with no changes to exhaustion and no addition of a new status. I'm thinking that if you have jump level N, you can jump up to N times, getting contam each time but at a level that won't induce glow if you have no contam before the first jump. Then if you perform jump N+1, you get enough contam to get glow, and an exhaustion duration. You can't jump if you're exhausted, so that's a hard limit on consecutive jumps and you paid a cost for that last one. Thanks for the contam idea; I'll probably make a patch with that change soon, unless someone gives a reason why it's a terrible fix.

Removing MP could make sense if I figure out what else to nerf. It's there as a way to make MP draining enemies and use of other magic a factor. I could simply make the hunger cost a bit higher, but it's reasonably high as it is.

Merging Dragoons and Gladiators is interesting, but I'm sure that'll make some players angry. Gladiators get nets, throwing skill, a point more Str instead of dex, and a point more HP, so they're differentiated, granted only just. I do like having a conventional light-armour, no-shield class with no fancy gimmick. Experienced players tend to like gladiator a lot more than fighter, based on my experience with people complaining about fighter.

Tartarus Sorceror

Posts: 1776

Joined: Monday, 21st February 2011, 15:57

Location: South Carolina

Post Sunday, 9th June 2013, 21:18

Re: Implementation of a jump attack ability

Here is a thread on a previous implementation:
viewtopic.php?f=8&t=4423&p=58850

For this message the author jejorda2 has received thanks:
gammafunk
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Sunday, 9th June 2013, 21:29

Re: Implementation of a jump attack ability

Why not simply use a breath-like cooldown? Your jump power system seems overly complicated and I'm not sure consecutive jumps would be a good thing anyway. I'd rather avoid glow for this. MP cost is fine for the evokable but a bit weird for felids.
The hat ego and the dragoon background are handy for testing, but if it ever goes in, they would almost certainly need to go. As only a boot ego, it might work. Not sure about felids though.

Now, do we really want this? With a 300% damage bonus, I guess you'd want to start every fight with a jump, and repeat it as soon as your power or cooldown allows it. Seems tedious, uninteresting and overpowered. Maybe it needs a significant drawback like being vulnerable for some time on your landing spot. Something that makes using it a tactical choice.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 21:58

Re: Implementation of a jump attack ability

galehar wrote:Why not simply use a breath-like cooldown? Your jump power system seems overly complicated and I'm not sure consecutive jumps would be a good thing anyway. I'd rather avoid glow for this. MP cost is fine for the evokable but a bit weird for felids.
The hat ego and the dragoon background are handy for testing, but if it ever goes in, they would almost certainly need to go. As only a boot ego, it might work. Not sure about felids though.

Now, do we really want this? With a 300% damage bonus, I guess you'd want to start every fight with a jump, and repeat it as soon as your power or cooldown allows it. Seems tedious, uninteresting and overpowered. Maybe it needs a significant drawback like being vulnerable for some time on your landing spot. Something that makes using it a tactical choice.


Agree regarding MP cost for the player mutation. I'll trust your judgement call that Dragoon will never go in, but perhaps if I can make the mechanic interesting enough, there's a chance. We having enchanter and assassin as stabbing backgrounds, for instance. I like the magic contam usage, since it also nerfs using it (much) with invis or haste.

You're right regarding the basic gameplay scenario. Stabbing is fairly uninteresting to me because of the tedium, and jump does currently have that repetitive aspect. It being overpowered can be fixed by adding delay, noise, and tweaking damage formula. It has to be worthwhile to use, and ideally like stabbing is throughout the game.

Perhaps emphasizing the multiple hit aspect of the attack more would be more interesting. You could allow jumping at somewhat longer distance but only along a straight line. Or keep the distance limitations, but allow the secondary attack to hit a wide swath of enemies but adding attacks to tiles adjacent to the jump path.
User avatar

Dungeon Master

Posts: 762

Joined: Thursday, 25th April 2013, 02:43

Post Sunday, 9th June 2013, 22:00

Re: Implementation of a jump attack ability

As I said, I think magic contamination makes this seem too much like a spell. In particular, I think I'd find having Jumping magic contamination act different from all other forms of magic contamination hard to follow. I would prefer JPow at this point.

Considering Galehar's post, I'd like to make 3 suggestions:

1) Switch the MP cost to a HP cost. HP costs are only used for Makhleb Invocations and the blink mutation right now, and it wouldn't have the problem of being weird for a mutation.

2) Make the power use the new "weakness" status as its cool down. Weakness reduces player melee damage by 25%. This would make the power good for ending fights before they start, like a micro berserk, prevent spamming the attack, and good if you can line up a bunch of enemies to attack.

3) Increase damage of the secondary attack from 75% (maybe 125%) to compensate for 2)

gammafunk wrote:I do like having a conventional light-armour, no-shield class with no fancy gimmick. Experienced players tend to like gladiator a lot more than fighter, based on my experience with people complaining about fighter.
This makes sense to me.
On IRC my nick is reaverb. I play online under the name reaver, though.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 9th June 2013, 22:34

Re: Implementation of a jump attack ability

reaver wrote:As I said, I think magic contamination makes this seem too much like a spell. In particular, I think I'd find having Jumping magic contamination act different from all other forms of magic contamination hard to follow. I would prefer JPow at this point.,


Well, to be clear, jumping magic contam wouldn't be different; it would simply add a small amount of contam similar to how semi-controlled blink does. The amount added would just be such that you get glow after a number of jumps dependent on your jump level. But I now realize that to get the exhaustion to kick after some number of jumps, I'd need to have something that tracks jumps and times out appropriately, just like JPow does. One easy fix is to never set exhaustion with jump, but instead disallow jump when the player has glow (in addition to disallowing when the player is exhausted).

Not using magic contam because of similarity to spells doesn't seem the best justification to me, but that's two opinions against magic contam, so I'll sit on the switch to contam for now.

reaver wrote:Considering Galehar's post, I'd like to make 3 suggestions:

1) Switch the MP cost to a HP cost. HP costs are only used for Makhleb Invocations and the blink mutation right now, and it wouldn't have the problem of being weird for a mutation.

2) Make the power use the new "weakness" status as its cool down. Weakness reduces player melee damage by 25%. This would make the power good for ending fights before they start, like a micro berserk, prevent spamming the attack, and good if you can line up a bunch of enemies to attack.

3) Increase damage of the secondary attack from 75% (maybe 125%) to compensate for 2)


The HP cost does make sense, but then I pity the poor felid starting with 7hp that uses jump. I guess it could take only 1hp at level one, and then take progressively more at higher levels.

The weakness and increased secondary attack ideas are interesting. With current range limitations, the number of monsters you can hit with a secondary attack is quite limited. Perhaps starting the range at 2 and increasing up to 4 instead of 3 would help (and make the use of jump at early game more interesting).
User avatar

Dungeon Master

Posts: 762

Joined: Thursday, 25th April 2013, 02:43

Post Monday, 10th June 2013, 06:04

Re: Implementation of a jump attack ability

I looked through the code a bit and I just have to say Wow. I am shocked how much work you've put into this and how much effort it takes to add new features. The patch is enormous. Note this means we should get this approved as soon as possible- this code is going to rot quickly, as shown by qoala's need to update the patch.

I'm added a patch to the mantis issue which makes both evocation and mutation jumps cost 2 HP. I don't know if this is too much or too little, or if we should keep the MP cost for evocation. It seems like it would be much more difficult to scale the cost with what level of jumping the player has. It also might be undesirable because the player might drain themselves purposely to keep the cost low (probably wouldn't happen, but it's something to keep in mind.) Note that using a percent of HP is already implemented-so we could, for example, take 1% of HP, which I believe would be rounded up.

I tried to implement my other suggestions by myself so we could test both versions of jumping, but I got lost in the code. Care to point me toward where the code that gives JPOW to jumpers is?

I also removed the restrictions on Jumping while Exhausted or wearing Stasis. They seem to me quite odd- Exhausted is strictly a timer for Death's Door and Berserk, while Stasis prevents translocations, not moving around quickly, as is the flavor of jumping. Personally, I think every restriction there should be removed except maybe constriction. It seems confusing to me to remember all the times you can't jump. Maybe we should rename it "charging" if that happens.

Finally, I tried out jumping a bit and I found lining up enemies to deal max damage extremely fun- even though I was just testing how jumping worked. It makes you think like Fulminant Prism- looking at all the monster's positions like a chessboard. The only thing I found annoying is that the targeting system's decisions of what was on path is rather arbitrary. Example:

(10/1/2013: I noticed this picture upload was broken. This picture showed a targeting oddity like the kind that show up when you try to line up a wall and a popcorn monster to test wands.)

Why can't I hit the second newt? Crawl takes pains to be neutral to the cardinal directions- it seems like it should here too. Maybe something about following a path you lay out? So I'd press "u" and then "k" so I go over both newts.

EDIT: It appears my patch isn't working. I compiled it, but I was so caught up in the fun of jumping I forgot to check if it caused hp to drop, which it doesn't. Looking closely, I think I only modified the part which displays what the cost is, since I assumed that it also changed the actual costs.
Last edited by reaver on Wednesday, 2nd October 2013, 03:16, edited 1 time in total.
On IRC my nick is reaverb. I play online under the name reaver, though.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Monday, 10th June 2013, 07:11

Re: Implementation of a jump attack ability

reaver wrote:I looked through the code a bit and I just have to say Wow. I am shocked how much work you've put into this and how much effort it takes to add new features. The patch is enormous. Note this means we should get this approved as soon as possible- this code is going to rot quickly, as shown by qoala's need to update the patch.


Thanks for taking a look. Yeah, it turned out to be pretty pervasive; the most difficult part by far is understanding the targetting system enough to make jump targetter. The cooperation between the targetter classes in target.cc and the direction_chooser class in directn.cc is very complicated. It shouldn't be difficult for me to keep the patch up to date with trunk since I'm pretty familiar with anything that would cause a conflict at this point.

reaver wrote:I'm added a patch to the mantis issue which makes both evocation and mutation jumps cost 2 HP. I don't know if this is too much or too little, or if we should keep the MP cost for evocation. It seems like it would be much more difficult to scale the cost with what level of jumping the player has. It also might be undesirable because the player might drain themselves purposely to keep the cost low (probably wouldn't happen, but it's something to keep in mind.) Note that using a percent of HP is already implemented-so we could, for example, take 1% of HP, which I believe would be rounded up.

I tried to implement my other suggestions by myself so we could test both versions of jumping, but I got lost in the code. Care to point me toward where the code that gives JPOW to jumpers is?


That's mostly in player.cc, in the player class and in some global functions like dec_jump_power(), inc_jump_power(), calc_jump_power(), etc. It's modeled on how hp/mp work, since it regenerates over time. Specifically giving the player jump power (you.jump_power) is handled when the brand is activated in player-equip.cc or when the mutations are initialized. They call_jump_power() in skills2.cc, which is also where the calc_hp() and calc_mp() functions live.

reaver wrote:I also removed the restrictions on Jumping while Exhausted or wearing Stasis. They seem to me quite odd- Exhausted is strictly a timer for Death's Door and Berserk, while Stasis prevents translocations, not moving around quickly, as is the flavor of jumping. Personally, I think every restriction there should be removed except maybe constriction. It seems confusing to me to remember all the times you can't jump. Maybe we should rename it "charging" if that happens.


The restrictions were aimed at further reducing its translocation ability from cblink. I'm certainly open to modifying or removing them. I worried about using zerk and jumping away to escape, so I think checking exhaustion is still a good idea as long as jump be used for escape.

reaver wrote:Finally, I tried out jumping a bit and I found lining up enemies to deal max damage extremely fun- even though I was just testing how jumping worked. It makes you think like Fulminant Prism- looking at all the monster's positions like a chessboard. The only thing I found annoying is that the targeting system's decisions of what was on path is rather arbitrary. Example:

Image

Why can't I hit the second newt? Crawl takes pains to be neutral to the cardinal directions- it seems like it should here too. Maybe something about following a path you lay out? So I'd press "u" and then "k" so I go over both newts.


Glad to hear some fun was had. I worry about the repetitive aspect of setting up the jumps, but then again we have stabbing.

The reason why the second newt isn't being targeted is because of your landing site. The secondary targets are like a bolt spell; it's anything in the path from your position to the landing site according to one of crawl's rays. If you choose a landing site directly N, NE, or SE of the top newt, you'll hit the newt adjacent to you. You can hit 'c' to cycle amont the landing sites, and looking at your image, those sites are available to you since you probably have jump level 3 on the kitty.

I agree that it can be a bit arbitrary as to how the path works, and you may have to fiddle with landing sites. One suggestion made by a previous tested was to have the default landing site for jump attack choose the one attacking the most monsters, rather than the closest landing site as is done currently. Ideally you'd not have to fiddle with the landing site too obsessively or even at all for most instances.

reaver wrote:EDIT: It appears my patch isn't working. I compiled it, but I was so caught up in the fun of jumping I forgot to check if it caused hp to drop, which it doesn't. Looking closely, I think I only modified the part which displays what the cost is, since I assumed that it also changed the actual costs.


See the comments above definition of Ability_List at abl-show.cc:200 to see how to set HP cost instead of MP. That array has cost entries for all abilities, with the cost in units of 0.1% of HP.
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Monday, 10th June 2013, 12:17

Re: Implementation of a jump attack ability

gammafunk wrote:I worry about the repetitive aspect of setting up the jumps, but then again we have stabbing.

Stabbing is one keystroke. Jumping is an activable ability with double targetting. It is between 3 and 10 keystrokes or more if you're not jumping on the closest enemy. I am very worried about the repetitive aspect of setting up jumps, that's why I'm saying that it needs significant drawbacks so that you only use it in specific tactical situations. If you can use it in every fight it would be very aggravating. It's nothing like stabbing.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Monday, 10th June 2013, 16:21

Re: Implementation of a jump attack ability

galehar wrote:
gammafunk wrote:I worry about the repetitive aspect of setting up the jumps, but then again we have stabbing.

Stabbing is one keystroke. Jumping is an activable ability with double targetting. It is between 3 and 10 keystrokes or more if you're not jumping on the closest enemy. I am very worried about the repetitive aspect of setting up jumps, that's why I'm saying that it needs significant drawbacks so that you only use it in specific tactical situations. If you can use it in every fight it would be very aggravating. It's nothing like stabbing.


I agree that it's nothing like a stab against an enemy not aware of the player's location. If the enemy is aware of the player, however, you have to use a hex--often more than once--in order to get a successful stab. Then it becomes like jump in terms of number of keystrokes used in practice. Another valid comparison is to a breath attack. Nagas and Draconians often use breath at the beginning of each fight, although that usage falls off as the game progresses.

I'd be open to ideas to reduce or even eliminate the landing position selection aspect. I don't want to make it too close to Berserk in terms of it being only for limited, tactical use. Berserk sees pretty limited use in a typical game post lair/orc. Perhaps with refinement it could be used at the start or near the end of at least most fights. Adding a significant drawback like the use of STATUS_WEAK might do the trick. I think if I make it simply set WEAK or something similar after the first jump in such a way that further jumps are disabled, we'll probably just end up with a sub-par berserk.
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Monday, 10th June 2013, 19:42

Re: Implementation of a jump attack ability

gammafunk wrote:I'd be open to ideas to reduce or even eliminate the landing position selection aspect.

Well the double targetting is too much IMO. Seconday attacks too btw. Just select an enemy and it jumps next to it and attack it. It ends up with a gameplay effect a bit similar to the charging move effect I suggested a while back. I dropped the idea when I realized you could repeatedly charge a slower enemy and retreat to charge again. A bit like polearm kiting except worse.
So maybe give the exhaust status after the jump, and also some time with slow movement. You get a strong attack, but then your tactical options are restricted. Strong against a single enemy, but too bad if there are friends behind you didn't notice.
Not sure about the interaction with stabbing. It's already nice if you don't have to make the last few stealth checks, but if you get 3x damage and stabbing bonus, nothing will survive it.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...
User avatar

Dungeon Master

Posts: 762

Joined: Thursday, 25th April 2013, 02:43

Post Monday, 10th June 2013, 20:55

Re: Implementation of a jump attack ability

galehar wrote:
gammafunk wrote:I'd be open to ideas to reduce or even eliminate the landing position selection aspect.

Well the double targetting is too much IMO. Seconday attacks too btw.
In my opinion, the secondary attacks are the whole point of the proposal. Have you played the patch any? I can't speak for anybody else, but I spawned a few newts as a wiz-mode felid and had tons of fun just moving around trying to line them up and hit them.

This proposal might need a rework, but I think that preserving the multiple attacks bit is key. If we want to make the charging ability we can make a charging ability, but I think it would be fundamentally different than a jump ability.

If the interface is too annoying, we have plenty of options. We could have you "leap-frog" from enemy to enemy, using mumra's new momentum code to make sure you have to stay going in roughly the same direction. We could have you select several enemies and automatically make a path between them. We could restrict you to only going the cardinal directions (N,NE,E, etc.). Or we could just make it much rarer and much more powerful, like a high level god ability.

galehar wrote:Not sure about the interaction with stabbing. It's already nice if you don't have to make the last few stealth checks, but if you get 3x damage and stabbing bonus, nothing will survive it.
I agree this is a problem. Maybe you have to take a big stealth check at a large penalty when you use the jump?
"The orc notices you flying through the air! The orc shouts!"
On IRC my nick is reaverb. I play online under the name reaver, though.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Tuesday, 11th June 2013, 00:35

Re: Implementation of a jump attack ability

Well, after consultation with the oracles (i.e. those with commit access) on Mt. ##crawl-dev, it seems that crawl developers form a remarkably unified front. The basic consensus is along the lines of what galehar suggests.

  • Remove secondary targetting. The landing position will just be the square along the ray path that's adjacent to the target. This landing site will be visually marked for the player, like it is in the current patch.
  • Secondary attacks probably should be removed. They encourage the player to position the attack based on hitting the most monsters, which increases the tedium of using the attack, and they're perhaps too powerful.
  • Increased damage might be entirely removed, but at a mimimum it should be greatly reduced. I'm going to leave in a 20% damage increase for now; it's easy to remove later if that's the final ruling from on-high
  • Use a cool-down with exhaustion to disallow multiple jumps. There's no single consensus on a further penalty besides exhaustion. I'm included against any additional penalty, since I doubt I'd ever bother much to use jump if such a penalty existed. Especially if the increased damage is removed.


Some further details about these changes.

One basic complaint against secondary damage by the devs (including galehar) is that it just forces the player to fiddle with positioning for maximum effect. I floated the idea of turning the secondary attack from 'enemies along the ray path' to 'splash damage' centered on target to reduce some of this decision-making. However the devs don't really want the jump ability to have too much in terms of attack effect because of the significant positional advantage it already gives the player. I find a jump attack ability without secondary attacks to be less interesting, but life is about compromise.

For interaction with stabbing, greatly reducing the damage increase solves much of the problem. Currently I nerf the stabbing bonus by two points for a jump attack. I'll leave that nerf in for now since it's simple.

I'm going to go ahead and remove 'hats of jumping'; species that can't wear boots will just have to find an artefact with the '+Jump' attribute.

Halls Hopper

Posts: 89

Joined: Thursday, 30th May 2013, 18:35

Post Tuesday, 11th June 2013, 02:54

Re: Implementation of a jump attack ability

gammafunk wrote:Well, after consultation with the oracles (i.e. those with commit access) on Mt. ##crawl-dev, it seems that crawl developers form a remarkably unified front. The basic consensus is along the lines of what galehar suggests.

  • Remove secondary targetting. The landing position will just be the square along the ray path that's adjacent to the target. This landing site will be visually marked for the player, like it is in the current patch.
  • Secondary attacks probably should be removed. They encourage the player to position the attack based on hitting the most monsters, which increases the tedium of using the attack, and they're perhaps too powerful.
  • Increased damage might be entirely removed, but at a mimimum it should be greatly reduced. I'm going to leave in a 20% damage increase for now; it's easy to remove later if that's the final ruling from on-high
  • Use a cool-down with exhaustion to disallow multiple jumps. There's no single consensus on a further penalty besides exhaustion. I'm included against any additional penalty, since I doubt I'd ever bother much to use jump if such a penalty existed. Especially if the increased damage is removed.


Some further details about these changes.

One basic complaint against secondary damage by the devs (including galehar) is that it just forces the player to fiddle with positioning for maximum effect. I floated the idea of turning the secondary attack from 'enemies along the ray path' to 'splash damage' centered on target to reduce some of this decision-making. However the devs don't really want the jump ability to have too much in terms of attack effect because of the significant positional advantage it already gives the player. I find a jump attack ability without secondary attacks to be less interesting, but life is about compromise.

For interaction with stabbing, greatly reducing the damage increase solves much of the problem. Currently I nerf the stabbing bonus by two points for a jump attack. I'll leave that nerf in for now since it's simple.

I'm going to go ahead and remove 'hats of jumping'; species that can't wear boots will just have to find an artefact with the '+Jump' attribute.


An unrandard "hat of the dragoon" that gives the previously considered ridiculous bonus damage for jumping could be a good way to get some of the rejected ideas for jumping into the game in some small way.

Spider Stomper

Posts: 233

Joined: Saturday, 18th February 2012, 04:40

Post Tuesday, 11th June 2013, 03:35

Re: Implementation of a jump attack ability

I´m keen to try this out but where do i put the patch once downloaded?
(I play trunk tile dev builds)

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Tuesday, 11th June 2013, 04:10

Re: Implementation of a jump attack ability

graffen69 wrote:I´m keen to try this out but where do i put the patch once downloaded?
(I play trunk tile dev builds)


You have to apply the patch with git (the git am command) based on the revision of crawl on which I based the patch (edae9ec), and then compile crawl. It sounds like you're downloading nightly builds of trunk from crawl.develz.org, which won't work. There are instructions on CDO for getting the source through git and compiling on Windows/Unix/Mac, but this is a bit of work just to try out a patch. If you want to give it a quick spin, you can try my webtiles server:

http://gammafunk.no-ip.org:8080/#lobby

Register an account and start as some kind of dragoon. No wizmode, of course.

KennySheep wrote:
An unrandard "hat of the dragoon" that gives the previously considered ridiculous bonus damage for jumping could be a good way to get some of the rejected ideas for jumping into the game in some small way.


Interesting idea. I doubt using an unrandarte to bypass the development process will work too splendidly, but perhaps at least the splash damage idea could make it into a DAZZLING pair of boots.

For this message the author gammafunk has received thanks:
graffen69
User avatar

Dungeon Master

Posts: 762

Joined: Thursday, 25th April 2013, 02:43

Post Tuesday, 11th June 2013, 04:41

Re: Implementation of a jump attack ability

gammafunk wrote:Well, after consultation with the oracles (i.e. those with commit access) on Mt. ##crawl-dev, it seems that crawl developers form a remarkably unified front. The basic consensus is along the lines of what galehar suggests.
Fair enough. I guess if I want something like the original in the game, I'd have to program it myself. ;) Still, I'm going to enjoy this addition to the game.
On IRC my nick is reaverb. I play online under the name reaver, though.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Tuesday, 11th June 2013, 19:19

Re: Implementation of a jump attack ability

After a further discussion to clarify some details, I'm going to make the jump ability do the following

  • Remove the standalone 'cblink' aspect of jump; You have to target an in-range monster and perform an attack.
  • In the next patch, you'll choose the monster target, but the landing site will be randomly chosen from amongst the valid landing sites adjacent to the target.

The stand-alone cblink ability is too powerful, even with the jump restrictions. So jump attack will be similar to how haunt won't work without a target.

For the landing site issue, simply using the ray path to determine the landing site created a drawback where you couldn't jump over your target, even if you were adjacent. There were two suggestions by mumra that seemed liked interesting solutions.

  1. Let the player select a landing position instead of a monster target, and have the jump select a random monster to attack in the valid squares adjacent to the landing site.
  2. Let the player select a monster to target as before, but select a random site from the list of valid landing sites. (This is what I'm going with)

I think both make jump more interesting than than simply using the ray path, but I like No. 2 from a UI/coding perspective. If you select a landing position (No. 1), for any monster you'd want to target there are multiple landing site choices. The player will have to fidget with the targeter to choose amongst these. In this scenario, it's still possible to cycle amongst monsters (just cycle to the closest landing site for each monster), and it's even possible to keep the 'c' key I use in the current patch to cycle amongst valid sites near the closest monster for convenience. However it's just going to require more keystrokes in practice. One upside is that the player gets better control of where they land. Conversely if multiple monsters are near their chosen landing site, they don't know what they'll be attacking for sure.

For No 2. (player selects monster to target), no fiddling with landing sites is possible, no need for 'c' to cycle landing sites is ever needed. Against a single target, the random landing site won't matter as much. If the player is adjacent to the target, there will be up to three sites available on the other 'side' of the monster for the random choice. If multiple monsters are involved, the player will have to think more carefully about whether to target a specific monster, given the worst landing site they might get. The set of valid landing sites will be shown to the player (using a green ray, like in the current patch), so it's easy to see where the player might end up.

Overal this version of jump will be interesting to me as a player and will be far less overpowered than the initial version. I'm going to work on getting out version two of this patch, but feel free to drop in with further opinions, and thanks for all the feedback.
User avatar

Lair Larrikin

Posts: 22

Joined: Wednesday, 19th October 2011, 04:30

Post Tuesday, 11th June 2013, 20:37

Re: Implementation of a jump attack ability

I can't get past the loading screen when I try to use your webtiles setup (it just sits at the loading screen forever), though I guess you haven't finished the next version of the patch, and I generally build console from source anyways.

Will you be able to target non-hostile monsters (generally turning them hostile, of course)? Note that battlesphere (and newskald spectral weapon) do NOT become hostile if attacked, but it might not be too problematic that one can jump to them without consequence, particularly with the distance restriction.

[Offtopic] It makes perfect sense that one can only jump onto a target. :D

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Tuesday, 11th June 2013, 22:36

Re: Implementation of a jump attack ability

qoala wrote:I can't get past the loading screen when I try to use your webtiles setup (it just sits at the loading screen forever), though I guess you haven't finished the next version of the patch, and I generally build console from source anyways.


Yeah, I think my webhost does something to prevent processes from running indefinitely. I've restarted the server, and I can get to my game now, so feel free to give it a shot. It's a <$10/mo hosting account, so I guess I can't expect too much

qoala wrote:Will you be able to target non-hostile monsters (generally turning them hostile, of course)? Note that battlesphere (and newskald spectral weapon) do NOT become hostile if attacked, but it might not be too problematic that one can jump to them without consequence, particularly with the distance restriction.

[Offtopic] It makes perfect sense that one can only jump onto a target. :D


I hadn't considered jump attacking friendlies. I guess if we're inventing a world were your jump 'magic' only works against a target, either a hostile or friendly target will do. On the other hand, haunt won't let you target friendly monsters. Perhaps I'll let you jump against friendlies for now and see if anyone complains.

Also, it's funny that the comic above is related to both jumping without a target and to jump attacking friendly targets.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Thursday, 13th June 2013, 02:44

Re: Implementation of a jump attack ability

I've uploaded version 2 of the patch to mantis. This is based on feedback from the dev team on how to turn this into an easy-to-use, balanced mechanic.

https://crawl.develz.org/mantis/view.php?id=0007188

Use the '-correct' version of the patch if you want to try it out. I've also updated my lowly test server if you want to try it in webtiles

http://gammafunk.no-ip.org:8080/

Here's the summary of changes (copied from the mantis note)

  1. You can only use the ability to jump attack an enemy or invisible monster
    marker; no more standalone 'cblink' jump.
  2. The landing site is randomly chosen from the valid sites near the monster
    rather than being chosen by the player; no more double-targetting. If
    something invisible turns out to be blocking the randomly chosen landing
    site chosen, the jump fails with an appropriate message and the turn is
    wasted. If the player jump-attacks an invisible monster marker and no
    monster turns out to be at the chosen landing site, the attack won't happen,
    but the player is still moved.
  3. Jump attack sets exhaustion after on jump, so no more double-jumping. The
    timeout used is the same as the breath timeout for breath attack, which is
    reduced by either evocations or XL, depending on whether the jump is from
    the ego or the mutation.
  4. The damage increase is greatly reduced, from 200% to 20%. I kept in a
    damage increase despite some resistance to this in discussion. Since we set
    exhaustion and because the damage increase is so minor, any player who took
    the turns to 'kite' a slower enemy by jump attacking, running away to wait
    out exhaustion, and then jump attacking again would get far better use out
    of those turns by simply doing ordinary melee after the first jump. I think
    the damage increase is a nice incentive to use the ability at the beginning
    of a significant fight, but of course I'm open to tweaking or removing this.
  5. Starting attack range increased from 2 to 3, up to a max of 5 instead of 4.
    The movement range is still one less than the attack range, so the player
    can move nore more than 4 spaces away at the highest jump ability level
    (which is 3). Jump attack at range 2 was pretty bad at start since it gave
    very little in the way of any positional advantage. The max movement of 4
    may be two high; we could remove the third jump level or tweak it in other ways.
  6. I've removed the MP cose for the player mutation and kept the 2mp cost for
    the evocation ability. An HP cost has been suggested, but even a 2HP cost
    is almost 30% of a felid's starting HP.
  7. Species that can't wear boots are restricted from Dragoon, get an
    unbranded helmet/cap if they still choose the class.
  8. No more landing cursor or alternate landing site tiles, since we don't need them.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Friday, 14th June 2013, 03:58

Re: Implementation of a jump attack ability

Version 3 of the patch is up on mantis and on my test server. These changes are mostly bugfixes. At this point jump attack should be feature-complete (based on discussion with the dev. team) and have no significant bugs (HAHA!).

I think now it'll have to wait for some of the dev. team to take a closer look at the code and give feedback on some of the finer details about how to balance it. In the meantime I'd appreciate feedback from anyone who's tried it, particularly if you've tested the latest version and have found a bug! Other feedback regarding fun and balance also welcome, but please keep in mind that if the dev. team isn't happy with it, it'll never go in :). Some issues brought up in the last ##crawl-dev discussion are also described below if people feel like weighing in.

Changes:

  1. Removed jump restrictions for player flight and stasis. The idea was that having to have an exception where something doesn't work with flight is annoying, and it's not like flying players couldn't couldn't 'swoop-jump,' or something. Removed stasis limitations because remembering what stasis blocks is hard enough already. You still can't jump if standing in liquid (any water, lava, liquified ground), but you can jump into any liquid that wouldn't kill you. Lava orcs can jump attack and land in lava, for instance.
  2. There were bugs in the player warning for electrocution, attacking friendlies, in a sanctuary. Now you should get appropriate warning if attacking from any possible landing site would be dangerous or break a conduct, etc. The chosen landing site isn't revealed to the player, so these warnings occur if *any* landing site could cause a problem.

Issues
  • Damage bonus. A couple devs. have said there should be no damage bonus, since that encourages kiting behavior for faster players. My argument against this is that with the exhaustion mechanic, a fast player would do a jump attack, spend 12+ turns running around to wait off exhaustion, and then do a jump attack again for a 20% damage increase. Those turnsclearly would have been better spent simply attacking the monster, for instance using ordinary melee. On the other hand, a damage bonus will mean that for any significant fight you'll want to jump attack at some point. There's the hunger cost, but that's generally not a major concern f especially now with no nausea. Using an ability most significant fights is not really a problem in that's how breath attacks also work, but some would like this ability purely for its positional advantage.
  • Accuracy bonus. One suggestion was that there should be an accuracy bonus so the jump attack misses less than normal melee. This is an issue at start when melee attacks tend to miss more. The jump attack currently has the same accuracy/speed as your melee, but if you miss the jump attack you've incurred a larger hunger cost. I'm not sure giving an accuracy bonus is a good idea.
  • Cheibriodos. There was no consensus on whether chei should disallow jump. You could make arguments on both sides based on physics, MAGIC!, or what have you. I think of jump as a magical movement attack, but not one where you're translocating between locations. Probably what matters most is gameplay: if chei worshipers can jump, those characters will find the boots very powerful. This may not be a bad thing, since chei worshipers can't get use of boots of running.
  • Stabbing bonus. I've nerfed the stabbing bonus by two points (see bot stabbing bonus calculations) during jump attack. Not sure if this is enough.

Blades Runner

Posts: 578

Joined: Thursday, 12th January 2012, 21:03

Post Friday, 14th June 2013, 22:32

Re: Implementation of a jump attack ability

An HP cost would make a lot more sense than MP cost -- aside from differentiating this from Translocations spells, losing a little health as you slam into the ground several tiles away makes perfect sense. Felids with 7 hp could just not use the effect before leveling up once or twice. They won't need the ability on D:1.

As for the bonus damage, what if we gave a large boost to damage but also added a long action delay after the jump? Something like 2.5x damage and 2.0 + weapon delay turns might work. This makes the effect worse at copying cBlink, and not worth kiting with as compared to straight melee. On the other hand, it gets better at quickly taking down single ranged threats very quickly, while maintaining enough risk to make it tactically interesting. Positioning would be important (not letting the orc band pound on you for three turns after you jump the priest) without becoming annoying (trying to line up the entire band of orcs to hit them all at once).

In comparison, a one-turn jump with no damage bonus is a simple distance closer that players will almost always want to use when engaging a ranged enemy. It'd be a powerful ability for melee characters, but wouldn't force as many interesting decisions as it could.
Wins: DsWz(6), DDNe(4), HuIE(5), HuFE(4), MiBe(3)

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Saturday, 15th June 2013, 03:35

Re: Implementation of a jump attack ability

Igxfl wrote:An HP cost would make a lot more sense than MP cost -- aside from differentiating this from Translocations spells, losing a little health as you slam into the ground several tiles away makes perfect sense. Felids with 7 hp could just not use the effect before leveling up once or twice. They won't need the ability on D:1.


An HP cost is good thematically, and I'm open to the idea, but an MP cost is also perfectly fine. I'm open to just removing any HP/MP cost; those costs are negligible in a huge majority of situations, and whereas hunger matters more if jump is used frequently. The 2HP cost works well for evoke blink because you'd want to use it when your health is low, and it differentiates the ability from a spell that's otherwise exactly the same. For jump attack, the ability is already well-differentiated from translocation due to the path restrictions, semi-random landing site, and the requirement of a target. You'd might use jump to escape in a low-hp situation, which makes an HP cost relevant. But if there's an MP cost, then MP draining enemies become a factor for melee characters, so you can argue both ways. As far as MP 'making sense,' we have evoke flight and invisibility that both use MP. Jump is 'magical' in the same sense that flight is magical in crawl. The HP/MP cost isn't a major issue to me, so if a member of the dev. team tells me one way or the other at some point, I'll just do that :)

Igxfl wrote:As for the bonus damage, what if we gave a large boost to damage but also added a long action delay after the jump? Something like 2.5x damage and 2.0 + weapon delay turns might work.


This is more similar to the damage of the original patch (3x) and would put jump attack more on par with Berserk in terms of relying on it for an offensive output. This might make the Dragoon class more viable, but the Dragoon class probably will get axed. A class dedicated to a single ability isn't the best idea (melee/ranged not counting as abilities). Berserkers get the full set of Trog's abilities as they progress, for instance.

One idea discussed is to simply give Artificers boots of jumping. Then Ar can have a few different types of evocations to make its toolkit varied. In any case, jump attack will be reasonably common as a randarte property on any kind of artefact and at the same frequency you see +Fly/+Blink now; getting hold of it won't be as hard as finding boots of running.

Dungeon Master

Posts: 1531

Joined: Saturday, 5th March 2011, 06:29

Post Saturday, 15th June 2013, 10:08

Re: Implementation of a jump attack ability

Crazy idea: give the boots an XP recharge like the new elemental evokables. Then the effect could be much stronger, you could even give it splash damage, since you have to be much more picky about when to use it. It would also differentiate the mutation from the item (assuming we actually want the mutation).

A query: does the mutation also increase in range with Evo? If so I'd instead suggest the mutation having a fixed range (increasing with mutation tiers), so the boots scaling with Evo is also distinct and means the item can still be useful even with the mutation. I know I could look this up but the patch is pretty huge and it's a big thread too :P

Regarding the patch: it would be easier if it was split into some parts, e.g.; "Add jump ability", "Add jumping boots", "Add jumping mutation", "Add Dragoon class". It's a bit easier to follow all the changes that have made made, as well as of course selectively applying some bits but not others. Like I'd quite like to test the boots on my Artificer branch but I don't want to pull the new class in there.

Crypt Cleanser

Posts: 747

Joined: Friday, 6th January 2012, 12:30

Post Saturday, 15th June 2013, 11:04

Re: Implementation of a jump attack ability

If the boots recharged with XP, then would you have to keep them on to recharge them? If no, then you swap them out and use other boots, which is bad. If yes, you put them on before killing some monsters and then take them off. Both cases are bad. I think they're more interesting with a simple jump + normal hit that can be used often, with a simple exhaustion timer, rather than a powerful aoe triple damage jump that can only be used rarely.

Dungeon Master

Posts: 1531

Joined: Saturday, 5th March 2011, 06:29

Post Saturday, 15th June 2013, 11:18

Re: Implementation of a jump attack ability

Yeah, those are both problems. I did briefly consider a non-boots misc evokable item but I feel it'd be nothing like as interesting as other misc items (though still a good Artificer starting item, the problem I'm having right now is that most evokables are way too good to be starting items).
User avatar

Barkeep

Posts: 4435

Joined: Tuesday, 11th January 2011, 12:28

Post Saturday, 15th June 2013, 12:38

Re: Implementation of a jump attack ability

Wahaha wrote:If the boots recharged with XP, then would you have to keep them on to recharge them? If no, then you swap them out and use other boots, which is bad. If yes, you put them on before killing some monsters and then take them off. Both cases are bad. I think they're more interesting with a simple jump + normal hit that can be used often, with a simple exhaustion timer, rather than a powerful aoe triple damage jump that can only be used rarely.

Having Boots of Running (or otherwise interesting boots) is vanishingly rare. I really doubt people would be swapping them any more than other armour. There's no problem with rods recharging while not wielded.
I am not a very good player. My mouth is a foul pit of LIES. KNOW THIS.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Saturday, 15th June 2013, 21:54

Re: Implementation of a jump attack ability

mumra wrote:Crazy idea: give the boots an XP recharge like the new elemental evokables. Then the effect could be much stronger, you could even give it splash damage, since you have to be much more picky about when to use it. It would also differentiate the mutation from the item (assuming we actually want the mutation).


This is an interesting idea. It would add the fancier attack back to jump, bringing it closer to something more dramatic that I had envisioned at first: a powerful attack type that would be more worthy of a new background. But I think that a background based on this one ability, even if that ability is as powerful as berserk well-differentiate from it, wouldn't work due to the class relying on just one additional gimmick to differentiate itself from gladiator/fighter. Do you think upgrading the jump attack effect and giving it to Artificer might be better than giving it one of the new evocations items, or would an upgraded jump also be too strong for Ar at start?

The other thing about the current jump ability is that it's reasonably similar in scope to the ones that currently can get added as armour or arte properties. These are Blink, Fly, Fog, and Invis. I think the current jump is somewhere in power close to invis, yet is certainly is differentiated from that ability. The current jump attack is perhaps less exciting to those who like AOE or high-damage attacks, and I like those things as well, but currently jump is still tactically interesting and useful throughout the game.

mumra wrote:A query: does the mutation also increase in range with Evo? If so I'd instead suggest the mutation having a fixed range (increasing with mutation tiers), so the boots scaling with Evo is also distinct and means the item can still be useful even with the mutation. I know I could look this up but the patch is pretty huge and it's a big thread too :P


For simplicity, currently you can only use source of the ability, and both have the same range increase progression; if the mutation and the evocation are both available, the mutation ability is used unless the evocations ability has a higher range. The attack range starts at 3 (movement range 2), and increases by one (along with movement range) at evoke 5 (or mutation level 2) and evoke 10 (or mutation level 3). So currently there's no benefit of evocations > 10 for jump attack. Fail rate is based on evocations/XL, but that drops to 0% pretty quickly (works the same as breath fail rate). It'd be possible to modulate range, damage, or accuracy based on XL/evocations so that higher values of those are relevant.

Differentiating the evocation and the mutation is certainly possible, but the range is an issue that I'm not sure about. I think attack range 3 is the minimum range for the ability to be useful/fun, but allowing attack range go up to 8 would make it pretty strong. If this range increase happened only through stacking the evocations ability with the mutations, it would more or less be a Felid-only upgrade obtainable from an arte ring or amulet. There's also not precedent for an evocable ability stacking with a player mutation.

mumra wrote:Regarding the patch: it would be easier if it was split into some parts, e.g.; "Add jump ability", "Add jumping boots", "Add jumping mutation", "Add Dragoon class". It's a bit easier to follow all the changes that have made made, as well as of course selectively applying some bits but not others. Like I'd quite like to test the boots on my Artificer branch but I don't want to pull the new class in there.


Ok, I think what I'll do is make a repo on gitorious that's a clone of trunk and that has a branch for jump_attack with a commit for each of the four aforementioned parts. Then I can work off of this repo in the future and push to gitorious. Basing things off of my current local repo is probably less helpful because of the drastic rework from the first version of jump to the second.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Saturday, 15th June 2013, 22:17

Re: Implementation of a jump attack ability

njvack wrote:Having Boots of Running (or otherwise interesting boots) is vanishingly rare. I really doubt people would be swapping them any more than other armour. There's no problem with rods recharging while not wielded.


Yes, I think if we did XP-recharge, then any +Jump item would charge as long as it's in inventory. The swapping problem is not quite that trivial since we might want to continue to allow the possibility of getting +Jump on an artefact that's not a ranged weapon; in the current version you can get it on any such artefact with the same frequency as +Fly/+Blink/+Inv/+Rage. In the current patch, swapping armor isn't very exploitable in practice (or at least not more so compared to other evocable ability properties), but I suppose it could be a problem if the ability were upgraded attack-wise.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 16th June 2013, 16:41

Re: Implementation of a jump attack ability

I've made a gitorious repository with a jump_attack branch containing the patch:

git://gitorious.org/~gammafunk/crawl/cr ... mafunk.git

It has various parts broken down by commit, including an important bug fix wrt. the movement range.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Sunday, 25th August 2013, 05:41

Re: Implementation of a jump attack ability

Well, good news for people who want to try the jump attack online. The great neil has created two new experimental branches on CSZO for play testing: jump attack and formicids! Currently you can play them in CSZO console by logging in, going to trunk, and choosing X for experimental branch. See pubby's post about dwants for details on that branch; sim has one to lair I write this. My branch is jump attack, and webtiles will reflect both of these when CSZO webtiles gets a restart; until then you have to try in console.

To try out jump, the easiest way is to play a felid, since they get innate jump that increases at XL 6 and 12 . For other species, you can also use evocable jump if you can find boots of jumping (as rare as boots of running, which I should change) or any arte that has a +Jump property (as common as +Fly/+Blink, so much more likely). Train evocations to get access to higher jump levels (upgrades at evoc 5 and 10). Finally you can get the player mutation, but that doesn't level up unless you get the progressive mutation levels somehow.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Tuesday, 27th August 2013, 03:14

Re: Implementation of a jump attack ability

The jump experimental branch on CSZO has been patched so that, for testing purposes, any species that can wear boots will now start with boots of jumping. This means you don't have to play Fe to test jump attack at the beginning of the game. For classes that start with no spellcasting, evoc, or invoc (e.g. Fi), you will need to train evoc a bit an gain some MP before you can use the ability. The evoc ability increases in range at evoc 5 and 10, so you want to train evoc anyways. You can also find artefacts that have +Jump with the same frequency as +Fly and +Blink.

CSZO webtiles still hasn't been restarted, and likely won't until there's some pressing need like an outage or upgrade. So as before, you can only try this through console at the moment.
User avatar

Abyss Ambulator

Posts: 1111

Joined: Monday, 18th March 2013, 23:23

Post Wednesday, 28th August 2013, 07:16

Re: Implementation of a jump attack ability

gammafunk wrote:CSZO webtiles still hasn't been restarted, and likely won't until there's some pressing need like an outage or upgrade. So as before, you can only try this through console at the moment.



By which he means: there will be an outage any second, and an update.

Lair Larrikin

Posts: 27

Joined: Friday, 9th September 2011, 17:43

Post Friday, 30th August 2013, 01:52

Re: Implementation of a jump attack ability

So I'm testing out the jump ability with a KoAr. It looks like stab jumping works on sleeping monsters. Does it work on wandering monsters?

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Friday, 30th August 2013, 02:09

Re: Implementation of a jump attack ability

flun wrote:So I'm testing out the jump ability with a KoAr. It looks like stab jumping works on sleeping monsters. Does it work on wandering monsters?


Yes, you get a stab whenever you normally would, but the stab bonus is nerfed by two points. The stab bonus is min(6, stab_bonus + 2), and in the stabbing formula it acts as a divisor, so lower is better. The best stab categories are sleep/para for stab_bonus = 1, then net/petrify at 2, being invis and monster is confused/fleeing/ally at 4, followed by distracted/wandering at 6. So the worst stab bonus you'll get is as if the monster is wandering. This is probably not the best formula, since the last two levels are the same under jump.

Lair Larrikin

Posts: 27

Joined: Friday, 9th September 2011, 17:43

Post Friday, 30th August 2013, 03:12

Re: Implementation of a jump attack ability

Here is my morgue of the KoAr that I played: http://dobrazupa.org/morgue/Flun/morgue ... 025137.txt

Some comments:

[*] Kobolds may be a decent race for a jump stabber since they have good evoc and short blades aptitudes, as well as sappovore to counteract the hunger of the jump ability.
[*] Jump gave me the ability to close in for stabs faster, but the nerf to stabbing on the jump attack meant that I often did not one hit kill wandering monsters. Exhaustion also prevented me from repeatedly using the ability.
[*] I like how the jump distance increases with increased Evoc skill. This meant that I had to invest experience in order to make the most out of the ability.
[*] One fun moment involved jump stabbing into a group of sleeping monsters and the dispatching the others at close range.
[*] Another fun moment was when I enslaved one monster to fight another, and then jump stabbed the winning monster while he was distracted.

Spider Stomper

Posts: 221

Joined: Thursday, 29th August 2013, 09:40

Post Friday, 30th August 2013, 03:50

Re: Implementation of a jump attack ability

Giving an innate jump attack to felids is pretty cool, since their options are normally very limited. I tried a couple of FeTms, and it was neat to have a demi-ranged attack for closing in on stuff like orc priests or sling-wielding goblins. I didn't make it far, but then, I almost never do with a Felid anyways. I'm glad the mutation still works when you're transformed.

It's also fun to be able to jump over an enemy; I never ran into a situation where that was necessary, but that would come in handy if you were fighting a bunch of orcs that had managed to surround you.

It does kinda suck when you just blow your jump by missing your attack, though I guess that's part of the risk.
You hear the distant roaring of an enraged eggplant.

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Friday, 30th August 2013, 08:02

Re: Implementation of a jump attack ability

flun wrote:Here is my morgue of the KoAr that I played: http://dobrazupa.org/morgue/Flun/morgue ... 025137.txt

Some comments:

[*] Kobolds may be a decent race for a jump stabber since they have good evoc and short blades aptitudes, as well as sappovore to counteract the hunger of the jump ability.


Thanks, I got to watch much of that game, and it was nice seeing someone more experienced with stabbing try it out. The hunger cost and exhaustion durations values were taken from draconian breath. I was going for something that you'd at least have the option for using in most fights.

flun wrote:[*] Jump gave me the ability to close in for stabs faster, but the nerf to stabbing on the jump attack meant that I often did not one hit kill wandering monsters. Exhaustion also prevented me from repeatedly using the ability.
[*] I like how the jump distance increases with increased Evoc skill. This meant that I had to invest experience in order to make the most out of the ability.
...


Yes, this ability (in its current form) is meant to be a mix between positioning and attack, and not something that you'd completely build your character around. So it only hits for 120% damage, doesn't give you full stabbing damage, and you can only use it multiple times in a fight if the fight goes on for a while.

You asked in chat if training evocations increases anything besides the jump distance, and I told you no, but that's a good point to consider. Increasing the accuracy with evocations (currently it's solely based on melee accuracy) is one possibility. Also possible is affecting some aspect of the jump attack based on distance covered (e.g. less accurate at higher distances). Noise is another issue, since currently there's only the noise from the attack.

spudwalt wrote:Giving an innate jump attack to felids is pretty cool, since their options are normally very limited. I tried a couple of FeTms, and it was neat to have a demi-ranged attack for closing in on stuff like orc priests or sling-wielding goblins. I didn't make it far, but then, I almost never do with a Felid anyways. I'm glad the mutation still works when you're transformed.

It's also fun to be able to jump over an enemy; I never ran into a situation where that was necessary, but that would come in handy if you were fighting a bunch of orcs that had managed to surround you.

It does kinda suck when you just blow your jump by missing your attack, though I guess that's part of the risk.


Thanks for trying it out. I also ran an FeTm, and got one to vaults (after 3 or 4 splats). I didn't get to try spider form or ice form, but jumping with beastly append., blade hands, and dragon form were all fun and useful, so agree regarding jump working in forms. Missing a jump attack does suck, and I have been thinking about an accuracy boost, but then again it does have positioning benefits as well, and the position change always succeeds.

Currently you can 'abuse' jump for position by summoning friendly enemies (e.g. sputterflies) and jump attacking them to escape. In lair I had a volcano entrance that would normally require digging of flight, and I had neither. So I used sticks to snakes on some arrows, which made an adder on the other side of the lava. At first I couldn't find a safe landing site on the other side, but then I told my snake to retreat in a certain direction, and one opened up. Some would look on degenerate tactics like these pretty unfavorably. They do have penance costs if you worship a good god or Oka, but using them feels more like nethack and less like crawl.

One other important issue I should mention. Currently you can't force a jump attack on an empty square if you want to attack an invisible enemy. Allowing a jump attack on an empty square with *no* restriction/penalty would give the player a way to get controlled-blink like behavior. The landing site would be randomized over potentially 8 squares, so it would end up being somewhat similar to a semi-controlled blink. I don't like allowing jump attack with no enemy because 1) the idea is translocation + attack and 2) we already have semi-controlled blink, which is a good mechanic. Furthermore for jumps near the end of the jump attack range or just at certain positions, there'd be far fewer than 8 potential landing sites (possibly 1), making it pretty much a short-range controlled blink. Yet not allowing the player to jump attack an empty square is also undesirable. I think haunt is the only targeted thing out of all targeted spells/abilities that has a similar restriction

A solution to this would to make jump attack let you target an empty square, but then 'rebound' in failure if the square turned out to be empty. Jump does this kind of behavior currently if you try to jump, but some flying/giant creature that you can't see blocks the path of the jump. When that happens, you rebound back to your original position, wasting a normal turn (10 aut if you're not hasted/slowed) and still taking any MP/hunger cost. So in the new behavior I'm proposing, if you jump attack an empty square and a monster was there, the attack is fine (even if you miss). But if there wasn't a monster there, you'd waste your turn as if the jump was blocked, rebounding to your starting position. Keeping the status-quo is not the worst solution, but this is at least a viable alternative. Feedback on this issue is welcome, as always.
User avatar

Dungeon Master

Posts: 502

Joined: Wednesday, 7th March 2012, 13:25

Location: Lexington, KY, US

Post Friday, 30th August 2013, 14:11

Re: Implementation of a jump attack ability

gammafunk wrote:I also ran an FeTm, and got one to vaults (after 3 or 4 splats). I didn't get to try spider form or ice form, but jumping with beastly append., blade hands, and dragon form were all fun and useful, so agree regarding jump working in forms. Missing a jump attack does suck, and I have been thinking about an accuracy boost, but then again it does have positioning benefits as well, and the position change always succeeds.


I haven't have a chance to test this yet: can you still jump in tree form? Because that should be disallowed. Wisp form, with its semi-confusion, might be questionable too.

Ziggurat Zagger

Posts: 6454

Joined: Tuesday, 30th October 2012, 19:06

Post Friday, 30th August 2013, 15:56

Re: Implementation of a jump attack ability

gammafunk wrote:You asked in chat if training evocations increases anything besides the jump distance, and I told you no, but that's a good point to consider. Increasing the accuracy with evocations (currently it's solely based on melee accuracy) is one possibility. Also possible is affecting some aspect of the jump attack based on distance covered (e.g. less accurate at higher distances). Noise is another issue, since currently there's only the noise from the attack.


It seems to me that evocations should increase the power in addition to the range of the jump attack, maybe the attack should do 100%+1%/evocation (so max of 127% with 27 evocation) damage?
Spoiler: show
This high quality signature has been hidden for your protection. To unlock it's secret, send 3 easy payments of $9.99 to me, by way of your nearest theta band or ley line. Complete your transmission by midnight tonight for a special free gift!

Dungeon Master

Posts: 585

Joined: Sunday, 9th June 2013, 17:13

Post Friday, 30th August 2013, 17:33

Re: Implementation of a jump attack ability

neil wrote:I haven't have a chance to test this yet: can you still jump in tree form? Because that should be disallowed. Wisp form, with its semi-confusion, might be questionable too.


Yeah, good point. I've disabled jump for both tree and wisp forms, (but not any of the other bad forms). That and another merge with master have been pushed to the jump_attack branch on my repo.

Siegurt wrote:It seems to me that evocations should increase the power in addition to the range of the jump attack, maybe the attack should do 100%+1%/evocation (so max of 127% with 27 evocation) damage?


Yes, scaling attack power by evocations is a good thing to consider. One problem is that we don't want it to add too much additional damage, but giving 1% more per level of evocations for a single attack is perhaps too little. Either way, evocations skill will likely end up affecting the attack in some way beyond range.

Spider Stomper

Posts: 221

Joined: Thursday, 29th August 2013, 09:40

Post Friday, 30th August 2013, 17:44

Re: Implementation of a jump attack ability

gammafunk wrote:Increasing the accuracy with evocations (currently it's solely based on melee accuracy) is one possibility. Also possible is affecting some aspect of the jump attack based on distance covered (e.g. less accurate at higher distances). Noise is another issue, since currently there's only the noise from the attack.


Okay, I can see increasing accuracy with evocations, but what about things that jump using the mutation (i.e. felids)? Maybe increasing levels of the mutation could boost accuracy as well as range?

As far as noise goes, I imagine it'd be pretty quiet, though there are probably factors that would affect that. Maybe it could make more noise based on your character's size, Stealth skill, armor penalty, etc. Maybe have the attack at the end of the jump make more noise than usual, like a weapon of flaming? Obviously stabbers would best be able to use jump attacks as a kind of ranged stab, but a melee brute could still make use of the increased damage and positioning benefit -- they just wouldn't do it quietly.

neil wrote:I haven't have a chance to test this yet: can you still jump in tree form? Because that should be disallowed. Wisp form, with its semi-confusion, might be questionable too.


Also constriction. Maybe count a jump attack as an escape attempt?

Can you jump while confused? I can definitely see a confused jumper accidentally overshooting and bashing into a wall or landing in deep water or something.
You hear the distant roaring of an enraged eggplant.
Next

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 87 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.