less copy protection, more size visualization
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

637 line
16 KiB

  1. const speciesMakers = {};
  2. speciesMakers["Synx"] = () => {
  3. const species = makeCharacter(
  4. { name: "Synx" },
  5. {
  6. goochick: {
  7. height: math.unit(0.5, "feet"),
  8. weight: math.unit(3, "lb"),
  9. name: "Goo-chick",
  10. image: {
  11. source: "./media/species/synx/goo-chick.svg",
  12. bottom: 0.12
  13. }
  14. },
  15. oozeeel: {
  16. height: math.unit(1.5, "feet"),
  17. weight: math.unit(20, "lb"),
  18. name: "Ooze-eel",
  19. image: {
  20. source: "./media/species/synx/ooze-eel.svg",
  21. bottom: 0.09
  22. }
  23. },
  24. synx: {
  25. height: math.unit(3.4, "feet"),
  26. weight: math.unit(300, "lb"),
  27. name: "Synx",
  28. image: {
  29. source: "./media/species/synx/synx.svg",
  30. extra: 8.06 / 6.6,
  31. bottom: 0.05
  32. },
  33. default: true
  34. },
  35. weeper: {
  36. height: math.unit(3.9, "feet"),
  37. weight: math.unit(450, "lb"),
  38. name: "Weeper",
  39. image: {
  40. source: "./media/species/synx/weeper.svg",
  41. extra: 8.04 / 7.5,
  42. bottom: 0.05
  43. }
  44. },
  45. },
  46. [
  47. ]
  48. );
  49. species.defaultView = "synx";
  50. return species;
  51. };
  52. speciesMakers["Viper"] = () => makeCharacter(
  53. { name: "Viper" },
  54. {
  55. front: {
  56. height: math.unit(2.6, "meters"),
  57. weight: math.unit(500, "lb"),
  58. name: "Front",
  59. image: {
  60. source: "./media/species/viper/front.svg"
  61. }
  62. },
  63. },
  64. [
  65. {
  66. name: "Normal",
  67. height: math.unit(2.6, "meters"),
  68. default: true
  69. },
  70. ]
  71. );
  72. speciesMakers["Synths"] = () => makeCharacter(
  73. { name: "Synths" },
  74. {
  75. front: {
  76. height: math.unit(6, "feet"),
  77. weight: math.unit(300, "lb"),
  78. name: "Front",
  79. image: {
  80. source: "./media/species/synths/front.svg",
  81. extra: 263/253.5,
  82. bottom: 6.22/268.85
  83. }
  84. },
  85. back: {
  86. height: math.unit(6, "feet"),
  87. weight: math.unit(300, "lb"),
  88. name: "Back",
  89. image: {
  90. source: "./media/species/synths/back.svg",
  91. extra: 263.5/254.5,
  92. bottom: 4.7/269
  93. }
  94. },
  95. bulky: {
  96. height: math.unit(6, "feet"),
  97. weight: math.unit(900, "lb"),
  98. name: "Bulky",
  99. image: {
  100. source: "./media/species/synths/bulky.svg",
  101. extra: 753/740,
  102. bottom: 17.7/771.8
  103. }
  104. },
  105. femme: {
  106. height: math.unit(6, "feet"),
  107. weight: math.unit(400, "lb"),
  108. name: "Femme",
  109. image: {
  110. source: "./media/species/synths/femme.svg",
  111. extra: 756/733,
  112. bottom: 17.2/774
  113. }
  114. },
  115. },
  116. [
  117. {
  118. name: "Small",
  119. height: math.unit(1, "meters")
  120. },
  121. {
  122. name: "Normal",
  123. height: math.unit(2, "meters"),
  124. default: true
  125. },
  126. {
  127. name: "Big",
  128. height: math.unit(3, "meters")
  129. },
  130. {
  131. name: "Huge",
  132. height: math.unit(4, "meters")
  133. },
  134. ]
  135. );
  136. speciesMakers["Sel'Var"] = () => makeCharacter(
  137. { name: "Sel'Var" },
  138. {
  139. female: {
  140. height: math.unit(7 + 1/12, "feet"),
  141. weight: math.unit(190, "lb"),
  142. name: "Female",
  143. image: {
  144. source: "./media/species/sel'var/female.svg",
  145. extra: 1761/1544,
  146. bottom: 57.5/1817
  147. }
  148. },
  149. male: {
  150. height: math.unit(8 + 4/12, "feet"),
  151. weight: math.unit(260, "lb"),
  152. name: "Male",
  153. image: {
  154. source: "./media/species/sel'var/male.svg",
  155. extra: 1891/1786,
  156. bottom: 65/1954.2
  157. }
  158. },
  159. dick: {
  160. height: math.unit(1.6, "feet"),
  161. name: "Dick",
  162. image: {
  163. source: "./media/species/sel'var/dick.svg"
  164. }
  165. },
  166. slit: {
  167. height: math.unit(0.8, "feet"),
  168. name: "Slit",
  169. image: {
  170. source: "./media/species/sel'var/slit.svg"
  171. }
  172. },
  173. slitinternals: {
  174. height: math.unit(1.07, "feet"),
  175. name: "Slit (Internals)",
  176. image: {
  177. source: "./media/species/sel'var/slit-internals.svg"
  178. }
  179. },
  180. maw: {
  181. height: math.unit(1.18, "feet"),
  182. name: "Maw",
  183. image: {
  184. source: "./media/species/sel'var/maw.svg"
  185. }
  186. },
  187. dewclaw: {
  188. height: math.unit(0.67, "feet"),
  189. name: "Dewclaw",
  190. image: {
  191. source: "./media/species/sel'var/dewclaw.svg"
  192. }
  193. },
  194. },
  195. [
  196. {
  197. name: "Normal",
  198. height: math.unit(7 + 1/12, "feet"),
  199. default: true
  200. },
  201. ]
  202. )
  203. speciesMakers["Werewolf"] = () => makeCharacter(
  204. { name: "Werewolf", species: ["werewolf"], tags: ["anthro"] },
  205. {
  206. front: {
  207. height: math.unit(6, "feet"),
  208. weight: math.unit(225, "lb"),
  209. name: "Front",
  210. image: {
  211. source: "./media/species/werewolf/front.svg",
  212. extra: 660/632,
  213. bottom: 20/680
  214. }
  215. },
  216. },
  217. [
  218. {
  219. name: "Human-Sized",
  220. height: math.unit(6, "feet")
  221. },
  222. {
  223. name: "Big",
  224. height: math.unit(9, "feet"),
  225. default: true
  226. },
  227. {
  228. name: "Huge",
  229. height: math.unit(12, "feet")
  230. },
  231. ]
  232. )
  233. speciesMakers["Fennec Fox"] = () => makeCharacter(
  234. { name: "Fennec Fox", species: ["fennec-fox"], tags: ["anthro"] },
  235. {
  236. front: {
  237. height: math.unit(5 + 6/12, "feet"),
  238. weight: math.unit(130, "lb"),
  239. name: "Front",
  240. image: {
  241. source: "./media/species/fennec-fox/front.svg",
  242. extra: 1148/1001,
  243. bottom: 21/1169
  244. }
  245. },
  246. back: {
  247. height: math.unit(5 + 6/12, "feet"),
  248. weight: math.unit(130, "lb"),
  249. name: "Back",
  250. image: {
  251. source: "./media/species/fennec-fox/back.svg",
  252. extra: 1155/1007,
  253. bottom: 12/1167
  254. }
  255. },
  256. mouth: {
  257. height: math.unit(0.2, "meters"),
  258. name: "Mouth",
  259. image: {
  260. source: "./media/species/fennec-fox/mouth.svg"
  261. }
  262. },
  263. },
  264. [
  265. {
  266. name: "Small",
  267. height: math.unit(4, "feet")
  268. },
  269. {
  270. name: "Human-Sized",
  271. height: math.unit(5 + 6/12, "feet"),
  272. default: true
  273. },
  274. {
  275. name: "Big",
  276. height: math.unit(9, "feet")
  277. },
  278. ]
  279. )
  280. speciesMakers["Lynx"] = () => makeCharacter(
  281. { name: "Lynx", species: ["lynx"], tags: ["anthro"] },
  282. {
  283. female: {
  284. height: math.unit(5 + 9/12, "feet"),
  285. weight: math.unit(150, "lb"),
  286. name: "Female",
  287. image: {
  288. source: "./media/species/lynx/female.svg",
  289. extra: 1030/926,
  290. bottom: 22/1052
  291. }
  292. },
  293. male: {
  294. height: math.unit(5 + 9/12, "feet"),
  295. weight: math.unit(150, "lb"),
  296. name: "Male",
  297. image: {
  298. source: "./media/species/lynx/male.svg",
  299. extra: 1097/995,
  300. bottom: 18/1115
  301. }
  302. },
  303. },
  304. [
  305. {
  306. name: "Small",
  307. height: math.unit(4 + 4/12, "feet")
  308. },
  309. {
  310. name: "Human-Sized",
  311. height: math.unit(5 + 9/12, "feet"),
  312. default: true
  313. },
  314. {
  315. name: "Big",
  316. height: math.unit(8 + 8/12, "feet")
  317. },
  318. ]
  319. )
  320. speciesMakers["Possum"] = () => makeCharacter(
  321. { name: "Possum", species: ["opossum"], tags: ["anthro"] },
  322. {
  323. female: {
  324. height: math.unit(5 + 7/12, "feet"),
  325. weight: math.unit(145, "lb"),
  326. name: "Female",
  327. image: {
  328. source: "./media/species/possum/female.svg",
  329. extra: 717/677,
  330. bottom: 44/761
  331. }
  332. },
  333. male: {
  334. height: math.unit(5 + 7/12, "feet"),
  335. weight: math.unit(145, "lb"),
  336. name: "Male",
  337. image: {
  338. source: "./media/species/possum/male.svg",
  339. extra: 822/772,
  340. bottom: 35/857
  341. }
  342. },
  343. },
  344. [
  345. {
  346. name: "Small",
  347. height: math.unit(4, "feet")
  348. },
  349. {
  350. name: "Human-Sized",
  351. height: math.unit(5 + 7/12, "feet"),
  352. default: true
  353. },
  354. {
  355. name: "Big",
  356. height: math.unit(8 + 3/12, "feet")
  357. },
  358. ]
  359. )
  360. speciesMakers["Wolf"] = () => makeCharacter(
  361. { name: "Wolf", species: ["wolf"], tags: ["anthro"] },
  362. {
  363. female: {
  364. height: math.unit(6 + 1/12, "feet"),
  365. weight: math.unit(200, "lb"),
  366. name: "Female",
  367. image: {
  368. source: "./media/species/wolf/female.svg",
  369. extra: 882/816,
  370. bottom: 21/903
  371. }
  372. },
  373. male: {
  374. height: math.unit(6 + 1/12, "feet"),
  375. weight: math.unit(200, "lb"),
  376. name: "Male",
  377. image: {
  378. source: "./media/species/wolf/male.svg",
  379. extra: 964/901,
  380. bottom: 18/982
  381. }
  382. },
  383. },
  384. [
  385. {
  386. name: "Small",
  387. height: math.unit(4 + 10/12, "feet")
  388. },
  389. {
  390. name: "Human-Sized",
  391. height: math.unit(6 + 1/12, "feet"),
  392. default: true
  393. },
  394. {
  395. name: "Big",
  396. height: math.unit(9 + 5/12, "feet")
  397. },
  398. ]
  399. )
  400. speciesMakers["Gecko"] = () => makeCharacter(
  401. { name: "Gecko", species: ["gecko"], tags: ["anthro"] },
  402. {
  403. female: {
  404. height: math.unit(5 + 6/12, "feet"),
  405. weight: math.unit(135, "lb"),
  406. name: "Female",
  407. image: {
  408. source: "./media/species/gecko/female.svg",
  409. extra: 560/550,
  410. bottom: 44/604
  411. }
  412. },
  413. male: {
  414. height: math.unit(5 + 6/12, "feet"),
  415. weight: math.unit(135, "lb"),
  416. name: "Male",
  417. image: {
  418. source: "./media/species/gecko/male.svg",
  419. extra: 618/607,
  420. bottom: 49/667
  421. }
  422. },
  423. },
  424. [
  425. {
  426. name: "Small",
  427. height: math.unit(4 + 5/12, "feet")
  428. },
  429. {
  430. name: "Human-Sized",
  431. height: math.unit(5 + 6/12, "feet"),
  432. default: true
  433. },
  434. {
  435. name: "Big",
  436. height: math.unit(8 + 8/12, "feet")
  437. },
  438. ]
  439. )
  440. speciesMakers["Squirrel"] = () => makeCharacter(
  441. { name: "Squirrel", species: ["squirrel"], tags: ["anthro"] },
  442. {
  443. female: {
  444. height: math.unit(5 + 11/12, "feet"),
  445. weight: math.unit(170, "lb"),
  446. name: "Female",
  447. image: {
  448. source: "./media/species/squirrel/female.svg",
  449. extra: 781/727,
  450. bottom: 30/811
  451. }
  452. },
  453. male: {
  454. height: math.unit(5 + 11/12, "feet"),
  455. weight: math.unit(170, "lb"),
  456. name: "Male",
  457. image: {
  458. source: "./media/species/squirrel/male.svg",
  459. extra: 821/763,
  460. bottom: 42/863
  461. }
  462. },
  463. },
  464. [
  465. {
  466. name: "Small",
  467. height: math.unit(4 + 10/12, "feet")
  468. },
  469. {
  470. name: "Human-Sized",
  471. height: math.unit(5 + 11/12, "feet"),
  472. default: true
  473. },
  474. {
  475. name: "Big",
  476. height: math.unit(9 + 2/12, "feet")
  477. },
  478. ]
  479. )
  480. speciesMakers["Human"] = () => makeCharacter(
  481. { name: "Human", species: ["human"], tags: ["anthro"] },
  482. {
  483. female: {
  484. height: math.unit(5 + 7/12, "feet"),
  485. weight: math.unit(140, "lb"),
  486. energy: math.unit(1, "peopleEaten"),
  487. name: "Female",
  488. image: {
  489. source: "./media/species/human/female.svg"
  490. }
  491. },
  492. male: {
  493. height: math.unit(5 + 11/12, "feet"),
  494. weight: math.unit(150, "lb"),
  495. energy: math.unit(1, "peopleEaten"),
  496. name: "Male",
  497. image: {
  498. source: "./media/species/human/male.svg"
  499. }
  500. },
  501. hand: {
  502. height: math.unit(7.2, "inches"),
  503. name: "Hand",
  504. image: {
  505. source: "./media/species/human/hand.svg"
  506. }
  507. },
  508. foot: {
  509. height: math.unit(10.5, "inches"),
  510. name: "Foot",
  511. image: {
  512. source: "./media/species/human/foot.svg"
  513. }
  514. },
  515. },
  516. [
  517. {
  518. name: "Human-Sized",
  519. height: math.unit(5 + 7/12, "feet"),
  520. default: true
  521. },
  522. ]
  523. )
  524. speciesMakers["Zorgoia"] = () => makeCharacter(
  525. { name: "Zorgoia", species: ["zorgoia"], tags: ["feral"] },
  526. {
  527. side: {
  528. height: math.unit(12, "feet"),
  529. weight: math.unit(2.5, "tonnes"),
  530. name: "Side",
  531. image: {
  532. source: "./media/species/zorgoia/side.svg",
  533. extra: 1422/1256,
  534. bottom: 144/1566
  535. }
  536. },
  537. front: {
  538. height: math.unit(12, "feet"),
  539. weight: math.unit(2.5, "tonnes"),
  540. name: "Front",
  541. image: {
  542. source: "./media/species/zorgoia/front.svg",
  543. extra: 1428/1117,
  544. bottom: 182/1610
  545. }
  546. },
  547. sitting: {
  548. height: math.unit(12, "feet"),
  549. weight: math.unit(2.5, "tonnes"),
  550. name: "Sitting",
  551. image: {
  552. source: "./media/species/zorgoia/sitting.svg",
  553. extra: 1485/1251,
  554. bottom: 206/1691
  555. }
  556. },
  557. maw: {
  558. height: math.unit(7.26, "feet"),
  559. name: "Maw",
  560. image: {
  561. source: "./media/species/zorgoia/maw.svg"
  562. }
  563. },
  564. mawSide: {
  565. height: math.unit(4.95, "feet"),
  566. name: "Maw (Side)",
  567. image: {
  568. source: "./media/species/zorgoia/maw-side.svg"
  569. }
  570. },
  571. forepaw: {
  572. height: math.unit(3.38, "feet"),
  573. name: "Forepaw",
  574. image: {
  575. source: "./media/species/zorgoia/forepaw.svg"
  576. }
  577. },
  578. hindpaw: {
  579. height: math.unit(4.95, "feet"),
  580. name: "Hindpaw",
  581. image: {
  582. source: "./media/species/zorgoia/hindpaw.svg"
  583. }
  584. },
  585. stingerClosed: {
  586. height: math.unit(5.45, "feet"),
  587. name: "Stinger (Closed)",
  588. image: {
  589. source: "./media/species/zorgoia/stinger-closed.svg"
  590. }
  591. },
  592. stingerOpen: {
  593. height: math.unit(5.45, "feet"),
  594. name: "Stinger (Open)",
  595. image: {
  596. source: "./media/species/zorgoia/stinger-open.svg"
  597. }
  598. },
  599. },
  600. [
  601. {
  602. name: "Normal",
  603. height: math.unit(12, "feet"),
  604. default: true
  605. },
  606. ]
  607. )
  608. function makeSpecies() {
  609. const results = [];
  610. Object.entries(speciesMakers).forEach(([key, value]) => {
  611. results.push(
  612. value()
  613. );
  614. });
  615. return results;
  616. }