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.
 
 
 

2662 lines
67 KiB

  1. const characterMakers = [];
  2. math.createUnit("parsecs", {
  3. definition: "3.086e16 meters",
  4. prefixes: "long"
  5. })
  6. math.createUnit("lightyears", {
  7. definition: "9.461e15 meters",
  8. prefixes: "long"
  9. })
  10. function makeCharacter(name, author, viewInfo, defaultSizes, defaultSize) {
  11. views = {};
  12. Object.entries(viewInfo).forEach(([key, value]) => {
  13. views[key] = {
  14. attributes: {
  15. height: {
  16. name: "Height",
  17. power: 1,
  18. type: "length",
  19. base: value.height
  20. }
  21. },
  22. image: value.image,
  23. name: value.name
  24. }
  25. if (value.weight) {
  26. views[key].attributes.weight = {
  27. name: "Mass",
  28. power: 3,
  29. type: "mass",
  30. base: value.weight
  31. };
  32. }
  33. });
  34. const entity = makeEntity(name, "author", views);
  35. if (defaultSizes) {
  36. entity.defaults = defaultSizes;
  37. }
  38. if (defaultSize) {
  39. entity.views[entity.defaultView].height = defaultSize;
  40. }
  41. return entity;
  42. }
  43. characterMakers["Fen"] = () => {
  44. return makeCharacter(
  45. "Fen",
  46. "chemicalcrux",
  47. {
  48. body: {
  49. height: math.unit(2.2428, "meter"),
  50. weight: math.unit(124.738, "kg"),
  51. name: "Body",
  52. image: {
  53. source: "./media/characters/236.svg"
  54. }
  55. }
  56. },
  57. [
  58. {
  59. name: "Normal",
  60. height: math.unit(2.2428, "meter")
  61. },
  62. {
  63. name: "Big",
  64. height: math.unit(12, "feet")
  65. },
  66. {
  67. name: "Macro",
  68. height: math.unit(100, "meter")
  69. },
  70. {
  71. name: "Macro+",
  72. height: math.unit(1000, "meter")
  73. },
  74. {
  75. name: "Megamacro",
  76. height: math.unit(10, "miles")
  77. }
  78. ],
  79. math.unit(100, "meter")
  80. )
  81. };
  82. function makeSofia() {
  83. const views = {
  84. front: {
  85. attributes: {
  86. height: {
  87. name: "Height",
  88. power: 1,
  89. type: "length",
  90. base: math.unit(183, "cm")
  91. },
  92. weight: {
  93. name: "Weight",
  94. power: 3,
  95. type: "mass",
  96. base: math.unit(80, "kg")
  97. }
  98. },
  99. image: {
  100. source: "./media/characters/sofia/front.svg"
  101. },
  102. name: "Front"
  103. },
  104. back: {
  105. attributes: {
  106. height: {
  107. name: "Height",
  108. power: 1,
  109. type: "length",
  110. base: math.unit(183, "cm")
  111. },
  112. weight: {
  113. name: "Weight",
  114. power: 3,
  115. type: "mass",
  116. base: math.unit(80, "kg")
  117. }
  118. },
  119. image: {
  120. source: "./media/characters/sofia/back.svg"
  121. },
  122. name: "Back"
  123. }
  124. };
  125. const entity = makeEntity("Sofia", "ZakuraTech", views);
  126. entity.views.front.height = math.unit(96, "feet");
  127. return entity;
  128. }
  129. function makeMarch() {
  130. const views = {
  131. front: {
  132. attributes: {
  133. height: {
  134. name: "Height",
  135. power: 1,
  136. type: "length",
  137. base: math.unit(7, "feet")
  138. },
  139. weight: {
  140. name: "Weight",
  141. power: 3,
  142. type: "mass",
  143. base: math.unit(100, "kg")
  144. }
  145. },
  146. image: {
  147. source: "./media/characters/march/front.svg"
  148. },
  149. name: "Front"
  150. },
  151. foot: {
  152. attributes: {
  153. height: {
  154. name: "Height",
  155. power: 1,
  156. type: "length",
  157. base: math.unit(0.9, "feet")
  158. }
  159. },
  160. image: {
  161. source: "./media/characters/march/foot.svg"
  162. },
  163. name: "Foot"
  164. }
  165. };
  166. const entity = makeEntity("March", "March-Dragon", views);
  167. entity.defaults.push({
  168. name: "Normal",
  169. height: math.unit(7.9, "feet")
  170. });
  171. entity.defaults.push({
  172. name: "Macro",
  173. height: math.unit(220, "meters")
  174. });
  175. entity.defaults.push({
  176. name: "Megamacro",
  177. height: math.unit(2.98, "km")
  178. });
  179. entity.defaults.push({
  180. name: "Gigamacro",
  181. height: math.unit(15963, "km")
  182. });
  183. entity.defaults.push({
  184. name: "Teramacro",
  185. height: math.unit(2980000000, "kilometers")
  186. });
  187. entity.defaults.push({
  188. name: "Examacro",
  189. height: math.unit(250, "parsecs")
  190. });
  191. entity.views.front.height = math.unit(2.98, "km");
  192. return entity;
  193. }
  194. function makeNoir() {
  195. const views = {
  196. front: {
  197. attributes: {
  198. height: {
  199. name: "Height",
  200. power: 1,
  201. type: "length",
  202. base: math.unit(6, "feet")
  203. },
  204. weight: {
  205. name: "Weight",
  206. power: 3,
  207. type: "mass",
  208. base: math.unit(60, "kg")
  209. }
  210. },
  211. image: {
  212. source: "./media/characters/noir/front.svg",
  213. bottom: 0.01
  214. },
  215. name: "Front"
  216. }
  217. };
  218. const entity = makeEntity("Noir", "March-Dragon", views);
  219. entity.defaults.push({
  220. name: "Normal",
  221. height: math.unit(6.6, "feet")
  222. });
  223. entity.defaults.push({
  224. name: "Macro",
  225. height: math.unit(500, "feet")
  226. });
  227. entity.defaults.push({
  228. name: "Megamacro",
  229. height: math.unit(2.5, "km")
  230. });
  231. entity.defaults.push({
  232. name: "Gigamacro",
  233. height: math.unit(22500, "km")
  234. });
  235. entity.defaults.push({
  236. name: "Teramacro",
  237. height: math.unit(2500000000, "kilometers")
  238. });
  239. entity.defaults.push({
  240. name: "Examacro",
  241. height: math.unit(200, "parsecs")
  242. });
  243. entity.views.front.height = math.unit(2.5, "km");
  244. return entity;
  245. }
  246. function makeOkuri() {
  247. const views = {
  248. front: {
  249. attributes: {
  250. height: {
  251. name: "Height",
  252. power: 1,
  253. type: "length",
  254. base: math.unit(7, "feet")
  255. },
  256. weight: {
  257. name: "Weight",
  258. power: 3,
  259. type: "mass",
  260. base: math.unit(100, "kg")
  261. }
  262. },
  263. image: {
  264. source: "./media/characters/okuri/front.svg"
  265. },
  266. name: "Front"
  267. },
  268. back: {
  269. attributes: {
  270. height: {
  271. name: "Height",
  272. power: 1,
  273. type: "length",
  274. base: math.unit(7, "feet")
  275. },
  276. weight: {
  277. name: "Weight",
  278. power: 3,
  279. type: "mass",
  280. base: math.unit(100, "kg")
  281. }
  282. },
  283. image: {
  284. source: "./media/characters/okuri/back.svg"
  285. },
  286. name: "Back"
  287. }
  288. };
  289. const entity = makeEntity("Okuri", "OrionMechadragon", views);
  290. entity.views.front.height = math.unit(100, "miles");
  291. return entity;
  292. }
  293. function makeManny() {
  294. const views = {
  295. front: {
  296. attributes: {
  297. height: {
  298. name: "Height",
  299. power: 1,
  300. type: "length",
  301. base: math.unit(7, "feet")
  302. },
  303. weight: {
  304. name: "Weight",
  305. power: 3,
  306. type: "mass",
  307. base: math.unit(100, "kg")
  308. }
  309. },
  310. image: {
  311. source: "./media/characters/manny/front.svg"
  312. },
  313. name: "Front"
  314. },
  315. back: {
  316. attributes: {
  317. height: {
  318. name: "Height",
  319. power: 1,
  320. type: "length",
  321. base: math.unit(7, "feet")
  322. },
  323. weight: {
  324. name: "Weight",
  325. power: 3,
  326. type: "mass",
  327. base: math.unit(100, "kg")
  328. }
  329. },
  330. image: {
  331. source: "./media/characters/manny/back.svg"
  332. },
  333. name: "Back"
  334. }
  335. };
  336. const entity = makeEntity("Manny", "Dialuca01", views);
  337. entity.defaults.push({
  338. name: "Normal",
  339. height: math.unit(7, "feet")
  340. });
  341. entity.defaults.push({
  342. name: "Macro",
  343. height: math.unit(78, "feet")
  344. });
  345. entity.defaults.push({
  346. name: "Macro+",
  347. height: math.unit(300, "meters")
  348. });
  349. entity.defaults.push({
  350. name: "Megamacro",
  351. height: math.unit(5167, "meters")
  352. });
  353. entity.defaults.push({
  354. name: "Gigamacro",
  355. height: math.unit(41769, "miles")
  356. });
  357. entity.views.front.height = math.unit(78, "feet");
  358. return entity;
  359. }
  360. function makeAdake() {
  361. const views = {
  362. front: {
  363. attributes: {
  364. height: {
  365. name: "Height",
  366. power: 1,
  367. type: "length",
  368. base: math.unit(7, "feet")
  369. },
  370. weight: {
  371. name: "Weight",
  372. power: 3,
  373. type: "mass",
  374. base: math.unit(100, "kg")
  375. }
  376. },
  377. image: {
  378. source: "./media/characters/adake/front-1.svg"
  379. },
  380. name: "Front"
  381. },
  382. frontAlt: {
  383. attributes: {
  384. height: {
  385. name: "Height",
  386. power: 1,
  387. type: "length",
  388. base: math.unit(7, "feet")
  389. },
  390. weight: {
  391. name: "Weight",
  392. power: 3,
  393. type: "mass",
  394. base: math.unit(100, "kg")
  395. }
  396. },
  397. image: {
  398. source: "./media/characters/adake/front-2.svg",
  399. bottom: 0.005
  400. },
  401. name: "Front (Alt)"
  402. },
  403. back: {
  404. attributes: {
  405. height: {
  406. name: "Height",
  407. power: 1,
  408. type: "length",
  409. base: math.unit(7, "feet")
  410. },
  411. weight: {
  412. name: "Weight",
  413. power: 3,
  414. type: "mass",
  415. base: math.unit(100, "kg")
  416. }
  417. },
  418. image: {
  419. source: "./media/characters/adake/back.svg",
  420. },
  421. name: "Back"
  422. },
  423. kneel: {
  424. attributes: {
  425. height: {
  426. name: "Height",
  427. power: 1,
  428. type: "length",
  429. base: math.unit(5.385, "feet")
  430. },
  431. weight: {
  432. name: "Weight",
  433. power: 3,
  434. type: "mass",
  435. base: math.unit(100, "kg")
  436. }
  437. },
  438. image: {
  439. source: "./media/characters/adake/kneel.svg",
  440. bottom: 0.05
  441. },
  442. name: "Kneeling"
  443. },
  444. };
  445. const entity = makeEntity("Adake", "Dialuca01", views);
  446. entity.defaults.push({
  447. name: "Normal",
  448. height: math.unit(7, "feet")
  449. });
  450. entity.defaults.push({
  451. name: "Macro",
  452. height: math.unit(78, "feet")
  453. });
  454. entity.defaults.push({
  455. name: "Macro+",
  456. height: math.unit(300, "meters")
  457. });
  458. entity.defaults.push({
  459. name: "Megamacro",
  460. height: math.unit(5167, "meters")
  461. });
  462. entity.defaults.push({
  463. name: "Gigamacro",
  464. height: math.unit(41769, "miles")
  465. });
  466. entity.views.front.height = math.unit(78, "feet");
  467. return entity;
  468. }
  469. function makeElijah() {
  470. const views = {
  471. side: {
  472. attributes: {
  473. height: {
  474. name: "Height",
  475. power: 1,
  476. type: "length",
  477. base: math.unit(7, "feet")
  478. },
  479. weight: {
  480. name: "Weight",
  481. power: 3,
  482. type: "mass",
  483. base: math.unit(50, "kg")
  484. }
  485. },
  486. image: {
  487. source: "./media/characters/elijah/side.svg",
  488. bottom: 0.01
  489. },
  490. name: "Side"
  491. },
  492. foot: {
  493. attributes: {
  494. height: {
  495. name: "Height",
  496. power: 1,
  497. type: "length",
  498. base: math.unit(2, "feet")
  499. }
  500. },
  501. image: {
  502. source: "./media/characters/elijah/foot.svg",
  503. },
  504. name: "Foot"
  505. }
  506. };
  507. const entity = makeEntity("Elijah", "Elijah", views);
  508. entity.defaults.push({
  509. name: "Normal",
  510. height: math.unit(1.65, "meters")
  511. });
  512. entity.defaults.push({
  513. name: "Macro",
  514. height: math.unit(55, "meters")
  515. });
  516. entity.defaults.push({
  517. name: "Macro+",
  518. height: math.unit(105, "meters")
  519. });
  520. entity.views.side.height = math.unit(55, "meters");
  521. return entity;
  522. }
  523. function makeRai() {
  524. const views = {
  525. front: {
  526. attributes: {
  527. height: {
  528. name: "Height",
  529. power: 1,
  530. type: "length",
  531. base: math.unit(7, "feet")
  532. },
  533. weight: {
  534. name: "Weight",
  535. power: 3,
  536. type: "mass",
  537. base: math.unit(80, "kg")
  538. }
  539. },
  540. image: {
  541. source: "./media/characters/rai/front.svg"
  542. },
  543. name: "Front"
  544. },
  545. side: {
  546. attributes: {
  547. height: {
  548. name: "Height",
  549. power: 1,
  550. type: "length",
  551. base: math.unit(7, "feet")
  552. },
  553. weight: {
  554. name: "Weight",
  555. power: 3,
  556. type: "mass",
  557. base: math.unit(80, "kg")
  558. }
  559. },
  560. image: {
  561. source: "./media/characters/rai/side.svg"
  562. },
  563. name: "Side"
  564. },
  565. back: {
  566. attributes: {
  567. height: {
  568. name: "Height",
  569. power: 1,
  570. type: "length",
  571. base: math.unit(7, "feet")
  572. },
  573. weight: {
  574. name: "Weight",
  575. power: 3,
  576. type: "mass",
  577. base: math.unit(80, "kg")
  578. }
  579. },
  580. image: {
  581. source: "./media/characters/rai/back.svg"
  582. },
  583. name: "Back"
  584. }
  585. };
  586. const entity = makeEntity("Rai", "shadowblade945", views);
  587. entity.views.front.height = math.unit(302, "feet");
  588. return entity;
  589. }
  590. function makeJazzy() {
  591. const views = {
  592. front: {
  593. attributes: {
  594. height: {
  595. name: "Height",
  596. power: 1,
  597. type: "length",
  598. base: math.unit(7, "feet")
  599. },
  600. weight: {
  601. name: "Weight",
  602. power: 3,
  603. type: "mass",
  604. base: math.unit(80, "kg")
  605. }
  606. },
  607. image: {
  608. source: "./media/characters/jazzy/front.svg",
  609. bottom: 0.01
  610. },
  611. name: "Front"
  612. },
  613. back: {
  614. attributes: {
  615. height: {
  616. name: "Height",
  617. power: 1,
  618. type: "length",
  619. base: math.unit(7, "feet")
  620. },
  621. weight: {
  622. name: "Weight",
  623. power: 3,
  624. type: "mass",
  625. base: math.unit(80, "kg")
  626. }
  627. },
  628. image: {
  629. source: "./media/characters/jazzy/back.svg"
  630. },
  631. name: "Back"
  632. }
  633. };
  634. const entity = makeEntity("Jazzy", "Jazzywolf", views);
  635. entity.views.front.height = math.unit(216, "feet");
  636. return entity;
  637. }
  638. function makeFlamm() {
  639. const views = {
  640. front: {
  641. attributes: {
  642. height: {
  643. name: "Height",
  644. power: 1,
  645. type: "length",
  646. base: math.unit(7, "feet")
  647. },
  648. weight: {
  649. name: "Weight",
  650. power: 3,
  651. type: "mass",
  652. base: math.unit(80, "kg")
  653. }
  654. },
  655. image: {
  656. source: "./media/characters/flamm/front.svg"
  657. },
  658. name: "Front"
  659. }
  660. };
  661. const entity = makeEntity("Flamm", "Flamm", views);
  662. entity.defaults.push({
  663. name: "Normal",
  664. height: math.unit(9.5, "feet")
  665. });
  666. entity.defaults.push({
  667. name: "Macro",
  668. height: math.unit(200, "feet")
  669. });
  670. entity.views.front.height = math.unit(200, "feet");
  671. return entity;
  672. }
  673. function makeZephiro() {
  674. const views = {
  675. front: {
  676. attributes: {
  677. height: {
  678. name: "Height",
  679. power: 1,
  680. type: "length",
  681. base: math.unit(7, "feet")
  682. },
  683. weight: {
  684. name: "Weight",
  685. power: 3,
  686. type: "mass",
  687. base: math.unit(80, "kg")
  688. }
  689. },
  690. image: {
  691. source: "./media/characters/zephiro/front.svg"
  692. },
  693. name: "Front"
  694. },
  695. side: {
  696. attributes: {
  697. height: {
  698. name: "Height",
  699. power: 1,
  700. type: "length",
  701. base: math.unit(7, "feet")
  702. },
  703. weight: {
  704. name: "Weight",
  705. power: 3,
  706. type: "mass",
  707. base: math.unit(80, "kg")
  708. }
  709. },
  710. image: {
  711. source: "./media/characters/zephiro/side.svg"
  712. },
  713. name: "Side"
  714. },
  715. back: {
  716. attributes: {
  717. height: {
  718. name: "Height",
  719. power: 1,
  720. type: "length",
  721. base: math.unit(7, "feet")
  722. },
  723. weight: {
  724. name: "Weight",
  725. power: 3,
  726. type: "mass",
  727. base: math.unit(80, "kg")
  728. }
  729. },
  730. image: {
  731. source: "./media/characters/zephiro/back.svg"
  732. },
  733. name: "Back"
  734. }
  735. };
  736. const entity = makeEntity("Zephiro", "Zephiro", views);
  737. entity.views.front.height = math.unit(118, "feet");
  738. entity.defaults.push({
  739. name: "Micro",
  740. height: math.unit(3, "inches")
  741. });
  742. entity.defaults.push({
  743. name: "Normal",
  744. height: math.unit(5 + 3/12, "feet")
  745. });
  746. entity.defaults.push({
  747. name: "Macro",
  748. height: math.unit(118, "feet")
  749. });
  750. return entity;
  751. }
  752. function makeFory() {
  753. const views = {
  754. front: {
  755. attributes: {
  756. height: {
  757. name: "Height",
  758. power: 1,
  759. type: "length",
  760. base: math.unit(7, "feet")
  761. },
  762. weight: {
  763. name: "Weight",
  764. power: 3,
  765. type: "mass",
  766. base: math.unit(90, "kg")
  767. }
  768. },
  769. image: {
  770. source: "./media/characters/fory/front.svg"
  771. },
  772. name: "Front"
  773. }
  774. };
  775. const entity = makeEntity("Fory", "Manny", views);
  776. entity.defaults.push({
  777. name: "Normal",
  778. height: math.unit(5, "feet")
  779. });
  780. entity.defaults.push({
  781. name: "Macro",
  782. height: math.unit(50, "feet")
  783. });
  784. entity.views.front.height = math.unit(50, "feet");
  785. return entity;
  786. }
  787. function makeKurrikage() {
  788. const views = {
  789. front: {
  790. attributes: {
  791. height: {
  792. name: "Height",
  793. power: 1,
  794. type: "length",
  795. base: math.unit(7, "feet")
  796. },
  797. weight: {
  798. name: "Weight",
  799. power: 3,
  800. type: "mass",
  801. base: math.unit(90, "kg")
  802. }
  803. },
  804. image: {
  805. source: "./media/characters/kurrikage/front.svg"
  806. },
  807. name: "Front"
  808. },
  809. back: {
  810. attributes: {
  811. height: {
  812. name: "Height",
  813. power: 1,
  814. type: "length",
  815. base: math.unit(7, "feet")
  816. },
  817. weight: {
  818. name: "Weight",
  819. power: 3,
  820. type: "mass",
  821. base: math.unit(90, "kg")
  822. }
  823. },
  824. image: {
  825. source: "./media/characters/kurrikage/back.svg"
  826. },
  827. name: "Back"
  828. },
  829. paw: {
  830. attributes: {
  831. height: {
  832. name: "Height",
  833. power: 1,
  834. type: "length",
  835. base: math.unit(1.5, "feet")
  836. }
  837. },
  838. image: {
  839. source: "./media/characters/kurrikage/paw.svg"
  840. },
  841. name: "Paw"
  842. },
  843. staff: {
  844. attributes: {
  845. height: {
  846. name: "Height",
  847. power: 1,
  848. type: "length",
  849. base: math.unit(6.7, "feet")
  850. }
  851. },
  852. image: {
  853. source: "./media/characters/kurrikage/staff.svg"
  854. },
  855. name: "Staff"
  856. },
  857. peek: {
  858. attributes: {
  859. height: {
  860. name: "Height",
  861. power: 1,
  862. type: "length",
  863. base: math.unit(1.05, "feet")
  864. }
  865. },
  866. image: {
  867. source: "./media/characters/kurrikage/peek.svg",
  868. bottom: 0.08
  869. },
  870. name: "Peeking"
  871. }
  872. };
  873. const entity = makeEntity("Kurrikage", "Kurrikage", views);
  874. entity.views.front.height = math.unit(12, "feet");
  875. return entity;
  876. }
  877. function makeShingo() {
  878. const views = {
  879. front: {
  880. attributes: {
  881. height: {
  882. name: "Height",
  883. power: 1,
  884. type: "length",
  885. base: math.unit(6, "feet")
  886. },
  887. weight: {
  888. name: "Weight",
  889. power: 3,
  890. type: "mass",
  891. base: math.unit(75, "kg")
  892. }
  893. },
  894. image: {
  895. source: "./media/characters/shingo/front.svg"
  896. },
  897. name: "Front"
  898. }
  899. };
  900. const entity = makeEntity("Shingo", "Threes", views);
  901. entity.defaults.push({
  902. name: "Micro",
  903. height: math.unit(4, "inches")
  904. });
  905. entity.defaults.push({
  906. name: "Normal",
  907. height: math.unit(6, "feet")
  908. });
  909. entity.defaults.push({
  910. name: "Macro",
  911. height: math.unit(108, "feet")
  912. });
  913. return entity;
  914. }
  915. function makeAigey() {
  916. const views = {
  917. side: {
  918. attributes: {
  919. height: {
  920. name: "Height",
  921. power: 1,
  922. type: "length",
  923. base: math.unit(6, "feet")
  924. },
  925. weight: {
  926. name: "Weight",
  927. power: 3,
  928. type: "mass",
  929. base: math.unit(75, "kg")
  930. }
  931. },
  932. image: {
  933. source: "./media/characters/aigey/side.svg"
  934. },
  935. name: "Side"
  936. }
  937. };
  938. const entity = makeEntity("Aigey", "Aigey", views);
  939. entity.defaults.push({
  940. name: "Macro",
  941. height: math.unit(200, "feet")
  942. });
  943. entity.defaults.push({
  944. name: "Megamacro",
  945. height: math.unit(100, "miles")
  946. });
  947. entity.views[entity.defaultView].height = math.unit(200, "feet");
  948. return entity;
  949. }
  950. function makeNatasha() {
  951. const views = {
  952. side: {
  953. attributes: {
  954. height: {
  955. name: "Height",
  956. power: 1,
  957. type: "length",
  958. base: math.unit(6, "feet")
  959. },
  960. weight: {
  961. name: "Weight",
  962. power: 3,
  963. type: "mass",
  964. base: math.unit(75, "kg")
  965. }
  966. },
  967. image: {
  968. source: "./media/characters/natasha/front.svg"
  969. },
  970. name: "Side"
  971. }
  972. };
  973. const entity = makeEntity("Natasha", "Natasha", views);
  974. entity.defaults.push({
  975. name: "Normal",
  976. height: math.unit(5 + 5/12, "feet")
  977. });
  978. entity.defaults.push({
  979. name: "Large",
  980. height: math.unit(12, "feet")
  981. });
  982. entity.defaults.push({
  983. name: "Macro",
  984. height: math.unit(100, "feet")
  985. });
  986. entity.defaults.push({
  987. name: "Macro+",
  988. height: math.unit(260, "feet")
  989. });
  990. entity.defaults.push({
  991. name: "Macro++",
  992. height: math.unit(1, "mile")
  993. });
  994. entity.views[entity.defaultView].height = math.unit(100, "feet");
  995. return entity;
  996. }
  997. function makeMalik() {
  998. const views = {
  999. front: {
  1000. attributes: {
  1001. height: {
  1002. name: "Height",
  1003. power: 1,
  1004. type: "length",
  1005. base: math.unit(6, "feet")
  1006. },
  1007. weight: {
  1008. name: "Weight",
  1009. power: 3,
  1010. type: "mass",
  1011. base: math.unit(75, "kg")
  1012. }
  1013. },
  1014. image: {
  1015. source: "./media/characters/malik/front.svg"
  1016. },
  1017. name: "Front"
  1018. },
  1019. side: {
  1020. attributes: {
  1021. height: {
  1022. name: "Height",
  1023. power: 1,
  1024. type: "length",
  1025. base: math.unit(6, "feet")
  1026. },
  1027. weight: {
  1028. name: "Weight",
  1029. power: 3,
  1030. type: "mass",
  1031. base: math.unit(75, "kg")
  1032. }
  1033. },
  1034. image: {
  1035. extra: 1.1539,
  1036. source: "./media/characters/malik/side.svg"
  1037. },
  1038. name: "Side"
  1039. },
  1040. back: {
  1041. attributes: {
  1042. height: {
  1043. name: "Height",
  1044. power: 1,
  1045. type: "length",
  1046. base: math.unit(6, "feet")
  1047. },
  1048. weight: {
  1049. name: "Weight",
  1050. power: 3,
  1051. type: "mass",
  1052. base: math.unit(75, "kg")
  1053. }
  1054. },
  1055. image: {
  1056. source: "./media/characters/malik/back.svg"
  1057. },
  1058. name: "Back"
  1059. },
  1060. };
  1061. const entity = makeEntity("Malik", "Fuzzypaws", views);
  1062. entity.defaults.push({
  1063. name: "Macro",
  1064. height: math.unit(156, "feet")
  1065. });
  1066. entity.defaults.push({
  1067. name: "Macro+",
  1068. height: math.unit(1188, "feet")
  1069. });
  1070. entity.views[entity.defaultView].height = math.unit(156, "feet");
  1071. return entity;
  1072. }
  1073. function makeSefer() {
  1074. const views = {
  1075. front: {
  1076. attributes: {
  1077. height: {
  1078. name: "Height",
  1079. power: 1,
  1080. type: "length",
  1081. base: math.unit(6, "feet")
  1082. },
  1083. weight: {
  1084. name: "Weight",
  1085. power: 3,
  1086. type: "mass",
  1087. base: math.unit(75, "kg")
  1088. }
  1089. },
  1090. image: {
  1091. source: "./media/characters/sefer/front.svg"
  1092. },
  1093. name: "Front"
  1094. },
  1095. back: {
  1096. attributes: {
  1097. height: {
  1098. name: "Height",
  1099. power: 1,
  1100. type: "length",
  1101. base: math.unit(6, "feet")
  1102. },
  1103. weight: {
  1104. name: "Weight",
  1105. power: 3,
  1106. type: "mass",
  1107. base: math.unit(75, "kg")
  1108. }
  1109. },
  1110. image: {
  1111. source: "./media/characters/sefer/back.svg"
  1112. },
  1113. name: "Back"
  1114. },
  1115. };
  1116. const entity = makeEntity("Sefer", "Fuzzypaws", views);
  1117. entity.views[entity.defaultView].height = math.unit(6, "feet");
  1118. return entity;
  1119. }
  1120. function makeMan() {
  1121. const views = {
  1122. body: {
  1123. attributes: {
  1124. height: {
  1125. name: "Height",
  1126. power: 1,
  1127. type: "length",
  1128. base: math.unit(2, "meter")
  1129. },
  1130. weight: {
  1131. name: "Weight",
  1132. power: 3,
  1133. type: "mass",
  1134. base: math.unit(80, "kg")
  1135. }
  1136. },
  1137. image: {
  1138. source: "./man.svg"
  1139. },
  1140. name: "Body"
  1141. }
  1142. };
  1143. return makeEntity("Normal Man", "Fen", views);
  1144. }
  1145. characterMakers["North"] = () => {
  1146. return makeCharacter(
  1147. "North",
  1148. "chemicalcrux",
  1149. {
  1150. body: {
  1151. height: math.unit(2.2428, "meter"),
  1152. weight: math.unit(124.738, "kg"),
  1153. name: "Body",
  1154. image: {
  1155. extra: 1225/1050,
  1156. source: "./media/characters/north/front.svg"
  1157. }
  1158. }
  1159. },
  1160. [
  1161. {
  1162. name: "Micro",
  1163. height: math.unit(4, "inches")
  1164. },
  1165. {
  1166. name: "Macro",
  1167. height: math.unit(63, "meters")
  1168. },
  1169. {
  1170. name: "Megamacro",
  1171. height: math.unit(101, "miles")
  1172. }
  1173. ],
  1174. math.unit(101, "miles")
  1175. )
  1176. };
  1177. characterMakers["Talan"] = () => {
  1178. return makeCharacter(
  1179. "Talan",
  1180. "talanstrider",
  1181. {
  1182. body: {
  1183. height: math.unit(2, "meter"),
  1184. weight: math.unit(70, "kg"),
  1185. name: "Body",
  1186. image: {
  1187. bottom: 0.02,
  1188. source: "./media/characters/talan/front.svg"
  1189. }
  1190. }
  1191. },
  1192. [
  1193. {
  1194. name: "Normal",
  1195. height: math.unit(4, "meters")
  1196. },
  1197. {
  1198. name: "Macro",
  1199. height: math.unit(100, "meters")
  1200. },
  1201. {
  1202. name: "Megamacro",
  1203. height: math.unit(2, "miles")
  1204. },
  1205. {
  1206. name: "Gigamacro",
  1207. height: math.unit(5000, "miles")
  1208. },
  1209. {
  1210. name: "Teramacro",
  1211. height: math.unit(100, "parsecs")
  1212. }
  1213. ],
  1214. math.unit(2, "miles")
  1215. )
  1216. };
  1217. characterMakers["Gael'Rathus"] = () => {
  1218. return makeCharacter(
  1219. "Gael'Rathus",
  1220. "Kurrikage",
  1221. {
  1222. front: {
  1223. height: math.unit(2, "meter"),
  1224. weight: math.unit(90, "kg"),
  1225. name: "Front",
  1226. image: {
  1227. source: "./media/characters/gael'rathus/front.svg"
  1228. }
  1229. },
  1230. frontAlt: {
  1231. height: math.unit(2, "meter"),
  1232. weight: math.unit(90, "kg"),
  1233. name: "Front (alt)",
  1234. image: {
  1235. source: "./media/characters/gael'rathus/front-alt.svg"
  1236. }
  1237. },
  1238. frontAlt2: {
  1239. height: math.unit(2, "meter"),
  1240. weight: math.unit(90, "kg"),
  1241. name: "Front (alt 2)",
  1242. image: {
  1243. source: "./media/characters/gael'rathus/front-alt-2.svg"
  1244. }
  1245. }
  1246. },
  1247. [
  1248. {
  1249. name: "Normal",
  1250. height: math.unit(9, "feet")
  1251. },
  1252. {
  1253. name: "Large",
  1254. height: math.unit(25, "feet")
  1255. },
  1256. {
  1257. name: "Macro",
  1258. height: math.unit(0.25, "miles")
  1259. },
  1260. {
  1261. name: "Megamacro",
  1262. height: math.unit(10, "miles")
  1263. }
  1264. ],
  1265. math.unit(9, "feet")
  1266. )
  1267. };
  1268. characterMakers["Sosha"] = () => {
  1269. return makeCharacter(
  1270. "Sosha",
  1271. "Sdocat",
  1272. {
  1273. side: {
  1274. height: math.unit(2, "meter"),
  1275. weight: math.unit(140, "kg"),
  1276. name: "Side",
  1277. image: {
  1278. source: "./media/characters/sosha/side.svg"
  1279. }
  1280. },
  1281. },
  1282. [
  1283. {
  1284. name: "Normal",
  1285. height: math.unit(12, "feet")
  1286. }
  1287. ],
  1288. math.unit(12, "feet")
  1289. )
  1290. };
  1291. characterMakers["Kurribird"] = () => {
  1292. return makeCharacter(
  1293. "Kurribird",
  1294. "Kurrikage",
  1295. {
  1296. front: {
  1297. height: math.unit(2, "meter"),
  1298. weight: math.unit(50, "kg"),
  1299. name: "Front",
  1300. image: {
  1301. source: "./media/characters/kurribird/front.svg",
  1302. bottom: 0.015
  1303. }
  1304. },
  1305. frontAlt: {
  1306. height: math.unit(1.5, "meter"),
  1307. weight: math.unit(50, "kg"),
  1308. name: "Front (Alt)",
  1309. image: {
  1310. source: "./media/characters/kurribird/front-alt.svg",
  1311. extra: 1.45
  1312. }
  1313. },
  1314. },
  1315. [
  1316. {
  1317. name: "Normal",
  1318. height: math.unit(7, "feet")
  1319. },
  1320. {
  1321. name: "Big",
  1322. height: math.unit(15, "feet")
  1323. },
  1324. {
  1325. name: "Macro",
  1326. height: math.unit(1500, "feet")
  1327. },
  1328. {
  1329. name: "Megamacro",
  1330. height: math.unit(2, "miles")
  1331. }
  1332. ],
  1333. math.unit(12, "feet")
  1334. )
  1335. };
  1336. characterMakers["Elbial"] = () => {
  1337. return makeCharacter(
  1338. "Elbial",
  1339. "Neopuc",
  1340. {
  1341. front: {
  1342. height: math.unit(2, "meter"),
  1343. weight: math.unit(80, "kg"),
  1344. name: "Front",
  1345. image: {
  1346. source: "./media/characters/elbial/front.svg"
  1347. }
  1348. },
  1349. side: {
  1350. height: math.unit(2, "meter"),
  1351. weight: math.unit(80, "kg"),
  1352. name: "Side",
  1353. image: {
  1354. source: "./media/characters/elbial/side.svg"
  1355. }
  1356. },
  1357. back: {
  1358. height: math.unit(2, "meter"),
  1359. weight: math.unit(80, "kg"),
  1360. name: "Back",
  1361. image: {
  1362. source: "./media/characters/elbial/back.svg"
  1363. }
  1364. },
  1365. },
  1366. [
  1367. {
  1368. name: "Large",
  1369. height: math.unit(100, "feet")
  1370. },
  1371. {
  1372. name: "Macro",
  1373. height: math.unit(500, "feet")
  1374. },
  1375. {
  1376. name: "Megamacro",
  1377. height: math.unit(10, "miles")
  1378. },
  1379. {
  1380. name: "Gigamacro",
  1381. height: math.unit(25000, "miles")
  1382. },
  1383. {
  1384. name: "Full-Size",
  1385. height: math.unit(8000000, "gigaparsecs")
  1386. }
  1387. ],
  1388. math.unit(500, "feet")
  1389. )
  1390. };
  1391. characterMakers["Noah"] = () => {
  1392. return makeCharacter(
  1393. "Noah",
  1394. "Neopuc",
  1395. {
  1396. front: {
  1397. height: math.unit(2, "meter"),
  1398. weight: math.unit(60, "kg"),
  1399. name: "Front",
  1400. image: {
  1401. source: "./media/characters/noah/front.svg"
  1402. }
  1403. },
  1404. talons: {
  1405. height: math.unit(0.315, "meter"),
  1406. name: "Talons",
  1407. image: {
  1408. source: "./media/characters/noah/talons.svg"
  1409. }
  1410. }
  1411. },
  1412. [
  1413. {
  1414. name: "Large",
  1415. height: math.unit(50, "feet")
  1416. },
  1417. {
  1418. name: "Macro",
  1419. height: math.unit(750, "feet")
  1420. },
  1421. {
  1422. name: "Megamacro",
  1423. height: math.unit(50, "miles")
  1424. },
  1425. {
  1426. name: "Gigamacro",
  1427. height: math.unit(100000, "miles")
  1428. },
  1429. {
  1430. name: "Full-Size",
  1431. height: math.unit(3000000000, "miles")
  1432. }
  1433. ],
  1434. math.unit(750, "feet")
  1435. )
  1436. };
  1437. characterMakers["Natalya"] = () => {
  1438. return makeCharacter(
  1439. "Natalya",
  1440. "Neopuc",
  1441. {
  1442. front: {
  1443. height: math.unit(2, "meter"),
  1444. weight: math.unit(80, "kg"),
  1445. name: "Front",
  1446. image: {
  1447. source: "./media/characters/natalya/front.svg"
  1448. }
  1449. },
  1450. back: {
  1451. height: math.unit(2, "meter"),
  1452. weight: math.unit(80, "kg"),
  1453. name: "Back",
  1454. image: {
  1455. source: "./media/characters/natalya/back.svg"
  1456. }
  1457. }
  1458. },
  1459. [
  1460. {
  1461. name: "Normal",
  1462. height: math.unit(150, "feet")
  1463. },
  1464. {
  1465. name: "Megamacro",
  1466. height: math.unit(5, "miles")
  1467. },
  1468. {
  1469. name: "Full-Size",
  1470. height: math.unit(600, "kiloparsecs")
  1471. }
  1472. ],
  1473. math.unit(150, "feet")
  1474. )
  1475. };
  1476. characterMakers["Erestrebah"] = () => {
  1477. return makeCharacter(
  1478. "Erestrebah",
  1479. "Kurrikage",
  1480. {
  1481. front: {
  1482. height: math.unit(2, "meter"),
  1483. weight: math.unit(50, "kg"),
  1484. name: "Front",
  1485. image: {
  1486. source: "./media/characters/erestrebah/front.svg"
  1487. }
  1488. },
  1489. back: {
  1490. height: math.unit(2, "meter"),
  1491. weight: math.unit(50, "kg"),
  1492. name: "Back",
  1493. image: {
  1494. source: "./media/characters/erestrebah/back.svg",
  1495. extra: 1.2139
  1496. }
  1497. }
  1498. },
  1499. [
  1500. {
  1501. name: "Normal",
  1502. height: math.unit(10, "feet")
  1503. },
  1504. {
  1505. name: "Large",
  1506. height: math.unit(50, "feet")
  1507. },
  1508. {
  1509. name: "Macro",
  1510. height: math.unit(300, "feet")
  1511. },
  1512. {
  1513. name: "Macro+",
  1514. height: math.unit(750, "feet")
  1515. },
  1516. {
  1517. name: "Megamacro",
  1518. height: math.unit(3, "miles")
  1519. }
  1520. ],
  1521. math.unit(50, "feet")
  1522. )
  1523. };
  1524. characterMakers["Jennifer"] = () => {
  1525. return makeCharacter(
  1526. "Jennifer",
  1527. "Neopuc",
  1528. {
  1529. front: {
  1530. height: math.unit(2, "meter"),
  1531. weight: math.unit(80, "kg"),
  1532. name: "Front",
  1533. image: {
  1534. source: "./media/characters/jennifer/front.svg",
  1535. bottom: 0.11,
  1536. extra: 1.16
  1537. }
  1538. },
  1539. frontAlt: {
  1540. height: math.unit(2, "meter"),
  1541. weight: math.unit(80, "kg"),
  1542. name: "Front (Alt)",
  1543. image: {
  1544. source: "./media/characters/jennifer/front-alt.svg"
  1545. }
  1546. }
  1547. },
  1548. [
  1549. {
  1550. name: "Canon Height",
  1551. height: math.unit(120, "feet")
  1552. },
  1553. {
  1554. name: "Macro+",
  1555. height: math.unit(300, "feet")
  1556. },
  1557. {
  1558. name: "Megamacro",
  1559. height: math.unit(20000, "feet")
  1560. }
  1561. ],
  1562. math.unit(120, "feet")
  1563. )
  1564. };
  1565. characterMakers["Kalista"] = () => {
  1566. return makeCharacter(
  1567. "Kalista",
  1568. "Kalista",
  1569. {
  1570. front: {
  1571. height: math.unit(2, "meter"),
  1572. weight: math.unit(50, "kg"),
  1573. name: "Front",
  1574. image: {
  1575. source: "./media/characters/kalista/front.svg"
  1576. }
  1577. },
  1578. back: {
  1579. height: math.unit(2, "meter"),
  1580. weight: math.unit(50, "kg"),
  1581. name: "Back",
  1582. image: {
  1583. source: "./media/characters/kalista/back.svg"
  1584. }
  1585. }
  1586. },
  1587. [
  1588. {
  1589. name: "Uncomfortably Small",
  1590. height: math.unit(10, "feet")
  1591. },
  1592. {
  1593. name: "Small",
  1594. height: math.unit(30, "feet")
  1595. },
  1596. {
  1597. name: "Macro",
  1598. height: math.unit(100, "feet")
  1599. },
  1600. {
  1601. name: "Macro+",
  1602. height: math.unit(2000, "feet")
  1603. },
  1604. {
  1605. name: "True Form",
  1606. height: math.unit(8924, "miles")
  1607. }
  1608. ],
  1609. math.unit(100, "feet")
  1610. )
  1611. };
  1612. characterMakers["GiantGrowingVixen"] = () => {
  1613. return makeCharacter(
  1614. "GiantGrowingVixen",
  1615. "GiantGrowingVixen",
  1616. {
  1617. front: {
  1618. height: math.unit(2, "meter"),
  1619. weight: math.unit(120, "kg"),
  1620. name: "Front",
  1621. image: {
  1622. source: "./media/characters/ggv/front.svg"
  1623. }
  1624. },
  1625. side: {
  1626. height: math.unit(2, "meter"),
  1627. weight: math.unit(120, "kg"),
  1628. name: "Side",
  1629. image: {
  1630. source: "./media/characters/ggv/side.svg"
  1631. }
  1632. }
  1633. },
  1634. [
  1635. {
  1636. name: "Extremely Puny",
  1637. height: math.unit(9 + 5/12, "feet")
  1638. },
  1639. {
  1640. name: "Horribly Small",
  1641. height: math.unit(47.7, "miles")
  1642. },
  1643. {
  1644. name: "Reasonably Sized",
  1645. height: math.unit(25000, "parsecs")
  1646. }
  1647. ],
  1648. math.unit(47.7, "miles")
  1649. )
  1650. };
  1651. characterMakers["Napalm"] = () => {
  1652. return makeCharacter(
  1653. "Napalm",
  1654. "RathDaKrogan",
  1655. {
  1656. front: {
  1657. height: math.unit(2, "meter"),
  1658. weight: math.unit(75, "lb"),
  1659. name: "Front",
  1660. image: {
  1661. source: "./media/characters/napalm/front.svg"
  1662. }
  1663. },
  1664. back: {
  1665. height: math.unit(2, "meter"),
  1666. weight: math.unit(75, "lb"),
  1667. name: "Back",
  1668. image: {
  1669. source: "./media/characters/napalm/back.svg"
  1670. }
  1671. }
  1672. },
  1673. [
  1674. {
  1675. name: "Standard",
  1676. height: math.unit(55, "feet")
  1677. }
  1678. ],
  1679. math.unit(55, "feet")
  1680. )
  1681. };
  1682. characterMakers["Asana"] = () => {
  1683. return makeCharacter(
  1684. "Asana",
  1685. "Asana",
  1686. {
  1687. front: {
  1688. height: math.unit(7 + 5/6, "feet"),
  1689. weight: math.unit(325, "lb"),
  1690. name: "Front",
  1691. image: {
  1692. source: "./media/characters/asana/front.svg",
  1693. extra: 1128/1068
  1694. }
  1695. },
  1696. back: {
  1697. height: math.unit(7 + 5/6, "feet"),
  1698. weight: math.unit(325, "lb"),
  1699. name: "Back",
  1700. image: {
  1701. source: "./media/characters/asana/back.svg",
  1702. extra: 1128/1068
  1703. }
  1704. },
  1705. },
  1706. [
  1707. {
  1708. name: "Standard",
  1709. height: math.unit(7 + 5/6, "feet")
  1710. },
  1711. {
  1712. name: "Large",
  1713. height: math.unit(10, "meters")
  1714. },
  1715. {
  1716. name: "Macro",
  1717. height: math.unit(2500, "meters")
  1718. },
  1719. {
  1720. name: "Megamacro",
  1721. height: math.unit(5e6, "meters")
  1722. },
  1723. {
  1724. name: "Examacro",
  1725. height: math.unit(5e12, "lightyears")
  1726. }
  1727. ],
  1728. math.unit(7 + 5/6, "feet")
  1729. )
  1730. };
  1731. characterMakers["Ebony"] = () => {
  1732. return makeCharacter(
  1733. "Ebony",
  1734. "Lazerwolf",
  1735. {
  1736. front: {
  1737. height: math.unit(2, "meter"),
  1738. weight: math.unit(60, "kg"),
  1739. name: "Front",
  1740. image: {
  1741. source: "./media/characters/ebony/front.svg",
  1742. bottom: 0.03,
  1743. extra: 1045/810 + 0.03
  1744. }
  1745. },
  1746. side: {
  1747. height: math.unit(2, "meter"),
  1748. weight: math.unit(60, "kg"),
  1749. name: "Side",
  1750. image: {
  1751. source: "./media/characters/ebony/side.svg",
  1752. bottom: 0.03,
  1753. extra: 1045/810 + 0.03
  1754. }
  1755. },
  1756. back: {
  1757. height: math.unit(2, "meter"),
  1758. weight: math.unit(60, "kg"),
  1759. name: "Back",
  1760. image: {
  1761. source: "./media/characters/ebony/back.svg",
  1762. bottom: 0.01,
  1763. extra: 1045/810 + 0.01
  1764. }
  1765. },
  1766. },
  1767. [
  1768. {
  1769. name: "Standard",
  1770. height: math.unit(9/8 * (7 + 5/12), "feet")
  1771. },
  1772. {
  1773. name: "Macro",
  1774. height: math.unit(200, "feet")
  1775. },
  1776. {
  1777. name: "Gigamacro",
  1778. height: math.unit(13000, "km")
  1779. }
  1780. ],
  1781. math.unit(7 + 5/12, "feet")
  1782. )
  1783. };
  1784. characterMakers["Mountain"] = () => {
  1785. return makeCharacter(
  1786. "Mountain",
  1787. "Asana",
  1788. {
  1789. front: {
  1790. height: math.unit(6, "feet"),
  1791. weight: math.unit(175, "lb"),
  1792. name: "Front",
  1793. image: {
  1794. source: "./media/characters/mountain/front.svg"
  1795. }
  1796. },
  1797. back: {
  1798. height: math.unit(6, "feet"),
  1799. weight: math.unit(175, "lb"),
  1800. name: "Back",
  1801. image: {
  1802. source: "./media/characters/mountain/back.svg"
  1803. }
  1804. },
  1805. },
  1806. [
  1807. {
  1808. name: "Large",
  1809. height: math.unit(20, "meters")
  1810. },
  1811. {
  1812. name: "Macro",
  1813. height: math.unit(300, "meters")
  1814. },
  1815. {
  1816. name: "Gigamacro",
  1817. height: math.unit(10000, "km")
  1818. },
  1819. {
  1820. name: "Examacro",
  1821. height: math.unit(10e9, "lightyears")
  1822. }
  1823. ],
  1824. math.unit(10000, "km")
  1825. )
  1826. };
  1827. characterMakers["Rick"] = () => {
  1828. return makeCharacter(
  1829. "Rick",
  1830. "Victni",
  1831. {
  1832. front: {
  1833. height: math.unit(8, "feet"),
  1834. weight: math.unit(500, "lb"),
  1835. name: "Front",
  1836. image: {
  1837. source: "./media/characters/rick/front.svg"
  1838. }
  1839. }
  1840. },
  1841. [
  1842. {
  1843. name: "Normal",
  1844. height: math.unit(8, "feet")
  1845. },
  1846. {
  1847. name: "Macro",
  1848. height: math.unit(5, "km")
  1849. }
  1850. ],
  1851. math.unit(8, "feet")
  1852. )
  1853. };
  1854. characterMakers["Ona"] = () => {
  1855. return makeCharacter(
  1856. "Ona",
  1857. "Arrogance127",
  1858. {
  1859. front: {
  1860. height: math.unit(8, "feet"),
  1861. weight: math.unit(120, "lb"),
  1862. name: "Front",
  1863. image: {
  1864. source: "./media/characters/ona/front.svg"
  1865. }
  1866. },
  1867. frontAlt: {
  1868. height: math.unit(8, "feet"),
  1869. weight: math.unit(120, "lb"),
  1870. name: "Front (Alt)",
  1871. image: {
  1872. source: "./media/characters/ona/front-alt.svg"
  1873. }
  1874. },
  1875. back: {
  1876. height: math.unit(8, "feet"),
  1877. weight: math.unit(120, "lb"),
  1878. name: "Back",
  1879. image: {
  1880. source: "./media/characters/ona/back.svg"
  1881. }
  1882. },
  1883. foot: {
  1884. height: math.unit(1.1, "feet"),
  1885. name: "Foot",
  1886. image: {
  1887. source: "./media/characters/ona/foot.svg"
  1888. }
  1889. }
  1890. },
  1891. [
  1892. {
  1893. name: "Megamacro",
  1894. height: math.unit(70, "km")
  1895. },
  1896. {
  1897. name: "Gigamacro",
  1898. height: math.unit(681818, "miles")
  1899. },
  1900. {
  1901. name: "Examacro",
  1902. height: math.unit(3800000, "lightyears")
  1903. },
  1904. ],
  1905. math.unit(70, "km")
  1906. )
  1907. };
  1908. characterMakers["Mech"] = () => {
  1909. return makeCharacter(
  1910. "Mech",
  1911. "mechEdragon",
  1912. {
  1913. front: {
  1914. height: math.unit(12, "feet"),
  1915. weight: math.unit(3000, "lb"),
  1916. name: "Front",
  1917. image: {
  1918. source: "./media/characters/mech/front.svg",
  1919. bottom: 0.025,
  1920. }
  1921. },
  1922. back: {
  1923. height: math.unit(12, "feet"),
  1924. weight: math.unit(3000, "lb"),
  1925. name: "Back",
  1926. image: {
  1927. source: "./media/characters/mech/back.svg",
  1928. bottom: 0.03,
  1929. }
  1930. }
  1931. },
  1932. [
  1933. {
  1934. name: "Normal",
  1935. height: math.unit(12, "feet")
  1936. },
  1937. {
  1938. name: "Macro",
  1939. height: math.unit(300, "feet")
  1940. },
  1941. {
  1942. name: "Macro+",
  1943. height: math.unit(1500, "feet")
  1944. },
  1945. ],
  1946. math.unit(300, "feet")
  1947. )
  1948. };
  1949. characterMakers["Gregory"] = () => {
  1950. return makeCharacter(
  1951. "Gregory",
  1952. "GregoryKlippenspringer",
  1953. {
  1954. front: {
  1955. height: math.unit(1.3, "meter"),
  1956. weight: math.unit(30, "kg"),
  1957. name: "Front",
  1958. image: {
  1959. source: "./media/characters/gregory/front.svg",
  1960. }
  1961. }
  1962. },
  1963. [
  1964. {
  1965. name: "Normal",
  1966. height: math.unit(1.3, "meter")
  1967. },
  1968. {
  1969. name: "Macro",
  1970. height: math.unit(20, "meter")
  1971. }
  1972. ],
  1973. math.unit(1.3, "meter")
  1974. )
  1975. };
  1976. characterMakers["Elory"] = () => {
  1977. return makeCharacter(
  1978. "Elory",
  1979. "GregoryKlippenspringer",
  1980. {
  1981. front: {
  1982. height: math.unit(2.8, "meter"),
  1983. weight: math.unit(200, "kg"),
  1984. name: "Front",
  1985. image: {
  1986. source: "./media/characters/elory/front.svg",
  1987. }
  1988. }
  1989. },
  1990. [
  1991. {
  1992. name: "Normal",
  1993. height: math.unit(2.8, "meter")
  1994. },
  1995. {
  1996. name: "Macro",
  1997. height: math.unit(38, "meter")
  1998. }
  1999. ],
  2000. math.unit(2.8, "meter")
  2001. )
  2002. };
  2003. characterMakers["Angelpatamon"] = () => {
  2004. return makeCharacter(
  2005. "Angelpatamon",
  2006. "GregoryKlippenspringer",
  2007. {
  2008. front: {
  2009. height: math.unit(470, "feet"),
  2010. weight: math.unit(924, "tons"),
  2011. name: "Front",
  2012. image: {
  2013. source: "./media/characters/angelpatamon/front.svg",
  2014. }
  2015. }
  2016. },
  2017. [
  2018. {
  2019. name: "Normal",
  2020. height: math.unit(470, "feet")
  2021. },
  2022. {
  2023. name: "Deity Size I",
  2024. height: math.unit(28651.2, "km")
  2025. },
  2026. {
  2027. name: "Deity Size II",
  2028. height: math.unit(171907.2, "km")
  2029. }
  2030. ],
  2031. math.unit(470, "feet")
  2032. )
  2033. };
  2034. characterMakers["Cryae"] = () => {
  2035. return makeCharacter(
  2036. "Cryae",
  2037. "GregoryKlippenspringer",
  2038. {
  2039. side: {
  2040. height: math.unit(7.2, "meter"),
  2041. weight: math.unit(8.2, "tons"),
  2042. name: "Side",
  2043. image: {
  2044. source: "./media/characters/cryae/side.svg",
  2045. extra: 3500/1500
  2046. }
  2047. }
  2048. },
  2049. [
  2050. {
  2051. name: "Normal",
  2052. height: math.unit(7.2, "meter")
  2053. }
  2054. ],
  2055. math.unit(7.2, "meter")
  2056. )
  2057. };
  2058. characterMakers["Xera"] = () => {
  2059. return makeCharacter(
  2060. "Xera",
  2061. "Asana",
  2062. {
  2063. front: {
  2064. height: math.unit(6, "feet"),
  2065. weight: math.unit(175, "lb"),
  2066. name: "Front",
  2067. image: {
  2068. source: "./media/characters/xera/front.svg",
  2069. extra: 2300/2061
  2070. }
  2071. },
  2072. side: {
  2073. height: math.unit(6, "feet"),
  2074. weight: math.unit(175, "lb"),
  2075. name: "Side",
  2076. image: {
  2077. source: "./media/characters/xera/side.svg",
  2078. extra: 2300/2061
  2079. }
  2080. },
  2081. back: {
  2082. height: math.unit(6, "feet"),
  2083. weight: math.unit(175, "lb"),
  2084. name: "Back",
  2085. image: {
  2086. source: "./media/characters/xera/back.svg"
  2087. }
  2088. },
  2089. },
  2090. [
  2091. {
  2092. name: "Small",
  2093. height: math.unit(10, "feet")
  2094. },
  2095. {
  2096. name: "Macro",
  2097. height: math.unit(500, "meters")
  2098. },
  2099. {
  2100. name: "Macro+",
  2101. height: math.unit(10, "km")
  2102. },
  2103. {
  2104. name: "Gigamacro",
  2105. height: math.unit(25000, "km")
  2106. },
  2107. {
  2108. name: "Teramacro",
  2109. height: math.unit(3e6, "km")
  2110. }
  2111. ],
  2112. math.unit(500, "meters")
  2113. )
  2114. };
  2115. characterMakers["Nebula"] = () => {
  2116. return makeCharacter(
  2117. "Nebula",
  2118. "Cilenomon",
  2119. {
  2120. front: {
  2121. height: math.unit(6, "feet"),
  2122. weight: math.unit(175, "lb"),
  2123. name: "Front",
  2124. image: {
  2125. source: "./media/characters/nebula/front.svg",
  2126. extra: 2600/2450
  2127. }
  2128. }
  2129. },
  2130. [
  2131. {
  2132. name: "Small",
  2133. height: math.unit(4.5, "meters")
  2134. },
  2135. {
  2136. name: "Macro",
  2137. height: math.unit(1500, "meters")
  2138. },
  2139. {
  2140. name: "Megamacro",
  2141. height: math.unit(150, "km")
  2142. },
  2143. {
  2144. name: "Gigamacro",
  2145. height: math.unit(27000, "km")
  2146. }
  2147. ],
  2148. math.unit(1500, "meters")
  2149. )
  2150. };
  2151. characterMakers["Abysgar"] = () => {
  2152. return makeCharacter(
  2153. "Abysgar",
  2154. "Cilenomon",
  2155. {
  2156. front: {
  2157. height: math.unit(6, "feet"),
  2158. weight: math.unit(225, "lb"),
  2159. name: "Front",
  2160. image: {
  2161. source: "./media/characters/abysgar/front.svg"
  2162. }
  2163. }
  2164. },
  2165. [
  2166. {
  2167. name: "Small",
  2168. height: math.unit(4.5, "meters")
  2169. },
  2170. {
  2171. name: "Macro",
  2172. height: math.unit(1250, "meters")
  2173. },
  2174. {
  2175. name: "Megamacro",
  2176. height: math.unit(125, "km")
  2177. },
  2178. {
  2179. name: "Gigamacro",
  2180. height: math.unit(26000, "km")
  2181. }
  2182. ],
  2183. math.unit(1250, "meters")
  2184. )
  2185. };
  2186. characterMakers["Yakuz"] = () => {
  2187. return makeCharacter(
  2188. "Yakuz",
  2189. "Cilenomon",
  2190. {
  2191. front: {
  2192. height: math.unit(6, "feet"),
  2193. weight: math.unit(180, "lb"),
  2194. name: "Front",
  2195. image: {
  2196. source: "./media/characters/yakuz/front.svg"
  2197. }
  2198. }
  2199. },
  2200. [
  2201. {
  2202. name: "Small",
  2203. height: math.unit(5, "meters")
  2204. },
  2205. {
  2206. name: "Macro",
  2207. height: math.unit(2500, "meters")
  2208. },
  2209. {
  2210. name: "Megamacro",
  2211. height: math.unit(200, "km")
  2212. },
  2213. {
  2214. name: "Gigamacro",
  2215. height: math.unit(100000, "km")
  2216. }
  2217. ],
  2218. math.unit(1500, "meters")
  2219. )
  2220. };
  2221. characterMakers["Mirova"] = () => {
  2222. return makeCharacter(
  2223. "Mirova",
  2224. "Cilenomon",
  2225. {
  2226. front: {
  2227. height: math.unit(6, "feet"),
  2228. weight: math.unit(175, "lb"),
  2229. name: "Front",
  2230. image: {
  2231. source: "./media/characters/mirova/front.svg"
  2232. }
  2233. }
  2234. },
  2235. [
  2236. {
  2237. name: "Small",
  2238. height: math.unit(5, "meters")
  2239. },
  2240. {
  2241. name: "Macro",
  2242. height: math.unit(900, "meters")
  2243. },
  2244. {
  2245. name: "Megamacro",
  2246. height: math.unit(135, "km")
  2247. },
  2248. {
  2249. name: "Gigamacro",
  2250. height: math.unit(20000, "km")
  2251. }
  2252. ],
  2253. math.unit(900, "meters")
  2254. )
  2255. };
  2256. characterMakers["Asana (Mech)"] = () => {
  2257. return makeCharacter(
  2258. "Asana (Mech)",
  2259. "Asana",
  2260. {
  2261. side: {
  2262. height: math.unit(28.35, "feet"),
  2263. weight: math.unit(99.75, "tons"),
  2264. name: "Side",
  2265. image: {
  2266. source: "./media/characters/asana-mech/side.svg"
  2267. }
  2268. }
  2269. },
  2270. [
  2271. {
  2272. name: "Normal",
  2273. height: math.unit(28.35, "feet")
  2274. },
  2275. {
  2276. name: "Macro",
  2277. height: math.unit(2500, "feet")
  2278. },
  2279. {
  2280. name: "Megamacro",
  2281. height: math.unit(25, "miles")
  2282. },
  2283. {
  2284. name: "Examacro",
  2285. height: math.unit(6e8, "lightyears")
  2286. },
  2287. ],
  2288. math.unit(28.35, "feet")
  2289. )
  2290. };
  2291. characterMakers["Ashtrek"] = () => {
  2292. return makeCharacter(
  2293. "Ashtrek",
  2294. "Ashtrek",
  2295. {
  2296. front: {
  2297. height: math.unit(2, "meters"),
  2298. weight: math.unit(70, "kg"),
  2299. name: "Front",
  2300. image: {
  2301. source: "./media/characters/ashtrek/front.svg"
  2302. }
  2303. },
  2304. frontArmor: {
  2305. height: math.unit(2, "meters"),
  2306. weight: math.unit(76, "kg"),
  2307. name: "Front (Armor)",
  2308. image: {
  2309. source: "./media/characters/ashtrek/front-armor.svg"
  2310. }
  2311. },
  2312. },
  2313. [
  2314. {
  2315. name: "DEFCON 5",
  2316. height: math.unit(5, "meters")
  2317. },
  2318. {
  2319. name: "DEFCON 4",
  2320. height: math.unit(500, "meters")
  2321. },
  2322. {
  2323. name: "DEFCON 3",
  2324. height: math.unit(5, "km")
  2325. },
  2326. {
  2327. name: "DEFCON 2",
  2328. height: math.unit(500, "km")
  2329. },
  2330. {
  2331. name: "DEFCON 1",
  2332. height: math.unit(500000, "km")
  2333. },
  2334. {
  2335. name: "DEFCON 0",
  2336. height: math.unit(3, "gigaparsecs")
  2337. },
  2338. ],
  2339. math.unit(500, "meters")
  2340. )
  2341. };
  2342. characterMakers["Gale"] = () => {
  2343. return makeCharacter(
  2344. "Gale",
  2345. "GaleFierre",
  2346. {
  2347. front: {
  2348. height: math.unit(2, "meters"),
  2349. weight: math.unit(76, "kg"),
  2350. name: "Front",
  2351. image: {
  2352. source: "./media/characters/gale/front.svg"
  2353. }
  2354. },
  2355. frontAlt1: {
  2356. height: math.unit(2, "meters"),
  2357. weight: math.unit(76, "kg"),
  2358. name: "Front (Alt 1)",
  2359. image: {
  2360. source: "./media/characters/gale/front-alt-1.svg"
  2361. }
  2362. },
  2363. frontAlt2: {
  2364. height: math.unit(2, "meters"),
  2365. weight: math.unit(76, "kg"),
  2366. name: "Front (Alt 2)",
  2367. image: {
  2368. source: "./media/characters/gale/front-alt-2.svg"
  2369. }
  2370. },
  2371. },
  2372. [
  2373. {
  2374. name: "Normal",
  2375. height: math.unit(7, "feet")
  2376. },
  2377. {
  2378. name: "Macro",
  2379. height: math.unit(150, "feet")
  2380. },
  2381. {
  2382. name: "Macro+",
  2383. height: math.unit(300, "feet")
  2384. },
  2385. ],
  2386. math.unit(150, "feet")
  2387. )
  2388. };
  2389. characterMakers["Draylen"] = () => {
  2390. return makeCharacter(
  2391. "Draylen",
  2392. "Longshot Coyote",
  2393. {
  2394. front: {
  2395. height: math.unit(2, "meters"),
  2396. weight: math.unit(76, "kg"),
  2397. name: "Front",
  2398. image: {
  2399. source: "./media/characters/draylen/front.svg"
  2400. }
  2401. }
  2402. },
  2403. [
  2404. {
  2405. name: "Macro",
  2406. height: math.unit(150, "feet")
  2407. }
  2408. ],
  2409. math.unit(150, "feet")
  2410. )
  2411. };
  2412. characterMakers["Chez"] = () => {
  2413. return makeCharacter(
  2414. "Chez",
  2415. "Ashtrek",
  2416. {
  2417. front: {
  2418. height: math.unit(7 + 9/12, "feet"),
  2419. weight: math.unit(379, "lbs"),
  2420. name: "Front",
  2421. image: {
  2422. source: "./media/characters/chez/front.svg"
  2423. }
  2424. },
  2425. side: {
  2426. height: math.unit(7 + 9/12, "feet"),
  2427. weight: math.unit(379, "lbs"),
  2428. name: "Side",
  2429. image: {
  2430. source: "./media/characters/chez/side.svg"
  2431. }
  2432. }
  2433. },
  2434. [
  2435. {
  2436. name: "Normal",
  2437. height: math.unit(7 + 9/12, "feet")
  2438. },
  2439. {
  2440. name: "God King",
  2441. height: math.unit(9750000, "meters")
  2442. }
  2443. ],
  2444. math.unit(7 + 9/12, "feet")
  2445. )
  2446. };
  2447. function makeCharacters() {
  2448. const results = [];
  2449. results.push({
  2450. name: "Sofia",
  2451. constructor: makeSofia
  2452. });
  2453. results.push({
  2454. name: "March",
  2455. constructor: makeMarch
  2456. });
  2457. results.push({
  2458. name: "Noir",
  2459. constructor: makeNoir
  2460. });
  2461. results.push({
  2462. name: "Okuri",
  2463. constructor: makeOkuri
  2464. });
  2465. results.push({
  2466. name: "Manny",
  2467. constructor: makeManny
  2468. });
  2469. results.push({
  2470. name: "Adake",
  2471. constructor: makeAdake
  2472. });
  2473. results.push({
  2474. name: "Elijah",
  2475. constructor: makeElijah
  2476. });
  2477. results.push({
  2478. name: "Rai",
  2479. constructor: makeRai
  2480. });
  2481. results.push({
  2482. name: "Jazzy",
  2483. constructor: makeJazzy
  2484. });
  2485. results.push({
  2486. name: "Flamm",
  2487. constructor: makeFlamm
  2488. });
  2489. results.push({
  2490. name: "Zephiro",
  2491. constructor: makeZephiro
  2492. });
  2493. results.push({
  2494. name: "Fory",
  2495. constructor: makeFory
  2496. });
  2497. results.push({
  2498. name: "Kurrikage",
  2499. constructor: makeKurrikage
  2500. });
  2501. results.push({
  2502. name: "Shingo",
  2503. constructor: makeShingo
  2504. });
  2505. results.push({
  2506. name: "Aigey",
  2507. constructor: makeAigey
  2508. });
  2509. results.push({
  2510. name: "Natasha",
  2511. constructor: makeNatasha
  2512. });
  2513. results.push({
  2514. name: "Malik",
  2515. constructor: makeMalik
  2516. });
  2517. results.push({
  2518. name: "Sefer",
  2519. constructor: makeSefer
  2520. });
  2521. Object.entries(characterMakers).forEach(([key, value]) => {
  2522. results.push({
  2523. name: key,
  2524. constructor: value
  2525. });
  2526. });
  2527. return results;
  2528. }