{ "weapons": [ { "id": "pea_shooter", "name": "毛豆射手", "type": "single_shot", "rarity": "common", "weight": 30, "stats": { "damage": 20, "fireRate": 1.0, "range": 300, "bulletSpeed": 30, "accuracy": 0.95 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "straight", "speed": 200, "gravity": 0, "arcHeight": 0, "homingStrength": 0, "homingDelay": 0 }, "hitEffects": [ { "type": "normal_damage", "priority": 1, "params": { "damage": 20 } } ], "lifecycle": { "type": "hit_destroy", "maxLifetime": 5.0, "penetration": 1, "ricochetCount": 0, "returnToOrigin": false }, "visual": { "bulletPrefab": "bullets/PeaBullet", "hitEffect": "Animation/WeaponTx/tx0002/tx0002", "trailEffect": null, "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/001-1", "1x2": "images/PlantsSprite/001-1", "2x1": "images/PlantsSprite/001-1", "2x2": "images/PlantsSprite/001-1" }, "fireSound": "audio/pea_shot" } }, { "id": "sharp_carrot", "name": "尖胡萝卜", "type": "piercing", "rarity": "common", "weight": 25, "stats": { "damage": 15, "fireRate": 0.8, "range": 400, "bulletSpeed": 30, "accuracy": 0.9 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "straight", "speed": 250, "gravity": 0, "arcHeight": 0, "homingStrength": 0, "homingDelay": 0 }, "hitEffects": [ { "type": "pierce_damage", "priority": 1, "params": { "damage": 15, "pierceCount": 999 } } ], "lifecycle": { "type": "range_limit", "maxLifetime": 5.0, "penetration": 999, "ricochetCount": 0, "returnToOrigin": false, "maxRange": 1000 }, "visual": { "bulletPrefab": "bullets/CarrotBullet", "hitEffect": "", "trailEffect": "Animation/WeaponTx/tx0001/tx0001", "muzzleFlash": "Animation/WeaponTx/tx0001/tx0001" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/002", "1x2": "images/PlantsSprite/002", "2x1": "images/PlantsSprite/002", "2x2": "images/PlantsSprite/002" }, "fireSound": "audio/carrot_shot" } }, { "id": "saw_grass", "name": "锯齿草", "type": "ricochet_piercing", "rarity": "uncommon", "weight": 20, "stats": { "damage": 25, "fireRate": 0.6, "range": 350, "bulletSpeed": 30, "accuracy": 0.85 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "straight", "speed": 180, "gravity": 0, "arcHeight": 0, "homingStrength": 0, "homingDelay": 0 }, "hitEffects": [ { "type": "ricochet_damage", "priority": 1, "params": { "damage": 25, "ricochetCount": 2, "ricochetAngle": 45 } }, { "type": "pierce_damage", "priority": 2, "params": { "damage": 25, "pierceCount": 3 } } ], "lifecycle": { "type": "ricochet_counter", "maxLifetime": 8.0, "penetration": 3, "ricochetCount": 3, "returnToOrigin": false }, "visual": { "bulletPrefab": "bullets/SawBullet", "hitEffect": "Animation/WeaponTx/tx0002/tx0002", "trailEffect": null, "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/003", "1x2": "images/PlantsSprite/003", "2x1": "images/PlantsSprite/003", "2x2": "images/PlantsSprite/003" }, "fireSound": "audio/saw_shot" } }, { "id": "watermelon_bomb", "name": "西瓜炸弹", "type": "explosive", "rarity": "rare", "weight": 15, "stats": { "damage": 50, "fireRate": 0.4, "range": 250, "bulletSpeed": 30, "accuracy": 0.8 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "arc", "speed": 20, "gravity": 0, "rotateSpeed": 0.5, "homingStrength": 0, "homingDelay": 0 }, "hitEffects": [ { "type": "explosion", "priority": 1, "params": { "damage": 80, "radius": 100, "delay": 0.1 } } ], "lifecycle": { "type": "ground_impact", "maxLifetime": 5.0, "penetration": 1, "ricochetCount": 0, "returnToOrigin": false }, "visual": { "bulletPrefab": "bullets/WatermelonBomb", "hitEffect": "Animation/WeaponTx/tx0007/tx0007", "trailEffect": null, "muzzleFlash": "Animation/WeaponTx/tx0007/tx0007" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/007", "1x2": "images/PlantsSprite/007", "2x1": "images/PlantsSprite/007", "2x2": "images/PlantsSprite/007" }, "fireSound": "audio/bomb_launch" } }, { "id": "boomerang_plant", "name": "回旋镖盆栽", "type": "boomerang", "rarity": "uncommon", "weight": 18, "stats": { "damage": 30, "fireRate": 0.5, "range": 300, "bulletSpeed": 30, "accuracy": 0.9 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "homing", "speed": 15, "gravity": 0, "homingStrength": 0.5, "homingDelay": 0.3 }, "hitEffects": [ { "type": "pierce_damage", "priority": 1, "params": { "damage": 30, "pierceCount": 999 } } ], "lifecycle": { "type": "return_trip", "maxLifetime": 10.0, "penetration": 999, "ricochetCount": 0, "returnToOrigin": true, "returnDelay": 1.0 }, "visual": { "bulletPrefab": "bullets/BoomerangBullet", "hitEffect": "Animation/WeaponTx/tx0003/tx0003", "trailEffect": null, "muzzleFlash": "Animation/WeaponTx/tx0003/tx0003" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/004", "1x2": "images/PlantsSprite/004", "2x1": "images/PlantsSprite/004", "2x2": "images/PlantsSprite/004" }, "fireSound": "audio/boomerang_throw" } }, { "id": "hot_pepper", "name": "炙热辣椒", "type": "area_burn", "rarity": "rare", "weight": 12, "stats": { "damage": 40, "fireRate": 0.3, "range": 280, "bulletSpeed": 30, "accuracy": 0.75 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "straight", "speed": 100, "gravity": 0, "arcHeight": 0, "homingStrength": 0, "homingDelay": 0 }, "hitEffects": [ { "type": "explosion", "priority": 1, "params": { "damage": 40, "radius": 120, "delay": 0.2 } }, { "type": "ground_burn", "priority": 2, "params": { "damage": 10, "duration": 5.0, "radius": 120, "tickInterval": 0.5 } } ], "lifecycle": { "type": "ground_impact_with_effect", "maxLifetime": 5.0, "penetration": 1, "ricochetCount": 0, "returnToOrigin": false, "effectDuration": 5.0 }, "visual": { "bulletPrefab": "bullets/PepperBomb", "hitEffect": "Animation/WeaponTx/tx0005/tx0005", "trailEffect": null, "burnEffect": "Animation/WeaponTx/tx0005/tx0005", "muzzleFlash": "Animation/WeaponTx/tx0005/tx0005" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/005", "1x2": "images/PlantsSprite/005", "2x1": "images/PlantsSprite/005", "2x2": "images/PlantsSprite/005" }, "fireSound": "audio/pepper_launch" } }, { "id": "cactus_shotgun", "name": "仙人散弹", "type": "shotgun", "rarity": "uncommon", "weight": 22, "stats": { "damage": 12, "fireRate": 0.7, "range": 200, "bulletSpeed": 30, "accuracy": 0.7 }, "bulletConfig": { "count": { "type": "spread", "amount": 5, "spreadAngle": 30, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "straight", "speed": 180, "gravity": 0, "arcHeight": 0, "homingStrength": 0, "homingDelay": 0 }, "hitEffects": [ { "type": "normal_damage", "priority": 1, "params": { "damage": 12 } } ], "lifecycle": { "type": "range_limit", "maxLifetime": 3.0, "penetration": 1, "ricochetCount": 0, "returnToOrigin": false, "maxRange": 2000 }, "visual": { "bulletPrefab": "bullets/CactusBullet", "hitEffect": "Animation/WeaponTx/tx0005/tx0005", "trailEffect": null, "muzzleFlash": "Animation/WeaponTx/tx0005/tx0005" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/008", "1x2": "images/PlantsSprite/008", "2x1": "images/PlantsSprite/008", "2x2": "images/PlantsSprite/008" }, "fireSound": "audio/cactus_shot" } }, { "id": "okra_missile", "name": "秋葵导弹", "type": "homing_missile", "rarity": "epic", "weight": 8, "stats": { "damage": 70, "fireRate": 0.25, "range": 500, "bulletSpeed": 30, "accuracy": 1.0 }, "bulletConfig": { "count": { "type": "single", "amount": 1, "spreadAngle": 0, "burstCount": 1, "burstDelay": 0 }, "trajectory": { "type": "homing", "speed": 20, "gravity": 0.2, "arcHeight": 100, "homingStrength": 0.8, "homingDelay": 0.3 }, "hitEffects": [ { "type": "explosion", "priority": 1, "params": { "damage": 70, "radius": 150, "delay": 0 } } ], "lifecycle": { "type": "target_impact", "maxLifetime": 8.0, "penetration": 1, "ricochetCount": 0, "returnToOrigin": false }, "visual": { "bulletPrefab": "bullets/OkraMissile", "hitEffect": "Animation/WeaponTx/tx0006/tx0006", "trailEffect": null, "muzzleFlash": "Animation/WeaponTx/tx0006/tx0006" } }, "visualConfig": { "weaponSprites": { "1x1": "images/PlantsSprite/006", "1x2": "images/PlantsSprite/006", "2x1": "images/PlantsSprite/006", "2x2": "images/PlantsSprite/006" }, "fireSound": "audio/missile_launch" } } ], "rarityWeights": { "common": 60, "uncommon": 25, "rare": 12, "epic": 3 }, "blockSizes": ["1x1", "1x2", "2x1", "2x2"], "bulletEffectTypes": { "count": ["single", "spread", "burst"], "trajectory": ["straight", "arc", "homing_arc"], "hitEffects": ["normal_damage", "pierce_damage", "explosion", "ground_burn", "ricochet_damage"], "lifecycle": ["hit_destroy", "range_limit", "ricochet_counter", "ground_impact", "return_trip", "ground_impact_with_effect", "target_impact"] } }