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.
 
 
 

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