I want to ask for some people's advice on 3 issues I'm having. First, the relatively simple 2.
1. I want a 'defend' command that works similarly to most other RPGs. So I want it to raise the user's defense until they take a new action. Seems good for a non-blocking chain, but how do I know how long to make the delay? I could calculate it for each hero before every battle, but speed can be altered in battle. Is there any easy way to set this up, or is it possible to add a feature to be able to accomplish this? In my mind, the only way to do this right now is to make sure that EVERY POSSIBLE action the hero can take will remove his extra defense, which is certainly possible but not particularly fun to do.
2. In the same situation above, I need to be able to remove the right amount of defense. How? The problem is that a defending character could have his defense further altered by spells and things while he is defending. How should this be handled? I could perhaps store the old defense into the CTR stat and have defense-affecting spells affect both, then restore defense by making it match the CTR stat. Does anyone else have any ideas about this? Obviously the Plan for Buffs would probably make this much easier, but that could be some ways off.
3. (the hard one, I think) I may have asked about this before somewhere. Basically, I think spread attacks need to have more options about their targetting and chaining, but maybe there's already a way to do this. Suppose some but not all of the heroes are asleep, and then an enemy hits them all with a spread attack that has a chance of waking up the sleepers. The 'wake-up' attack has a graphic, but it shouldn't show up on anyone who was already awake, and also shouldn't show up on any sleepers who weren't awoken. I have no clue how to attempt something like this, but I think it is a very basic mechanic in a lot of RPGs and the OHR would benefit from. The concept goes far beyond waking people up; any spread attack that chains to more effects would benefit from some way of accomplishing this. Perhaps a new targetting type, "Spread as Simultaneous Single Attacks In The Queue?" Then each single attack would have it's own chance to chain properly...?
I am Srime
So just in case anyone was interested, I may have a solution to number 3. In the case of a spread attack, instead of chaining to the next effect, perhaps the targets could 'self-counterattack' the desired effect, but only if they are actually hit. I'm going to test this when I have some time (what happens if multiple counterattacks are triggered at once? We'll see). What it would mean, though, is that I would dearly love to have heroes having counterattacks implemented soon.
I am Srime
I am Srime
msw188 wrote:
1. I want a 'defend' command that works similarly to most other RPGs. So I want it to raise the user's defense until they take a new action. Seems good for a non-blocking chain, but how do I know how long to make the delay? I could calculate it for each hero before every battle, but speed can be altered in battle. Is there any easy way to set this up, or is it possible to add a feature to be able to accomplish this? In my mind, the only way to do this right now is to make sure that EVERY POSSIBLE action the hero can take will remove his extra defense, which is certainly possible but not particularly fun to do.
1. I want a 'defend' command that works similarly to most other RPGs. So I want it to raise the user's defense until they take a new action. Seems good for a non-blocking chain, but how do I know how long to make the delay? I could calculate it for each hero before every battle, but speed can be altered in battle. Is there any easy way to set this up, or is it possible to add a feature to be able to accomplish this? In my mind, the only way to do this right now is to make sure that EVERY POSSIBLE action the hero can take will remove his extra defense, which is certainly possible but not particularly fun to do.
I have been wanting the exact same thing for Wandering Hamster.
I think I will add an additional "Delay" option. The current delay can only be a fixed number of ticks. The new one will be a percentage of the attacker's normal turn length.
I am not sure if I should have a totally separate delay for this (the two could be added together) or if I should have a bitset that toggles whether the delay is in ticks or is a percent.
msw188 wrote:
2. In the same situation above, I need to be able to remove the right amount of defense. How? The problem is that a defending character could have his defense further altered by spells and things while he is defending. How should this be handled? I could perhaps store the old defense into the CTR stat and have defense-affecting spells affect both, then restore defense by making it match the CTR stat. Does anyone else have any ideas about this? Obviously the Plan for Buffs would probably make this much easier, but that could be some ways off.
2. In the same situation above, I need to be able to remove the right amount of defense. How? The problem is that a defending character could have his defense further altered by spells and things while he is defending. How should this be handled? I could perhaps store the old defense into the CTR stat and have defense-affecting spells affect both, then restore defense by making it match the CTR stat. Does anyone else have any ideas about this? Obviously the Plan for Buffs would probably make this much easier, but that could be some ways off.
I don't have a quick easy solution for that right now, but in the long term, the Plan for Stat Buffs will solve that one rather nicely.
msw188 wrote:
3. (the hard one, I think) I may have asked about this before somewhere. Basically, I think spread attacks need to have more options about their targetting and chaining, but maybe there's already a way to do this. Suppose some but not all of the heroes are asleep, and then an enemy hits them all with a spread attack that has a chance of waking up the sleepers. The 'wake-up' attack has a graphic, but it shouldn't show up on anyone who was already awake, and also shouldn't show up on any sleepers who weren't awoken. I have no clue how to attempt something like this, but I think it is a very basic mechanic in a lot of RPGs and the OHR would benefit from. The concept goes far beyond waking people up; any spread attack that chains to more effects would benefit from some way of accomplishing this. Perhaps a new targetting type, "Spread as Simultaneous Single Attacks In The Queue?" Then each single attack would have it's own chance to chain properly...?
3. (the hard one, I think) I may have asked about this before somewhere. Basically, I think spread attacks need to have more options about their targetting and chaining, but maybe there's already a way to do this. Suppose some but not all of the heroes are asleep, and then an enemy hits them all with a spread attack that has a chance of waking up the sleepers. The 'wake-up' attack has a graphic, but it shouldn't show up on anyone who was already awake, and also shouldn't show up on any sleepers who weren't awoken. I have no clue how to attempt something like this, but I think it is a very basic mechanic in a lot of RPGs and the OHR would benefit from. The concept goes far beyond waking people up; any spread attack that chains to more effects would benefit from some way of accomplishing this. Perhaps a new targetting type, "Spread as Simultaneous Single Attacks In The Queue?" Then each single attack would have it's own chance to chain properly...?
The counterattack workaround is a good idea for this.
Let me think about "Spread as Simultaneous Single Attacks In The Queue". That is an interesting idea.
The main problem here is that although chain conditionals can be based on attacker stats, they cannot be based on target stats, right?
I left out that ability because although it would have been pretty easy to handle on single targets, I had no way of handling it for multiple targets at the time.
Now that the queue is available, I think I can implement it and have it work as expected. When an attack chains based on the target's stat, the attack will automatically split into two queue entries, one for the successes, and one for the failures.
I could actually do that right now, but the only catch is the two sets of resulting chains could not animate simultaneously.
Still, I think if I implement chaining conditions based on target stats as an automatic queue split, that will work better than a bitset to always split up an attack's targets.



