Skip to content

Commit

Permalink
d2sitems/itemdata: extract base weapon damage from item.go
Browse files Browse the repository at this point in the history
(#16)
  • Loading branch information
gucio321 committed May 19, 2021
1 parent ef69ae2 commit fe7b0d6
Show file tree
Hide file tree
Showing 3 changed files with 367 additions and 357 deletions.
338 changes: 0 additions & 338 deletions d2sitems/itemdata/item.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,344 +19,6 @@ func GetTypeID(t ItemCode) ItemTypeID {
return ItemTypeIDOther
}

// WeaponDamage contains integer ranges for any weapon's one-handed, two-handed
// (and maybe soon throwing as well?) damage.
type WeaponDamage struct {
Min int `json:"min,omitempty"`
Max int `json:"max,omitempty"`
TwoMin int `json:"twohand_min,omitempty"`
TwoMax int `json:"twohand_max,omitempty"`
}

var WeaponDamageMap = map[ItemCode]WeaponDamage{
// Axes
HandAxe: {Min: 3, Max: 6},
Axe: {Min: 4, Max: 11},
DoubleAxe: {Min: 5, Max: 13},
MilitaryPick: {Min: 7, Max: 11},
WarAxe: {Min: 10, Max: 18},
LargeAxe: {Min: 6, Max: 13},
BroadAxe: {Min: 10, Max: 18},
Hatchet: {Min: 10, Max: 21},
Cleaver: {Min: 10, Max: 33},
TwinAxe: {Min: 13, Max: 38},
Crowbill: {Min: 14, Max: 34},
Naga: {Min: 16, Max: 45},
MilitaryAxe: {Min: 14, Max: 34},
Tomahawk: {Min: 33, Max: 58},
SmallCrescent: {Min: 38, Max: 60},
EttinAxe: {Min: 33, Max: 66},
WarSpike: {Min: 30, Max: 48},
BerserkerAxe: {Min: 24, Max: 71},

// Two-Handed Axes
BattleAxe: {TwoMin: 12, TwoMax: 32},
GreatAxe: {TwoMin: 9, TwoMax: 30},
GiantAxe: {TwoMin: 22, TwoMax: 45},
BeardedAxe: {TwoMin: 21, TwoMax: 49},
Tabar: {TwoMin: 24, TwoMax: 77},
GothicAxe: {TwoMin: 18, TwoMax: 70},
AncientAxe: {TwoMin: 43, TwoMax: 85},
FeralAxe: {TwoMin: 25, TwoMax: 123},
SilverEdgedAxe: {TwoMin: 62, TwoMax: 110},
Decapitator: {TwoMin: 49, TwoMax: 137},
ChampionAxe: {TwoMin: 59, TwoMax: 94},
GloriousAxe: {TwoMin: 60, TwoMax: 124},

// Maces
Club: {Min: 1, Max: 6},
SpikedClub: {Min: 5, Max: 8},
Mace: {Min: 3, Max: 10},
MorningStar: {Min: 7, Max: 16},
Flail: {Min: 1, Max: 24},
WarHammer: {Min: 19, Max: 29},
Cudgel: {Min: 6, Max: 21},
BarbedClub: {Min: 13, Max: 25},
FlangedMace: {Min: 15, Max: 23},
JaggedStar: {Min: 20, Max: 31},
Knout: {Min: 13, Max: 35},
BattleHammer: {Min: 35, Max: 58},
Truncheon: {Min: 35, Max: 43},
TyrantClub: {Min: 32, Max: 58},
ReinforcedMace: {Min: 41, Max: 49},
DevilStar: {Min: 42, Max: 53},
Scourge: {Min: 3, Max: 80},
LegendaryMallet: {Min: 50, Max: 61},

// Two-Handed Maces
Maul: {TwoMin: 30, TwoMax: 43},
GreatMaul: {TwoMin: 38, TwoMax: 58},
WarClub: {TwoMin: 53, TwoMax: 78},
MarteldeFer: {TwoMin: 61, TwoMax: 99},
OgreMaul: {TwoMin: 77, TwoMax: 106},
ThunderMaul: {TwoMin: 33, TwoMax: 180},

// Polearms
Bardiche: {TwoMin: 1, TwoMax: 27},
Voulge: {TwoMin: 6, TwoMax: 21},
Scythe: {TwoMin: 8, TwoMax: 20},
Poleaxe: {TwoMin: 18, TwoMax: 39},
Halberd: {TwoMin: 21, TwoMax: 45},
WarScythe: {TwoMin: 15, TwoMax: 36},
LochaberAxe: {TwoMin: 6, TwoMax: 58},
Bill: {TwoMin: 14, TwoMax: 53},
BattleScythe: {TwoMin: 18, TwoMax: 45},
Partizan: {TwoMin: 34, TwoMax: 75},
BecDeCorbin: {TwoMin: 13, TwoMax: 85},
GrimScythe: {TwoMin: 30, TwoMax: 70},
OgreAxe: {TwoMin: 28, TwoMax: 145},
ColossusVoulge: {TwoMin: 17, TwoMax: 165},
Thresher: {TwoMin: 12, TwoMax: 141},
CrypticAxe: {TwoMin: 33, TwoMax: 150},
GreatPoleaxe: {TwoMin: 46, TwoMax: 127},
GiantThresher: {TwoMin: 40, TwoMax: 127},

// Swords
ShortSword: {Min: 2, Max: 7},
Scimitar: {Min: 2, Max: 6},
Sabre: {Min: 3, Max: 8},
Falchion: {Min: 9, Max: 17},
CrystalSword: {Min: 5, Max: 15},
BroadSword: {Min: 7, Max: 14},
LongSword: {Min: 3, Max: 19},
WarSword: {Min: 8, Max: 20},
Gladius: {Min: 8, Max: 22},
Cutlass: {Min: 8, Max: 21},
Shamshir: {Min: 10, Max: 24},
Tulwar: {Min: 16, Max: 35},
DimensionalBlade: {Min: 13, Max: 35},
BattleSword: {Min: 16, Max: 34},
RuneSword: {Min: 10, Max: 42},
AncientSword: {Min: 18, Max: 43},
Falcata: {Min: 31, Max: 59},
Ataghan: {Min: 26, Max: 46},
ElegantBlade: {Min: 33, Max: 45},
HydraEdge: {Min: 28, Max: 68},
PhaseBlade: {Min: 31, Max: 35},
ConquestSword: {Min: 37, Max: 53},
CrypticSword: {Min: 5, Max: 77},
MythicalSword: {Min: 40, Max: 50},

// Two-handed swords
TwoHandedSword: {Min: 2, Max: 9, TwoMin: 5, TwoMax: 17},
Claymore: {Min: 5, Max: 12, TwoMin: 13, TwoMax: 30},
GiantSword: {Min: 3, Max: 16, TwoMin: 9, TwoMax: 28},
BastardSword: {Min: 7, Max: 19, TwoMin: 20, TwoMax: 28},
Flamberge: {Min: 9, Max: 15, TwoMin: 13, TwoMax: 26},
GreatSword: {Min: 12, Max: 20, TwoMin: 25, TwoMax: 42},
Espadon: {Min: 8, Max: 26, TwoMin: 18, TwoMax: 40},
DacianFalx: {Min: 13, Max: 30, TwoMin: 26, TwoMax: 61},
TuskSword: {Min: 10, Max: 37, TwoMin: 19, TwoMax: 58},
GothicSword: {Min: 14, Max: 40, TwoMin: 39, TwoMax: 60},
Zweihander: {Min: 19, Max: 35, TwoMin: 29, TwoMax: 54},
ExecutionerSword: {Min: 24, Max: 40, TwoMin: 47, TwoMax: 80},
HighlandBlade: {Min: 22, Max: 62, TwoMin: 67, TwoMax: 96},
BalrogBlade: {Min: 15, Max: 75, TwoMin: 55, TwoMax: 118},
ChampionSword: {Min: 24, Max: 54, TwoMin: 71, TwoMax: 83},
ColossalSword: {Min: 26, Max: 70, TwoMin: 61, TwoMax: 121},
ColossalBlade: {Min: 25, Max: 65, TwoMin: 58, TwoMax: 115},

// Bows
ShortBow: {TwoMin: 1, TwoMax: 4},
HuntersBow: {TwoMin: 2, TwoMax: 6},
LongBow: {TwoMin: 3, TwoMax: 10},
CompositeBow: {TwoMin: 4, TwoMax: 8},
ShortBattleBow: {TwoMin: 3, TwoMax: 18},
ShortWarBow: {TwoMin: 6, TwoMax: 14},
LongWarBow: {TwoMin: 3, TwoMax: 23},
EdgeBow: {TwoMin: 6, TwoMax: 19},
RazorBow: {TwoMin: 8, TwoMax: 22},
CedarBow: {TwoMin: 10, TwoMax: 29},
DoubleBow: {TwoMin: 11, TwoMax: 26},
ShortSiegeBow: {TwoMin: 13, TwoMax: 30},
LongSiegeBow: {TwoMin: 10, TwoMax: 42},
RuneBow: {TwoMin: 14, TwoMax: 35},
GothicBow: {TwoMin: 10, TwoMax: 50},
SpiderBow: {TwoMin: 23, TwoMax: 50},
BladeBow: {TwoMin: 21, TwoMax: 41},
ShadowBow: {TwoMin: 15, TwoMax: 59},
GreatBow: {TwoMin: 12, TwoMax: 52},
DiamondBow: {TwoMin: 33, TwoMax: 40},
CrusaderBow: {TwoMin: 15, TwoMax: 63},
WardBow: {TwoMin: 20, TwoMax: 53},
HydraBow: {TwoMin: 10, TwoMax: 68},

// Crossbows
LightCrossbow: {TwoMin: 6, TwoMax: 9},
Crossbow: {TwoMin: 9, TwoMax: 16},
HeavyCrossbow: {TwoMin: 14, TwoMax: 26},
RepeatingCrossbow: {TwoMin: 6, TwoMax: 12},
Arbalest: {TwoMin: 14, TwoMax: 27},
SiegeCrossbow: {TwoMin: 20, TwoMax: 42},
Balista: {TwoMin: 33, TwoMax: 55},
ChuKoNu: {TwoMin: 14, TwoMax: 32},
PelletBow: {TwoMin: 28, TwoMax: 73},
GorgonCrossbow: {TwoMin: 25, TwoMax: 87},
ColossusCrossbow: {TwoMin: 32, TwoMax: 91},
DemonCrossbow: {TwoMin: 26, TwoMax: 40},

// Javelins (throw damage, should update fields)
Javelin: {Min: 6, Max: 14},
Pilum: {Min: 7, Max: 20},
ShortSpear: {Min: 10, Max: 22},
Glaive: {Min: 16, Max: 22},
ThrowingSpear: {Min: 12, Max: 30},
WarJavelin: {Min: 14, Max: 32},
GreatPilum: {Min: 16, Max: 42},
Simbilan: {Min: 27, Max: 50},
Spiculum: {Min: 32, Max: 60},
Harpoon: {Min: 18, Max: 54},
HyperionJavelin: {Min: 28, Max: 55},
StygianPilum: {Min: 21, Max: 75},
BalrogSpear: {Min: 40, Max: 62},
GhostGlaive: {Min: 30, Max: 85},
WingedHarpoon: {Min: 11, Max: 77},

// Amazon-only Weapons (throw damage, should update fields)
StagBow: {Min: 7, Max: 12},
ReflexBow: {Min: 9, Max: 19},
MaidenSpear: {Min: 18, Max: 24},
MaidenPike: {Min: 23, Max: 55},
MaidenJavelin: {Min: 6, Max: 22},
AshwoodBow: {Min: 16, Max: 29},
CeremonialBow: {Min: 19, Max: 41},
CeremonialSpear: {Min: 34, Max: 51},
CeremonialPike: {Min: 42, Max: 101},
CeremonialJavelin: {Min: 18, Max: 54},
MatriarchalBow: {Min: 20, Max: 47},
GrandMatronBow: {Min: 14, Max: 72},
MatriarchalSpear: {Min: 65, Max: 95},
MatriarchalPike: {Min: 37, Max: 153},
MatriarchalJavelin: {Min: 35, Max: 66},

// Scepters
Scepter: {Min: 6, Max: 11},
GrandScepter: {Min: 8, Max: 18},
WarScepter: {Min: 10, Max: 17},
RuneScepter: {Min: 13, Max: 24},
HolyWaterSprinkler: {Min: 14, Max: 36},
DivineScepter: {Min: 16, Max: 38},
MightyScepter: {Min: 40, Max: 52},
SeraphRod: {Min: 45, Max: 54},
Caduceus: {Min: 37, Max: 43},

// Spears
Spear: {TwoMin: 3, TwoMax: 15},
Trident: {TwoMin: 9, TwoMax: 15},
Brandistock: {TwoMin: 7, TwoMax: 17},
Spetum: {TwoMin: 15, TwoMax: 23},
Pike: {TwoMin: 14, TwoMax: 63},
WarSpear: {TwoMin: 10, TwoMax: 37},
Fuscina: {TwoMin: 19, TwoMax: 37},
WarFork: {TwoMin: 16, TwoMax: 40},
Yari: {TwoMin: 29, TwoMax: 59},
Lance: {TwoMin: 27, TwoMax: 114},
HyperionSpear: {TwoMin: 35, TwoMax: 119},
StygianPike: {TwoMin: 29, TwoMax: 144},
Mancatcher: {TwoMin: 42, TwoMax: 92},
GhostSpear: {TwoMin: 18, TwoMax: 155},
WarPike: {TwoMin: 33, TwoMax: 178},

// Throwing
ThrowingKnife: {Min: 4, Max: 9},
ThrowingAxe: {Min: 6, Max: 11},
BalancedKnife: {Min: 8, Max: 12},
BalancedAxe: {Min: 12, Max: 15},
BattleDart: {Min: 11, Max: 24},
Francisca: {Min: 14, Max: 27},
WarDart: {Min: 18, Max: 33},
Hurlbat: {Min: 24, Max: 34},
FlyingKnife: {Min: 23, Max: 54},
WingedKnife: {Min: 23, Max: 39},
FlyingAxe: {Min: 15, Max: 66},
WingedAxe: {Min: 7, Max: 60},

// Daggers
Dagger: {Min: 1, Max: 4},
Dirk: {Min: 3, Max: 9},
Kriss: {Min: 2, Max: 11},
Blade: {Min: 4, Max: 15},
Poignard: {Min: 6, Max: 18},
Rondel: {Min: 10, Max: 26},
Cinquedeas: {Min: 15, Max: 31},
Stilleto: {Min: 19, Max: 36},
BoneKnife: {Min: 23, Max: 49},
MithralPoint: {Min: 37, Max: 53},
FangedKnife: {Min: 15, Max: 57},
LegendSpike: {Min: 32, Max: 47},

// Staves
ShortStaff: {TwoMin: 1, TwoMax: 5},
LongStaff: {TwoMin: 2, TwoMax: 8},
GnarledStaff: {TwoMin: 4, TwoMax: 12},
BattleStaff: {TwoMin: 6, TwoMax: 13},
WarStaff: {TwoMin: 12, TwoMax: 28},
JoStaff: {TwoMin: 6, TwoMax: 21},
QuarterStaff: {TwoMin: 8, TwoMax: 26},
CedarStaff: {TwoMin: 11, TwoMax: 32},
GothicStaff: {TwoMin: 14, TwoMax: 34},
RuneStaff: {TwoMin: 24, TwoMax: 58},
WalkingStick: {TwoMin: 69, TwoMax: 85},
Stalagmite: {TwoMin: 75, TwoMax: 107},
ElderStaff: {TwoMin: 80, TwoMax: 93},
Shillelah: {TwoMin: 65, TwoMax: 108},
ArchonStaff: {TwoMin: 83, TwoMax: 99},

// Wands
Wand: {Min: 2, Max: 4},
YewWand: {Min: 2, Max: 8},
BoneWand: {Min: 3, Max: 7},
GrimWand: {Min: 5, Max: 11},
BurntWand: {Min: 8, Max: 18},
PetrifiedWand: {Min: 8, Max: 24},
TombWand: {Min: 10, Max: 22},
GraveWand: {Min: 13, Max: 29},
PolishedWand: {Min: 18, Max: 33},
GhostWand: {Min: 20, Max: 40},
LichWand: {Min: 10, Max: 31},
UnearthedWand: {Min: 22, Max: 28},

// Orbs
EableOrb: {Min: 2, Max: 5},
SacredGlobe: {Min: 3, Max: 8},
SmokedSphere: {Min: 4, Max: 10},
ClaspedOrb: {Min: 5, Max: 12},
DragonStone: {Min: 8, Max: 18},
GlowingOrb: {Min: 8, Max: 21},
CrystallineGlobe: {Min: 10, Max: 26},
CloudySphere: {Min: 11, Max: 29},
SparklingBall: {Min: 13, Max: 32},
SwirlingCrystal: {Min: 18, Max: 42},
HeavenlyStone: {Min: 21, Max: 46},
EldritchOrb: {Min: 18, Max: 50},
DemonHeart: {Min: 23, Max: 55},
VortexOrb: {Min: 12, Max: 66},
DimensionalShard: {Min: 30, Max: 53},

// Assassin Claws
Katar: {Min: 4, Max: 7},
WristBlade: {Min: 5, Max: 9},
HatchetHands: {Min: 2, Max: 15},
Cestus: {Min: 7, Max: 15},
Claws: {Min: 8, Max: 15},
BladeTalons: {Min: 10, Max: 14},
ScissorsKatar: {Min: 9, Max: 17},
Quhab: {Min: 11, Max: 24},
WristSpike: {Min: 13, Max: 27},
Fascia: {Min: 8, Max: 37},
HandScythe: {Min: 16, Max: 37},
GreaterClaws: {Min: 18, Max: 37},
GreaterTalons: {Min: 21, Max: 35},
ScissorsQuhab: {Min: 19, Max: 40},
Suwayyah: {Min: 39, Max: 52},
WristSword: {Min: 34, Max: 45},
WarFist: {Min: 44, Max: 53},
BattleCestus: {Min: 36, Max: 42},
FeralClaws: {Min: 22, Max: 53},
RunicTalons: {Min: 24, Max: 44},
ScissorsSuwayyah: {Min: 40, Max: 51},
}

// ItemTypeID represents an item type ID
type ItemTypeID byte

Expand Down
Loading

0 comments on commit fe7b0d6

Please sign in to comment.