diff --git a/media/attribution.js b/media/attribution.js
index 7989a663..d829eb27 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -5535,6 +5535,19 @@ const attributionData = {
"fidchell"
]
},
+ {
+ prefix: "./media/characters/frifna/",
+ files: [
+ { name: "anthro.svg", source: "https://fidverse.fandom.com/wiki/Frifna" },
+ { name: "feral.svg", source: "https://fidverse.fandom.com/wiki/Frifna" },
+ ],
+ authors: [
+ "fidchell"
+ ],
+ owners: [
+ "fidchell"
+ ]
+ },
//characters
{
prefix: "./media/landmarks/",
diff --git a/media/characters/frifna/anthro.svg b/media/characters/frifna/anthro.svg
new file mode 100644
index 00000000..04d268d7
--- /dev/null
+++ b/media/characters/frifna/anthro.svg
@@ -0,0 +1,340 @@
+
+
+
diff --git a/media/characters/frifna/feral.svg b/media/characters/frifna/feral.svg
new file mode 100644
index 00000000..9eed402a
--- /dev/null
+++ b/media/characters/frifna/feral.svg
@@ -0,0 +1,190 @@
+
+
+
diff --git a/presets/characters.js b/presets/characters.js
index 14b3924c..652232ce 100644
--- a/presets/characters.js
+++ b/presets/characters.js
@@ -13933,6 +13933,38 @@ characterMakers["Grottos"] = () => {
)
};
+characterMakers["Frifna"] = () => {
+ return makeCharacter(
+ "Frifna",
+ "Fidchell",
+ {
+ anthro: {
+ height: math.unit(9 + 6/12, "feet"),
+ weight: math.unit(298, "lb"),
+ name: "Anthro",
+ image: {
+ source: "./media/characters/frifna/anthro.svg",
+ extra: 282/269 * (1 / (1 - 0.015)),
+ bottom: 0.015
+ }
+ },
+ feral: {
+ height: math.unit(16 + 2/12, "feet"),
+ weight: math.unit(624, "lb"),
+ name: "Feral",
+ image: {
+ source: "./media/characters/frifna/feral.svg"
+ }
+ },
+ },
+ [
+ {
+ name: "Normal",
+ height: math.unit(9 + 6/12, "feet")
+ },
+ ]
+ )
+};
//characters
function makeCharacters() {
diff --git a/presets/scenes.js b/presets/scenes.js
index a595ebb8..50c8858a 100644
--- a/presets/scenes.js
+++ b/presets/scenes.js
@@ -78,15 +78,17 @@ function makeOwnerScene(owner) {
}
}
-function makeOwnerSceneViews(owner) {
+function makeOwnerSceneViews(owners) {
return () => {
- availableEntities["characters"].filter(x => {
- const entity = x.constructor();
- const owners = ownersOf(entity.views[entity.view].image.source);
- if (owners)
- return owners.indexOf(owner) != -1;
- else
- return false;
+ owners.flatMap(owner => {
+ return availableEntities["characters"].filter(x => {
+ const entity = x.constructor();
+ const owners = ownersOf(entity.views[entity.view].image.source);
+ if (owners)
+ return owners.indexOf(owner) != -1;
+ else
+ return false;
+ })
}).map(maker => {
return maker.constructor();
}).flatMap(entity => {
@@ -143,7 +145,7 @@ scenes["Neopuc"] = () => {
}
scenes["Fidverse"] = () => {
- makeOwnerSceneViews("fidchell")();
+ makeOwnerSceneViews(["fidchell", "cam"])();
document.querySelector("#entity-" + (entityIndex-1)).dataset.x = 0.5;
document.querySelector("#entity-" + (entityIndex-2)).dataset.x = 0.25;
document.querySelector("#entity-" + (entityIndex-3)).dataset.x = 0.75;