feat: replace generic Quaternius fish with specific species (Betta, Blue Tang, Flower Horn)

This commit is contained in:
2026-10-07 13:26:50 +00:00
parent fe024a9874
commit c5c18bdf5a
7 changed files with 18 additions and 18 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+10 -10
View File
@@ -6,9 +6,9 @@ export const FISH_PRICES: Record<FishSpecies, number> = {
angelfish: 100, angelfish: 100,
goldfish: 80, goldfish: 80,
guppy: 60, guppy: 60,
fish1: 50, betta: 110,
fish2: 70, blue_tang: 95,
fish3: 65, flower_horn: 105,
neon_tetra: 75, neon_tetra: 75,
oscar: 120, oscar: 120,
knifefish: 110, knifefish: 110,
@@ -82,9 +82,9 @@ export const SPECIES_RARITY_DIST: Record<FishSpecies, Record<Rarity, number>> =
angelfish: { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 }, angelfish: { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 },
goldfish: { common: 65, uncommon: 20, rare: 9, epic: 5, legendary: 1 }, goldfish: { common: 65, uncommon: 20, rare: 9, epic: 5, legendary: 1 },
guppy: { common: 70, uncommon: 18, rare: 7, epic: 4, legendary: 1 }, guppy: { common: 70, uncommon: 18, rare: 7, epic: 4, legendary: 1 },
fish1: { common: 75, uncommon: 15, rare: 6, epic: 3, legendary: 1 }, betta: { common: 50, uncommon: 25, rare: 15, epic: 7, legendary: 3 },
fish2: { common: 65, uncommon: 20, rare: 10, epic: 4, legendary: 1 }, blue_tang: { common: 60, uncommon: 22, rare: 10, epic: 6, legendary: 2 },
fish3: { common: 68, uncommon: 18, rare: 9, epic: 4, legendary: 1 }, flower_horn: { common: 55, uncommon: 23, rare: 12, epic: 7, legendary: 3 },
neon_tetra: { common: 65, uncommon: 20, rare: 8, epic: 5, legendary: 2 }, neon_tetra: { common: 65, uncommon: 20, rare: 8, epic: 5, legendary: 2 },
oscar: { common: 55, uncommon: 25, rare: 12, epic: 6, legendary: 2 }, oscar: { common: 55, uncommon: 25, rare: 12, epic: 6, legendary: 2 },
knifefish: { common: 50, uncommon: 25, rare: 13, epic: 8, legendary: 4 }, knifefish: { common: 50, uncommon: 25, rare: 13, epic: 8, legendary: 4 },
@@ -92,16 +92,16 @@ export const SPECIES_RARITY_DIST: Record<FishSpecies, Record<Rarity, number>> =
}; };
/** Available species in shop */ /** Available species in shop */
export const SHOP_SPECIES: FishSpecies[] = ["angelfish", "goldfish", "guppy", "neon_tetra", "oscar", "knifefish", "clownfish", "fish1", "fish2", "fish3"]; export const SHOP_SPECIES: FishSpecies[] = ["angelfish", "goldfish", "guppy", "neon_tetra", "oscar", "knifefish", "clownfish", "betta", "blue_tang", "flower_horn"];
/** Species display names */ /** Species display names */
export const SPECIES_NAMES: Record<FishSpecies, string> = { export const SPECIES_NAMES: Record<FishSpecies, string> = {
angelfish: "Angelfish", angelfish: "Angelfish",
goldfish: "Goldfish", goldfish: "Goldfish",
guppy: "Guppy", guppy: "Guppy",
fish1: "Cute Fish I", betta: "Betta",
fish2: "Cute Fish II", blue_tang: "Blue Tang",
fish3: "Cute Fish III", flower_horn: "Flower Horn",
neon_tetra: "Neon Tetra", neon_tetra: "Neon Tetra",
oscar: "Oscar Cichlid", oscar: "Oscar Cichlid",
knifefish: "Ghost Knifefish", knifefish: "Ghost Knifefish",
+3 -3
View File
@@ -11,14 +11,14 @@ export function createDefaultState(): GameState {
makeFish("angelfish", 0.50), makeFish("angelfish", 0.50),
makeFish("goldfish", 0.45), makeFish("goldfish", 0.45),
makeFish("guppy", 0.40), makeFish("guppy", 0.40),
makeFish("guppy", 0.35),
makeFish("neon_tetra", 0.30), makeFish("neon_tetra", 0.30),
makeFish("neon_tetra", 0.28), makeFish("neon_tetra", 0.28),
makeFish("oscar", 0.60), makeFish("oscar", 0.60),
makeFish("knifefish", 0.50), makeFish("knifefish", 0.50),
makeFish("clownfish", 0.40), makeFish("clownfish", 0.40),
makeFish("fish1", 0.45), makeFish("betta", 0.45),
makeFish("fish2", 0.50), makeFish("blue_tang", 0.50),
makeFish("flower_horn", 0.55),
]; ];
return { return {
version: VERSION, version: VERSION,
+1 -1
View File
@@ -1,7 +1,7 @@
export type Rarity = "common" | "uncommon" | "rare" | "epic" | "legendary"; export type Rarity = "common" | "uncommon" | "rare" | "epic" | "legendary";
export type Pattern = "solid" | "striped" | "spotted" | "gradient"; export type Pattern = "solid" | "striped" | "spotted" | "gradient";
export type Gender = "male" | "female"; export type Gender = "male" | "female";
export type FishSpecies = "angelfish" | "goldfish" | "guppy" | "fish1" | "fish2" | "fish3" | "neon_tetra" | "oscar" | "knifefish" | "clownfish"; export type FishSpecies = "angelfish" | "goldfish" | "guppy" | "betta" | "blue_tang" | "flower_horn" | "neon_tetra" | "oscar" | "knifefish" | "clownfish";
export interface Genetics { export interface Genetics {
hueShift: number; // -30 to +30 hueShift: number; // -30 to +30
+4 -4
View File
@@ -43,16 +43,16 @@ const food = createFood(scene);
// --- Fish helpers --- // --- Fish helpers ---
function isQuaternius(sp: FishSpecies): boolean { function isQuaternius(sp: FishSpecies): boolean {
return sp === "fish1" || sp === "fish2" || sp === "fish3"; return sp === "betta" || sp === "blue_tang" || sp === "flower_horn";
} }
function getSpeciesUrl(sp: FishSpecies): string { function getSpeciesUrl(sp: FishSpecies): string {
const urls: Record<FishSpecies, string> = { const urls: Record<FishSpecies, string> = {
angelfish: "models/blendswap/blueface_angelfish.glb", angelfish: "models/blendswap/blueface_angelfish.glb",
goldfish: "models/goldfish.glb", goldfish: "models/goldfish.glb",
guppy: "models/guppy.glb", guppy: "models/guppy.glb",
fish1: "models/quaternius/glb/Fish1.glb", betta: "models/poly-pizza/betta.glb",
fish2: "models/quaternius/glb/Fish2.glb", blue_tang: "models/poly-pizza/blue_tang.glb",
fish3: "models/quaternius/glb/Fish3.glb", flower_horn: "models/poly-pizza/flower_horn.glb",
neon_tetra: "models/blendswap/neon_tetra.glb", neon_tetra: "models/blendswap/neon_tetra.glb",
oscar: "models/blendswap/oscar_cichlid.glb", oscar: "models/blendswap/oscar_cichlid.glb",
knifefish: "models/blendswap/ghost_knifefish.glb", knifefish: "models/blendswap/ghost_knifefish.glb",