Add data structures, it requires tons of refactor but it's more or less working

This commit is contained in:
Héctor Giménez
2023-03-11 21:28:33 +09:00
parent 73978a702c
commit 8600c2e2f6
17 changed files with 4383 additions and 0 deletions

60
pkg/data/item/class.go Normal file
View File

@@ -0,0 +1,60 @@
package item
import "strings"
var classMapping = map[string][]string{
"Axes": {"HandAxe", "Axe", "DoubleAxe", "MilitaryPick", "WarAxe", "LargeAxe", "BroadAxe", "BattleAxe", "GreatAxe", "GiantAxe", "Hatchet", "Cleaver", "TwinAxe", "Crowbill", "Naga", "MilitaryAxe", "BeardedAxe", "Tabar", "GothicAxe", "AncientAxe", "Tomahawk", "SmallCrescent", "EttinAxe", "WarSpike", "BerserkerAxe", "FeralAxe", "SilverEdgedAxe", "Decapitator", "ChampionAxe", "GloriousAxe"},
"Wands": {"Wand", "YewWand", "BoneWand", "GrimWand", "BurntWand", "PetrifiedWand", "TombWand", "GraveWand", "PolishedWand", "GhostWand", "LichWand", "UnearthedWand"},
"Clubs": {"Club", "SpikedClub", "Cudgel", "BarbedClub", "Truncheon", "TyrantClub"},
"Scepters": {"Scepter", "GrandScepter", "WarScepter", "RuneScepter", "HolyWaterSprinkler", "DivineScepter", "MightyScepter", "SeraphRod", "Caduceus"},
"Maces": {"Mace", "MorningStar", "Flail", "FlangedMace", "JaggedStar", "Knout", "ReinforcedMace", "DevilStar", "Scourge"},
"Hammers": {"WarHammer", "Maul", "GreatMaul", "BattleHammer", "WarClub", "MartelDeFer", "LegendaryMallet", "OgreMaul", "ThunderMaul"},
"Swords": {"ShortSword", "Scimitar", "Sabre", "Falchion", "CrystalSword", "BroadSword", "LongSword", "WarSword", "TwoHandedSword", "Claymore", "GiantSword", "BastardSword", "Flamberge", "GreatSword", "Gladius", "Cutlass", "Shamshir", "Tulwar", "DimensionalBlade", "BattleSword", "RuneSword", "AncientSword", "Espandon", "DacianFalx", "TuskSword", "GothicSword", "Zweihander", "ExecutionerSword", "Falcata", "Ataghan", "ElegantBlade", "HydraEdge", "PhaseBlade", "ConquestSword", "CrypticSword", "MythicalSword", "LegendSword", "HighlandBlade", "BalrogBlade", "ChampionSword", "ColossusSword", "ColossusBlade"},
"Daggers": {"Dagger", "Dirk", "Kris", "Blade", "Poignard", "Rondel", "Cinquedeas", "Stiletto", "BoneKnife", "MithrilPoint", "FangedKnife", "LegendSpike"},
"ThrowingKnifes": {"ThrowingKnife", "BalancedKnife", "BattleDart", "WarDart", "FlyingKnife", "WingedKnife"},
"ThrowingAxes": {"ThrowingAxe", "BalancedAxe", "Francisca", "Hurlbat", "FlyingAxe", "WingedAxe"},
"Javelins": {"Javelin", "Pilum", "ShortSpear", "Glaive", "ThrowingSpear", "WarJavelin", "GreatPilum", "Simbilan", "Spiculum", "Harpoon", "HyperionJavelin", "StygianPilum", "BalrogSpear", "GhostGlaive", "WingedHarpoon"},
"Spears": {"Spear", "Trident", "Brandistock", "Spetum", "Pike", "WarSpear", "Fuscina", "WarFork", "Yari", "Lance", "HyperionSpear", "StygianPike", "Mancatcher", "GhostSpear", "WarPike"},
"Polearms": {"Bardiche", "Voulge", "Scythe", "Poleaxe", "Halberd", "WarScythe", "LochaberAxe", "Bill", "BattleScythe", "Partizan", "BecDeCorbin", "GrimScythe", "OgreAxe", "ColossusVoulge", "Thresher", "CrypticAxe", "GreatPoleaxe", "GiantThresher"},
"Staves": {"ShortStaff", "LongStaff", "GnarledStaff", "BattleStaff", "WarStaff", "JoStaff", "QuarterStaff", "CedarStaff", "GothicStaff", "RuneStaff", "WalkingStick", "Stalagmite", "ElderStaff", "Shillelagh", "ArchonStaff"},
"Bows": {"ShortBow", "HuntersBow", "LongBow", "CompositeBow", "ShortBattleBow", "LongBattleBow", "ShortWarBow", "LongWarBow", "EdgeBow", "RazorBow", "CedarBow", "DoubleBow", "ShortSiegeBow", "LargeSiegeBow", "RuneBow", "GothicBow", "SpiderBow", "BladeBow", "ShadowBow", "GreatBow", "DiamondBow", "CrusaderBow", "WardBow", "HydraBow"},
"Crossbows": {"LightCrossbow", "Crossbow", "HeavyCrossbow", "RepeatingCrossbow", "Arbalest", "SiegeCrossbow", "Ballista", "ChuKoNu", "PelletBow", "GorgonCrossbow", "ColossusCrossbow", "DemonCrossBow"},
"Helms": {"Cap", "SkullCap", "Helm", "FullHelm", "GreatHelm", "Crown", "Mask", "BoneHelm", "WarHat", "Sallet", "Casque", "Basinet", "WingedHelm", "GrandCrown", "DeathMask", "GrimHelm", "Shako", "Hydraskull", "Armet", "GiantConch", "SpiredHelm", "Corona", "DemonHead", "BoneVisage"},
"Armors": {"QuiltedArmor", "LeatherArmor", "HardLeatherArmor", "StuddedLeather", "RingMail", "ScaleMail", "ChainMail", "BreastPlate", "SplintMail", "PlateMail", "FieldPlate", "GothicPlate", "FullPlateMail", "AncientArmor", "LightPlate", "GhostArmor", "SerpentskinArmor", "DemonhideArmor", "TrellisedArmor", "LinkedMail", "TigulatedMail", "MeshArmor", "Cuirass", "RussetArmor", "TemplarCoat", "SharktoothArmor", "EmbossedPlate", "ChaosArmor", "OrnatePlate", "MagePlate", "DuskShroud", "Wyrmhide", "ScarabHusk", "WireFleece", "DiamondMail", "LoricatedMail", "Boneweave", "GreatHauberk", "BalrogSkin", "HellforgePlate", "KrakenShell", "LacqueredPlate", "ShadowPlate", "SacredArmor", "ArchonPlate"},
"Shields": {"Buckler", "SmallShield", "LargeShield", "KiteShield", "TowerShield", "GothicShield", "BoneShield", "SpikedShield", "Defender", "RoundShield", "Scutum", "DragonShield", "Pavise", "AncientShield", "GrimShield", "BarbedShield", "Heater", "Luna", "Hyperion", "Monarch", "Aegis", "Ward", "TrollNest", "BladeBarrier"},
"Gloves": {"LeatherGloves", "HeavyGloves", "ChainGloves", "LightGauntlets", "Gauntlets", "DemonhideGloves", "SharkskinGloves", "HeavyBracers", "BattleGauntlets", "WarGauntlets", "BrambleMitts", "VampireboneGloves", "Vambraces", "CrusaderGauntlets", "OgreGauntlets"},
"Boots": {"Boots", "HeavyBoots", "ChainBoots", "LightPlatedBoots", "Greaves", "DemonhideBoots", "SharkskinBoots", "MeshBoots", "BattleBoots", "WarBoots", "WyrmhideBoots", "ScarabshellBoots", "BoneweaveBoots", "MirroredBoots", "MyrmidonGreaves"},
"Belts": {"Sash", "LightBelt", "Belt", "HeavyBelt", "PlatedBelt", "DemonhideSash", "SharkskinBelt", "MeshBelt", "BattleBelt", "WarBelt", "SpiderwebSash", "VampirefangBelt", "MithrilCoil", "TrollBelt", "ColossusGirdle"},
"Circlets": {"Circlet", "Coronet", "Tiara", "Diadem"},
"AssassinKatars": {"Katar", "WristBlade", "HatchetHands", "Cestus", "Claws", "BladeTalons", "ScissorsKatar", "Quhab", "WristSpike", "Fascia", "HandScythe", "GreaterClaws", "GreaterTalons", "ScissorsQuhab", "Suwayyah", "WristSword", "WarFist", "BattleCestus", "FeralClaws", "RunicTalons", "ScissorsSuwayyah"},
"SorceressOrbs": {"EagleOrb", "SacredGlobe", "SmokedSphere", "ClaspedOrb", "JaredsStone", "GlowingOrb", "CrystallineGlobe", "CloudySphere", "SparklingBall", "SwirlingCrystal", "HeavenlyStone", "EldritchOrb", "DemonHeart", "VortexOrb", "DimensionalShard"},
"AmazonBows": {"StagBow", "ReflexBow", "AshwoodBow", "CeremonialBow", "MatriarchalBow", "GrandMatronBow"},
"AmazonSpears": {"MaidenSpear", "MaidenPike", "CeremonialSpear", "CeremonialPike", "MatriarchalSpear", "MatriarchalPike"},
"AmazonJavelins": {"MaidenJavelin", "CeremonialJavelin", "MatriarchalJavelin"},
"DruidHelms": {"WolfHead", "HawkHelm", "Antlers", "FalconMask", "SpiritMask", "AlphaHelm", "GriffonHeaddress", "HuntersGuise", "SacredFeathers", "TotemicMask", "BloodSpirit", "SunSpirit", "EarthSpirit", "SkySpirit", "DreamSpirit"},
"BarbarianHelms": {"JawboneCap", "FangedHelm", "HornedHelm", "AssaultHelmet", "AvengerGuard", "JawboneVisor", "LionHelm", "RageMask", "SavageHelmet", "SlayerGuard", "CarnageHelm", "FuryVisor", "DestroyerHelm", "ConquerorCrown", "GuardianCrown"},
"PaladinShields": {"Targe", "Rondache", "HeraldicShield", "AerinShield", "CrownShield", "AkaranTarge", "AkaranRondache", "ProtectorShield", "GildedShield", "RoyalShield", "SacredTarge", "SacredRondache", "KurastShield", "ZakarumShield", "VortexShield"},
"NecromancerShields": {"PreservedHead", "ZombieHead", "UnravellerHead", "GargoyleHead", "DemonHeadShield", "MummifiedTrophy", "FetishTrophy", "SextonTrophy", "CantorTrophy", "HierophantTrophy", "MinionSkull", "HellspawnSkull", "OverseerSkull", "SuccubusSkull", "BloodlordSkull"},
}
func IsClass(itemClass string) bool {
for class := range classMapping {
if strings.EqualFold(itemClass, class) {
return true
}
}
return false
}
func ClassForItemName(itemName string) (string, bool) {
for class, itemNames := range classMapping {
for _, name := range itemNames {
if strings.EqualFold(itemName, name) {
return class, true
}
}
}
return "", false
}

677
pkg/data/item/name.go Normal file
View File

@@ -0,0 +1,677 @@
package item
const (
ScrollOfTownPortal = "ScrollOfTownPortal"
ScrollOfIdentify = "ScrollOfIdentify"
TomeOfTownPortal = "TomeOfTownPortal"
TomeOfIdentify = "TomeOfIdentify"
Key = "Key"
)
func GetNameByEnum(itemNumber uint) Name {
return Name(available[itemNumber])
}
type Name string
var available = []string{
"HandAxe",
"Axe",
"DoubleAxe",
"MilitaryPick",
"WarAxe",
"LargeAxe",
"BroadAxe",
"BattleAxe",
"GreatAxe",
"GiantAxe",
"Wand",
"YewWand",
"BoneWand",
"GrimWand",
"Club",
"Scepter",
"GrandScepter",
"WarScepter",
"SpikedClub",
"Mace",
"MorningStar",
"Flail",
"WarHammer",
"Maul",
"GreatMaul",
"ShortSword",
"Scimitar",
"Sabre",
"Falchion",
"CrystalSword",
"BroadSword",
"LongSword",
"WarSword",
"TwoHandedSword",
"Claymore",
"GiantSword",
"BastardSword",
"Flamberge",
"GreatSword",
"Dagger",
"Dirk",
"Kris",
"Blade",
"ThrowingKnife",
"ThrowingAxe",
"BalancedKnife",
"BalancedAxe",
"Javelin",
"Pilum",
"ShortSpear",
"Glaive",
"ThrowingSpear",
"Spear",
"Trident",
"Brandistock",
"Spetum",
"Pike",
"Bardiche",
"Voulge",
"Scythe",
"Poleaxe",
"Halberd",
"WarScythe",
"ShortStaff",
"LongStaff",
"GnarledStaff",
"BattleStaff",
"WarStaff",
"ShortBow",
"HuntersBow",
"LongBow",
"CompositeBow",
"ShortBattleBow",
"LongBattleBow",
"ShortWarBow",
"LongWarBow",
"LightCrossbow",
"Crossbow",
"HeavyCrossbow",
"RepeatingCrossbow",
"RancidGasPotion",
"OilPotion",
"ChokingGasPotion",
"ExplodingPotion",
"StranglingGasPotion",
"FulminatingPotion",
"DecoyGidbinn",
"TheGidbinn",
"WirtsLeg",
"HoradricMalus",
"HellforgeHammer",
"HoradricStaff",
"StaffOfKings",
"Hatchet",
"Cleaver",
"TwinAxe",
"Crowbill",
"Naga",
"MilitaryAxe",
"BeardedAxe",
"Tabar",
"GothicAxe",
"AncientAxe",
"BurntWand",
"PetrifiedWand",
"TombWand",
"GraveWand",
"Cudgel",
"RuneScepter",
"HolyWaterSprinkler",
"DivineScepter",
"BarbedClub",
"FlangedMace",
"JaggedStar",
"Knout",
"BattleHammer",
"WarClub",
"MartelDeFer",
"Gladius",
"Cutlass",
"Shamshir",
"Tulwar",
"DimensionalBlade",
"BattleSword",
"RuneSword",
"AncientSword",
"Espandon",
"DacianFalx",
"TuskSword",
"GothicSword",
"Zweihander",
"ExecutionerSword",
"Poignard",
"Rondel",
"Cinquedeas",
"Stiletto",
"BattleDart",
"Francisca",
"WarDart",
"Hurlbat",
"WarJavelin",
"GreatPilum",
"Simbilan",
"Spiculum",
"Harpoon",
"WarSpear",
"Fuscina",
"WarFork",
"Yari",
"Lance",
"LochaberAxe",
"Bill",
"BattleScythe",
"Partizan",
"BecDeCorbin",
"GrimScythe",
"JoStaff",
"QuarterStaff",
"CedarStaff",
"GothicStaff",
"RuneStaff",
"EdgeBow",
"RazorBow",
"CedarBow",
"DoubleBow",
"ShortSiegeBow",
"LargeSiegeBow",
"RuneBow",
"GothicBow",
"Arbalest",
"SiegeCrossbow",
"Ballista",
"ChuKoNu",
"KhalimsFlail",
"KhalimsWill",
"Katar",
"WristBlade",
"HatchetHands",
"Cestus",
"Claws",
"BladeTalons",
"ScissorsKatar",
"Quhab",
"WristSpike",
"Fascia",
"HandScythe",
"GreaterClaws",
"GreaterTalons",
"ScissorsQuhab",
"Suwayyah",
"WristSword",
"WarFist",
"BattleCestus",
"FeralClaws",
"RunicTalons",
"ScissorsSuwayyah",
"Tomahawk",
"SmallCrescent",
"EttinAxe",
"WarSpike",
"BerserkerAxe",
"FeralAxe",
"SilverEdgedAxe",
"Decapitator",
"ChampionAxe",
"GloriousAxe",
"PolishedWand",
"GhostWand",
"LichWand",
"UnearthedWand",
"Truncheon",
"MightyScepter",
"SeraphRod",
"Caduceus",
"TyrantClub",
"ReinforcedMace",
"DevilStar",
"Scourge",
"LegendaryMallet",
"OgreMaul",
"ThunderMaul",
"Falcata",
"Ataghan",
"ElegantBlade",
"HydraEdge",
"PhaseBlade",
"ConquestSword",
"CrypticSword",
"MythicalSword",
"LegendSword",
"HighlandBlade",
"BalrogBlade",
"ChampionSword",
"ColossusSword",
"ColossusBlade",
"BoneKnife",
"MithrilPoint",
"FangedKnife",
"LegendSpike",
"FlyingKnife",
"FlyingAxe",
"WingedKnife",
"WingedAxe",
"HyperionJavelin",
"StygianPilum",
"BalrogSpear",
"GhostGlaive",
"WingedHarpoon",
"HyperionSpear",
"StygianPike",
"Mancatcher",
"GhostSpear",
"WarPike",
"OgreAxe",
"ColossusVoulge",
"Thresher",
"CrypticAxe",
"GreatPoleaxe",
"GiantThresher",
"WalkingStick",
"Stalagmite",
"ElderStaff",
"Shillelagh",
"ArchonStaff",
"SpiderBow",
"BladeBow",
"ShadowBow",
"GreatBow",
"DiamondBow",
"CrusaderBow",
"WardBow",
"HydraBow",
"PelletBow",
"GorgonCrossbow",
"ColossusCrossbow",
"DemonCrossBow",
"EagleOrb",
"SacredGlobe",
"SmokedSphere",
"ClaspedOrb",
"JaredsStone",
"StagBow",
"ReflexBow",
"MaidenSpear",
"MaidenPike",
"MaidenJavelin",
"GlowingOrb",
"CrystallineGlobe",
"CloudySphere",
"SparklingBall",
"SwirlingCrystal",
"AshwoodBow",
"CeremonialBow",
"CeremonialSpear",
"CeremonialPike",
"CeremonialJavelin",
"HeavenlyStone",
"EldritchOrb",
"DemonHeart",
"VortexOrb",
"DimensionalShard",
"MatriarchalBow",
"GrandMatronBow",
"MatriarchalSpear",
"MatriarchalPike",
"MatriarchalJavelin",
"Cap",
"SkullCap",
"Helm",
"FullHelm",
"GreatHelm",
"Crown",
"Mask",
"QuiltedArmor",
"LeatherArmor",
"HardLeatherArmor",
"StuddedLeather",
"RingMail",
"ScaleMail",
"ChainMail",
"BreastPlate",
"SplintMail",
"PlateMail",
"FieldPlate",
"GothicPlate",
"FullPlateMail",
"AncientArmor",
"LightPlate",
"Buckler",
"SmallShield",
"LargeShield",
"KiteShield",
"TowerShield",
"GothicShield",
"LeatherGloves",
"HeavyGloves",
"ChainGloves",
"LightGauntlets",
"Gauntlets",
"Boots",
"HeavyBoots",
"ChainBoots",
"LightPlatedBoots",
"Greaves",
"Sash",
"LightBelt",
"Belt",
"HeavyBelt",
"PlatedBelt",
"BoneHelm",
"BoneShield",
"SpikedShield",
"WarHat",
"Sallet",
"Casque",
"Basinet",
"WingedHelm",
"GrandCrown",
"DeathMask",
"GhostArmor",
"SerpentskinArmor",
"DemonhideArmor",
"TrellisedArmor",
"LinkedMail",
"TigulatedMail",
"MeshArmor",
"Cuirass",
"RussetArmor",
"TemplarCoat",
"SharktoothArmor",
"EmbossedPlate",
"ChaosArmor",
"OrnatePlate",
"MagePlate",
"Defender",
"RoundShield",
"Scutum",
"DragonShield",
"Pavise",
"AncientShield",
"DemonhideGloves",
"SharkskinGloves",
"HeavyBracers",
"BattleGauntlets",
"WarGauntlets",
"DemonhideBoots",
"SharkskinBoots",
"MeshBoots",
"BattleBoots",
"WarBoots",
"DemonhideSash",
"SharkskinBelt",
"MeshBelt",
"BattleBelt",
"WarBelt",
"GrimHelm",
"GrimShield",
"BarbedShield",
"WolfHead",
"HawkHelm",
"Antlers",
"FalconMask",
"SpiritMask",
"JawboneCap",
"FangedHelm",
"HornedHelm",
"AssaultHelmet",
"AvengerGuard",
"Targe",
"Rondache",
"HeraldicShield",
"AerinShield",
"CrownShield",
"PreservedHead",
"ZombieHead",
"UnravellerHead",
"GargoyleHead",
"DemonHeadShield",
"Circlet",
"Coronet",
"Tiara",
"Diadem",
"Shako",
"Hydraskull",
"Armet",
"GiantConch",
"SpiredHelm",
"Corona",
"DemonHead",
"DuskShroud",
"Wyrmhide",
"ScarabHusk",
"WireFleece",
"DiamondMail",
"LoricatedMail",
"Boneweave",
"GreatHauberk",
"BalrogSkin",
"HellforgePlate",
"KrakenShell",
"LacqueredPlate",
"ShadowPlate",
"SacredArmor",
"ArchonPlate",
"Heater",
"Luna",
"Hyperion",
"Monarch",
"Aegis",
"Ward",
"BrambleMitts",
"VampireboneGloves",
"Vambraces",
"CrusaderGauntlets",
"OgreGauntlets",
"WyrmhideBoots",
"ScarabshellBoots",
"BoneweaveBoots",
"MirroredBoots",
"MyrmidonGreaves",
"SpiderwebSash",
"VampirefangBelt",
"MithrilCoil",
"TrollBelt",
"ColossusGirdle",
"BoneVisage",
"TrollNest",
"BladeBarrier",
"AlphaHelm",
"GriffonHeaddress",
"HuntersGuise",
"SacredFeathers",
"TotemicMask",
"JawboneVisor",
"LionHelm",
"RageMask",
"SavageHelmet",
"SlayerGuard",
"AkaranTarge",
"AkaranRondache",
"ProtectorShield",
"GildedShield",
"RoyalShield",
"MummifiedTrophy",
"FetishTrophy",
"SextonTrophy",
"CantorTrophy",
"HierophantTrophy",
"BloodSpirit",
"SunSpirit",
"EarthSpirit",
"SkySpirit",
"DreamSpirit",
"CarnageHelm",
"FuryVisor",
"DestroyerHelm",
"ConquerorCrown",
"GuardianCrown",
"SacredTarge",
"SacredRondache",
"KurastShield",
"ZakarumShield",
"VortexShield",
"MinionSkull",
"HellspawnSkull",
"OverseerSkull",
"SuccubusSkull",
"BloodlordSkull",
"Elixir",
"INVALID509",
"INVALID510",
"INVALID511",
"INVALID512",
"StaminaPotion",
"AntidotePotion",
"RejuvenationPotion",
"FullRejuvenationPotion",
"ThawingPotion",
"TomeOfTownPortal",
"TomeOfIdentify",
"Amulet",
"AmuletOfTheViper",
"Ring",
"Gold",
"ScrollOfInifuss",
"KeyToTheCairnStones",
"Arrows",
"Torch",
"Bolts",
"ScrollOfTownPortal",
"ScrollOfIdentify",
"Heart",
"Brain",
"Jawbone",
"Eye",
"Horn",
"Tail",
"Flag",
"Fang",
"Quill",
"Soul",
"Scalp",
"Spleen",
"Key",
"TheBlackTowerKey",
"PotionOfLife",
"AJadeFigurine",
"TheGoldenBird",
"LamEsensTome",
"HoradricCube",
"HoradricScroll",
"MephistosSoulstone",
"BookOfSkill",
"KhalimsEye",
"KhalimsHeart",
"KhalimsBrain",
"Ear",
"ChippedAmethyst",
"FlawedAmethyst",
"Amethyst",
"FlawlessAmethyst",
"PerfectAmethyst",
"ChippedTopaz",
"FlawedTopaz",
"Topaz",
"FlawlessTopaz",
"PerfectTopaz",
"ChippedSapphire",
"FlawedSapphire",
"Sapphire",
"FlawlessSapphire",
"PerfectSapphire",
"ChippedEmerald",
"FlawedEmerald",
"Emerald",
"FlawlessEmerald",
"PerfectEmerald",
"ChippedRuby",
"FlawedRuby",
"Ruby",
"FlawlessRuby",
"PerfectRuby",
"ChippedDiamond",
"FlawedDiamond",
"Diamond",
"FlawlessDiamond",
"PerfectDiamond",
"MinorHealingPotion",
"LightHealingPotion",
"HealingPotion",
"GreaterHealingPotion",
"SuperHealingPotion",
"MinorManaPotion",
"LightManaPotion",
"ManaPotion",
"GreaterManaPotion",
"SuperManaPotion",
"ChippedSkull",
"FlawedSkull",
"Skull",
"FlawlessSkull",
"PerfectSkull",
"Herb",
"SmallCharm",
"LargeCharm",
"GrandCharm",
"INVALID606",
"INVALID607",
"INVALID608",
"INVALID609",
"ElRune",
"EldRune",
"TirRune",
"NefRune",
"EthRune",
"IthRune",
"TalRune",
"RalRune",
"OrtRune",
"ThulRune",
"AmnRune",
"SolRune",
"ShaelRune",
"DolRune",
"HelRune",
"IoRune",
"LumRune",
"KoRune",
"FalRune",
"LemRune",
"PulRune",
"UmRune",
"MalRune",
"IstRune",
"GulRune",
"VexRune",
"OhmRune",
"LoRune",
"SurRune",
"BerRune",
"JahRune",
"ChamRune",
"ZodRune",
"Jewel",
"MalahsPotion",
"ScrollOfKnowledge",
"ScrollOfResistance",
"KeyOfTerror",
"KeyOfHate",
"KeyOfDestruction",
"DiablosHorn",
"BaalsEye",
"MephistosBrain",
"TokenofAbsolution",
"TwistedEssenceOfSuffering",
"ChargedEssenceOfHatred",
"BurningEssenceOfTerror",
"FesteringEssenceOfDestruction",
"StandardOfHeroes",
}

31
pkg/data/item/quality.go Normal file
View File

@@ -0,0 +1,31 @@
package item
type Quality int
const (
QualityNormal Quality = 0x02
QualitySuperior Quality = 0x03
QualityMagic Quality = 0x04
QualitySet Quality = 0x05
QualityRare Quality = 0x06
QualityUnique Quality = 0x07
)
func (q Quality) ToString() string {
switch q {
case QualityNormal:
return "Normal"
case QualitySuperior:
return "Superior"
case QualityMagic:
return "Magic"
case QualitySet:
return "Set"
case QualityRare:
return "Rare"
case QualityUnique:
return "Unique"
}
return "UnknownItemQuality"
}