package d2enum //go:generate stringer -linecomment -type WeaponClass -output weapon_class_string.go //go:generate string2enum -samepkg -linecomment -type WeaponClass -output weapon_class_string2enum.go // WeaponClass represents a weapon class type WeaponClass int // Weapon classes const ( WeaponClassNone WeaponClass = iota // WeaponClassHandToHand // hth WeaponClassBow // bow WeaponClassOneHandSwing // 1hs WeaponClassOneHandThrust // 1ht WeaponClassStaff // stf WeaponClassTwoHandSwing // 2hs WeaponClassTwoHandThrust // 2ht WeaponClassCrossbow // xbw WeaponClassLeftJabRightSwing // 1js WeaponClassLeftJabRightThrust // 1jt WeaponClassLeftSwingRightSwing // 1ss WeaponClassLeftSwingRightThrust // 1st WeaponClassOneHandToHand // ht1 WeaponClassTwoHandToHand // ht2 ) // Name returns a full name of weapon class func (w WeaponClass) Name() string { strings := map[WeaponClass]string{ WeaponClassNone: "None", WeaponClassHandToHand: "Hand To Hand", WeaponClassBow: "Bow", WeaponClassOneHandSwing: "One Hand Swing", WeaponClassOneHandThrust: "One Hand Thrust", WeaponClassStaff: "Staff", WeaponClassTwoHandSwing: "Two Hand Swing", WeaponClassTwoHandThrust: "Two Hand Thrust", WeaponClassCrossbow: "Crossbow", WeaponClassLeftJabRightSwing: "Left Jab Right Swing", WeaponClassLeftJabRightThrust: "Left Jab Right Thrust", WeaponClassLeftSwingRightSwing: "Left Swing Right Swing", WeaponClassLeftSwingRightThrust: "Left Swing Right Thrust", WeaponClassOneHandToHand: "One Hand To Hand", WeaponClassTwoHandToHand: "Two Hand To Hand", } weaponClass, found := strings[w] if !found { return unknown } return weaponClass }