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.
 
 
 

674 lines
17 KiB

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