diff --git a/media/attribution.js b/media/attribution.js index d7d61376..665c4dbb 100644 --- a/media/attribution.js +++ b/media/attribution.js @@ -2044,6 +2044,20 @@ const attributionData = { "vercursar" ] }, + { + prefix: "./media/characters/elyssia/", + files: [ + { name: "front.svg", source: "https://www.furaffinity.net/view/28619667/" }, + { name: "front-clothed.svg", source: "https://www.furaffinity.net/view/28619667/" }, + { name: "back.svg", source: "https://www.furaffinity.net/view/28619667/" }, + ], + authors: [ + "fsmaverick" + ], + owners: [ + "neopuc" + ] + }, { prefix: "./media/characters/epifox/", files: [ diff --git a/media/characters/elyssia/back.svg b/media/characters/elyssia/back.svg new file mode 100644 index 00000000..be5af750 --- /dev/null +++ b/media/characters/elyssia/back.svg @@ -0,0 +1,366 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/characters/elyssia/front-clothed.svg b/media/characters/elyssia/front-clothed.svg new file mode 100644 index 00000000..79044b6e --- /dev/null +++ b/media/characters/elyssia/front-clothed.svg @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/characters/elyssia/front.svg b/media/characters/elyssia/front.svg new file mode 100644 index 00000000..3e2b8797 --- /dev/null +++ b/media/characters/elyssia/front.svg @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/presets/characters.js b/presets/characters.js index 052d1d06..014a5af2 100644 --- a/presets/characters.js +++ b/presets/characters.js @@ -11585,6 +11585,60 @@ characterMakers["Carmine"] = () => { ) }; +characterMakers["Elyssia"] = () => { + return makeCharacter( + "Elyssia", + "Neopuc", + { + front: { + height: math.unit(6, "feet"), + weight: math.unit(150, "lb"), + name: "Front", + image: { + source: "./media/characters/elyssia/front.svg", + extra: 2201/2035 * (1 / (1 - 0.05)), + bottom: 0.05 + } + }, + frontClothed: { + height: math.unit(6, "feet"), + weight: math.unit(150, "lb"), + name: "Front (Clothed)", + image: { + source: "./media/characters/elyssia/front-clothed.svg", + extra: 2201/2035 * (1 / (1 - 0.05)), + bottom: 0.05 + } + }, + back: { + height: math.unit(6, "feet"), + weight: math.unit(150, "lb"), + name: "Back", + image: { + source: "./media/characters/elyssia/back.svg", + extra: 2201/2035 * (1 / (1 - 0.013)), + bottom: 0.013 + } + }, + }, + [ + { + name: "Smaller", + height: math.unit(150, "feet") + }, + { + name: "Standard", + height: math.unit(1400, "feet"), + default: true + }, + { + name: "Distracted", + height: math.unit(15000, "feet") + }, + ] + ) +}; + function makeCharacters() { const results = []; results.push({ diff --git a/presets/scenes.js b/presets/scenes.js index fc77d254..15bc36b7 100644 --- a/presets/scenes.js +++ b/presets/scenes.js @@ -77,10 +77,15 @@ scenes["Neopuc"] = () => { return owners.indexOf("neopuc") != -1; else return false; - }).forEach(maker => { - const entity = maker.constructor(); + }).map(maker => { + return maker.constructor(); + }).sort((e1, e2) => { + return e1.sizes[e1.sizes.length - 1].height.toNumber() - e2.sizes[e2.sizes.length - 1].height.toNumber() + }).reduce((size, entity) => { + entity.views[entity.view].height = math.unit(100 * Math.sqrt(size), "meters"); displayEntity(entity, entity.view, 0, 1); - }); + return size+1; + }, 1) arrangeEntities(getSortedEntities()); fitWorld(true);