• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Fighting System

We discussed some ideas on fighting in the Health Realism thread. So for things that affect health but happen _not during fights_ (wounds worsening, seeing doctors, resting, etc.), let's use that thread.

This is on the mechanics of fighting itself.
(And by this I mean land combat, not sea combat).

Some overhaul ideas (not necessarily mine!):
  • Different attacks do different damage, and some attacks are better with some swords than others.
  • Implement different "stances": attacks in one stance are best dealt with by someone defending from the same stance.
  • A `sub-idea`, different _speed_ stances (i.e. rather than high, medium, low it'd be fast, medium, slow), with slow attacks best met by slow blocks (a quick block would have the power behind it needed to deflect a `slow-but`-powerful attack). In this case it would probably be thrusting attacks in fast, and the more `wind-up`-`and-swing` attacks in slow.
  • Using the fact that what the game looks at is the ANI file, not (directly) the AN file, and that the ANI file is small and plaintext, thus easily moddable, we could create a large number of ANI files with differing speeds or block levels*, and then compute the speed for a character to use as based on the character's fencing skill/perks and the sword type, and also swap ANIs based on stance (if talking about `speed-based` stances).

    *I.e. use an attack animation as a `thrust-aside`-style block, but make sure the events in it are _block_ events, not attack events.
  • Make both blocking and dodging* effective defensive strategies at all levels (stamina will help here), i.e. when you're agile and carrying a foil, and they're using a `sledgehammer-like` sword, it's best to just not have it touch you _or_ your sword, period.

    *Assuming we can get NPCs to dodge. And it's easier than it sounds: I mean, if other methods fail, we could just do a frnd() check when trying to assign damage and, if it succeeds, make them dodge rather than take damage. Annoying and unfair, but better'n them not being able to dodge.
  • Using stamina rather than straight health, as the reduceable quantity in fights. {It seems silly, to me, for characters to be slicing or stabbing each other dozens of times and they're not dead or dying from it...} With a single real wound ending a fight (and quite possibly a life). This would also tie in with disarming, making the disarming of an enemy the more usual end of his/her fight, rather than death.
  • Implementing differing disarm modes. A, normal; B, disabling disarm (you give them their sword back after a disarm, either visually, or figuratively by disabling disarm) which gives an XP boost for the extra fighting (and a rep increase for being an "honorable foe") but the fight will last longer; C, _only_ disarm, which means doing no damage (or minimal damage), so as to _only_ disarm opponents, no killing* (big rep boost, while also making you look, to some, like a sissy; also very dangerous to yourself as your opponent is not similarly limited).
    {Admittedly, since the fight lasts longer in cases B and C, you get more XP anyway.}

    *And you can guess who's going to spend all his time with this on <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> --and especially after venting on making war a game, too!...but still and all, it'll be very useful for a "fencing school" option, or a `non-deadly` duels mod, or for capturing someone you need alive, or whatever.
  • A surrender key! Which not everyone is obligated to accept, of course.
 
HellAngel, after bringing up specific `attack-block` combinations (whether `1-to`-1 or grouped in stances), also brings up the idea of tavern brawls, i.e. weaponless fights that do no physical damage (but may raise or lower reputations!).
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" /> A fencing school!!! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />

This all sounds rather complicated, but any game that has controls like this will be complicated at first, until you master them... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" /> What will this do to the tutorial, Nathan? Perhaps this "fencing school" idea is something elective - it's there for those who want it, but if you don't, you can still go through the game with the basic skills you learned with Malcolm (i.e., the default moves), but if you ARE interested in it, you can go to the fencing school and work - and after exhibiting a level of quickness on the controls you will graduate, and thereafter be obligated to use the new moves when you fight.

No school, default. School, then the new moves will be the way you will have to fight - totally elective - you can play half the game with the default, and then pay to attend the school, or start off right after Malcolm's tutorial (or the Stormy Start mod) by going to the fencing school to learn to use the new moves.

Whaddaya think? <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
 
Do you envision something akin to the Pirates! fencing system? That would be great, but might create a problem with multiple enemies attacking you. Nevertheless, if that problem could be solved...
 
Re: fencing school. That was the point of the latest mod I was trying to write, where you meet a `washed-up`, `one-eyed` former Portugese swordsman after one of his former students "notices" one of your new tattoos. I got maybe 1/3 of the way through then the game started deciding my perfectly valid text was invalid so I said screw this. It wasn't going to be much in the way of fencing instruction, just tips from different masters of the period, like the importance of blocking, etc. And he'd give you this little "bladebreaker" dagger I cooked up, to be used instead of a pistol, to disarm an opponent. The end result was that you'd help him establish a school in the smuggler colony on Conceicao.
So. Maybe after I finish that curio I'll get back on it.
 
Cat: In order for some other things to work (off the top of my head Alan's locational damage system, and his blood FX) advanced fighting needs to be on.
Well, I guess we can just toggle them as a group.

But you have a good point, and are I think right, in that this _all_ needs to be toggleable, not just tweakable.

Neat idea on how to ease players into it!

Grimm: What problem do you envision? That you'll have to keep swapping block levels?

Alan: As usual, your ideas are of their own flavor and most impressive!
What do you mean by "deciding my perfectly valid text was invalid" ? A runtime error starting up, dialog not found, etc.?
 
My point in all that was that we can leave the stormy start and the tutorial as they are - and have it totally up to the player whether they want to do the fencing school - it can be in the game to ignore or take advantage of. If you take advantage of it, then for the rest of play you have to abide by its controls... If not, all will still be the same as in the game as we play it now. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/duel_pa.gif" style="vertical-align:middle" emoid=":ixi" border="0" alt="duel_pa.gif" />
 
<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->Grimm: What problem do you envision? That you'll have to keep swapping block levels?  <!--QuoteEnd--></div><!--QuoteEEnd-->
Something like that. The way it is now, you just have to hold the "block" key, and you do block all attacks, no matter where they come from. If there´s a specific block for a specific attack, you might be able to block a slash at your head, but at the same time another opponent might run you his sword through the chest, if you see what I mean. Don´t get me wrong, I _love_ the idea, but that´s one difficulty i see there.
 
Cat: Nice idea... it really would be a skill to earn that way, instead of just something you start with. I like that. But at the same time, having to go to the school and maybe endure a tutorial every single time... that's what I got sick of with Malcolm. So maybe one of the difficulty settings or a toggle could determine whether you start with new advanced fencing or have to "learn" it.

NK: It happens during a scene when you're both sitting in a tavern and his dialog is automatically called up. It used to work fine, then out of the blue when his dialog is called up and you enter dialog mode, with the graphics and all, you just get a big "invalid text" where dialog should be and can do nothing else. Like I said, I just threw up my hands at this point and moved on to other things, so it could be some tiny insignificant little mistake.
 
Alan: what did the text file look like in a hex editor? Were there some hidden characters at the start? That's happened a few times...

Cat, Alan: so maybe a `three-way` define (alwasy off, always on, or must_do_tut), a pchar attribute for having done the tut, and a bool function that returns whether advanced fighting is on or off based on those?

Grimm: yeah, true. I'm not even sure (per fighting anims) we can add separate block _anims_...
But having block not such a universal answer that way may mean more use for Dodging, which IMO isn't all bad--you'd have to be _very_ good (or them very bad) to hold off a group of swordsmen all at once.
 
Alan, you raise a good point about the tutorial - after all, what I propose with the fencing school is just another tutorial! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" /> Perhaps as you suggest, Nathan, the `3-way` define is a good way to go so that you CAN have the tutorial if you need it, but can completely switch it one way or the other, if not... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
 
I'll take another look at the file. I think that's happened before on me, hidden little characters that wreck an otherwise perfectly fine dialog.

`Three-way` switch sounds good.
 
So--
Going from the Fighting Anims thread, how about this.

We can use Fight Stand 5 (or 6, depending on sword going up or down), suitably sped up, as a good block hit for blocking a heavy attack.
We can use fight stand 3 as a quick / thrust block (bat their sword away, rather than have their sword hit yours). I.e. an offensive block.
While FS4 is best left as a fight idle anim, we can use first part as a block hit for blocking a moderate slash.

There is the existing `block-hit` anim, but it's only 10 frames long and not very good IMO.

And lastly, we can't seem to trigger fighting animations ourselves (well, we can trigger them, but only when _not_ in fight mode). Recoil ("dodge") is one of these, so any way to do `auto-dodging` must use teleporting rather than dodging.

So, how about this.
Let's make three styles. Fast (thrust), Medium (weak slash), and Slow (strong slash). They each have different blocks and blockhits.
We also, however, need to create (or use existing) differing idle anims for them, so you can tell them apart in NPCs.

Then, we make it so that a block from the wrong stance prevents you from blocking or attacking _again_ in a short period of time. Perhaps also the strong slash against anything but a strong block drives you back.
What I'd like to do is add some kind of `non-automatic` blocking, i.e. you have to time your blocks.

I've also been fiddling around with the functions at the bottom of fightparams, and found that they _do_ seem to work; they are for setting an NPC's fight habits (chance to attack, block, and the ratio between them). I'm not _very_ clear on them, but some testing shows they do _something_. So far NPCs now block _way_ more than they used to (which is IMO a good thing).
 
Three styles sounds good, Nathan... And more blocking out of NPC's is also VERY good. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />
 
Back
Top