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.
 
 
 

1369 line
35 KiB

  1. const characterMakers = [];
  2. function makeCharacter(name, author, viewInfo, defaultSizes, defaultSize) {
  3. views = {};
  4. console.log(viewInfo)
  5. Object.entries(viewInfo).forEach(([key, value]) => {
  6. console.log(key)
  7. views[key] = {
  8. attributes: {
  9. height: {
  10. name: "Height",
  11. power: 1,
  12. type: "length",
  13. base: value.height
  14. }
  15. },
  16. image: value.image,
  17. name: value.name
  18. }
  19. if (value.mass) {
  20. views[key].attributes[key] = {
  21. name: "Mass",
  22. power: 3,
  23. type: "mass",
  24. base: value.mass
  25. };
  26. }
  27. });
  28. const entity = makeEntity(name, "author", views);
  29. if (defaultSizes) {
  30. entity.defaults = defaultSizes;
  31. }
  32. if (defaultSize) {
  33. entity.views[entity.defaultView].height = defaultSize;
  34. }
  35. return entity;
  36. }
  37. characterMakers["Fen"] = () => {
  38. return makeCharacter(
  39. "Fen",
  40. "chemicalcrux",
  41. {
  42. body: {
  43. height: math.unit(2.2428, "meter"),
  44. weight: math.unit(124.738, "kg"),
  45. name: "Body",
  46. image: {
  47. source: "./media/characters/fen/back.svg"
  48. }
  49. }
  50. },
  51. [
  52. {
  53. name: "Normal",
  54. height: math.unit(2.2428, "meter")
  55. },
  56. {
  57. name: "Big",
  58. height: math.unit(12, "feet")
  59. },
  60. {
  61. name: "Macro",
  62. height: math.unit(100, "meter")
  63. },
  64. {
  65. name: "Macro+",
  66. height: math.unit(1000, "meter")
  67. },
  68. {
  69. name: "Megamacro",
  70. height: math.unit(10, "miles")
  71. }
  72. ],
  73. math.unit(100, "meter")
  74. )
  75. };
  76. function makeSofia() {
  77. const views = {
  78. front: {
  79. attributes: {
  80. height: {
  81. name: "Height",
  82. power: 1,
  83. type: "length",
  84. base: math.unit(183, "cm")
  85. },
  86. weight: {
  87. name: "Weight",
  88. power: 3,
  89. type: "mass",
  90. base: math.unit(80, "kg")
  91. }
  92. },
  93. image: {
  94. source: "./media/characters/sofia/front.svg"
  95. },
  96. name: "Front"
  97. },
  98. back: {
  99. attributes: {
  100. height: {
  101. name: "Height",
  102. power: 1,
  103. type: "length",
  104. base: math.unit(183, "cm")
  105. },
  106. weight: {
  107. name: "Weight",
  108. power: 3,
  109. type: "mass",
  110. base: math.unit(80, "kg")
  111. }
  112. },
  113. image: {
  114. source: "./media/characters/sofia/back.svg"
  115. },
  116. name: "Back"
  117. }
  118. };
  119. const entity = makeEntity("Sofia", "ZakuraTech", views);
  120. entity.views.front.height = math.unit(96, "feet");
  121. return entity;
  122. }
  123. function makeMarch() {
  124. const views = {
  125. front: {
  126. attributes: {
  127. height: {
  128. name: "Height",
  129. power: 1,
  130. type: "length",
  131. base: math.unit(7, "feet")
  132. },
  133. weight: {
  134. name: "Weight",
  135. power: 3,
  136. type: "mass",
  137. base: math.unit(100, "kg")
  138. }
  139. },
  140. image: {
  141. source: "./media/characters/march/front.svg"
  142. },
  143. name: "Front"
  144. },
  145. foot: {
  146. attributes: {
  147. height: {
  148. name: "Height",
  149. power: 1,
  150. type: "length",
  151. base: math.unit(0.9, "feet")
  152. }
  153. },
  154. image: {
  155. source: "./media/characters/march/foot.svg"
  156. },
  157. name: "Foot"
  158. }
  159. };
  160. const entity = makeEntity("March", "March-Dragon", views);
  161. entity.views.front.height = math.unit(2.98, "km");
  162. return entity;
  163. }
  164. function makeNoir() {
  165. const views = {
  166. front: {
  167. attributes: {
  168. height: {
  169. name: "Height",
  170. power: 1,
  171. type: "length",
  172. base: math.unit(6, "feet")
  173. },
  174. weight: {
  175. name: "Weight",
  176. power: 3,
  177. type: "mass",
  178. base: math.unit(60, "kg")
  179. }
  180. },
  181. image: {
  182. source: "./media/characters/noir/front.svg",
  183. bottom: 0.01
  184. },
  185. name: "Front"
  186. }
  187. };
  188. const entity = makeEntity("Noir", "March-Dragon", views);
  189. entity.views.front.height = math.unit(2.5, "km");
  190. return entity;
  191. }
  192. function makeOkuri() {
  193. const views = {
  194. front: {
  195. attributes: {
  196. height: {
  197. name: "Height",
  198. power: 1,
  199. type: "length",
  200. base: math.unit(7, "feet")
  201. },
  202. weight: {
  203. name: "Weight",
  204. power: 3,
  205. type: "mass",
  206. base: math.unit(100, "kg")
  207. }
  208. },
  209. image: {
  210. source: "./media/characters/okuri/front.svg"
  211. },
  212. name: "Front"
  213. },
  214. back: {
  215. attributes: {
  216. height: {
  217. name: "Height",
  218. power: 1,
  219. type: "length",
  220. base: math.unit(7, "feet")
  221. },
  222. weight: {
  223. name: "Weight",
  224. power: 3,
  225. type: "mass",
  226. base: math.unit(100, "kg")
  227. }
  228. },
  229. image: {
  230. source: "./media/characters/okuri/back.svg"
  231. },
  232. name: "Back"
  233. }
  234. };
  235. const entity = makeEntity("Okuri", "OrionMechadragon", views);
  236. entity.views.front.height = math.unit(100, "miles");
  237. return entity;
  238. }
  239. function makeManny() {
  240. const views = {
  241. front: {
  242. attributes: {
  243. height: {
  244. name: "Height",
  245. power: 1,
  246. type: "length",
  247. base: math.unit(7, "feet")
  248. },
  249. weight: {
  250. name: "Weight",
  251. power: 3,
  252. type: "mass",
  253. base: math.unit(100, "kg")
  254. }
  255. },
  256. image: {
  257. source: "./media/characters/manny/front.svg"
  258. },
  259. name: "Front"
  260. },
  261. back: {
  262. attributes: {
  263. height: {
  264. name: "Height",
  265. power: 1,
  266. type: "length",
  267. base: math.unit(7, "feet")
  268. },
  269. weight: {
  270. name: "Weight",
  271. power: 3,
  272. type: "mass",
  273. base: math.unit(100, "kg")
  274. }
  275. },
  276. image: {
  277. source: "./media/characters/manny/back.svg"
  278. },
  279. name: "Back"
  280. }
  281. };
  282. const entity = makeEntity("Manny", "Dialuca01", views);
  283. entity.views.front.height = math.unit(78, "feet");
  284. return entity;
  285. }
  286. function makeAdake() {
  287. const views = {
  288. front: {
  289. attributes: {
  290. height: {
  291. name: "Height",
  292. power: 1,
  293. type: "length",
  294. base: math.unit(7, "feet")
  295. },
  296. weight: {
  297. name: "Weight",
  298. power: 3,
  299. type: "mass",
  300. base: math.unit(100, "kg")
  301. }
  302. },
  303. image: {
  304. source: "./media/characters/adake/front-1.svg"
  305. },
  306. name: "Front"
  307. },
  308. frontAlt: {
  309. attributes: {
  310. height: {
  311. name: "Height",
  312. power: 1,
  313. type: "length",
  314. base: math.unit(7, "feet")
  315. },
  316. weight: {
  317. name: "Weight",
  318. power: 3,
  319. type: "mass",
  320. base: math.unit(100, "kg")
  321. }
  322. },
  323. image: {
  324. source: "./media/characters/adake/front-2.svg",
  325. bottom: 0.005
  326. },
  327. name: "Front (Alt)"
  328. },
  329. back: {
  330. attributes: {
  331. height: {
  332. name: "Height",
  333. power: 1,
  334. type: "length",
  335. base: math.unit(7, "feet")
  336. },
  337. weight: {
  338. name: "Weight",
  339. power: 3,
  340. type: "mass",
  341. base: math.unit(100, "kg")
  342. }
  343. },
  344. image: {
  345. source: "./media/characters/adake/back.svg",
  346. },
  347. name: "Back"
  348. },
  349. kneel: {
  350. attributes: {
  351. height: {
  352. name: "Height",
  353. power: 1,
  354. type: "length",
  355. base: math.unit(5.385, "feet")
  356. },
  357. weight: {
  358. name: "Weight",
  359. power: 3,
  360. type: "mass",
  361. base: math.unit(100, "kg")
  362. }
  363. },
  364. image: {
  365. source: "./media/characters/adake/kneel.svg",
  366. bottom: 0.05
  367. },
  368. name: "Kneeling"
  369. },
  370. };
  371. const entity = makeEntity("Adake", "Dialuca01", views);
  372. entity.views.front.height = math.unit(78, "feet");
  373. return entity;
  374. }
  375. function makeElijah() {
  376. const views = {
  377. side: {
  378. attributes: {
  379. height: {
  380. name: "Height",
  381. power: 1,
  382. type: "length",
  383. base: math.unit(7, "feet")
  384. },
  385. weight: {
  386. name: "Weight",
  387. power: 3,
  388. type: "mass",
  389. base: math.unit(50, "kg")
  390. }
  391. },
  392. image: {
  393. source: "./media/characters/elijah/side.svg",
  394. bottom: 0.01
  395. },
  396. name: "Side"
  397. },
  398. foot: {
  399. attributes: {
  400. height: {
  401. name: "Height",
  402. power: 1,
  403. type: "length",
  404. base: math.unit(2, "feet")
  405. }
  406. },
  407. image: {
  408. source: "./media/characters/elijah/foot.svg",
  409. },
  410. name: "Foot"
  411. }
  412. };
  413. const entity = makeEntity("Elijah", "Elijah", views);
  414. entity.views.side.height = math.unit(175, "feet");
  415. return entity;
  416. }
  417. function makeRai() {
  418. const views = {
  419. front: {
  420. attributes: {
  421. height: {
  422. name: "Height",
  423. power: 1,
  424. type: "length",
  425. base: math.unit(7, "feet")
  426. },
  427. weight: {
  428. name: "Weight",
  429. power: 3,
  430. type: "mass",
  431. base: math.unit(80, "kg")
  432. }
  433. },
  434. image: {
  435. source: "./media/characters/rai/front.svg"
  436. },
  437. name: "Front"
  438. },
  439. side: {
  440. attributes: {
  441. height: {
  442. name: "Height",
  443. power: 1,
  444. type: "length",
  445. base: math.unit(7, "feet")
  446. },
  447. weight: {
  448. name: "Weight",
  449. power: 3,
  450. type: "mass",
  451. base: math.unit(80, "kg")
  452. }
  453. },
  454. image: {
  455. source: "./media/characters/rai/side.svg"
  456. },
  457. name: "Side"
  458. },
  459. back: {
  460. attributes: {
  461. height: {
  462. name: "Height",
  463. power: 1,
  464. type: "length",
  465. base: math.unit(7, "feet")
  466. },
  467. weight: {
  468. name: "Weight",
  469. power: 3,
  470. type: "mass",
  471. base: math.unit(80, "kg")
  472. }
  473. },
  474. image: {
  475. source: "./media/characters/rai/back.svg"
  476. },
  477. name: "Back"
  478. }
  479. };
  480. const entity = makeEntity("Rai", "shadowblade945", views);
  481. entity.views.front.height = math.unit(302, "feet");
  482. return entity;
  483. }
  484. function makeJazzy() {
  485. const views = {
  486. front: {
  487. attributes: {
  488. height: {
  489. name: "Height",
  490. power: 1,
  491. type: "length",
  492. base: math.unit(7, "feet")
  493. },
  494. weight: {
  495. name: "Weight",
  496. power: 3,
  497. type: "mass",
  498. base: math.unit(80, "kg")
  499. }
  500. },
  501. image: {
  502. source: "./media/characters/jazzy/front.svg",
  503. bottom: 0.01
  504. },
  505. name: "Front"
  506. },
  507. back: {
  508. attributes: {
  509. height: {
  510. name: "Height",
  511. power: 1,
  512. type: "length",
  513. base: math.unit(7, "feet")
  514. },
  515. weight: {
  516. name: "Weight",
  517. power: 3,
  518. type: "mass",
  519. base: math.unit(80, "kg")
  520. }
  521. },
  522. image: {
  523. source: "./media/characters/jazzy/back.svg"
  524. },
  525. name: "Back"
  526. }
  527. };
  528. const entity = makeEntity("Jazzy", "Jazzywolf", views);
  529. entity.views.front.height = math.unit(216, "feet");
  530. return entity;
  531. }
  532. function makeFlamm() {
  533. const views = {
  534. front: {
  535. attributes: {
  536. height: {
  537. name: "Height",
  538. power: 1,
  539. type: "length",
  540. base: math.unit(7, "feet")
  541. },
  542. weight: {
  543. name: "Weight",
  544. power: 3,
  545. type: "mass",
  546. base: math.unit(80, "kg")
  547. }
  548. },
  549. image: {
  550. source: "./media/characters/flamm/front.svg"
  551. },
  552. name: "Front"
  553. }
  554. };
  555. const entity = makeEntity("Flamm", "Flamm", views);
  556. entity.views.front.height = math.unit(200, "feet");
  557. return entity;
  558. }
  559. function makeZephiro() {
  560. const views = {
  561. front: {
  562. attributes: {
  563. height: {
  564. name: "Height",
  565. power: 1,
  566. type: "length",
  567. base: math.unit(7, "feet")
  568. },
  569. weight: {
  570. name: "Weight",
  571. power: 3,
  572. type: "mass",
  573. base: math.unit(80, "kg")
  574. }
  575. },
  576. image: {
  577. source: "./media/characters/zephiro/front.svg"
  578. },
  579. name: "Front"
  580. },
  581. side: {
  582. attributes: {
  583. height: {
  584. name: "Height",
  585. power: 1,
  586. type: "length",
  587. base: math.unit(7, "feet")
  588. },
  589. weight: {
  590. name: "Weight",
  591. power: 3,
  592. type: "mass",
  593. base: math.unit(80, "kg")
  594. }
  595. },
  596. image: {
  597. source: "./media/characters/zephiro/side.svg"
  598. },
  599. name: "Side"
  600. },
  601. back: {
  602. attributes: {
  603. height: {
  604. name: "Height",
  605. power: 1,
  606. type: "length",
  607. base: math.unit(7, "feet")
  608. },
  609. weight: {
  610. name: "Weight",
  611. power: 3,
  612. type: "mass",
  613. base: math.unit(80, "kg")
  614. }
  615. },
  616. image: {
  617. source: "./media/characters/zephiro/back.svg"
  618. },
  619. name: "Back"
  620. }
  621. };
  622. const entity = makeEntity("Zephiro", "Zephiro", views);
  623. entity.views.front.height = math.unit(118, "feet");
  624. entity.defaults.push({
  625. name: "Micro",
  626. height: math.unit(3, "inches")
  627. });
  628. entity.defaults.push({
  629. name: "Normal",
  630. height: math.unit(5 + 3/12, "feet")
  631. });
  632. entity.defaults.push({
  633. name: "Macro",
  634. height: math.unit(118, "feet")
  635. });
  636. return entity;
  637. }
  638. function makeFory() {
  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(90, "kg")
  653. }
  654. },
  655. image: {
  656. source: "./media/characters/fory/front.svg"
  657. },
  658. name: "Front"
  659. }
  660. };
  661. const entity = makeEntity("Fory", "Manny", views);
  662. entity.views.front.height = math.unit(50, "feet");
  663. return entity;
  664. }
  665. function makeKurrikage() {
  666. const views = {
  667. front: {
  668. attributes: {
  669. height: {
  670. name: "Height",
  671. power: 1,
  672. type: "length",
  673. base: math.unit(7, "feet")
  674. },
  675. weight: {
  676. name: "Weight",
  677. power: 3,
  678. type: "mass",
  679. base: math.unit(90, "kg")
  680. }
  681. },
  682. image: {
  683. source: "./media/characters/kurrikage/front.svg"
  684. },
  685. name: "Front"
  686. },
  687. back: {
  688. attributes: {
  689. height: {
  690. name: "Height",
  691. power: 1,
  692. type: "length",
  693. base: math.unit(7, "feet")
  694. },
  695. weight: {
  696. name: "Weight",
  697. power: 3,
  698. type: "mass",
  699. base: math.unit(90, "kg")
  700. }
  701. },
  702. image: {
  703. source: "./media/characters/kurrikage/back.svg"
  704. },
  705. name: "Back"
  706. },
  707. paw: {
  708. attributes: {
  709. height: {
  710. name: "Height",
  711. power: 1,
  712. type: "length",
  713. base: math.unit(1.5, "feet")
  714. }
  715. },
  716. image: {
  717. source: "./media/characters/kurrikage/paw.svg"
  718. },
  719. name: "Paw"
  720. },
  721. staff: {
  722. attributes: {
  723. height: {
  724. name: "Height",
  725. power: 1,
  726. type: "length",
  727. base: math.unit(6.7, "feet")
  728. }
  729. },
  730. image: {
  731. source: "./media/characters/kurrikage/staff.svg"
  732. },
  733. name: "Staff"
  734. },
  735. peek: {
  736. attributes: {
  737. height: {
  738. name: "Height",
  739. power: 1,
  740. type: "length",
  741. base: math.unit(1.05, "feet")
  742. }
  743. },
  744. image: {
  745. source: "./media/characters/kurrikage/peek.svg",
  746. bottom: 0.08
  747. },
  748. name: "Peeking"
  749. }
  750. };
  751. const entity = makeEntity("Kurrikage", "Kurrikage", views);
  752. entity.views.front.height = math.unit(12, "feet");
  753. return entity;
  754. }
  755. function makeShingo() {
  756. const views = {
  757. front: {
  758. attributes: {
  759. height: {
  760. name: "Height",
  761. power: 1,
  762. type: "length",
  763. base: math.unit(6, "feet")
  764. },
  765. weight: {
  766. name: "Weight",
  767. power: 3,
  768. type: "mass",
  769. base: math.unit(75, "kg")
  770. }
  771. },
  772. image: {
  773. source: "./media/characters/shingo/front.svg"
  774. },
  775. name: "Front"
  776. }
  777. };
  778. const entity = makeEntity("Shingo", "Threes", views);
  779. entity.defaults.push({
  780. name: "Micro",
  781. height: math.unit(4, "inches")
  782. });
  783. entity.defaults.push({
  784. name: "Normal",
  785. height: math.unit(6, "feet")
  786. });
  787. entity.defaults.push({
  788. name: "Macro",
  789. height: math.unit(108, "feet")
  790. });
  791. return entity;
  792. }
  793. function makeAigey() {
  794. const views = {
  795. side: {
  796. attributes: {
  797. height: {
  798. name: "Height",
  799. power: 1,
  800. type: "length",
  801. base: math.unit(6, "feet")
  802. },
  803. weight: {
  804. name: "Weight",
  805. power: 3,
  806. type: "mass",
  807. base: math.unit(75, "kg")
  808. }
  809. },
  810. image: {
  811. source: "./media/characters/aigey/side.svg"
  812. },
  813. name: "Side"
  814. }
  815. };
  816. const entity = makeEntity("Aigey", "Aigey", views);
  817. entity.defaults.push({
  818. name: "Macro",
  819. height: math.unit(200, "feet")
  820. });
  821. entity.defaults.push({
  822. name: "Megamacro",
  823. height: math.unit(100, "miles")
  824. });
  825. entity.views[entity.defaultView].height = math.unit(200, "feet");
  826. return entity;
  827. }
  828. function makeNatasha() {
  829. const views = {
  830. side: {
  831. attributes: {
  832. height: {
  833. name: "Height",
  834. power: 1,
  835. type: "length",
  836. base: math.unit(6, "feet")
  837. },
  838. weight: {
  839. name: "Weight",
  840. power: 3,
  841. type: "mass",
  842. base: math.unit(75, "kg")
  843. }
  844. },
  845. image: {
  846. source: "./media/characters/natasha/front.svg"
  847. },
  848. name: "Side"
  849. }
  850. };
  851. const entity = makeEntity("Natasha", "Natasha", views);
  852. entity.defaults.push({
  853. name: "Normal",
  854. height: math.unit(5 + 5/12, "feet")
  855. });
  856. entity.defaults.push({
  857. name: "Large",
  858. height: math.unit(12, "feet")
  859. });
  860. entity.defaults.push({
  861. name: "Macro",
  862. height: math.unit(100, "feet")
  863. });
  864. entity.defaults.push({
  865. name: "Macro+",
  866. height: math.unit(260, "feet")
  867. });
  868. entity.defaults.push({
  869. name: "Macro++",
  870. height: math.unit(1, "mile")
  871. });
  872. entity.views[entity.defaultView].height = math.unit(100, "feet");
  873. return entity;
  874. }
  875. function makeMalik() {
  876. const views = {
  877. front: {
  878. attributes: {
  879. height: {
  880. name: "Height",
  881. power: 1,
  882. type: "length",
  883. base: math.unit(6, "feet")
  884. },
  885. weight: {
  886. name: "Weight",
  887. power: 3,
  888. type: "mass",
  889. base: math.unit(75, "kg")
  890. }
  891. },
  892. image: {
  893. source: "./media/characters/malik/front.svg"
  894. },
  895. name: "Front"
  896. },
  897. side: {
  898. attributes: {
  899. height: {
  900. name: "Height",
  901. power: 1,
  902. type: "length",
  903. base: math.unit(6, "feet")
  904. },
  905. weight: {
  906. name: "Weight",
  907. power: 3,
  908. type: "mass",
  909. base: math.unit(75, "kg")
  910. }
  911. },
  912. image: {
  913. extra: 1.1539,
  914. source: "./media/characters/malik/side.svg"
  915. },
  916. name: "Side"
  917. },
  918. back: {
  919. attributes: {
  920. height: {
  921. name: "Height",
  922. power: 1,
  923. type: "length",
  924. base: math.unit(6, "feet")
  925. },
  926. weight: {
  927. name: "Weight",
  928. power: 3,
  929. type: "mass",
  930. base: math.unit(75, "kg")
  931. }
  932. },
  933. image: {
  934. source: "./media/characters/malik/back.svg"
  935. },
  936. name: "Back"
  937. },
  938. };
  939. const entity = makeEntity("Malik", "Fuzzypaws", views);
  940. entity.defaults.push({
  941. name: "Macro",
  942. height: math.unit(156, "feet")
  943. });
  944. entity.defaults.push({
  945. name: "Macro+",
  946. height: math.unit(1188, "feet")
  947. });
  948. entity.views[entity.defaultView].height = math.unit(156, "feet");
  949. return entity;
  950. }
  951. function makeSefer() {
  952. const views = {
  953. front: {
  954. attributes: {
  955. height: {
  956. name: "Height",
  957. power: 1,
  958. type: "length",
  959. base: math.unit(6, "feet")
  960. },
  961. weight: {
  962. name: "Weight",
  963. power: 3,
  964. type: "mass",
  965. base: math.unit(75, "kg")
  966. }
  967. },
  968. image: {
  969. source: "./media/characters/sefer/front.svg"
  970. },
  971. name: "Front"
  972. },
  973. back: {
  974. attributes: {
  975. height: {
  976. name: "Height",
  977. power: 1,
  978. type: "length",
  979. base: math.unit(6, "feet")
  980. },
  981. weight: {
  982. name: "Weight",
  983. power: 3,
  984. type: "mass",
  985. base: math.unit(75, "kg")
  986. }
  987. },
  988. image: {
  989. source: "./media/characters/sefer/back.svg"
  990. },
  991. name: "Back"
  992. },
  993. };
  994. const entity = makeEntity("Sefer", "Fuzzypaws", views);
  995. entity.views[entity.defaultView].height = math.unit(6, "feet");
  996. return entity;
  997. }
  998. function makeMan() {
  999. const views = {
  1000. body: {
  1001. attributes: {
  1002. height: {
  1003. name: "Height",
  1004. power: 1,
  1005. type: "length",
  1006. base: math.unit(2, "meter")
  1007. },
  1008. weight: {
  1009. name: "Weight",
  1010. power: 3,
  1011. type: "mass",
  1012. base: math.unit(80, "kg")
  1013. }
  1014. },
  1015. image: {
  1016. source: "./man.svg"
  1017. },
  1018. name: "Body"
  1019. }
  1020. };
  1021. return makeEntity("Man", "Fen", views);
  1022. }
  1023. characterMakers["North"] = () => {
  1024. return makeCharacter(
  1025. "North",
  1026. "chemicalcrux",
  1027. {
  1028. body: {
  1029. height: math.unit(2.2428, "meter"),
  1030. weight: math.unit(124.738, "kg"),
  1031. name: "Body",
  1032. image: {
  1033. extra: 1225/1050,
  1034. source: "./media/characters/north/front.svg"
  1035. }
  1036. }
  1037. },
  1038. [
  1039. {
  1040. name: "Micro",
  1041. height: math.unit(4, "inches")
  1042. },
  1043. {
  1044. name: "Macro",
  1045. height: math.unit(63, "meters")
  1046. },
  1047. {
  1048. name: "Megamacro",
  1049. height: math.unit(101, "miles")
  1050. }
  1051. ],
  1052. math.unit(101, "miles")
  1053. )
  1054. };
  1055. characterMakers["Talan"] = () => {
  1056. return makeCharacter(
  1057. "Talan",
  1058. "talanstrider",
  1059. {
  1060. body: {
  1061. height: math.unit(2, "meter"),
  1062. weight: math.unit(70, "kg"),
  1063. name: "Body",
  1064. image: {
  1065. bottom: 0.02,
  1066. source: "./media/characters/talan/front.svg"
  1067. }
  1068. }
  1069. },
  1070. [
  1071. {
  1072. name: "Normal",
  1073. height: math.unit(4, "meters")
  1074. },
  1075. {
  1076. name: "Macro",
  1077. height: math.unit(100, "meters")
  1078. },
  1079. {
  1080. name: "Megamacro",
  1081. height: math.unit(2, "miles")
  1082. }
  1083. ],
  1084. math.unit(2, "miles")
  1085. )
  1086. };
  1087. characterMakers["Gael'Rathus"] = () => {
  1088. return makeCharacter(
  1089. "Gael'Rathus",
  1090. "Kurrikage",
  1091. {
  1092. front: {
  1093. height: math.unit(2, "meter"),
  1094. weight: math.unit(90, "kg"),
  1095. name: "Front",
  1096. image: {
  1097. source: "./media/characters/gael'rathus/front.svg"
  1098. }
  1099. },
  1100. frontAlt: {
  1101. height: math.unit(2, "meter"),
  1102. weight: math.unit(90, "kg"),
  1103. name: "Front (alt)",
  1104. image: {
  1105. source: "./media/characters/gael'rathus/front-alt.svg"
  1106. }
  1107. },
  1108. frontAlt2: {
  1109. height: math.unit(2, "meter"),
  1110. weight: math.unit(90, "kg"),
  1111. name: "Front (alt 2)",
  1112. image: {
  1113. source: "./media/characters/gael'rathus/front-alt-2.svg"
  1114. }
  1115. }
  1116. },
  1117. [
  1118. {
  1119. name: "Normal",
  1120. height: math.unit(9, "feet")
  1121. },
  1122. {
  1123. name: "Large",
  1124. height: math.unit(25, "feet")
  1125. },
  1126. {
  1127. name: "Macro",
  1128. height: math.unit(0.25, "miles")
  1129. },
  1130. {
  1131. name: "Megamacro",
  1132. height: math.unit(10, "miles")
  1133. }
  1134. ],
  1135. math.unit(9, "feet")
  1136. )
  1137. };
  1138. characterMakers["Sosha"] = () => {
  1139. return makeCharacter(
  1140. "Sosha",
  1141. "Sdocat",
  1142. {
  1143. side: {
  1144. height: math.unit(2, "meter"),
  1145. weight: math.unit(140, "kg"),
  1146. name: "Side",
  1147. image: {
  1148. source: "./media/characters/sosha/side.svg"
  1149. }
  1150. },
  1151. },
  1152. [
  1153. {
  1154. name: "Normal",
  1155. height: math.unit(12, "feet")
  1156. }
  1157. ],
  1158. math.unit(12, "feet")
  1159. )
  1160. };
  1161. characterMakers["Kurribird"] = () => {
  1162. return makeCharacter(
  1163. "Kurribird",
  1164. "Kurrikage",
  1165. {
  1166. front: {
  1167. height: math.unit(2, "meter"),
  1168. weight: math.unit(50, "kg"),
  1169. name: "Front",
  1170. image: {
  1171. source: "./media/characters/kurribird/front.svg",
  1172. bottom: 0.015
  1173. }
  1174. },
  1175. frontAlt: {
  1176. height: math.unit(1.5, "meter"),
  1177. weight: math.unit(50, "kg"),
  1178. name: "Front (Alt)",
  1179. image: {
  1180. source: "./media/characters/kurribird/front-alt.svg",
  1181. extra: 1.45
  1182. }
  1183. },
  1184. },
  1185. [
  1186. {
  1187. name: "Normal",
  1188. height: math.unit(7, "feet")
  1189. },
  1190. {
  1191. name: "Big",
  1192. height: math.unit(15, "feet")
  1193. },
  1194. {
  1195. name: "Macro",
  1196. height: math.unit(1500, "feet")
  1197. },
  1198. {
  1199. name: "Megamacro",
  1200. height: math.unit(2, "miles")
  1201. }
  1202. ],
  1203. math.unit(12, "feet")
  1204. )
  1205. };
  1206. function makeCharacters() {
  1207. const results = [];
  1208. results.push({
  1209. name: "Sofia",
  1210. constructor: makeSofia
  1211. });
  1212. results.push({
  1213. name: "March",
  1214. constructor: makeMarch
  1215. });
  1216. results.push({
  1217. name: "Noir",
  1218. constructor: makeNoir
  1219. });
  1220. results.push({
  1221. name: "Okuri",
  1222. constructor: makeOkuri
  1223. });
  1224. results.push({
  1225. name: "Manny",
  1226. constructor: makeManny
  1227. });
  1228. results.push({
  1229. name: "Adake",
  1230. constructor: makeAdake
  1231. });
  1232. results.push({
  1233. name: "Elijah",
  1234. constructor: makeElijah
  1235. });
  1236. results.push({
  1237. name: "Rai",
  1238. constructor: makeRai
  1239. });
  1240. results.push({
  1241. name: "Jazzy",
  1242. constructor: makeJazzy
  1243. });
  1244. results.push({
  1245. name: "Flamm",
  1246. constructor: makeFlamm
  1247. });
  1248. results.push({
  1249. name: "Zephiro",
  1250. constructor: makeZephiro
  1251. });
  1252. results.push({
  1253. name: "Fory",
  1254. constructor: makeFory
  1255. });
  1256. results.push({
  1257. name: "Kurrikage",
  1258. constructor: makeKurrikage
  1259. });
  1260. results.push({
  1261. name: "Shingo",
  1262. constructor: makeShingo
  1263. });
  1264. results.push({
  1265. name: "Aigey",
  1266. constructor: makeAigey
  1267. });
  1268. results.push({
  1269. name: "Natasha",
  1270. constructor: makeNatasha
  1271. });
  1272. results.push({
  1273. name: "Malik",
  1274. constructor: makeMalik
  1275. });
  1276. results.push({
  1277. name: "Sefer",
  1278. constructor: makeSefer
  1279. });
  1280. results.push({
  1281. name: "Normal man",
  1282. constructor: makeMan
  1283. });
  1284. Object.entries(characterMakers).forEach(([key, value]) => {
  1285. results.push({
  1286. name: key,
  1287. constructor: value
  1288. });
  1289. });
  1290. return results;
  1291. }