Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upIncreases blocking ability of smaller shields #21503
Conversation
This comment has been minimized.
This comment has been minimized.
|
This is a wrong way to do it. |
This comment has been minimized.
This comment has been minimized.
|
That could work instead. What would you recommend for block bonus numbers and names for these techniques? For now, due to not being on for long, I will close this and implement the changes when I have more time within the next hour or two. |
DangerNoodle
closed this
Jul 27, 2017
This comment has been minimized.
This comment has been minimized.
|
I also noticed that WBLOCK_3 is only used in the base game by the flaming chunk of steel, which simplifies naming as no obtainable weapon uses a technique called "shield." |
This comment has been minimized.
This comment has been minimized.
|
I have a possible implementation, if feedback can be presented. First step would be reducing the value of WBLOCK_3 from 10 to 8, to make each step up consistent. This would be applied to basic shields. Next would be implementing two additional techniques with a bonus of 10 and 12. Possible names include Deflect, Guard, Defend. Pick whichever two sound best, or suggest others. The first of the added techniques would be given to bucklers (reflecting how they presently have WBLOCK_2), while the last technique would be used by the larger shields that currently use WBLOCK_3. Net effects are that basic shields and bucklers each gain 4 more block bonus than current behavior, while large shields only gain 2 more. This seems acceptable as large shields are already worth using, unlike basic shields and bucklers. This also gives an advantage over arm guards that can block, which do not occupy a hand. |
DangerNoodle
reopened this
Jul 27, 2017
This comment has been minimized.
This comment has been minimized.
|
Probably need documents of these flags and the criteria of which item belongs to which group. |
This comment has been minimized.
This comment has been minimized.
|
Understood. I had trouble finding where techniques were documented. Maybe comments in the technique file instead? |
This comment has been minimized.
This comment has been minimized.
|
please. shields are kind of op as they are. Can blocking cost fatigue or make them cost movement or something? |
This comment has been minimized.
This comment has been minimized.
|
Stamina cost of blocking sounds OK - this would make it a tradeoff between damage taken and ability to hit back. |
This comment has been minimized.
This comment has been minimized.
If shield blocking is overpowered, then so is weapon blocking. Current behavior has most shields have a block bonus identical to 90 percent of weapons in the game. Blocking may require some counterbalance in general, if this is the case. I am uncertain how best to implement that. |
This comment has been minimized.
This comment has been minimized.
|
Whatever cost is added to make blocking more balanced you can use that to make shields better than weapons at blocking even with the same bonus. Since a shield is specifically made for blocking you can make it cost less to block with it. You could even use that to differentiate between shields themselves. A buckler might have less ability to block then even weapons but costs almost nothing to block with while a tower shield or riot shield might have a godly blocking ability but cost a lot to use. Also if you want an even deeper system for it you can add in having strength and dexterity effect it depending on the thing being used to block. A light buckler might get better at blocking with more dexterity but the cost hardly changes from more strength. On the other hand a tower shield would hardly get anything from dexterity while more strength would reduce the cost because you can lug it around easier. |
This comment has been minimized.
This comment has been minimized.
Not at all. Weapon blocking requires you to wield a block-capable weapon and wears down the weapon. A shield as good at blocking as a weapon is already better by the virtue of not competing with weapons for "slots". |
Coolthulhu
reviewed
Jul 28, 2017
| weapon.has_technique( WBLOCK_3 )); | ||
| weapon.has_technique( WBLOCK_3 ) || | ||
| weapon.has_technique( WBLOCK_4 ) || | ||
| weapon.has_technique( WBLOCK_5 )); |
This comment has been minimized.
This comment has been minimized.
Coolthulhu
Jul 28, 2017
•
Contributor
This is already getting ugly.
Can be replaced with blocking_ability( weapon ) > 2.
This comment has been minimized.
This comment has been minimized.
DangerNoodle
Jul 28, 2017
Author
Contributor
Might be doable, though I would need to examine how to go about it.
This comment has been minimized.
This comment has been minimized.
DangerNoodle
Jul 28, 2017
Author
Contributor
It appears this might be easier than I first thought. I first thought you meant to rework blocking_ability, but can_weapon_block should be simpler.
This comment has been minimized.
This comment has been minimized.
DangerNoodle
Jul 28, 2017
Author
Contributor
My apologies for having not been able to attempt it until now. Replacement seems to require the function being moved below blocking_ability to compile correctly, compiling to test.
Coolthulhu
reviewed
Jul 28, 2017
| @@ -156,7 +156,7 @@ | |||
| "coverage": 30, | |||
| "encumbrance": 8, | |||
| "material_thickness": 3, | |||
| "techniques": [ "WBLOCK_2" ], | |||
| "techniques": [ "WBLOCK_4" ], | |||
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
DangerNoodle
Jul 28, 2017
Author
Contributor
Was mostly to be consistent with original behavior, where bucklers had 1 level higher than most shields. Should this stay at block 2 instead?
Coolthulhu
reviewed
Jul 28, 2017
| @@ -8,6 +8,7 @@ | |||
| "type" : "technique", | |||
| "id" : "WBLOCK_1", | |||
| "name" : "Block", | |||
| "//": "Block bonus of 4. Used by most basic weapons a competent combatant could put between themselves and an attack.", | |||
This comment has been minimized.
This comment has been minimized.
Coolthulhu
Jul 28, 2017
Contributor
Instead of adding it as a comment, it should be a field:
block_ability: 4,
Also a field in the respective technique class.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Part of that was that block-capable weapons are extremely common, though ranged weapons have it less commonly. Making a shield more sensible to combine with a pistol or such than combining it with a close-quarters weapon is one example of the resulting implications. That said, the encumbrance offered is minimal. The main disadvantage is mere player annoyance, unless giving up two-handed use affects melee damage. |
This comment has been minimized.
This comment has been minimized.
Not all of them are good, though. The whole idea is that you either pick a blocky sword and block or pick a choppy axe and deal more damage. Block ability should be an advantage that has a cost, not an extra bit of complexity that every player needs to memorize to properly design cookie cutter characters.
Could be worth changing it to something else, then. For example, allowing wielding 2h with just one hand, but preventing attacks or making the attacks unviable somehow (as long as it isn't done by slowing the attacks down, to prevent "I bashed a zed with metal tank while wearing a shield, now I'm dead" deaths) and informing the player often (with a message, not query/popup) that the attacks are being penalized. |
This comment has been minimized.
This comment has been minimized.
The problem is, as far as I am aware, the "shield occupies a hand"feature was a realism feature, not a game balance one. I suppose it makes sense that an item you hand to use a hand grip to wear precludes using that hand to hold other objects, but it only becomes obvious when the player tries to wield large, heavy items due to lack of inventory space. Regardless, these are features that might be best fit for a later pull request, as neglecting to include those features with this pull request does not hinder the player. |
This comment has been minimized.
This comment has been minimized.
Realism features don't always have to be annoying (just most of the time).
It does introduce power creep. |
This comment has been minimized.
This comment has been minimized.
Makes sense, I would need to look into changing this feature in some way. I do not know how the person that implemented this feature handled it, but I will attempt to look into the code. That one might warrant a separate pull request. I am unsure how the implement a stamina cost for blocking, but if that is warranted to avoid power creep, then so be it. That said, I am not entirely sure of the effectiveness of blocking a zombie with any weapon (zombies not being a concern in reality, last I checked), but I would suspect that a shield would still retain some purpose for that. If you factor charges into the equation, bum rushes as you put it, the best solution for that would be meeting the charge with a polearm, ideally one that has a way to halt the charger in the manner of a boar spear. If you had a large surface in between you and the offending zombie, they have to physically bypass the object, grab and pull it away, etc. Balance seems the bigger concern over realism here. |
This comment has been minimized.
This comment has been minimized.
Or kick, punch around the shield, bite the legs etc.
I'll need some balance analysis here. |
This comment has been minimized.
This comment has been minimized.
|
Let get a rough summary of balancing then.
I was under the mistaken impression that arm encumbrance only affects ranged attacks, but melee attacks are also affected. This makes some sense with respect to reality, where some attack angles are blocked by a shield, and have to be worked around with other techniques. That means that shields do grant a defensive benefit at the expense of offense. I have yet to confirm whether using a weapon two-handed confers any advantage in-game, but if they do then that is the case. So that means one gameplay counterbalance, one possible gameplay counterbalance, and one that is only an annoyance. Now, reasoning in favor of buffing shields. Main one is that, while shields confer a benefit to unarmed attacks and pistols, with most melee weapons most of the shields are dead weight. With ranged weapons, hand encumbrance is the main disadvantage they offer, rather than arm encumbrance. While you noted that the player could use an axe and thus not get a "free" source of blocking from the shield, heavy weapons (which are likely to be what the player will forego block technique for) suffer the most from being slowed by arm encumbrance. So my conclusion is that shields could afford to be buffed. However, adding a stamina cost to blocking, even a negligible one, will support this change. These changes combined will give the player a sane reason to use a sword and shield (for example) other only a sword, while still ensuring that not using a shield has some advantages. In particular, if this stamina cost functions like attacking where arm encumbrance and item weight are accounted for, that means a lightweight weapon with That said, I would advocate making the stamina cost factor the block bonus as well. |
This comment has been minimized.
This comment has been minimized.
|
Implemented. Exact math is a bit hard for me to work with, but it factors in a fixed penalty, arm encumbrance to the same extent as attacking, weight of blocking item versus player strength (if any, same as when attacking), and a bonus equal to half the blocking item's block bonus is factored in. Resulting behavior:
|
Coolthulhu
reviewed
Jul 28, 2017
| // give stamina penalty for blocking, heavier weapons and arm encumbrance | ||
| // are more tiring, while higher block bonus means less effort expended | ||
| int encumbrance_cost = roll_remainder( ( encumb( bp_arm_l ) + encumb( bp_arm_r ) ) / 5.0f ); | ||
| int weight_cost = weapon.weight() / ( 20 * std::max( 1, str_cur ) ); |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
DangerNoodle
Jul 28, 2017
•
Author
Contributor
I would assume that weight( shield ) would be the required property?
Edit, tested and shield.weight() turned out to be right instead.
This comment has been minimized.
This comment has been minimized.
DangerNoodle
Jul 28, 2017
Author
Contributor
Effects of fixing this are that stamina drain for shields went up massively. Now changing it so that the block bonus is considered in full instead of being halved.
This comment has been minimized.
This comment has been minimized.
Invent two feasible test cases where the player would want to wear a given shield and where the player wouldn't want one.
That depends. |
This comment has been minimized.
This comment has been minimized.
Problem here is the objective of this pull request is much narrower in scope. It is not meant to balance blocking as a whole, or even all shields, only the lower-effectiveness ones.
That sounds like the test case that would be important, but getting exact numbers from it might be difficult. How does the encumbrance of a single arm affect the speed of an attack? That could be a useful method, start by making small and large shields consistent in attack speed penalty relative to damage absorbed, then modify as needed for weaker/heavier shields to give variation. |
This comment has been minimized.
This comment has been minimized.
Each 5 points of arm encumbrance is 1 extra stamina per attack. Each 2 points of hand encumbrance is 1 extra move cost per attack. |
This comment has been minimized.
This comment has been minimized.
|
I see. Thank you. Does melee skill directly affect either of these properties? Edit, wait. I recall seeing that in the stamina cost, just unsure how it translates into raw numbers. |
This comment has been minimized.
This comment has been minimized.
|
No, only blocking. |
This comment has been minimized.
This comment has been minimized.
|
Very well then, thank you. |
This comment has been minimized.
This comment has been minimized.
|
Current scheme for shield encumbrance is:
|
This comment has been minimized.
This comment has been minimized.
|
One more try, drop everything until you have this. Since you're proposing something with relatively wide impact, you need several scenarios, with different player stats and skills, different equipment, and different monster attacks. This is the basic problem statement you should be supplying, and any time an issue or PR starts going in circles, or if you anticipate it being complicated, you should clearly state this sort of thing in nauseating detail so everyone can be clear about what your intentions are. If you can't clearly state what the current behavior is and what behavior you expect, you shouldn't be proposing a change. |
This comment has been minimized.
This comment has been minimized.
|
Extensive discussion of this has already been provided repeatedly. A general case has already been presented. A shield with "more effective than blocking with a basic weapon" is the stated objective. The numbers for current shield behavior are identical to the numbers for blocking with an arming sword or other If you insist, allow me to present a specific example. In this case we will use a character with no appreciable armor to speak of, a strength of 8, and a melee skill of 5. With WBLOCK_1 is absorbs 30% of damage. This survivor receives an attack directly to the torso from a zombie hulk. We will assume the 4d8 damage is rolled at around mean result of 18. We will use a wooden shield (WBLOCK_1, 12 encumbrance) in this example, along with an arming sword (which, again, also has WBLOCK_1).
Repeating, in this scenario the damage reduced is the same in both cases, but the player is penalized for making a common-sense choice, if they are unaware that this causes them no benefit. Now, same scenario with the same shield, only after the changes in thise pull request.
In this case, the damage reduction is higher than the sword alone, though it remains lower than what a large wooden shield would block. The side effects are also higher, but now the player has an apprecibale penalty to weight against an increase in damage reduction, when before (to repeat myself) the player incurred a penalty for no benefit. |
This comment has been minimized.
This comment has been minimized.
|
Another example. A member of the survivor profession, with 8 strength and no melee skill, makes a 2-by-sword and/or wooden shield, and later on encounter a bear. They take a strike directly to the unarmored head, which doubles damage. Again we will assume the damage roll produced the mean result, but doubling it makes it equal to the potential maximum that 4d6+4, meaning 28 damage.
Current status quo is that a sharpened wooden plank blocks as well as a wooden shield, heater shield, hoplon, or viking shield. I would like to provide examples with armor, but I am having trouble finding how protection translates directly into damage reduction. Still, by now the reason why the status quo is a problem should be highlighted. In turn, I would like for you to provide an argument for why we should maintain the status quo. Why should a shield provide a penalty but no benefit? Why should behavior that is both unrealistic and detrimental to gameplay be retained? |
This comment has been minimized.
This comment has been minimized.
|
I'm looking for clarity around the problem and proposed solution, which is
now clear, your poor attitude about it is unwarranted.
1. Its clear there's an issue.
2. There's no case for increasing shield ability as a result, its already
extremely good.
Alternatives:
1. Remove block from weapons. If what we're providing is an effective and
*easy to perform* block suitable against all attack types, weapon blocks
don't qualify.
2. Add block4 at the current effectiveness of block3 and shift the
effectiveness of other block techniques *down*.
3. Increase blocking ability at the high end, but nerf all blocking
significantly by adding a stamina cost for it as has been proposed already.
|
This comment has been minimized.
This comment has been minimized.
My apologies, but trying to state the current balance problems is getting exasperating when I have had to repeat myself.
You have not read the discussion adequately. Shields that (in current handling) have In fact, the best available shields have been nerfed due to increased encumbrance. Reminder: the shields being buffed are the ones that do not offer any benefit. The ones that do offer a benefit, again, have not been buffed.
Read the discussion. I have already done this. WBLOCK_4 has a block bonus of 10, which is what the current WBLOCK_3 has. The new WBLOCK_3 has a block bonus of 8, an unused value. |
This comment has been minimized.
This comment has been minimized.
|
I have edited the opening post to reflect current changes accurately. Please read. |
DangerNoodle
changed the title
Increases blocking ability of shields
Increases blocking ability of smaller shields
Aug 9, 2017
This comment has been minimized.
This comment has been minimized.
|
Now. My apologies for having gotten so angry, @kevingranade. But much of what has been demanded and asked of me has already been addressed. Not merely in the discussion, but in the file changes section. The opening post (even before editing for clarity) and file changes section both already stated that suggestion 2 was implemented. My objections were not meant maliciously. It is simply frustration. If another developer went into your pull request and demanded you change things you have already changed, and asked questions that would be answered by reading the long discussion that had already occurred before they commented, would it not be frustrating? Would you not feel irritated, angry even? What would you feel, if you were in my situation? |
This comment has been minimized.
This comment has been minimized.
|
You might want to reconsider voicing quite so much outrage when you've ignored half of what I said.
You have kept the blocking ability of every item that has it either constant or significantly increased it. This is not at all what I suggested. You seem to think I meant, "don't buff already strong shields". What I meant is "don't buff ANY shields".
Consider the possibility that the reason you're being asked for clarification is that it was not clear the first time you said it. You have a valid issue here, but it was worded in such a way that it came across as simply buffing shields, which several people have pointed out as problematic, and you've rejected most every suggestion that has been made to mitigate this problem. As outlined by the scenario you posted, the nerf from increasing the encumbrance of the shield is negligible, and it definitely doesn't justify the extensive buffs to shield effectiveness you have added here. This discussion is rapidly becoming more trouble than it's worth, any further outbursts will result in me closing the PR. |
This comment has been minimized.
This comment has been minimized.
See the reasoning for why @Coolthulhu changed their mind on this suggestion:
|
This comment has been minimized.
This comment has been minimized.
My apologies. I get now that you are suggesting nerfing weapon blocking as an alternative to buffing small shield blocking. Either way accomplishes the stated goal of making smaller shields more effective than weapon blocking, and less effective than blocking with larger shields. However, I am not sure if it is beneficial to gameplay and realism to reduce the effectiveness of weapon blocking. |
This comment has been minimized.
This comment has been minimized.
|
Do you have an alternative to propose? The buff you're proposing to shields is not ok, and you don't want to nerf any blocking ability for some unstated reason. That leaves us at an impasse. |
This comment has been minimized.
This comment has been minimized.
Narquois
commented
Aug 11, 2017
•
|
The proposed change is a rebalance rather than a buff since it trades superior blocking ability for increased encumbrance and thus a speed and stamina penalty.
The scenario increases speed from 94 to 109 and stamina cost from 0 to 6, it also limits the types of weapons you can wield, thus the penalty is rather significant.
Removing weapon blocking is not realistic. Having a pointy stick (spear or sword) between you and an aggressor will limit their opportunity for an attack. Not considering offense capabilities, if I had to defend myself from an attacking dog for instance, I would rather have a spear than my bare hands: the pointy stick and the length of wood would help me immensely keeping myself away from its bite. And I would rather have a shield and a sword rather than just a sword: one more obstacle a potential enemy has to work around. Alternative ideas to represent the usefulness of a shield:
|
This comment has been minimized.
This comment has been minimized.
I think you underestimate the drawbacks increased arm encumbrance gives.
Moreover, while blocking could warrant an overall nerf, blocking with shields still should be more effective relative to blocking with a basic weapon. You are approaching this from the wrong angle, and your methods of arguing in favor of alternatives have been extremely impolite throughout this entire discussion. @Coolthulhu and I were on the same page here and had a reasonable idea of what would fit both game balance and realism, before you derailed discussion entirely. Put simply, I have advocated what would be the best solution here in my opinion. Your claims that this is not the best solution is in turn your opinion. And there are valid reasons not to remove weapon blocking entirely.
Moreover, you seem to dislike the idea of making the problematic shields more effective for some unstated reason. You can either nerf weapon blocking relative to smaller shields, or buff small shield blocking relative to weapons. But if you are going to present fallacious reasoning for the method you favor, and disregard out of hand all reasoning others present for the alternative, then you can figure it out on your own. |
DangerNoodle
closed this
Aug 11, 2017
DangerNoodle
deleted the
DangerNoodle:block-while-worn-buff
branch
Aug 11, 2017
This comment has been minimized.
This comment has been minimized.
|
Have your tantrums elsewhere, youre no longer welcome in this project. |
This comment has been minimized.
This comment has been minimized.
|
I'm sorry but from an outsider's perspective it looks like you asked for an example, they provided one and they got understandably exasperated when you asked for more. It seems pretty clear the benefit, just from the first example given. With a few thumbs up I don't seem to be the only one thinking it's a good idea. You'd start getting an attitude too if you had to reexplain things a dozen times. |
This comment has been minimized.
This comment has been minimized.
tmesser
commented
Sep 10, 2017
|
Kevin, seriously, this is not the correct way to run any project, let alone one that relies so heavily on the engagement and interest of its base. |
This comment has been minimized.
This comment has been minimized.
heavensblade23
commented
Sep 10, 2017
|
The only person I see throwing a tantrum here is you know who. No wonder CDDA keeps getting worse with time. |
This comment has been minimized.
This comment has been minimized.
That is not true. Just compare 0.C and latest experimental. |
DangerNoodle commentedJul 27, 2017
•
edited
This pull request implements 1 additional levels of WBLOCK for shields to make use of. WBLOCK_3 has been reduced from a block bonus of 10 to 8, making each step up a consistent increase. WBLOCK_4 has the same bonus of 10 that was formerly used by WBLOCK_3, and is used by the larger shields so they retain the same block bonus.
In addition, arm encumbrance of all shields have been increased, with the most bulky, easily made shields having the high encumbrance.
Net effects of this are that smaller shields gain both a valid advantage gained by using them, and a more noticeable disadvantage in exchange. Larger shields, which are already advantageous to use, retain the same blocking ability they have in the status quo. In fact they too have had their encumbrance increased, consistent with how much more damage their higher bonus resists.
The reasoning is twofold. First, blocking with a shield is generally easier than deflecting attacks by parrying, especially by someone that lacks training. The second reason is that almost all proper weapons have WBLOCK_1, meaning most shields provide encumbrance and preclude using weapons two-handed for no actual benefit, over using a weapon to block.