             return [.greatSword, .longSword, .swordAndShield, .dualBlades, .hammer, .huntingHorm,
                     .lance, .gunlance, .switchAxe, .chargeBlade, .insectGlaive, .lightBowgun, .heavyBowgun,
                     .bow]
+        }
+        
+        var imagePrefix: String {
+            switch self {
+            case .greatSword: return "great_sword"
+            case .longSword: return "long_sword"
+            case .swordAndShield: return "sword_and_shield"
+            case .dualBlades: return "dual_blades"
+            case .hammer: return "hammer"
+            case .huntingHorm: return "hunting_horn"
+            case .lance: return "lance"
+            case .gunlance: return "gunlance"
+            case .switchAxe: return "switch_axe"
+            case .chargeBlade: return "charge_blade"
+            case .insectGlaive: return "insect_glaive"
+            case .lightBowgun: return "light_bowgun"
+            case .heavyBowgun: return "heavy_bowgun"
+            case .bow: return "bow"
+            case .unknown: return ""
+            }
         }
         
         var imageName: String {

    var upgradeCost: Int?
    var sell: Int?
    var affinity: Int?
    
    // specific to weapon type
    var recoil: String?

    var id: Int
    var parentId: Int?
    var name: String
    var icon: String? {
        return "\(type.imagePrefix)\(rarity).png"
    }
    var type: WType
    var depths: [Bool]?
    var children = [Weapon]()
