less copy protection, more size visualization
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

1572 satır
40 KiB

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