您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

934 行
14 KiB

  1. module.exports = {
  2. name: 'Fjolarok',
  3. level: [1, 10],
  4. objects: {
  5. shopestrid: {
  6. properties: {
  7. cpnNotice: {
  8. actions: {
  9. enter: {
  10. cpn: 'dialogue',
  11. method: 'talk',
  12. args: [{
  13. targetName: 'estrid'
  14. }]
  15. },
  16. exit: {
  17. cpn: 'dialogue',
  18. method: 'stopTalk'
  19. }
  20. }
  21. }
  22. }
  23. },
  24. shophermit: {
  25. properties: {
  26. cpnNotice: {
  27. actions: {
  28. enter: {
  29. cpn: 'dialogue',
  30. method: 'talk',
  31. args: [{
  32. targetName: 'hermit'
  33. }]
  34. },
  35. exit: {
  36. cpn: 'dialogue',
  37. method: 'stopTalk'
  38. }
  39. }
  40. }
  41. }
  42. },
  43. shopvikar: {
  44. properties: {
  45. cpnNotice: {
  46. actions: {
  47. enter: {
  48. cpn: 'dialogue',
  49. method: 'talk',
  50. args: [{
  51. targetName: 'vikar'
  52. }]
  53. },
  54. exit: {
  55. cpn: 'dialogue',
  56. method: 'stopTalk'
  57. }
  58. }
  59. }
  60. }
  61. },
  62. shopasvald: {
  63. properties: {
  64. cpnNotice: {
  65. actions: {
  66. enter: {
  67. cpn: 'dialogue',
  68. method: 'talk',
  69. args: [{
  70. targetName: 'asvald'
  71. }]
  72. },
  73. exit: {
  74. cpn: 'dialogue',
  75. method: 'stopTalk'
  76. }
  77. }
  78. }
  79. }
  80. },
  81. shoppriest: {
  82. properties: {
  83. cpnNotice: {
  84. actions: {
  85. enter: {
  86. cpn: 'dialogue',
  87. method: 'talk',
  88. args: [{
  89. targetName: 'priest'
  90. }]
  91. },
  92. exit: {
  93. cpn: 'dialogue',
  94. method: 'stopTalk'
  95. }
  96. }
  97. }
  98. }
  99. },
  100. 'estuary entrance': {
  101. components: {
  102. cpnParticles: {
  103. simplify: function () {
  104. return {
  105. type: 'particles',
  106. blueprint: {
  107. color: {
  108. start: ['48edff', '80f643'],
  109. end: ['80f643', '48edff']
  110. },
  111. scale: {
  112. start: {
  113. min: 2,
  114. max: 10
  115. },
  116. end: {
  117. min: 0,
  118. max: 2
  119. }
  120. },
  121. speed: {
  122. start: {
  123. min: 4,
  124. max: 16
  125. },
  126. end: {
  127. min: 2,
  128. max: 8
  129. }
  130. },
  131. lifetime: {
  132. min: 1,
  133. max: 4
  134. },
  135. randomScale: true,
  136. randomSpeed: true,
  137. chance: 0.075,
  138. randomColor: true,
  139. spawnType: 'rect',
  140. spawnRect: {
  141. x: -32,
  142. y: -48,
  143. w: 64,
  144. h: 64
  145. }
  146. }
  147. };
  148. }
  149. }
  150. }
  151. },
  152. gas: {
  153. components: {
  154. cpnParticles: {
  155. simplify: function () {
  156. return {
  157. type: 'particles',
  158. blueprint: {
  159. color: {
  160. start: ['c0c3cf', '80f643'],
  161. end: ['386646', '69696e']
  162. },
  163. scale: {
  164. start: {
  165. min: 18,
  166. max: 64
  167. },
  168. end: {
  169. min: 8,
  170. max: 24
  171. }
  172. },
  173. speed: {
  174. start: {
  175. min: 2,
  176. max: 6
  177. },
  178. end: {
  179. min: 0,
  180. max: 4
  181. }
  182. },
  183. lifetime: {
  184. min: 4,
  185. max: 24
  186. },
  187. alpha: {
  188. start: 0.05,
  189. end: 0
  190. },
  191. randomScale: true,
  192. randomSpeed: true,
  193. chance: 0.02,
  194. randomColor: true,
  195. spawnType: 'rect',
  196. blendMode: 'screen',
  197. spawnRect: {
  198. x: -80,
  199. y: -80,
  200. w: 160,
  201. h: 160
  202. }
  203. }
  204. };
  205. }
  206. }
  207. }
  208. },
  209. greencandle: {
  210. components: {
  211. cpnLight: {
  212. simplify: function () {
  213. return {
  214. type: 'light',
  215. blueprint: {
  216. color: {
  217. start: ['80f643'],
  218. end: ['4ac441', '51fc9a', 'd07840']
  219. },
  220. lifetime: {
  221. min: 2,
  222. max: 6
  223. }
  224. }
  225. };
  226. }
  227. }
  228. }
  229. },
  230. fountain: {
  231. components: {
  232. cpnParticles: {
  233. simplify: function () {
  234. return {
  235. type: 'particles',
  236. blueprint: {
  237. color: {
  238. start: ['48edff', '3fa7dd'],
  239. end: ['3a71ba', '42548d']
  240. },
  241. scale: {
  242. start: {
  243. min: 2,
  244. max: 10
  245. },
  246. end: {
  247. min: 0,
  248. max: 2
  249. }
  250. },
  251. speed: {
  252. start: {
  253. min: 4,
  254. max: 16
  255. },
  256. end: {
  257. min: 2,
  258. max: 8
  259. }
  260. },
  261. lifetime: {
  262. min: 2,
  263. max: 5
  264. },
  265. randomScale: true,
  266. randomSpeed: true,
  267. chance: 0.8,
  268. randomColor: true,
  269. spawnType: 'rect',
  270. spawnRect: {
  271. x: -10,
  272. y: -21,
  273. w: 20,
  274. h: 8
  275. }
  276. }
  277. };
  278. }
  279. }
  280. }
  281. },
  282. alchgreenpot: {
  283. components: {
  284. cpnParticles: {
  285. simplify: function () {
  286. return {
  287. type: 'particles',
  288. blueprint: {
  289. color: {
  290. start: ['80f643', '80f643'],
  291. end: ['4ac441', '4ac441']
  292. },
  293. scale: {
  294. start: {
  295. min: 2,
  296. max: 10
  297. },
  298. end: {
  299. min: 0,
  300. max: 2
  301. }
  302. },
  303. speed: {
  304. start: {
  305. min: 4,
  306. max: 16
  307. },
  308. end: {
  309. min: 2,
  310. max: 8
  311. }
  312. },
  313. lifetime: {
  314. min: 1,
  315. max: 4
  316. },
  317. randomScale: true,
  318. randomSpeed: true,
  319. chance: 0.1,
  320. randomColor: true,
  321. spawnType: 'rect',
  322. spawnRect: {
  323. x: -15,
  324. y: -20,
  325. w: 30,
  326. h: 8
  327. }
  328. }
  329. };
  330. }
  331. }
  332. }
  333. },
  334. alchredpot: {
  335. components: {
  336. cpnParticles: {
  337. simplify: function () {
  338. return {
  339. type: 'particles',
  340. blueprint: {
  341. color: {
  342. start: ['ff4252', 'ff4252'],
  343. end: ['a82841', 'a82841']
  344. },
  345. scale: {
  346. start: {
  347. min: 2,
  348. max: 10
  349. },
  350. end: {
  351. min: 0,
  352. max: 2
  353. }
  354. },
  355. speed: {
  356. start: {
  357. min: 4,
  358. max: 16
  359. },
  360. end: {
  361. min: 2,
  362. max: 8
  363. }
  364. },
  365. lifetime: {
  366. min: 1,
  367. max: 4
  368. },
  369. randomScale: true,
  370. randomSpeed: true,
  371. chance: 0.2,
  372. randomColor: true,
  373. spawnType: 'rect',
  374. spawnRect: {
  375. x: -15,
  376. y: -28,
  377. w: 30,
  378. h: 8
  379. }
  380. }
  381. };
  382. }
  383. }
  384. }
  385. }
  386. },
  387. mobs: {
  388. default: {
  389. regular: {
  390. drops: {
  391. chance: 40,
  392. rolls: 1
  393. }
  394. }
  395. },
  396. 'crazed seagull': {
  397. level: 1,
  398. rare: {
  399. count: 0
  400. },
  401. regular: {
  402. drops: {
  403. rolls: 1,
  404. noRandom: true,
  405. blueprints: [{
  406. chance: 100,
  407. maxLevel: 2,
  408. name: 'Family Heirloom',
  409. quality: 1,
  410. slot: 'neck',
  411. type: 'Choker',
  412. noSalvage: true,
  413. stats: ['vit', 'regenMana']
  414. }]
  415. }
  416. }
  417. },
  418. seagull: {
  419. level: 2,
  420. regular: {
  421. drops: {
  422. chance: 60,
  423. rolls: 1
  424. }
  425. },
  426. rare: {
  427. count: 0
  428. },
  429. questItem: {
  430. name: 'Gull Feather',
  431. sprite: [0, 0]
  432. }
  433. },
  434. bunny: {
  435. level: 3,
  436. regular: {
  437. drops: {
  438. chance: 56,
  439. rolls: 1
  440. }
  441. },
  442. rare: {
  443. count: 0
  444. },
  445. questItem: {
  446. name: "Rabbit's Foot",
  447. sprite: [0, 1]
  448. }
  449. },
  450. thumper: {
  451. level: 5,
  452. cron: '0 * * * *',
  453. regular: {
  454. hpMult: 3,
  455. dmgMult: 3,
  456. drops: {
  457. chance: 100,
  458. rolls: 2,
  459. magicFind: [1300]
  460. }
  461. },
  462. rare: {
  463. chance: 100
  464. }
  465. },
  466. elk: {
  467. level: 4,
  468. regular: {
  469. drops: {
  470. chance: 50,
  471. rolls: 1
  472. }
  473. },
  474. rare: {
  475. name: 'Ironhorn'
  476. },
  477. questItem: {
  478. name: 'Elk Antler',
  479. sprite: [0, 2]
  480. }
  481. },
  482. flamingo: {
  483. level: 5,
  484. regular: {
  485. drops: {
  486. chance: 45,
  487. rolls: 1
  488. }
  489. }
  490. },
  491. crab: {
  492. level: 6,
  493. rare: {
  494. name: 'Squiggles'
  495. },
  496. questItem: {
  497. name: 'Severed Pincer',
  498. sprite: [0, 3]
  499. }
  500. },
  501. 'titan crab': {
  502. level: 7,
  503. rare: {
  504. name: 'The Pincer King'
  505. }
  506. },
  507. 'mud crab': {
  508. level: 9
  509. },
  510. frog: {
  511. level: 8,
  512. rare: {
  513. name: 'The Muck Prince'
  514. }
  515. },
  516. eagle: {
  517. level: 10,
  518. regular: {
  519. drops: {
  520. rolls: 1,
  521. noRandom: true,
  522. alsoRandom: true,
  523. blueprints: [{
  524. chance: 3,
  525. name: 'Eagle Feather',
  526. material: true,
  527. sprite: [0, 0],
  528. spritesheet: 'images/questItems.png'
  529. }]
  530. }
  531. },
  532. rare: {
  533. name: 'Fleshripper',
  534. drops: {
  535. rolls: 1,
  536. noRandom: true,
  537. alsoRandom: true,
  538. blueprints: [{
  539. chance: 80,
  540. name: 'Eagle Feather',
  541. material: true,
  542. sprite: [0, 0],
  543. spritesheet: 'images/questItems.png'
  544. }]
  545. }
  546. }
  547. },
  548. hermit: {
  549. level: 10,
  550. walkDistance: 0,
  551. attackable: false,
  552. rare: {
  553. count: 0
  554. },
  555. properties: {
  556. cpnTrade: {
  557. items: {
  558. min: 3,
  559. max: 5
  560. },
  561. forceItems: [{
  562. name: 'Flimsy Fishing Rod',
  563. type: 'Fishing Rod',
  564. slot: 'tool',
  565. quality: 0,
  566. worth: 5,
  567. sprite: [11, 0],
  568. infinite: true,
  569. noSalvage: true
  570. }, {
  571. name: 'Skewering Stick',
  572. material: true,
  573. sprite: [11, 7],
  574. worth: 2,
  575. quality: 0,
  576. infinite: true
  577. }],
  578. level: {
  579. min: 1,
  580. max: 5
  581. },
  582. markup: {
  583. buy: 0.25,
  584. sell: 2.5
  585. }
  586. }
  587. }
  588. },
  589. guard: {
  590. level: 20,
  591. attackable: false,
  592. walkDistance: 0,
  593. rare: {
  594. count: 0
  595. }
  596. },
  597. estrid: {
  598. level: 15,
  599. attackable: false,
  600. walkDistance: 5,
  601. rare: {
  602. count: 0
  603. },
  604. properties: {
  605. cpnTrade: {
  606. items: {
  607. min: 0,
  608. max: 0,
  609. extra: [{
  610. name: 'Empty Vial',
  611. material: true,
  612. sprite: [0, 9],
  613. worth: 10,
  614. infinite: true
  615. }]
  616. },
  617. faction: {
  618. id: 'fjolgard',
  619. tier: 5
  620. },
  621. markup: {
  622. buy: 0.25,
  623. sell: 2.5
  624. }
  625. }
  626. }
  627. },
  628. vikar: {
  629. level: 15,
  630. walkDistance: 0,
  631. attackable: false,
  632. rare: {
  633. count: 0
  634. }
  635. },
  636. luta: {
  637. level: 15,
  638. walkDistance: 0,
  639. attackable: false,
  640. rare: {
  641. count: 0
  642. }
  643. },
  644. asvald: {
  645. level: 15,
  646. walkDistance: 0,
  647. attackable: false,
  648. rare: {
  649. count: 0
  650. },
  651. properties: {
  652. cpnTrade: {
  653. items: {
  654. min: 0,
  655. max: 0,
  656. extra: [{
  657. generate: true,
  658. spell: true,
  659. quality: 0,
  660. infinite: true,
  661. spellName: 'magic missile',
  662. worth: 3
  663. }, {
  664. generate: true,
  665. spell: true,
  666. quality: 0,
  667. infinite: true,
  668. spellName: 'ice spear',
  669. worth: 3
  670. }, {
  671. generate: true,
  672. spell: true,
  673. quality: 0,
  674. infinite: true,
  675. spellName: 'smite',
  676. worth: 3
  677. }, {
  678. generate: true,
  679. spell: true,
  680. quality: 0,
  681. infinite: true,
  682. spellName: 'consecrate',
  683. worth: 3
  684. }, {
  685. generate: true,
  686. spell: true,
  687. quality: 0,
  688. infinite: true,
  689. spellName: 'slash',
  690. worth: 3
  691. }, {
  692. generate: true,
  693. spell: true,
  694. quality: 0,
  695. infinite: true,
  696. spellName: 'charge',
  697. worth: 3
  698. }, {
  699. generate: true,
  700. spell: true,
  701. quality: 0,
  702. infinite: true,
  703. spellName: 'flurry',
  704. worth: 3
  705. }, {
  706. generate: true,
  707. spell: true,
  708. quality: 0,
  709. infinite: true,
  710. spellName: 'smokebomb',
  711. worth: 3
  712. }]
  713. },
  714. faction: {
  715. id: 'fjolgard',
  716. tier: 5
  717. },
  718. markup: {
  719. buy: 0.25,
  720. sell: 10
  721. }
  722. }
  723. }
  724. },
  725. rodriguez: {
  726. attackable: false,
  727. level: 10,
  728. rare: {
  729. count: 0
  730. }
  731. },
  732. pig: {
  733. attackable: false,
  734. level: 3,
  735. rare: {
  736. count: 0
  737. }
  738. },
  739. goat: {
  740. attackable: false,
  741. level: 3,
  742. rare: {
  743. count: 0
  744. }
  745. },
  746. cow: {
  747. attackable: false,
  748. level: 3,
  749. rare: {
  750. count: 0
  751. }
  752. },
  753. priest: {
  754. level: 20,
  755. attackable: false,
  756. walkDistance: 0,
  757. rare: {
  758. count: 0
  759. },
  760. properties: {
  761. cpnTrade: {
  762. items: {
  763. min: 5,
  764. max: 10,
  765. extra: [{
  766. type: 'skin',
  767. skinId: '2.0',
  768. worth: 100,
  769. factions: [{
  770. id: 'gaekatla',
  771. tier: 7
  772. }]
  773. }, {
  774. worth: 100,
  775. infinite: true,
  776. generate: true,
  777. name: 'Cowl of Obscurity',
  778. level: [4, 13],
  779. quality: 4,
  780. noSpell: true,
  781. slot: 'head',
  782. sprite: [2, 0],
  783. spritesheet: '../../../images/legendaryItems.png',
  784. type: 'Silk Cowl',
  785. description: 'Imbued with the powers of Gaekatla herself.',
  786. stats: ['hpMax', 'hpMax', 'int', 'int'],
  787. effects: [{
  788. type: 'healOnCrit',
  789. rolls: {
  790. i_chance: [20, 60],
  791. i_percentage: [3, 7]
  792. }
  793. }],
  794. factions: [{
  795. id: 'gaekatla',
  796. tier: 7
  797. }]
  798. }]
  799. },
  800. faction: {
  801. id: 'gaekatla',
  802. tier: 5
  803. },
  804. markup: {
  805. buy: 0.25,
  806. sell: 10
  807. }
  808. }
  809. }
  810. },
  811. sundfehr: {
  812. level: 9,
  813. walkDistance: 0,
  814. cron: '0 */2 * * *',
  815. regular: {
  816. hpMult: 10,
  817. dmgMult: 1,
  818. drops: {
  819. chance: 100,
  820. rolls: 3,
  821. magicFind: [2000]
  822. }
  823. },
  824. rare: {
  825. chance: 0
  826. },
  827. spells: [{
  828. type: 'warnBlast',
  829. range: 8,
  830. delay: 9,
  831. damage: 0.8,
  832. statMult: 1,
  833. cdMax: 7,
  834. targetRandom: true,
  835. particles: {
  836. color: {
  837. start: ['c0c3cf', '929398'],
  838. end: ['929398', 'c0c3cf']
  839. },
  840. spawnType: 'circle',
  841. spawnCircle: {
  842. x: 0,
  843. y: 0,
  844. r: 12
  845. },
  846. randomColor: true,
  847. chance: 0.03
  848. }
  849. }, {
  850. type: 'projectile',
  851. damage: 0.4,
  852. statMult: 1,
  853. cdMax: 5,
  854. targetRandom: true,
  855. row: 2,
  856. col: 4
  857. }],
  858. components: {
  859. cpnParticles: {
  860. simplify: function () {
  861. return {
  862. type: 'particles',
  863. blueprint: {
  864. color: {
  865. start: ['fc66f7', '802343'],
  866. end: ['393268', 'de43ae']
  867. },
  868. scale: {
  869. start: {
  870. min: 10,
  871. max: 18
  872. },
  873. end: {
  874. min: 4,
  875. max: 8
  876. }
  877. },
  878. speed: {
  879. start: {
  880. min: 6,
  881. max: 12
  882. },
  883. end: {
  884. min: 2,
  885. max: 4
  886. }
  887. },
  888. lifetime: {
  889. min: 5,
  890. max: 12
  891. },
  892. alpha: {
  893. start: 0.25,
  894. end: 0
  895. },
  896. randomScale: true,
  897. randomSpeed: true,
  898. chance: 0.06,
  899. randomColor: true,
  900. spawnType: 'rect',
  901. blendMode: 'add',
  902. spawnRect: {
  903. x: -24,
  904. y: -24,
  905. w: 48,
  906. h: 48
  907. }
  908. }
  909. };
  910. }
  911. }
  912. }
  913. }
  914. }
  915. };