coh-content-db-homecoming 2.0.0-rc.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/.github/workflows/build.yml +1 -1
  2. package/CHANGELOG.md +10 -2
  3. package/README.md +32 -15
  4. package/dist/bundle.head.json +1 -1
  5. package/dist/bundle.json +1 -1
  6. package/dist/coh-content-db-homecoming.js +1424 -192
  7. package/dist/coh-content-db-homecoming.js.map +1 -1
  8. package/dist/coh-content-db-homecoming.mjs +1425 -193
  9. package/dist/coh-content-db-homecoming.mjs.map +1 -1
  10. package/jest.config.mjs +4 -0
  11. package/package.json +18 -17
  12. package/rollup.config.mjs +9 -0
  13. package/src/main/resources/images/badges/accolade/mazebreaker.png +0 -0
  14. package/src/main/resources/images/badges/accomplishment/brass-tax.png +0 -0
  15. package/src/main/resources/images/badges/accomplishment/business-savvy.png +0 -0
  16. package/src/main/resources/images/badges/accomplishment/chromatic-combatant.png +0 -0
  17. package/src/main/resources/images/badges/accomplishment/front-person.png +0 -0
  18. package/src/main/resources/images/badges/accomplishment/generational-trauma.png +0 -0
  19. package/src/main/resources/images/badges/accomplishment/heart-of-gold.png +0 -0
  20. package/src/main/resources/images/badges/accomplishment/justified-ends.png +0 -0
  21. package/src/main/resources/images/badges/accomplishment/psychopomp.png +0 -0
  22. package/src/main/resources/images/badges/accomplishment/staring-into-the-abyss.png +0 -0
  23. package/src/main/resources/images/badges/accomplishment/tested-by-combat.png +0 -0
  24. package/src/main/resources/images/badges/accomplishment/thicker-than-water.png +0 -0
  25. package/src/main/resources/images/badges/accomplishment/truth-seeker.png +0 -0
  26. package/src/main/resources/images/badges/accomplishment/uncomfortable-truths.png +0 -0
  27. package/src/main/resources/images/badges/achievement/master-of-zoes-task-force.png +0 -0
  28. package/src/main/resources/images/badges/achievement/tf-zoe.png +0 -0
  29. package/src/main/resources/images/badges/achievement/variety-act-h.png +0 -0
  30. package/src/main/resources/images/badges/achievement/variety-act-v.png +0 -0
  31. package/src/main/resources/images/badges/defeat/mutated-marauder.png +0 -0
  32. package/src/main/resources/images/badges/defeat/peacekeeper.png +0 -0
  33. package/src/main/resources/images/badges/defeat/two-birds-one-stone.png +0 -0
  34. package/src/main/resources/images/badges/event/home-for-the-holidays.png +0 -0
  35. package/src/main/resources/images/badges/event/hypothermia.png +0 -0
  36. package/src/main/resources/images/badges/event/license-to-chill.png +0 -0
  37. package/src/main/ts/badge/accolade/_accolade-badges.ts +4 -0
  38. package/src/main/ts/badge/accolade/atlas-tour-guide.ts +2 -2
  39. package/src/main/ts/badge/accolade/between-realities.ts +1 -1
  40. package/src/main/ts/badge/accolade/mazebreaker.ts +23 -0
  41. package/src/main/ts/badge/accolade/protector-of-paragon-city.ts +2 -2
  42. package/src/main/ts/badge/accolade/the-prettiest-one.ts +33 -0
  43. package/src/main/ts/badge/accolade/walked-down-memory-lane.ts +2 -2
  44. package/src/main/ts/badge/accomplishment/_accomplishment-badges.ts +26 -0
  45. package/src/main/ts/badge/accomplishment/brass-tax.ts +20 -0
  46. package/src/main/ts/badge/accomplishment/business-savvy.ts +19 -0
  47. package/src/main/ts/badge/accomplishment/chromatic-combatant.ts +17 -0
  48. package/src/main/ts/badge/accomplishment/front-person.ts +19 -0
  49. package/src/main/ts/badge/accomplishment/generational-trauma.ts +21 -0
  50. package/src/main/ts/badge/accomplishment/heart-of-gold.ts +19 -0
  51. package/src/main/ts/badge/accomplishment/justified-ends.ts +19 -0
  52. package/src/main/ts/badge/accomplishment/psychopomp.ts +20 -0
  53. package/src/main/ts/badge/accomplishment/staring-into-the-abyss.ts +20 -0
  54. package/src/main/ts/badge/accomplishment/tested-by-combat.ts +17 -0
  55. package/src/main/ts/badge/accomplishment/thicker-than-water.ts +19 -0
  56. package/src/main/ts/badge/accomplishment/truth-seeker.ts +20 -0
  57. package/src/main/ts/badge/accomplishment/uncomfortable-truths.ts +20 -0
  58. package/src/main/ts/badge/achievement/_achievement-badges.ts +12 -0
  59. package/src/main/ts/badge/achievement/cataclysmic.ts +1 -1
  60. package/src/main/ts/badge/achievement/decimator.ts +1 -1
  61. package/src/main/ts/badge/achievement/eliminator.ts +1 -1
  62. package/src/main/ts/badge/achievement/eradicator.ts +1 -1
  63. package/src/main/ts/badge/achievement/executioner.ts +1 -1
  64. package/src/main/ts/badge/achievement/jailbreaker.ts +17 -0
  65. package/src/main/ts/badge/achievement/knockback-king.ts +20 -0
  66. package/src/main/ts/badge/achievement/master-of-zoes-task-force.ts +26 -0
  67. package/src/main/ts/badge/achievement/relentless.ts +1 -1
  68. package/src/main/ts/badge/achievement/snow-warning.ts +17 -0
  69. package/src/main/ts/badge/achievement/subterranean-striker.ts +17 -0
  70. package/src/main/ts/badge/achievement/until-the-end-of-the-world.ts +1 -1
  71. package/src/main/ts/badge/defeat/_defeat-badges.ts +6 -0
  72. package/src/main/ts/badge/defeat/mutated-marauder.ts +17 -0
  73. package/src/main/ts/badge/defeat/peacekeeper.ts +21 -0
  74. package/src/main/ts/badge/defeat/two-birds-one-stone.ts +17 -0
  75. package/src/main/ts/badge/event/_event-badges.ts +46 -46
  76. package/src/main/ts/badge/event/home-for-the-holidays.ts +1 -1
  77. package/src/main/ts/badge/event/hypothermia.ts +1 -1
  78. package/src/main/ts/badge/event/license-to-chill.ts +1 -1
  79. package/src/main/ts/badge/event/snowbound.ts +1 -1
  80. package/src/main/ts/badge/exploration/_exploration-badges.ts +10 -2
  81. package/src/main/ts/badge/exploration/fueled-by-greed.ts +21 -0
  82. package/src/main/ts/badge/exploration/in-their-prime.ts +22 -0
  83. package/src/main/ts/badge/exploration/lucid-dreamer.ts +20 -0
  84. package/src/main/ts/badge/exploration/marked-out.ts +19 -0
  85. package/src/main/ts/badge/exploration/on-the-shoulders-of-giants.ts +1 -1
  86. package/src/main/ts/badge/exploration/protest-too-much.ts +20 -0
  87. package/src/main/ts/badge/exploration/quay-to-the-city.ts +22 -0
  88. package/src/main/ts/badge/exploration/raving-mad.ts +19 -0
  89. package/src/main/ts/badge/exploration/tourist-trapped.ts +20 -0
  90. package/src/main/ts/badge/exploration/tried-and-true.ts +2 -2
  91. package/src/main/ts/badge/gladiator/mob-specialist.ts +1 -1
  92. package/src/main/ts/badge/history/_history-badges.ts +6 -0
  93. package/src/main/ts/badge/history/bicentennial.ts +1 -1
  94. package/src/main/ts/badge/history/christie-consolidation.ts +92 -0
  95. package/src/main/ts/badge/history/flagtown-memorialist.ts +68 -0
  96. package/src/main/ts/badge/history/patron-of-the-arts.ts +49 -0
  97. package/src/main/ts/contact/_contacts.ts +14 -0
  98. package/src/main/ts/contact/adelard-ziegler.ts +12 -0
  99. package/src/main/ts/contact/alexander-the-great.ts +12 -0
  100. package/src/main/ts/contact/dap-dap-tha-deal-maka.ts +12 -0
  101. package/src/main/ts/contact/erin-west.ts +12 -0
  102. package/src/main/ts/contact/robert-kogan.ts +12 -0
  103. package/src/main/ts/contact/wyllie-galloway.ts +12 -0
  104. package/src/main/ts/contact/zoe-langston.ts +12 -0
  105. package/src/main/ts/homecoming.ts +3 -2
  106. package/src/main/ts/mission/_missions.ts +14 -0
  107. package/src/main/ts/mission/cutting-back-old-growth.ts +18 -0
  108. package/src/main/ts/mission/death-resurrected.ts +19 -0
  109. package/src/main/ts/mission/hunting-the-hunters.ts +18 -0
  110. package/src/main/ts/mission/know-thy-enemy.ts +18 -0
  111. package/src/main/ts/mission/mergers-and-acquisitions.ts +18 -0
  112. package/src/main/ts/mission/the-sunlight-and-the-spotlight.ts +18 -0
  113. package/src/main/ts/mission/zoe-task-force.ts +14 -0
  114. package/src/main/ts/utils/bundle-metadata.ts +11 -0
  115. package/src/main/ts/zone/_zones.ts +0 -2
  116. package/src/main/ts/zone/abandoned-sewer-network.ts +3 -0
  117. package/src/main/ts/zone/abandoned-sewers-trial.ts +3 -0
  118. package/src/main/ts/zone/architect-entertainment-buildings.ts +1 -0
  119. package/src/main/ts/zone/arena-cage-match.ts +2 -0
  120. package/src/main/ts/zone/atlas-park.ts +3 -0
  121. package/src/main/ts/zone/black-shroud-dimension.ts +5 -1
  122. package/src/main/ts/zone/bloody-bay.ts +3 -0
  123. package/src/main/ts/zone/boomtown.ts +3 -0
  124. package/src/main/ts/zone/breakout.ts +3 -0
  125. package/src/main/ts/zone/brickstown.ts +3 -0
  126. package/src/main/ts/zone/cap-au-diable.ts +3 -0
  127. package/src/main/ts/zone/cascade-archipelago.ts +3 -0
  128. package/src/main/ts/zone/cimerora.ts +3 -0
  129. package/src/main/ts/zone/creys-folly.ts +3 -0
  130. package/src/main/ts/zone/croatoa.ts +3 -0
  131. package/src/main/ts/zone/dark-astoria.ts +3 -0
  132. package/src/main/ts/zone/echo-atlas-park.ts +7 -1
  133. package/src/main/ts/zone/echo-dark-astoria.ts +3 -0
  134. package/src/main/ts/zone/echo-faultline.ts +7 -1
  135. package/src/main/ts/zone/echo-galaxy-city.ts +3 -0
  136. package/src/main/ts/zone/echo-rikti-crash-site.ts +4 -1
  137. package/src/main/ts/zone/eden.ts +3 -0
  138. package/src/main/ts/zone/faultline.ts +3 -0
  139. package/src/main/ts/zone/firebase-zulu.ts +3 -0
  140. package/src/main/ts/zone/first-ward.ts +3 -0
  141. package/src/main/ts/zone/founders-falls.ts +3 -0
  142. package/src/main/ts/zone/grandville.ts +3 -0
  143. package/src/main/ts/zone/hydra-missions.ts +7 -1
  144. package/src/main/ts/zone/imperial-city.ts +3 -0
  145. package/src/main/ts/zone/independence-port.ts +3 -0
  146. package/src/main/ts/zone/kallisti-wharf.ts +4 -0
  147. package/src/main/ts/zone/kings-row.ts +3 -0
  148. package/src/main/ts/zone/mayhem-atlas-park.ts +3 -0
  149. package/src/main/ts/zone/mayhem-brickstown.ts +3 -0
  150. package/src/main/ts/zone/mayhem-founders-falls.ts +3 -0
  151. package/src/main/ts/zone/mayhem-independence-port.ts +3 -0
  152. package/src/main/ts/zone/mayhem-kings-row.ts +3 -0
  153. package/src/main/ts/zone/mayhem-peregrine-island.ts +3 -0
  154. package/src/main/ts/zone/mayhem-skyway-city.ts +3 -0
  155. package/src/main/ts/zone/mayhem-steel-canyon.ts +3 -0
  156. package/src/main/ts/zone/mayhem-talos-island.ts +3 -0
  157. package/src/main/ts/zone/mercy-island.ts +3 -0
  158. package/src/main/ts/zone/midnighter-club.ts +3 -0
  159. package/src/main/ts/zone/monster-island.ts +3 -0
  160. package/src/main/ts/zone/nerva-archipelago.ts +3 -0
  161. package/src/main/ts/zone/neutropolis.ts +3 -0
  162. package/src/main/ts/zone/night-ward.ts +3 -0
  163. package/src/main/ts/zone/nova-praetoria.ts +3 -0
  164. package/src/main/ts/zone/ouroboros.ts +3 -0
  165. package/src/main/ts/zone/paragon-dance-party.ts +3 -0
  166. package/src/main/ts/zone/peregrine-island.ts +3 -0
  167. package/src/main/ts/zone/perez-park.ts +3 -0
  168. package/src/main/ts/zone/phone.ts +2 -0
  169. package/src/main/ts/zone/pocket-d.ts +3 -0
  170. package/src/main/ts/zone/port-oakes.ts +3 -0
  171. package/src/main/ts/zone/recluses-victory.ts +3 -0
  172. package/src/main/ts/zone/rikti-war-zone.ts +3 -0
  173. package/src/main/ts/zone/safeguard-atlas-park.ts +3 -0
  174. package/src/main/ts/zone/safeguard-brickstown.ts +3 -0
  175. package/src/main/ts/zone/safeguard-founders-falls.ts +3 -0
  176. package/src/main/ts/zone/safeguard-independence-port.ts +3 -0
  177. package/src/main/ts/zone/safeguard-kings-row.ts +3 -0
  178. package/src/main/ts/zone/safeguard-peregrine-island.ts +3 -0
  179. package/src/main/ts/zone/safeguard-skyway-city.ts +3 -0
  180. package/src/main/ts/zone/safeguard-steel-canyon.ts +3 -0
  181. package/src/main/ts/zone/safeguard-talos-island.ts +3 -0
  182. package/src/main/ts/zone/sewer-network.ts +3 -0
  183. package/src/main/ts/zone/sharkhead-isle.ts +3 -0
  184. package/src/main/ts/zone/sirens-call.ts +3 -0
  185. package/src/main/ts/zone/skyway-city.ts +3 -0
  186. package/src/main/ts/zone/st-martial.ts +3 -0
  187. package/src/main/ts/zone/steel-canyon.ts +3 -0
  188. package/src/main/ts/zone/striga-isle.ts +3 -0
  189. package/src/main/ts/zone/studio-55.ts +6 -1
  190. package/src/main/ts/zone/talos-island.ts +3 -0
  191. package/src/main/ts/zone/terra-volta.ts +3 -0
  192. package/src/main/ts/zone/the-abyss.ts +3 -0
  193. package/src/main/ts/zone/the-chantry.ts +3 -0
  194. package/src/main/ts/zone/the-hive.ts +3 -0
  195. package/src/main/ts/zone/the-hollows.ts +3 -0
  196. package/src/main/ts/zone/the-labyrinth-of-fog.ts +3 -0
  197. package/src/main/ts/zone/the-storm-palace.ts +3 -0
  198. package/src/main/ts/zone/underground-imperial.ts +3 -0
  199. package/src/main/ts/zone/underground-neutropolis.ts +3 -0
  200. package/src/main/ts/zone/underground-nova.ts +3 -0
  201. package/src/main/ts/zone/warburg.ts +3 -0
  202. package/src/test/ts/link-tests.test.ts +1 -1
  203. package/src/test/ts/mission.test.ts +20 -0
  204. package/src/main/lint/utils/bundle-version.ts +0 -3
  205. package/src/main/ts/zone/praetoria.ts +0 -7
  206. /package/src/main/resources/images/badges/event/{winter-login.png → snowbound.png} +0 -0
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const PocketD: ZoneData = {
4
4
  key: 'pocket-d',
5
5
  name: 'Pocket D',
6
+ type: 'co-op',
7
+ morality: 'all',
8
+ levelRange: 1,
6
9
  links: [{ title: 'Pocket D', href: 'https://homecoming.wiki/wiki/Pocket_D' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const PortOakes: ZoneData = {
4
4
  key: 'port-oakes',
5
5
  name: 'Port Oakes',
6
+ type: 'city',
7
+ morality: 'villainous',
8
+ levelRange: [7, 12],
6
9
  links: [{ title: 'Port Oakes', href: 'https://homecoming.wiki/wiki/Port_Oakes' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const ReclusesVictory: ZoneData = {
4
4
  key: 'recluses-victory',
5
5
  name: `Recluse's Victory`,
6
+ type: 'pvp',
7
+ morality: 'all',
8
+ levelRange: [50, 50],
6
9
  links: [{ title: `Recluse's Victory`, href: 'https://homecoming.wiki/wiki/Recluse%27s_Victory' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const RiktiWarZone: ZoneData = {
4
4
  key: 'rikti-war-zone',
5
5
  name: 'Rikti War Zone',
6
+ type: 'co-op',
7
+ morality: 'all',
8
+ levelRange: [35, 50],
6
9
  links: [{ title: 'Rikti War Zone', href: 'https://homecoming.wiki/wiki/Rikti_War_Zone' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardAtlasPark: ZoneData = {
4
4
  key: 'safeguard-atlas-park',
5
5
  name: 'Safeguard: Atlas Park',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [5, 10],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardBrickstown: ZoneData = {
4
4
  key: 'safeguard-brickstown',
5
5
  name: 'Safeguard: Brickstown',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [35, 40],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardFoundersFalls: ZoneData = {
4
4
  key: 'safeguard-founders-falls',
5
5
  name: `Safeguard: Founder's Falls`,
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [40, 45],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardIndependencePort: ZoneData = {
4
4
  key: 'safeguard-independence-port',
5
5
  name: 'Safeguard: Independence Port',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [25, 30],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardKingsRow: ZoneData = {
4
4
  key: 'safeguard-kings-row',
5
5
  name: 'Safeguard: Kings Row',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [10, 15],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardPeregrineIsland: ZoneData = {
4
4
  key: 'safeguard-peregrine-island',
5
5
  name: 'Safeguard: Peregrine Island',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [45, 50],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardSkywayCity: ZoneData = {
4
4
  key: 'safeguard-skyway-city',
5
5
  name: 'Safeguard: Skyway City',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [15, 20],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardSteelCanyon: ZoneData = {
4
4
  key: 'safeguard-steel-canyon',
5
5
  name: 'Safeguard: Steel Canyon',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [20, 25],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SafeguardTalosIsland: ZoneData = {
4
4
  key: 'safeguard-talos-island',
5
5
  name: 'Safeguard: Talos Island',
6
+ type: 'safeguard',
7
+ morality: 'heroic',
8
+ levelRange: [30, 35],
6
9
  links: [{ title: 'Safeguard Mission', href: 'https://homecoming.wiki/wiki/Safeguard_Mission' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SewerNetwork: ZoneData = {
4
4
  key: 'sewer-network',
5
5
  name: 'Sewer Network',
6
+ type: 'trial',
7
+ morality: 'heroic',
8
+ levelRange: [3, 10],
6
9
  links: [{ title: 'Sewer Network', href: 'https://homecoming.wiki/wiki/Sewer_Network' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SharkheadIsle: ZoneData = {
4
4
  key: 'sharkhead-isle',
5
5
  name: 'Sharkhead Isle',
6
+ type: 'city',
7
+ morality: 'villainous',
8
+ levelRange: [20, 30],
6
9
  links: [{ title: 'Sharkhead Isle', href: 'https://homecoming.wiki/wiki/Sharkhead_Isle' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SirensCall: ZoneData = {
4
4
  key: 'sirens-call',
5
5
  name: `Siren's Call`,
6
+ type: 'pvp',
7
+ morality: 'all',
8
+ levelRange: [30, 30],
6
9
  links: [{ title: `Siren's Call`, href: 'https://homecoming.wiki/wiki/Siren%27s_Call' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SkywayCity: ZoneData = {
4
4
  key: 'skyway-city',
5
5
  name: 'Skyway City',
6
+ type: 'city',
7
+ morality: 'heroic',
8
+ levelRange: [10, 19],
6
9
  links: [{ title: 'Skyway City', href: 'https://homecoming.wiki/wiki/Skyway_City' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const StMartial: ZoneData = {
4
4
  key: 'st-martial',
5
5
  name: 'St. Martial',
6
+ type: 'city',
7
+ morality: 'villainous',
8
+ levelRange: [29, 40],
6
9
  links: [{ title: 'St. Martial', href: 'https://homecoming.wiki/wiki/St._Martial' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const SteelCanyon: ZoneData = {
4
4
  key: 'steel-canyon',
5
5
  name: 'Steel Canyon',
6
+ type: 'city',
7
+ morality: 'heroic',
8
+ levelRange: [10, 19],
6
9
  links: [{ title: 'Steel Canyon', href: 'https://homecoming.wiki/wiki/Steel_Canyon' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const StrigaIsle: ZoneData = {
4
4
  key: 'striga-isle',
5
5
  name: 'Striga Isle',
6
+ type: 'co-op',
7
+ morality: 'all',
8
+ levelRange: [20, 29],
6
9
  links: [{ title: 'Striga Isle', href: 'https://homecoming.wiki/wiki/Striga_Isle' }],
7
10
  }
@@ -1,7 +1,12 @@
1
- import { ZoneData } from 'coh-content-db'
1
+ import { ZoneData, zoneLink } from 'coh-content-db'
2
+ import { PocketD } from './pocket-d'
2
3
 
3
4
  export const Studio55: ZoneData = {
4
5
  key: 'studio-55',
5
6
  name: 'Studio 55',
7
+ type: 'building',
8
+ morality: 'all',
9
+ levelRange: 1,
10
+ notes: `Acts as the Praetorian Earth's connection to the ${zoneLink(PocketD)} zone.`,
6
11
  links: [{ title: 'Studio 55', href: 'https://homecoming.wiki/wiki/Studio_55' }],
7
12
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TalosIsland: ZoneData = {
4
4
  key: 'talos-island',
5
5
  name: 'Talos Island',
6
+ type: 'city',
7
+ morality: 'heroic',
8
+ levelRange: [20, 27],
6
9
  links: [{ title: 'Talos Island', href: 'https://homecoming.wiki/wiki/Talos_Island' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TerraVolta: ZoneData = {
4
4
  key: 'terra-volta',
5
5
  name: 'Terra Volta',
6
+ type: 'trial',
7
+ morality: 'heroic',
8
+ levelRange: [20, 29],
6
9
  links: [{ title: 'Terra Volta', href: 'https://homecoming.wiki/wiki/Terra_Volta' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TheAbyss: ZoneData = {
4
4
  key: 'the-abyss',
5
5
  name: 'The Abyss',
6
+ type: 'co-op',
7
+ morality: 'all',
8
+ levelRange: [45, 50],
6
9
  links: [{ title: 'The Abyss', href: 'https://homecoming.wiki/wiki/The_Abyss' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TheChantry: ZoneData = {
4
4
  key: 'the-chantry',
5
5
  name: 'The Chantry',
6
+ type: 'hazard',
7
+ morality: 'heroic',
8
+ levelRange: [44, 47],
6
9
  links: [{ title: 'The Chantry', href: 'https://homecoming.wiki/wiki/The_Chantry' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TheHive: ZoneData = {
4
4
  key: 'the-hive',
5
5
  name: 'The Hive',
6
+ type: 'co-op',
7
+ morality: 'all',
8
+ levelRange: [45, 50],
6
9
  links: [{ title: 'The Hive', href: 'https://homecoming.wiki/wiki/The_Hive' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TheHollows: ZoneData = {
4
4
  key: 'the-hollows',
5
5
  name: 'The Hollows',
6
+ type: 'hazard',
7
+ morality: 'heroic',
8
+ levelRange: [5, 15],
6
9
  links: [{ title: 'The Hollows', href: 'https://homecoming.wiki/wiki/The_Hollows' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TheLabyrinthOfFog: ZoneData = {
4
4
  key: 'the-labyrinth-of-fog',
5
5
  name: 'The Labyrinth of Fog',
6
+ type: 'co-op',
7
+ morality: 'all',
8
+ levelRange: [45, 50],
6
9
  links: [{ title: 'The Labyrinth of Fog', href: 'https://homecoming.wiki/wiki/The_Labyrinth_of_Fog' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const TheStormPalace: ZoneData = {
4
4
  key: 'the-storm-palace',
5
5
  name: 'The Storm Palace',
6
+ type: 'trial',
7
+ morality: 'heroic',
8
+ levelRange: [48, 53],
6
9
  links: [{ title: 'The Storm Palace', href: 'https://homecoming.wiki/wiki/The_Storm_Palace' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const UndergroundImperial: ZoneData = {
4
4
  key: 'underground-imperial',
5
5
  name: 'Underground Imperial',
6
+ type: 'city',
7
+ morality: 'praetorian',
8
+ levelRange: [9, 15],
6
9
  links: [{ title: 'Underground Imperial', href: 'https://homecoming.wiki/wiki/Underground_Imperial' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const UndergroundNeutropolis: ZoneData = {
4
4
  key: 'underground-neutropolis',
5
5
  name: 'Underground Neutropolis',
6
+ type: 'city',
7
+ morality: 'praetorian',
8
+ levelRange: [15, 20],
6
9
  links: [{ title: 'Underground Neutropolis', href: 'https://homecoming.wiki/wiki/Underground_Neutropolis' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const UndergroundNova: ZoneData = {
4
4
  key: 'underground-nova',
5
5
  name: 'Underground Nova',
6
+ type: 'city',
7
+ morality: 'praetorian',
8
+ levelRange: [1, 10],
6
9
  links: [{ title: 'Underground Nova', href: 'https://homecoming.wiki/wiki/Underground_Nova' }],
7
10
  }
@@ -3,5 +3,8 @@ import { ZoneData } from 'coh-content-db'
3
3
  export const Warburg: ZoneData = {
4
4
  key: 'warburg',
5
5
  name: 'Warburg',
6
+ type: 'pvp',
7
+ morality: 'all',
8
+ levelRange: [38, 38],
6
9
  links: [{ title: 'Warburg', href: 'https://homecoming.wiki/wiki/Warburg' }],
7
10
  }
@@ -122,7 +122,7 @@ describe('Contact', () => {
122
122
  }
123
123
  })
124
124
 
125
- test('should not contain any http links', () => {
125
+ test('should not contain any unsupported protocols', () => {
126
126
  const errors: string[] = []
127
127
 
128
128
  for (const contact of TEST_DATABASE.contacts) {
@@ -0,0 +1,20 @@
1
+ import { CohContentDatabase } from 'coh-content-db'
2
+ import { HOMECOMING } from '../../main/ts'
3
+
4
+ const TEST_DATABASE = new CohContentDatabase(HOMECOMING)
5
+
6
+ describe('Mission', () => {
7
+ test('should only contain valid contacts', () => {
8
+ const errors: string[] = []
9
+
10
+ for (const mission of TEST_DATABASE.missions) {
11
+ for (const contactKey of mission.contactKeys ?? []) {
12
+ if (!TEST_DATABASE.getContact(contactKey)) errors.push(`['${mission.key}'].contactKey['${contactKey}']`)
13
+ }
14
+ }
15
+
16
+ if (errors.length > 0) {
17
+ throw `Some requirements have invalid links:\n${errors.join('\n')}`
18
+ }
19
+ })
20
+ })
@@ -1,3 +0,0 @@
1
- import pkg from '../../../../package.json'
2
-
3
- export const BUNDLE_VERSION = pkg.version
@@ -1,7 +0,0 @@
1
- import { ZoneData } from 'coh-content-db'
2
-
3
- export const Praetoria: ZoneData = {
4
- key: 'praetoria',
5
- name: 'Praetoria',
6
- links: [{ title: 'Praetoria', href: 'https://homecoming.wiki/wiki/Praetoria' }],
7
- }