First adaptation pass
This commit is contained in:
+102
-2
@@ -1,4 +1,105 @@
|
||||
/**
|
||||
* Weapon types based on Prism RPG rules
|
||||
* APC determines weapon class: Light (1 APC), One-Handed (2 APC), Heavy (3 APC)
|
||||
*/
|
||||
export const TYPE = Object.freeze({
|
||||
light: {
|
||||
id: "light",
|
||||
label: "PRISMRPG.Weapon.Type.light",
|
||||
apc: 1,
|
||||
hands: 1
|
||||
},
|
||||
oneHanded: {
|
||||
id: "oneHanded",
|
||||
label: "PRISMRPG.Weapon.Type.oneHanded",
|
||||
apc: 2,
|
||||
hands: 1
|
||||
},
|
||||
heavy: {
|
||||
id: "heavy",
|
||||
label: "PRISMRPG.Weapon.Type.heavy",
|
||||
apc: 3,
|
||||
hands: 2
|
||||
},
|
||||
projectile: {
|
||||
id: "projectile",
|
||||
label: "PRISMRPG.Weapon.Type.projectile",
|
||||
apc: 0, // Variable based on specific weapon
|
||||
hands: 2
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Weapon groups and their associated passives
|
||||
* Each weapon belongs to a group and possesses its passive while wielded
|
||||
*/
|
||||
export const WEAPON_GROUP = Object.freeze({
|
||||
longsword: {
|
||||
id: "longsword",
|
||||
label: "PRISMRPG.Weapon.WeaponGroup.longsword",
|
||||
passive: "turningEdge",
|
||||
passiveLabel: "PRISMRPG.Weapon.Passive.turningEdge",
|
||||
passiveDescription: "PRISMRPG.Weapon.PassiveDescription.turningEdge"
|
||||
},
|
||||
warhammer: {
|
||||
id: "warhammer",
|
||||
label: "PRISMRPG.Weapon.WeaponGroup.warhammer",
|
||||
passive: "puncturingBlows",
|
||||
passiveLabel: "PRISMRPG.Weapon.Passive.puncturingBlows",
|
||||
passiveDescription: "PRISMRPG.Weapon.PassiveDescription.puncturingBlows"
|
||||
},
|
||||
battleaxe: {
|
||||
id: "battleaxe",
|
||||
label: "PRISMRPG.Weapon.WeaponGroup.battleaxe",
|
||||
passive: "shieldEater",
|
||||
passiveLabel: "PRISMRPG.Weapon.Passive.shieldEater",
|
||||
passiveDescription: "PRISMRPG.Weapon.PassiveDescription.shieldEater"
|
||||
},
|
||||
dagger: {
|
||||
id: "dagger",
|
||||
label: "PRISMRPG.Weapon.WeaponGroup.dagger",
|
||||
passive: "balancingStance",
|
||||
passiveLabel: "PRISMRPG.Weapon.Passive.balancingStance",
|
||||
passiveDescription: "PRISMRPG.Weapon.PassiveDescription.balancingStance"
|
||||
},
|
||||
crossbow: {
|
||||
id: "crossbow",
|
||||
label: "PRISMRPG.Weapon.WeaponGroup.crossbow",
|
||||
passive: "boltlock",
|
||||
passiveLabel: "PRISMRPG.Weapon.Passive.boltlock",
|
||||
passiveDescription: "PRISMRPG.Weapon.PassiveDescription.boltlock"
|
||||
},
|
||||
longbow: {
|
||||
id: "longbow",
|
||||
label: "PRISMRPG.Weapon.WeaponGroup.longbow",
|
||||
passive: "volleyFire",
|
||||
passiveLabel: "PRISMRPG.Weapon.Passive.volleyFire",
|
||||
passiveDescription: "PRISMRPG.Weapon.PassiveDescription.volleyFire"
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Damage types for weapons
|
||||
*/
|
||||
export const DAMAGE_TYPE = Object.freeze({
|
||||
piercing: {
|
||||
id: "piercing",
|
||||
label: "PRISMRPG.Weapon.DamageType.piercing",
|
||||
abbreviation: "P"
|
||||
},
|
||||
bludgeoning: {
|
||||
id: "bludgeoning",
|
||||
label: "PRISMRPG.Weapon.DamageType.bludgeoning",
|
||||
abbreviation: "B"
|
||||
},
|
||||
slashing: {
|
||||
id: "slashing",
|
||||
label: "PRISMRPG.Weapon.DamageType.slashing",
|
||||
abbreviation: "S"
|
||||
}
|
||||
});
|
||||
|
||||
// Legacy exports for backward compatibility (to be removed later)
|
||||
export const WEAPON_TYPE = {
|
||||
"melee": "PRISMRPG.Weapon.WeaponType.melee",
|
||||
"ranged": "PRISMRPG.Weapon.WeaponType.ranged"
|
||||
@@ -16,7 +117,7 @@ export const WEAPON_CLASS = {
|
||||
"sling": "PRISMRPG.Weapon.WeaponClass.sling",
|
||||
"thrown": "PRISMRPG.Weapon.WeaponClass.thrown",
|
||||
"polearm": "PRISMRPG.Weapon.WeaponClass.polearm",
|
||||
"unarmed" : "PRISMRPG.Weapon.WeaponClass.unarmed"
|
||||
"unarmed": "PRISMRPG.Weapon.WeaponClass.unarmed"
|
||||
}
|
||||
|
||||
export const WEAPON_CATEGORIES = {
|
||||
@@ -32,4 +133,3 @@ export const WEAPON_CATEGORIES = {
|
||||
"thrown": ["axe", "hammer", "mace", "flail", "bow", "sling", "polearm"],
|
||||
"polearm": ["axe", "hammer", "mace", "flail", "bow", "sling", "thrown"]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user