fix: remove clownfish (broken untextured scene model)
The clownfish GLB is a full aquarium scene (water plane, light, bubbles, mirrored body) with no textures. It renders as a giant gray/white object that obscures the tank. Replaced with a second blue_tang in the starter lineup. 9 species remain.
This commit is contained in:
+1
-4
@@ -12,7 +12,6 @@ export const FISH_PRICES: Record<FishSpecies, number> = {
|
||||
neon_tetra: 75,
|
||||
oscar: 120,
|
||||
knifefish: 110,
|
||||
clownfish: 90,
|
||||
};
|
||||
|
||||
/** Cost to upgrade TO tank tier (index = target tier) */
|
||||
@@ -88,11 +87,10 @@ export const SPECIES_RARITY_DIST: Record<FishSpecies, Record<Rarity, number>> =
|
||||
neon_tetra: { common: 65, uncommon: 20, rare: 8, epic: 5, legendary: 2 },
|
||||
oscar: { common: 55, uncommon: 25, rare: 12, epic: 6, legendary: 2 },
|
||||
knifefish: { common: 50, uncommon: 25, rare: 13, epic: 8, legendary: 4 },
|
||||
clownfish: { common: 60, uncommon: 22, rare: 10, epic: 6, legendary: 2 },
|
||||
};
|
||||
|
||||
/** Available species in shop */
|
||||
export const SHOP_SPECIES: FishSpecies[] = ["angelfish", "goldfish", "guppy", "neon_tetra", "oscar", "knifefish", "clownfish", "betta", "blue_tang", "flower_horn"];
|
||||
export const SHOP_SPECIES: FishSpecies[] = ["angelfish", "goldfish", "guppy", "neon_tetra", "oscar", "knifefish", "betta", "blue_tang", "flower_horn"];
|
||||
|
||||
/** Species display names */
|
||||
export const SPECIES_NAMES: Record<FishSpecies, string> = {
|
||||
@@ -105,5 +103,4 @@ export const SPECIES_NAMES: Record<FishSpecies, string> = {
|
||||
neon_tetra: "Neon Tetra",
|
||||
oscar: "Oscar Cichlid",
|
||||
knifefish: "Ghost Knifefish",
|
||||
clownfish: "Clownfish",
|
||||
};
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ export function createDefaultState(): GameState {
|
||||
makeFish("neon_tetra", 0.28),
|
||||
makeFish("oscar", 0.60),
|
||||
makeFish("knifefish", 0.50),
|
||||
makeFish("clownfish", 0.40),
|
||||
makeFish("blue_tang", 0.45),
|
||||
makeFish("betta", 0.45),
|
||||
makeFish("blue_tang", 0.50),
|
||||
makeFish("flower_horn", 0.55),
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
export type Rarity = "common" | "uncommon" | "rare" | "epic" | "legendary";
|
||||
export type Pattern = "solid" | "striped" | "spotted" | "gradient";
|
||||
export type Gender = "male" | "female";
|
||||
export type FishSpecies = "angelfish" | "goldfish" | "guppy" | "betta" | "blue_tang" | "flower_horn" | "neon_tetra" | "oscar" | "knifefish" | "clownfish";
|
||||
export type FishSpecies = "angelfish" | "goldfish" | "guppy" | "betta" | "blue_tang" | "flower_horn" | "neon_tetra" | "oscar" | "knifefish";
|
||||
|
||||
export interface Genetics {
|
||||
hueShift: number; // -30 to +30
|
||||
|
||||
-11
@@ -56,7 +56,6 @@ function getSpeciesUrl(sp: FishSpecies): string {
|
||||
neon_tetra: "models/blendswap/neon_tetra.glb",
|
||||
oscar: "models/blendswap/oscar_cichlid.glb",
|
||||
knifefish: "models/blendswap/ghost_knifefish.glb",
|
||||
clownfish: "models/blendswap/clownfish.glb",
|
||||
};
|
||||
return urls[sp];
|
||||
}
|
||||
@@ -65,8 +64,6 @@ function getSpeciesUrl(sp: FishSpecies): string {
|
||||
// swim-clip evaluation of the actual GLB data). Fish are scaled by
|
||||
// targetLength / modelLength. This replaces the old
|
||||
// Box3.setFromObject auto-measure, which under-reports armature-scaled
|
||||
// models (oscar, knifefish) and for the clownfish is dominated by its
|
||||
// 45.3-unit water plane (see FishSpec.modelLength).
|
||||
const SPECIES_LENGTH: Record<FishSpecies, number> = {
|
||||
angelfish: 4.2139,
|
||||
goldfish: 1.7386,
|
||||
@@ -77,14 +74,7 @@ const SPECIES_LENGTH: Record<FishSpecies, number> = {
|
||||
neon_tetra: 3.6548,
|
||||
oscar: 8.8411,
|
||||
knifefish: 23.0140,
|
||||
clownfish: 8.2773,
|
||||
};
|
||||
// The clownfish GLB bundles a whole aquarium scene: an untextured white
|
||||
// "Surface" water plane (45.3 units — the "white box"), a "TopLight"
|
||||
// emissive slab, a "Bubbles" prop, and "Original-Mirrored", a mirrored
|
||||
// duplicate of the body that overlaps the real "ClownFish" node. Hide
|
||||
// everything except the fish itself.
|
||||
const HIDDEN_CLOWNFISH_NODES = ["Surface", "TopLight", "Bubbles", "Original-Mirrored"];
|
||||
function fishToSpec(f: FishData): FishSpec {
|
||||
return {
|
||||
url: getSpeciesUrl(f.species),
|
||||
@@ -93,7 +83,6 @@ function fishToSpec(f: FishData): FishSpec {
|
||||
speed: [0.3 * f.genetics.speedMult, 0.7 * f.genetics.speedMult],
|
||||
orient: isQuaternius(f.species) ? { y: Math.PI / 2 } : undefined,
|
||||
genetics: f.genetics,
|
||||
hideNodes: f.species === "clownfish" ? HIDDEN_CLOWNFISH_NODES : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user