If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Tweaked damage formulae again. All offensive martial skill levels now passively increase all damage dealt for all attacks by a small percentage per skill level. Max fatigue and fatigue recover rate significantly increased to keep up with the new increased damage output.

Experimenting with two identically skilled test dummy characters with top skills in the Senior Artisan area and low end skills in the Fellowcraft to Journeyman area, getting in 3 to 4 attacks per turn in which about 50% of those attacks were parried, my test fights were lasting about 5 turn sequences. We'll see how the new numbers hold up in less controlled environments.

Fixed a bug that was causing successful MCombat special attacks to deal 0 damage.

Fixed a bug causing counterattacks to break combat.

Worked on the MCombat "UI" a bit to try to condense and smoothen the information you get and make it a bit less spammy.

The emits of some moves were changed. A success hitroll that drains fatigue but does not strike your character will now emit you staggering back instead of dodging, and perhaps desperately parrying or blocking as you stumble. This is not to be confused with a "flawless parry/block", which shows a different emit and deals no damage.

Looked into a bug where @style was not working but could not reproduce. Make sure you have the necessary style skill that you're trying to activate, and also that the necessary weapon to use that style is currently equipped.

Fixed a bug that would error out MCombat if using the feint attack while dual wielding with the dual striking passive skill.

Comment

After gutting and rebuilding the entire hit formula script, I think I've finally found the sweet spot for hitroll balance. To do this, I've switched the script from a d20 system to a straight up hit% formula ranging from 1 to 100, which allows me more room to manually toy with hit chances.

Having 5 mock battles using this new formula, with two characters of identical skills set to the soft skillcap (BG Preceptor/Duelist Senior/Corporal in martial guidelines) and each combatant using different weapons during each battle, all 5 battles went to 5 rounds before one combatant or the other dropped, with the victor a swing or two away from going down himself. No special moves were used during these test battles, but if special moves significantly change the outcome, then its likely those abilities that need to be tweaked, not the overall hitroll script.

Matches will probably be quicker than the 5-round goal if fought between new or non-martial characters, even if evenly skilled, because of much lower max fatigue cap and fatigue recovery rate. However the lower damage output may counteract that to an extent as well.

Other than the completely rebuilt hitroll script, updates are as follows:

BALANCE ADJUSTMENTS

The amount by which your offensive dueling skill (cut, thrust or feint depending on the attack) increases attack damage is now 10% per skill level, up from 5% in the old system.

The base chance to flawlessly defend against an attack by a character of equal skill to you is 30%, down from 50% in the old system.

The minimum chance you can possibly have to flawlessly defend against an attack is 10%. There was no minimum chance prior.

The maximum chance you can possibly have to flawlessly defend against an attack is 65%, though achieving thus number would require some combination of higher skills, bonuses from weapon type such as the "long" trait in polearms and longswords, and/or defensive bonuses granted by styles or special abilities like shield guardian. There was no maximum defense chance prior.

The chance to neutralize a cut or thrust attack using the sentinel, warding, lightfoot or strafing styles is now significantly decreased if the attacker is wielding a sword type weapon. These styles are primarily meant to be used against non-sword weapons, to represent the "control" that a sword has over less versatile weapons in real life weapons combat. The chance to neutralize attacks from swords still makes the styles worthwhile using against swords, but not to such an extent where sword vs sword matches are a guessing game of "which style is he using this turn?"

Area attacks such as shaft sweep seem to be suffering targeting issues.

The shield wall style isn't working, this was broken when the hitroll formula was gutted and needs to be rebuilt now.

Some weirdness is occurring when people join fights already in progress, particularly if some combatants have set a team and others have not. Not entirely sure the cause for this yet but I assume it's some oversight in the script that determines what team a character should be on.

Comment

I have completed the revised stat weighting for MCombat. This is a concerted re-assigning of the values of different stats and skills in MCombat that will affect your character's combat performance. The re-weighting was done based on data pulled on how well characters perform in MCombat based on their skill levels, against characters of both similar and varying skill levels, and employs a formula I wrote that aims to forcibly keep characters within the general strength values I desire them to be at for their skill levels.

The formula aims to weight stats such that a fight between two evenly skilled characters will last for approximately 5 to 7 turns. This is assuming both fighters are using basic attacks only and using a one handed sword only, varying circumstances will alter the average result (ie: two fighters using two handed weapons will likely end their fight quicker than above due to increased damage output, whereas two fighters using shields will likely take longer than above, though a fighter with a two hander versus a fighter with a shield should average out about the same). This formula factors in the total health of both combatants, along with their average damage per turn after calculating in likely damage reduction from parries, and also factoring in average fatigue restored by rest per turn.

The first difference that you will immediately notice is that numbers are a lot higher. New characters who previously started around 150 combat fatigue are now sitting around 800, higher end player characters further towards the current player plateau are looking at numbers closer to 6000, and some will be higher than that for those few pushing on Master level defensive skills and/or possessing a higher-then-normal fatigue stat. Damage likewise has been scaled with the new health values, sitting around 450 for a thrust and 700 for a cut on a Senior Artisan'ish character (one third of which, on average, will be parried each turn and another one-third which would be rested back, assuming combat against a character of the same skill levels as you, this makes the average damage per attack sequence

Changes from the previous version of MCombat include:

* Fatigue is now calculated by an accumulation of your five defensive dueling skills: Guard, Recover, Attacking, Rest and Dodge.
* The scaling of these skills is no longer linear. What this means is that the difference between Artisan (6) and Senior Artisan (7) Rest is bigger than the difference between Senior Apprentice (3) and Fellowcraft (4). Each skill-up in a defensive skill increases your MCombat fatigue by more than the previous skill-up.
* The weightings of these skills are no longer identical. Guard makes the biggest contribution to your total fatigue per skill level, followed by Rest (Rest however overtakes Guard in total fatigue value once you factor in the fatigue that Rest grants you each turn - roughly about one third of the damage you can expect to take per turn fighting a character of equal skill to yours).
* Your weapon skill level in the weapon you are using now also affects your damage output, instead of just giving you additional skills to use. Your base damage is determined 50/50 by your dueling skill being used for that ability (ie: cut or thrust) and your weapon skill (ie: polearm, dualwield). These two stats now combine to create your base damage INSTEAD OF your weapon being the base damage.
* Weapons now serve as a damage multiplier. One handed weapons do 1.0x base damage, two handed weapons now do 1.5x base damage, and shields grant a 33% chance to block all damage. This in mind, a character using a two handed sword against a character using a sword and shield would both be doing roughly the same amount of damage to each other (the one-third block chance on the shield negates the one-third extra damage on the two handed weapon).
* The functionality for dodge has been changed. Dodge no longer acts as a general damage reduction stat, but now acts as a defensive roll that triggers only against attacks that cannot be parried. If attacked with an ability that cannot be parried, you will instead attempt to dodge it using the same formula as other defensive rolls. This makes dodge particularly useful when fighting ranged characters (including if you're a ranged character yourself).

OTHER FIXES

* Looked into a bug about knockdown not wearing off after 1 turn, was not able to replicate this bug. If it happens to you please file an assist and include the names of both the attacker and target and what weapon(s) they were wielding.
* Finally narrowed down a bug with @interrupt not working in cases where two combatants were using different weapon types, @interrupt appears to be fully functional now.
* Weapon inspection has been updated and should now display some weapon traits it did not used to show if the weapon has them (such as functioning as a silver weapon).

SORCERY

Sorcery should be right around the corner. I have to individually update a lot of spells to get them working with MCombat 4, but the framework and formulae are in place (in fact if you enter MCombat as a sorcerer you will get some unusual stat readings that non sorcerers don't get, this is because the code is mostly in place).

Comment

I've made some updates this afternoon to MCombat, particularly insofar as CNPC functionality is concerned.

Monsters and other AI will no longer force you into an MCombat confrontation on sight. Instead, when encountering a monster, you will use @mcombat 'fight to start a battle as usual, or @mcombat 'join to join a battle already in progress. While encountering a CNPC won't automatically initiate MCombat anymore, the CNPC will still prevent you from leaving the room until you fight it, forcing you to deal with it or wait for help.

A large part of this decision stemmed from how un-smoothly the old method was working from a coding perspective. Particularly when large groups of players on follow chains would encounter other groups of monsters, we were suffering a lot of errors with characters not getting into combat in the same round due to lag, or some properties not being read properly which was causing a lot of the bugs and MCombat crashes we were suffering with CNPCs.

The decision isn't entirely for code purposes, however; it allows us to add some conveniences too. Characters who wouldn't normally be fighting now no longer have to. Witnesses, people being escorted, bystanders hiding under the table as monsters attack, etc, no longer get pulled into MCombat automatically, meaning they don't have to constantly @pass their turn (and those fighting don't have to wait for them to do so).

It's also allowed me to implement a limit on how many people can be in combat at a time. Currently, each mcombat team is capped out at a maximum 5 members in combat at a time (so in most cases, 5 monsters and 5 players at a time). This should reduce the amount of waiting for turns to pass, but it also makes it easier for Staff to create balanced enemies by knowing how many players we'll be dealing with (it's hard to gauge how much health a monster should have if it could end up fighting anywhere between 4 and 25 players at a time). As characters get defeated in combat they can still be swapped mid-fight; if a group of 8 player characters runs into a group of 4 monsters, only 5 players can fight at once, but if one gets injured or weaken, he can step out and withdraw and let another player take his spot, using the normal @mcombat 'withdraw and @mcombat 'join commands.

Lastly, since combat doesn't start immediately, ranged characters can set their ranged combat area before each fight starts using @area. This would allow you to, for example, set your bow wielding character to start this fight in the southern end of the room so that CNPCs on the north end have to cross the room to you before attacking. Or, when fighting in large groups, send the appropriate characters to face the current challenge (eg: if fighting a number of CNPCs with heavy armor, send your characters with armor-piercing weapons into the fight first).

I've tested these changes and they seem functional from the couple fights I had. However, a good part of the overall mcombat code was written assuming X rules would apply, when you change those base rules from X to Y there's a reasonable chance that something unforseen that was dependant on X rules might malfunction. As always, if something odd occurs please file an assist.

Comment

Today I have added the @ability command as a convenience-of-life feature for MCombat 4. The @ability command can be used to call any existing MCombat ability and return that ability's stats and functions to you in a small reference guide. Information pulled includes the ability's name, associated skills, action point cost, focus point cost, cooldowns, effects and other parameters. Hopefully this will make it quicker/easier for you to determine your character's next move without a lengthy pause to review the MCombat how-to post.

Note that some abilities with special scripts (anything with an area-wide effect like shaft sweep) won't quite correctly read out their effects, as the script can only detect the normal properties that determines an ability's function, and cannot read through custom scripts to translate what an ability does.