Non-blocking attacks

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Non-blocking attacks

Post by Bob the Hamster »

I just implemented (and forced an early <a href="http://hamsterrepublic.com/ohrrpgce/nightly/">nightly build</a> including) non-blocking attacks.

There is a new attack bitset "Delay doesn't block further actions"

So if you give an attack a delay of 10 seconds, the attacker's ready-meter will start re-filling immediately, and they may be able to use another attack before the delayed non-blocking attack happens.

Great for use with chains. For example, you could make a normal attack that boosts an ally's attack power by +50, and have it chain to a nonblocking delayed attack that returns the attack power back to normal.

I am eager to get other people testing this.

Also note that if you press F11 twice in battle you can see the current attack queue. Regular attacks are marked with "B" and nonblocking attacks are marked with "Q"
Last edited by Bob the Hamster on Thu Sep 30, 2010 10:36 pm, edited 1 time in total.
User avatar
Mogri
Super Slime
Posts: 4668
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Re: Non-blocking attacks

Post by Mogri »

James Paige wrote:Great for use with chains. For example, you could make a normal attack that boosts an ally's attack power by +50, and have it chain to a nonblocking delayed attack that returns the attack power back to normal.
Oh wow. That's fantastic.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

<s>One problem that nonblocking attacks have right now:</s> (fixed)

* Pause on battle menus is OFF
* Hero does attack Foo with a 5 second delay, nonblocking
* Hero gets another turn before Foo activates.
* Hero starts targetting attack Bar
* Delay runs out on attack Foo while hero is still targetting Bar
[Everything is okay up to this point]
* Foo chains to Foo2 which has a delay but is a regular blocking attack
* Now the hero is blocked from getting their turn, but they are currently taking their turn. What should happen?

<s>I am thinking that the hero should continue to be allowed to finish targetting their attack, but I am not certain.</s> Should all attacks chained form a nonblocking attack be forced to be noblocking too? (YES) <s>Should a blocking attack chained from a nonblocking attack suddenly cancel the hero's targetting?</s>

<s>Also: I am currently trying to track down a bug that can cause doubling of non-blocking attacks when "pause on battle menus" is OFF. No such problem occurs when pause on battle menus is ON</s> (fixed)
Last edited by Bob the Hamster on Fri Oct 01, 2010 2:55 am, edited 1 time in total.
User avatar
Mogri
Super Slime
Posts: 4668
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

James Paige wrote:Should all attacks chained form a nonblocking attack be forced to be noblocking too?
Yes
Should a blocking attack chained from a nonblocking attack suddenly cancel the hero's targetting?
No


IMO, anyway
User avatar
Spoonweaver
Liquid Metal King Slime
Posts: 6462
Joined: Mon Dec 08, 2008 7:07 am
Contact:

Post by Spoonweaver »

I agree with Mogri.
User avatar
JSH357
Liquid Metal Slime
Posts: 1341
Joined: Mon Oct 15, 2007 7:38 pm
Location: Columbia, SC
Contact:

Post by JSH357 »

Third'd

And thank you sooo much for this feature. It's a brilliant idea.
My website, the home of Motrya:
http://www.jshgaming.com
User avatar
Feenicks
Metal Slime
Posts: 696
Joined: Tue Aug 10, 2010 9:23 pm
Location: ON THE AIR IN THE AIR
Contact:

Post by Feenicks »

This is awesome. Now I can put in the temporary buffs/debuffs I had been thinking about putting into my RPG, along with a few other things that would benefit from delayed attacks not stopping the attack bar from going up.

I'd have to be the fourth to agree with Mogri on this issue. It would be less aggravating that way I would like to think.
User avatar
Newbie Newtype
Reigning Smash Champion
Posts: 1873
Joined: Mon Oct 15, 2007 9:44 pm

Post by Newbie Newtype »

This is certainly a pleasant surprise. I dunno what I personally want to do with it yet, but I know I'll find out.
<TheGiz> oh hai doggy, oh no that's the straw that broke tjhe came baclsb
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

Okay I am glad I asked on this one :) I <s>will be</s> forcing any attack chained from a nonblocking attack to be nonblocking also. (done)

<s>I am working on some bug fixes. Right now queued attacks don't retarget correctly if the target dies. I have that one almost sorted out.</s> (fixed)

<s>Another problem I have noticed is that sometimes certain chained attacks get queued twice. I am having a hard time reproducing this one, so if anybody else sees it happening, please let me know.</s> (fixed)
Last edited by Bob the Hamster on Fri Oct 01, 2010 2:53 am, edited 1 time in total.
User avatar
Mogri
Super Slime
Posts: 4668
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

James Paige wrote:I am working on some bug fixes. Right now queued attacks don't retarget correctly if the target dies. I have that one almost sorted out.
What is the "correct" behavior?
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

Mogri wrote:
James Paige wrote:I am working on some bug fixes. Right now queued attacks don't retarget correctly if the target dies. I have that one almost sorted out.
What is the "correct" behavior?
The correct behavior of an attack that suddenly finds itself without a target is to re-target automatically, giving itself a new valid target. (it just re-runs the same code that enemies use to choose targets (which is also the same code as used by attacks with the "Automatically choose target" bitset))

The incorrect behavior I am working on fixing is that they simply don't notice that their only target is dead, and silently fail when the queued attack delay finishes and the attack tries to animate.

EDIT: actually, i was wrong. silent failure of a chain on a dead target is the expected behavior for a zero-delay attack with the same target class as the attack that chained to it. Picking a new target is the expected behavior on a chained attack with >= 1 delay. or that has a different target class from its parent.

Woo! That isn't very intuitive I guess... but it is the way it is.

Dang

EDITEDIT: I am forcing an early nightly build with a bunch more fixes to the attack queue. Nonblockingness is now inherited by chains, and there is a chain bitset to force nonblockingness also. I have also those bugs I mentioned a couple posts ago.

Things are now working very well in my own tests, both with "Pause on all battle menus" ON and OFF
Last edited by Bob the Hamster on Fri Oct 01, 2010 2:54 am, edited 3 times in total.
User avatar
Mogri
Super Slime
Posts: 4668
Joined: Mon Oct 15, 2007 6:38 pm
Location: Austin, TX
Contact:

Post by Mogri »

Can you add a "fail if target is dead" bitset, then? Your example of a buff that wears off will mess things up otherwise.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

Mogri wrote:Can you add a "fail if target is dead" bitset, then? Your example of a buff that wears off will mess things up otherwise.
Yes, I need to add an attack bitset "don't retarget if target dies" and I should probably also have a "don't retarget if target dies" bitset for chains.

Also, there is the other side of that. What if the attacker dies?

I need to add the ability to optionally make it so a queued attack MUST complete immediately if the attacker dies. I'll probably make it happen while their dissolve animation is running :)
User avatar
msw188
Metal Slime
Posts: 787
Joined: Tue Oct 16, 2007 1:43 am
Location: Los Angeles, CA

Post by msw188 »

While looking at the chaining menu, I just re-noticed (I think I noticed this before) that if you press 'down' on the bottom of the attack chaining editor the cursor disappears. Press 'down' again to make it appear back at the top of the menu. But pressing 'up' at the top of the menu works correctly.

Anyhow, I'm a bit confused about the need for these 2 seperate bitsets. So if an attack in a chain is non-blocking, all the following attacks in the chain will be as well? If this is so, what is the purpose of the chaining bitset? And should there be a bitset to override this behavior? I can't think of a situation for it yet, but it might be that an author would like an attack to have a non-blocking delay to allow the battle-ready meter to partially fill, and then have it chain to a blocking delay that freezes the ready-meter in a given spot while the attack begins.

While this seems to be kind of weird, why limit the functionality? If a person wants non-blocking inherited by the chain, they can just use the chaining bitset, right?
I am Srime
User avatar
msw188
Metal Slime
Posts: 787
Joined: Tue Oct 16, 2007 1:43 am
Location: Los Angeles, CA

Post by msw188 »

Okay, I'm a jerk. I read the previous posts a little more carefully this time, and I now understand the possible complications of allowing non-blocking to chain to blocking.
I am Srime
Post Reply