weapons.json 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. {
  2. "weapons": [
  3. {
  4. "id": "pea_shooter",
  5. "name": "毛豆射手",
  6. "type": "single_shot",
  7. "rarity": "common",
  8. "weight": 30,
  9. "stats": {
  10. "damage": 20,
  11. "fireRate": 1.0,
  12. "range": 300,
  13. "bulletSpeed": 50
  14. },
  15. "bulletConfig": {
  16. "count": {
  17. "type": "single",
  18. "amount": 1,
  19. "spreadAngle": 0,
  20. "burstCount": 1,
  21. "burstDelay": 0
  22. },
  23. "trajectory": {
  24. "type": "straight",
  25. "speed": 200,
  26. "gravity": 0,
  27. "arcHeight": 0,
  28. "homingStrength": 0,
  29. "homingDelay": 0
  30. },
  31. "hitEffects": [
  32. {
  33. "type": "normal_damage",
  34. "priority": 1,
  35. "params": {
  36. "damage": 20
  37. }
  38. }
  39. ],
  40. "lifecycle": {
  41. "type": "hit_destroy",
  42. "maxLifetime": 5.0,
  43. "penetration": 1,
  44. "ricochetCount": 0,
  45. "returnToOrigin": false
  46. },
  47. "visual": {
  48. "bulletPrefab": "bullets/Pea_ShooterBullet",
  49. "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
  50. "trailEffect": null,
  51. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  52. }
  53. },
  54. "visualConfig": {
  55. "weaponSprites": {
  56. "I": "images/PlantsSprite/001-1",
  57. "H-I": "images/PlantsSprite/001-1",
  58. "L": "images/PlantsSprite/001-1",
  59. "S": "images/PlantsSprite/001-1",
  60. "D-T": "images/PlantsSprite/001-1"
  61. },
  62. "fireSound": "audio/pea_shooter_shot"
  63. }
  64. },
  65. {
  66. "id": "sharp_carrot",
  67. "name": "尖胡萝卜",
  68. "type": "piercing",
  69. "rarity": "common",
  70. "weight": 30,
  71. "stats": {
  72. "damage": 15,
  73. "fireRate": 0.8,
  74. "range": 400,
  75. "bulletSpeed": 50
  76. },
  77. "bulletConfig": {
  78. "count": {
  79. "type": "single",
  80. "amount": 1,
  81. "spreadAngle": 0,
  82. "burstCount": 1,
  83. "burstDelay": 0
  84. },
  85. "trajectory": {
  86. "type": "straight",
  87. "speed": 200,
  88. "gravity": 0,
  89. "arcHeight": 0,
  90. "homingStrength": 0,
  91. "homingDelay": 0
  92. },
  93. "hitEffects": [
  94. {
  95. "type": "pierce_damage",
  96. "priority": 1,
  97. "params": {
  98. "damage": 15,
  99. "pierceCount": 999
  100. }
  101. }
  102. ],
  103. "lifecycle": {
  104. "type": "range_limit",
  105. "maxLifetime": 5.0,
  106. "penetration": 999,
  107. "ricochetCount": 0,
  108. "returnToOrigin": false,
  109. "maxRange": 800
  110. },
  111. "visual": {
  112. "bulletPrefab": "bullets/Sharp_CarrotBullet",
  113. "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
  114. "trailEffect": "Animation/WeaponTx/tx0001/tx0001",
  115. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  116. }
  117. },
  118. "visualConfig": {
  119. "weaponSprites": {
  120. "I": "images/PlantsSprite/002",
  121. "H-I": "images/PlantsSprite/002",
  122. "L": "images/PlantsSprite/002",
  123. "S": "images/PlantsSprite/002",
  124. "D-T": "images/PlantsSprite/002"
  125. },
  126. "fireSound": "audio/sharp_carrot_shot"
  127. }
  128. },
  129. {
  130. "id": "saw_grass",
  131. "name": "锯齿草",
  132. "type": "ricochet_piercing",
  133. "rarity": "uncommon",
  134. "weight": 20,
  135. "stats": {
  136. "damage": 25,
  137. "fireRate": 0.6,
  138. "range": 350,
  139. "bulletSpeed": 50
  140. },
  141. "bulletConfig": {
  142. "count": {
  143. "type": "single",
  144. "amount": 1,
  145. "spreadAngle": 0,
  146. "burstCount": 1,
  147. "burstDelay": 0
  148. },
  149. "trajectory": {
  150. "type": "straight",
  151. "speed": 200,
  152. "gravity": 0,
  153. "arcHeight": 0,
  154. "homingStrength": 0,
  155. "homingDelay": 0
  156. },
  157. "hitEffects": [
  158. {
  159. "type": "ricochet_damage",
  160. "priority": 1,
  161. "params": {
  162. "damage": 25,
  163. "ricochetCount": 2,
  164. "ricochetAngle": 45
  165. }
  166. },
  167. {
  168. "type": "pierce_damage",
  169. "priority": 2,
  170. "params": {
  171. "damage": 25,
  172. "pierceCount": 3
  173. }
  174. }
  175. ],
  176. "lifecycle": {
  177. "type": "ricochet_counter",
  178. "maxLifetime": 8.0,
  179. "penetration": 3,
  180. "ricochetCount": 3,
  181. "returnToOrigin": false
  182. },
  183. "visual": {
  184. "bulletPrefab": "bullets/Saw_GrassBullet",
  185. "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
  186. "trailEffect": null,
  187. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  188. }
  189. },
  190. "visualConfig": {
  191. "weaponSprites": {
  192. "I": "images/PlantsSprite/003",
  193. "H-I": "images/PlantsSprite/003",
  194. "L": "images/PlantsSprite/003",
  195. "S": "images/PlantsSprite/003",
  196. "D-T": "images/PlantsSprite/003"
  197. },
  198. "fireSound": "audio/saw_grass_shot"
  199. }
  200. },
  201. {
  202. "id": "watermelon_bomb",
  203. "name": "西瓜炸弹",
  204. "type": "explosive",
  205. "rarity": "rare",
  206. "weight": 15,
  207. "stats": {
  208. "damage": 50,
  209. "fireRate": 0.4,
  210. "range": 250,
  211. "bulletSpeed": 50
  212. },
  213. "bulletConfig": {
  214. "count": {
  215. "type": "single",
  216. "amount": 1,
  217. "spreadAngle": 0,
  218. "burstCount": 1,
  219. "burstDelay": 0
  220. },
  221. "trajectory": {
  222. "type": "arc",
  223. "speed": 200,
  224. "gravity": 0,
  225. "arcHeight": 0,
  226. "homingStrength": 0,
  227. "homingDelay": 0
  228. },
  229. "hitEffects": [
  230. {
  231. "type": "explosion",
  232. "priority": 1,
  233. "params": {
  234. "damage": 70,
  235. "radius": 100,
  236. "delay": 0.1
  237. }
  238. }
  239. ],
  240. "lifecycle": {
  241. "type": "ground_impact",
  242. "maxLifetime": 5.0,
  243. "penetration": 1,
  244. "ricochetCount": 0,
  245. "returnToOrigin": false
  246. },
  247. "visual": {
  248. "bulletPrefab": "bullets/Watermelon_BombBullet",
  249. "hitEffect": "Animation/WeaponTx/tx0007/tx0007",
  250. "trailEffect": null,
  251. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  252. }
  253. },
  254. "visualConfig": {
  255. "weaponSprites": {
  256. "I": "images/PlantsSprite/007",
  257. "H-I": "images/PlantsSprite/007",
  258. "L": "images/PlantsSprite/007",
  259. "S": "images/PlantsSprite/007",
  260. "D-T": "images/PlantsSprite/007"
  261. },
  262. "fireSound": "audio/watermelon_bomb_shot"
  263. }
  264. },
  265. {
  266. "id": "boomerang_plant",
  267. "name": "回旋镖盆栽",
  268. "type": "boomerang",
  269. "rarity": "uncommon",
  270. "weight": 20,
  271. "stats": {
  272. "damage": 30,
  273. "fireRate": 0.5,
  274. "range": 300,
  275. "bulletSpeed": 50
  276. },
  277. "bulletConfig": {
  278. "count": {
  279. "type": "single",
  280. "amount": 1,
  281. "spreadAngle": 0,
  282. "burstCount": 1,
  283. "burstDelay": 0
  284. },
  285. "trajectory": {
  286. "type": "homing",
  287. "speed": 15,
  288. "gravity": 0,
  289. "homingStrength": 0.5,
  290. "homingDelay": 0.3
  291. },
  292. "hitEffects": [
  293. {
  294. "type": "pierce_damage",
  295. "priority": 1,
  296. "params": {
  297. "damage": 30,
  298. "pierceCount": 999
  299. }
  300. }
  301. ],
  302. "lifecycle": {
  303. "type": "return_trip",
  304. "maxLifetime": 10.0,
  305. "penetration": 999,
  306. "ricochetCount": 0,
  307. "returnToOrigin": true,
  308. "returnDelay": 1.0
  309. },
  310. "visual": {
  311. "bulletPrefab": "bullets/Boomerang_PlantBullet",
  312. "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
  313. "trailEffect": null,
  314. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  315. }
  316. },
  317. "visualConfig": {
  318. "weaponSprites": {
  319. "I": "images/PlantsSprite/004",
  320. "H-I": "images/PlantsSprite/004",
  321. "L": "images/PlantsSprite/004",
  322. "S": "images/PlantsSprite/004",
  323. "D-T": "images/PlantsSprite/004"
  324. },
  325. "fireSound": "audio/boomerang_plant_shot"
  326. }
  327. },
  328. {
  329. "id": "hot_pepper",
  330. "name": "炙热辣椒",
  331. "type": "explosive",
  332. "rarity": "rare",
  333. "weight": 15,
  334. "stats": {
  335. "damage": 40,
  336. "fireRate": 0.3,
  337. "range": 280,
  338. "bulletSpeed": 50
  339. },
  340. "bulletConfig": {
  341. "count": {
  342. "type": "single",
  343. "amount": 1,
  344. "spreadAngle": 0,
  345. "burstCount": 1,
  346. "burstDelay": 0
  347. },
  348. "trajectory": {
  349. "type": "arc",
  350. "speed": 200,
  351. "gravity": 0,
  352. "arcHeight": 0,
  353. "homingStrength": 0,
  354. "homingDelay": 0
  355. },
  356. "hitEffects": [
  357. {
  358. "type": "explosion",
  359. "priority": 1,
  360. "params": {
  361. "damage": 60,
  362. "radius": 100,
  363. "delay": 0.1
  364. }
  365. }
  366. ],
  367. "lifecycle": {
  368. "type": "ground_impact",
  369. "maxLifetime": 5.0,
  370. "penetration": 1,
  371. "ricochetCount": 0,
  372. "returnToOrigin": false
  373. },
  374. "visual": {
  375. "bulletPrefab": "bullets/Hot_PepperBullet",
  376. "hitEffect": "Animation/WeaponTx/tx0007/tx0007",
  377. "trailEffect": null,
  378. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  379. }
  380. },
  381. "visualConfig": {
  382. "weaponSprites": {
  383. "I": "images/PlantsSprite/005",
  384. "H-I": "images/PlantsSprite/005",
  385. "L": "images/PlantsSprite/005",
  386. "S": "images/PlantsSprite/005",
  387. "D-T": "images/PlantsSprite/005"
  388. },
  389. "fireSound": "audio/hot_pepper_shot"
  390. }
  391. },
  392. {
  393. "id": "cactus_shotgun",
  394. "name": "仙人散弹",
  395. "type": "shotgun",
  396. "rarity": "common",
  397. "weight": 30,
  398. "stats": {
  399. "damage": 12,
  400. "fireRate": 0.7,
  401. "range": 200,
  402. "bulletSpeed": 50
  403. },
  404. "bulletConfig": {
  405. "count": {
  406. "type": "spread",
  407. "amount": 5,
  408. "spreadAngle": 30,
  409. "burstCount": 1,
  410. "burstDelay": 0
  411. },
  412. "trajectory": {
  413. "type": "straight",
  414. "speed": 200,
  415. "gravity": 0,
  416. "arcHeight": 0,
  417. "homingStrength": 0,
  418. "homingDelay": 0
  419. },
  420. "hitEffects": [
  421. {
  422. "type": "normal_damage",
  423. "priority": 1,
  424. "params": {
  425. "damage": 12
  426. }
  427. }
  428. ],
  429. "lifecycle": {
  430. "type": "range_limit",
  431. "maxLifetime": 5.0,
  432. "penetration": 1,
  433. "ricochetCount": 0,
  434. "returnToOrigin": false,
  435. "maxRange": 400
  436. },
  437. "visual": {
  438. "bulletPrefab": "bullets/Cactus_ShotgunBullet",
  439. "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
  440. "trailEffect": null,
  441. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  442. }
  443. },
  444. "visualConfig": {
  445. "weaponSprites": {
  446. "I": "images/PlantsSprite/008",
  447. "H-I": "images/PlantsSprite/008",
  448. "L": "images/PlantsSprite/008",
  449. "S": "images/PlantsSprite/008",
  450. "D-T": "images/PlantsSprite/008"
  451. },
  452. "fireSound": "audio/cactus_shotgun_shot"
  453. }
  454. },
  455. {
  456. "id": "okra_missile",
  457. "name": "秋葵导弹",
  458. "type": "homing_missile",
  459. "rarity": "epic",
  460. "weight": 8,
  461. "stats": {
  462. "damage": 70,
  463. "fireRate": 0.25,
  464. "range": 500,
  465. "bulletSpeed": 50
  466. },
  467. "bulletConfig": {
  468. "count": {
  469. "type": "single",
  470. "amount": 1,
  471. "spreadAngle": 0,
  472. "burstCount": 1,
  473. "burstDelay": 0
  474. },
  475. "trajectory": {
  476. "type": "homing",
  477. "speed": 20,
  478. "gravity": 0.2,
  479. "arcHeight": 100,
  480. "homingStrength": 0.8,
  481. "homingDelay": 0.3
  482. },
  483. "hitEffects": [
  484. {
  485. "type": "explosion",
  486. "priority": 1,
  487. "params": {
  488. "damage": 70,
  489. "radius": 150,
  490. "delay": 0
  491. }
  492. }
  493. ],
  494. "lifecycle": {
  495. "type": "target_impact",
  496. "maxLifetime": 5.0,
  497. "penetration": 1,
  498. "ricochetCount": 0,
  499. "returnToOrigin": false
  500. },
  501. "visual": {
  502. "bulletPrefab": "bullets/Okra_MissileBullet",
  503. "hitEffect": "Animation/WeaponTx/tx0002/tx0002",
  504. "trailEffect": null,
  505. "muzzleFlash": "Animation/WeaponTx/tx0002/tx0002"
  506. }
  507. },
  508. "visualConfig": {
  509. "weaponSprites": {
  510. "I": "images/PlantsSprite/006",
  511. "H-I": "images/PlantsSprite/006",
  512. "L": "images/PlantsSprite/006",
  513. "S": "images/PlantsSprite/006",
  514. "D-T": "images/PlantsSprite/006"
  515. },
  516. "fireSound": "audio/okra_missile_shot"
  517. }
  518. }
  519. ],
  520. "rarityWeights": {
  521. "common": 60,
  522. "uncommon": 25,
  523. "rare": 12,
  524. "epic": 3
  525. },
  526. "blockSizes": [
  527. {
  528. "id": "I",
  529. "name": "竖条",
  530. "shape": [
  531. [
  532. 1,
  533. 0,
  534. 0,
  535. 0
  536. ],
  537. [
  538. 1,
  539. 0,
  540. 0,
  541. 0
  542. ],
  543. [
  544. 0,
  545. 0,
  546. 0,
  547. 0
  548. ],
  549. [
  550. 0,
  551. 0,
  552. 0,
  553. 0
  554. ]
  555. ]
  556. },
  557. {
  558. "id": "H-I",
  559. "name": "横I型",
  560. "shape": [
  561. [
  562. 0,
  563. 0,
  564. 0,
  565. 0
  566. ],
  567. [
  568. 1,
  569. 1,
  570. 0,
  571. 0
  572. ],
  573. [
  574. 0,
  575. 0,
  576. 0,
  577. 0
  578. ],
  579. [
  580. 0,
  581. 0,
  582. 0,
  583. 0
  584. ]
  585. ]
  586. },
  587. {
  588. "id": "L",
  589. "name": "L型",
  590. "shape": [
  591. [
  592. 1,
  593. 1,
  594. 0,
  595. 0
  596. ],
  597. [
  598. 1,
  599. 0,
  600. 0,
  601. 0
  602. ],
  603. [
  604. 0,
  605. 0,
  606. 0,
  607. 0
  608. ],
  609. [
  610. 0,
  611. 0,
  612. 0,
  613. 0
  614. ]
  615. ]
  616. },
  617. {
  618. "id": "S",
  619. "name": "S型",
  620. "shape": [
  621. [
  622. 0,
  623. 1,
  624. 1,
  625. 0
  626. ],
  627. [
  628. 1,
  629. 1,
  630. 0,
  631. 0
  632. ],
  633. [
  634. 0,
  635. 0,
  636. 0,
  637. 0
  638. ],
  639. [
  640. 0,
  641. 0,
  642. 0,
  643. 0
  644. ]
  645. ]
  646. },
  647. {
  648. "id": "D-T",
  649. "name": "倒T型",
  650. "shape": [
  651. [
  652. 0,
  653. 1,
  654. 0,
  655. 0
  656. ],
  657. [
  658. 1,
  659. 1,
  660. 1,
  661. 0
  662. ],
  663. [
  664. 0,
  665. 0,
  666. 0,
  667. 0
  668. ],
  669. [
  670. 0,
  671. 0,
  672. 0,
  673. 0
  674. ]
  675. ]
  676. }
  677. ],
  678. "bulletEffectTypes": {
  679. "count": [
  680. "single",
  681. "spread",
  682. "burst"
  683. ],
  684. "trajectory": [
  685. "straight",
  686. "arc",
  687. "homing_arc"
  688. ],
  689. "hitEffects": [
  690. "normal_damage",
  691. "pierce_damage",
  692. "explosion",
  693. "ground_burn",
  694. "ricochet_damage"
  695. ],
  696. "lifecycle": [
  697. "hit_destroy",
  698. "range_limit",
  699. "ricochet_counter",
  700. "ground_impact",
  701. "return_trip",
  702. "ground_impact_with_effect",
  703. "target_impact"
  704. ]
  705. }
  706. }