-
-
Notifications
You must be signed in to change notification settings - Fork 361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues with "range" on melee weapons #508
Comments
@Rarst I think that makes sense and cleans up the data some. Especially if we already have |
That what, precisely? :) I am not sure what's the specific desired change here. |
I think your first thought was a good one. It's useful for users building VTTs, simulators, etc. to know the range of a weapon, whether or not the weapon is a ranged weapon, without having to look at other attributes (e.g. its category, whether it has the Reach property). Melee weapons still have a range, even though they aren't ranged weapons. I think it makes sense to keep |
No, the rules do not support this. Melee weapon, without thrown property, does not have a range, as defined by the rules.
So up for discussion:
|
Forgive me, I was using "range" as a synonym for "reach" here. Just casual English, not rigid rules-based semantics. To answer the points listed, (1) yes I believe there should be a "derived numeric value" for a weapon's reach; and (2) no, I don't think it adds value to sacrifice the clarity of using "range" to mean the "reach" of a weapon for the sake of being faithful to the wording in the rules, but I think simply renaming the "range" attribute for all weapons to "reach" would be a suitable compromise. The key thing to avoid, I think, is creating too much disparity between the data structure of melee and ranged weapons. |
To recap a bit, currently there are three cases in data:
Worth noting that, as quote above, there is no separate "thrown range" concept in rules. Weapon is given Range by being inherently ranged or by having thrown property. I think, to the strict language of rules, these would be:
There is also |
I think this would be a suitable compromise. |
I think if we use |
I think that's less of a rules question and more of API design question - how much of things that can be mechanically derived should still be expressed in API for frequent and convenient use. Feels like explicit melee/ranged distinction is still worth having, though |
@Rarst Oh! I see what you mean. Since we actually look at all three of these fields: "weapon_category": "Martial",
"weapon_range": "Melee",
"category_range": "Martial Melee", Which is a way to set the category. However, this is also redundant since it's setup in I wonder if it makes more sense to swap {
"index": "trident",
"name": "Trident",
"equipment_categories": [{
"index": "weapon",
"name": "Weapon",
"url": "/api/equipment-categories/weapon"
}, {
"index": "martial-melee-weapons",
"name": "Martial Melee Weapons",
"url": "/api/equipment-categories/martial-melee-weapons"
}, {
"index": "martial-weapons",
"name": "Martial Weapons",
"url": "/api/equipment-categories/martial-weapons"
}, {
"index": "melee-weapons",
"name": "Melee Weapons",
"url": "/api/equipment-categories/melee-weapons"
}],
"cost": {
"quantity": 5,
"unit": "gp"
},
"damage": {
"damage_dice": "1d6",
"damage_type": {
"index": "slashing",
"name": "Slashing",
"url": "/api/damage-types/slashing"
}
},
"reach": false,
"weight": 4,
"properties": [
{
"index": "thrown",
"name": "Thrown",
"url": "/api/weapon-properties/thrown"
},
{
"index": "versatile",
"name": "Versatile",
"url": "/api/weapon-properties/versatile"
}
],
"throw_range": {
"normal": 20,
"long": 60
},
"two_handed_damage": {
"damage_dice": "1d8",
"damage_type": {
"index": "piercing",
"name": "Piercing",
"url": "/api/damage-types/piercing"
}
},
"url": "/api/equipment/trident"
} |
This would also let us free up some other fields like |
No strong opinion on equipment categories, since these are more about API than adhering to rules. Notes on the latest example:
|
Oh right. We were just renaming that to {
"index": "trident",
"name": "Trident",
"equipment_categories": [{
"index": "weapon",
"name": "Weapon",
"url": "/api/equipment-categories/weapon"
}, {
"index": "martial-melee-weapons",
"name": "Martial Melee Weapons",
"url": "/api/equipment-categories/martial-melee-weapons"
}, {
"index": "martial-weapons",
"name": "Martial Weapons",
"url": "/api/equipment-categories/martial-weapons"
}, {
"index": "melee-weapons",
"name": "Melee Weapons",
"url": "/api/equipment-categories/melee-weapons"
}],
"cost": {
"quantity": 5,
"unit": "gp"
},
"damage": {
"damage_dice": "1d6",
"damage_type": {
"index": "slashing",
"name": "Slashing",
"url": "/api/damage-types/slashing"
}
},
"weight": 4,
"properties": [
{
"index": "thrown",
"name": "Thrown",
"url": "/api/weapon-properties/thrown"
},
{
"index": "versatile",
"name": "Versatile",
"url": "/api/weapon-properties/versatile"
}
],
"range": {
"normal": 20,
"long": 60
},
"two_handed_damage": {
"damage_dice": "1d8",
"damage_type": {
"index": "piercing",
"name": "Piercing",
"url": "/api/damage-types/piercing"
}
},
"url": "/api/equipment/trident"
} |
@fergcb What do you think? |
I don't like the idea that the consumer has to look at the equipment categories and properties to figure out what the weapon's range is. I understand that RAW, melee weapons don't have a "range" or a "reach" by default; but say I was creating a VTT powered by this API - it'd be a dream to just be able to look at one property on the equipped weapon and know which grid squares I can hit. Earlier in this thread the main objection was just the semantics - "melee weapons don't have a range because they're not ranged weapons", and I think that's fair, but it's a shame to lose useful information as a result. Otherwise, this schema looks good to me :) |
You could maybe tuck it into "range": {
"normal": 20,
"long": 60,
"reach": 10,
} That might make the most sense. Though might be weird? But that could just be the semantics term. |
Yeah, as above, there are API convenience considerations. I think it might be best to just bite the duplication and have both derived effective reach property at root (5 or 10 in feet, I vaguely remember magic weapons might extend this? even if there aren't any like that in SRD) and Reach entry in properties list. To be clear my concern isn't making API minimal, my concern is making language of the API consistent with that of the rules. :) P.S. against having reach in range because we get full circle to initial problem of melee weapons not having Range. :) |
Bit of an older topic, but improvised weapon rules are an additional complication, and also appear to be missing from the database as a weapon property or rules section:
So RAW, every melee weapon without the Improvised attack ranges shouldn't be modeled in the data for every weapon and creature weapon attack---that's on the hypothetical VTT's implementation, which can't necessarily assume that the |
I disagree that improvised use is a property of a weapon. Improvised stats are set by that rule, so they don't differ between weapons (beyond melee/ranged which is already available information). Does seem missing from the rules, probably worth a separate issue. :) |
The "Improvised Weapons" section of the SRD is a subsection of the "Weapon Properties" section (along with "Silvered Weapons" and "Special Weapons") which is the only reason why I associated it with the database's weapon properties. Improvised range, melee use, and damage are definitely very closely adjacent rules; they're not a "weapon property", but they're a property of every weapon. My point is more in agreement with yours on how using reach for (Sorry for the edits; on a phone.) |
Melee weapons in equipment currently say
"range": { "normal": 5 }
, which is iffy in some regards:My first thought was to bump this by 5ft on Reach weapons, but after a closer look range isn't accurate at all. For the record there is also a separate
throw_range
property for thrown.As far as I can see, the default reach is a rule, not an aspect of any specific weapon:
So rules-wise this is strictly binary (does weapon have Reach property), not numeric (weapon has X feet reach).
The text was updated successfully, but these errors were encountered: