diff --git a/media/attribution.js b/media/attribution.js
index 2723d59b..9d734b7f 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -1439,6 +1439,30 @@ const attributionData = {
"quake-yote"
]
},
+ {
+ prefix: "./media/characters/chari-gal/",
+ files: [
+ { name: "front.svg", source: "https://www.furaffinity.net/view/32375639/" }
+ ],
+ authors: [
+ "sonicsweeti"
+ ],
+ owners: [
+ "knoem"
+ ]
+ },
+ {
+ prefix: "./media/characters/chari-gal/",
+ files: [
+ { name: "gigantamax.svg", source: "https://www.furaffinity.net/view/33701314/" }
+ ],
+ authors: [
+ "cheeki"
+ ],
+ owners: [
+ "knoem"
+ ]
+ },
{
prefix: "./media/characters/chiros/",
files: [
@@ -2422,6 +2446,18 @@ const attributionData = {
"h-padleckas"
]
},
+ {
+ prefix: "./media/vehicles/spacecraft/",
+ files: [
+ { name: "n-1.svg", source: "https://en.wikipedia.org/wiki/File:Super_heavy-lift_launch_vehicles.png" },
+ { name: "saturn-v.svg", source: "https://en.wikipedia.org/wiki/File:Super_heavy-lift_launch_vehicles.png" },
+ { name: "starship.svg", source: "https://en.wikipedia.org/wiki/File:Super_heavy-lift_launch_vehicles.png" }
+ ],
+ authors: [
+ "thorenn",
+ "chemicalcrux"
+ ]
+ },
],
people: {
"ahastar": {
@@ -3264,6 +3300,22 @@ const attributionData = {
"name": "BKdebo",
"url": "https://www.furaffinity.net/user/bkdebo",
},
+ "sonicsweeti": {
+ "name": "SonicSweeti",
+ "url": "https://www.furaffinity.net/user/sonicsweeti/"
+ },
+ "knoem": {
+ "name": "Knoem",
+ "url": "https://www.furaffinity.net/user/knoem",
+ },
+ "thorenn": {
+ "name": "Thorenn",
+ "url": "https://commons.wikimedia.org/wiki/User:Thorenn",
+ },
+ "cheeki": {
+ "name": "CHeeki",
+ "url": "https://www.furaffinity.net/user/cheeki",
+ },
}
}
diff --git a/media/characters/chari-gal/front.svg b/media/characters/chari-gal/front.svg
new file mode 100644
index 00000000..966202c2
--- /dev/null
+++ b/media/characters/chari-gal/front.svg
@@ -0,0 +1,185 @@
+
+
+
diff --git a/media/characters/chari-gal/gigantamax.svg b/media/characters/chari-gal/gigantamax.svg
new file mode 100644
index 00000000..f5041c2e
--- /dev/null
+++ b/media/characters/chari-gal/gigantamax.svg
@@ -0,0 +1,527 @@
+
+
+
diff --git a/media/vehicles/spacecraft/n-1.svg b/media/vehicles/spacecraft/n-1.svg
new file mode 100644
index 00000000..1c36e8c6
--- /dev/null
+++ b/media/vehicles/spacecraft/n-1.svg
@@ -0,0 +1,699 @@
+
+
+
diff --git a/media/vehicles/spacecraft/saturn-v.svg b/media/vehicles/spacecraft/saturn-v.svg
new file mode 100644
index 00000000..ccca4d1a
--- /dev/null
+++ b/media/vehicles/spacecraft/saturn-v.svg
@@ -0,0 +1,699 @@
+
+
+
diff --git a/media/vehicles/spacecraft/starship.svg b/media/vehicles/spacecraft/starship.svg
new file mode 100644
index 00000000..4f89ed2b
--- /dev/null
+++ b/media/vehicles/spacecraft/starship.svg
@@ -0,0 +1,699 @@
+
+
+
diff --git a/presets/characters.js b/presets/characters.js
index fbbc38d6..bcba0491 100644
--- a/presets/characters.js
+++ b/presets/characters.js
@@ -6354,6 +6354,46 @@ characterMakers["Coffee"] = () => {
)
};
+characterMakers["Chari-Gal"] = () => {
+ return makeCharacter(
+ "Chari-Gal",
+ "Vonadi",
+ {
+ front: {
+ height: math.unit(6, "feet"),
+ weight: math.unit(200, "lbs"),
+ name: "Front",
+ image: {
+ source: "./media/characters/chari-gal/front.svg",
+ extra: 1568/1385 * (1 / (1 - 0.047)),
+ bottom: 0.047
+ }
+ },
+ gigantamax: {
+ height: math.unit(6*16, "feet"),
+ weight: math.unit(200*16*16*16, "lbs"),
+ name: "Gigantamax",
+ image: {
+ source: "./media/characters/chari-gal/gigantamax.svg",
+ extra: 1124/888 * (1 / (1 - 0.03)),
+ bottom: 0.03
+ }
+ },
+ },
+ [
+ {
+ name: "Normal",
+ height: math.unit(5 + 7/12, "feet")
+ },
+ {
+ name: "Macro",
+ height: math.unit(200, "feet"),
+ default: true
+ }
+ ]
+ )
+};
+
function makeCharacters() {
const results = [];
diff --git a/presets/vehicles.js b/presets/vehicles.js
index 568a952b..6db0b030 100644
--- a/presets/vehicles.js
+++ b/presets/vehicles.js
@@ -27,6 +27,37 @@ function makeVehicle(name, sides, mass) {
return makeEntity({ name: name }, views);
}
+function makeMultiVehicle(name, sides) {
+ views = {
+
+ }
+
+ Object.entries(sides).forEach(([key, val]) => {
+ views[key] = {
+ attributes: {
+ height: {
+ name: "Height",
+ power: 1,
+ type: "length",
+ base: val.height
+ },
+ mass: {
+ name: "Mass",
+ power: 3,
+ type: "mass",
+ base: val.mass
+ }
+ },
+ image: val.image,
+ name: val.name,
+ rename: val.rename
+ }
+ });
+
+ return makeEntity({ name: name }, views);
+}
+
+
function makeVehicles() {
const results = [];
@@ -141,5 +172,35 @@ function makeVehicles() {
)
});
+ results.push({
+ name: "Spacecraft",
+ constructor: () => makeMultiVehicle(
+ "Spacecraft",
+ {
+ "n-1": {
+ name: "N-1",
+ rename: true,
+ height: math.unit(105, "meters"),
+ mass: math.unit(95, "tons"),
+ image: { source: "./media/vehicles/spacecraft/n-1.svg" }
+ },
+ "saturn-v": {
+ name: "Saturn V",
+ rename: true,
+ height: math.unit(110.6, "meters"),
+ mass: math.unit(140, "tons"),
+ image: { source: "./media/vehicles/spacecraft/saturn-v.svg" }
+ },
+ "starship": {
+ name: "Starship",
+ rename: true,
+ height: math.unit(118, "m"),
+ mass: math.unit(150, "tons"),
+ image: { source: "./media/vehicles/spacecraft/saturn-v.svg" }
+ },
+ }
+ )
+ });
+
return results;
}