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

    var id: Int
    var parentId: Int?
    var name: String
    var icon: String?
    var type: WType
    var depths: [Bool]?
    var children = [Weapon]()

            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 {
