gioser

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 229TOML 101Markdown 82Shell 24052 Sutichaykuna

⎇ main llimphi-voxel/src/bicho_receta.rs Rust · 2068 siq'ikuna · 63.8 KB Ñawpa willay Pi imata llamkarqan ch'uya

chore: refresco desde el monorepo — 132 miembros, 79 widgets, la galería vuelve y licencia dual d8edd9a9c · Sergio ·

1//! **Recetas del bestiario** — las proporciones y la paleta de cada [`Bicho`], en el
2//! mismo espíritu que [`EstiloSer`](crate::EstiloSer) para la gente: números con
3//! nombre, no geometría.
4//!
5//! Un bicho no se modela: se **describe** (qué tan largo, qué tan alto de patas, qué
6//! cuello, qué orejas, qué cola, qué patrón) y [`bicho_sdf`](crate::bicho_sdf) lo
7//! arma. Por eso una especie nueva es una fila de esta tabla y no un archivo nuevo,
8//! y por eso dos especies parecidas comparten silueta pero no se confunden: cambian
9//! seis números.
10//!
11//! Las fracciones son **relativas a la altura del lomo** (o del cuerpo, según la
12//! familia) y el ensamble se re-escala al final a la altura pedida — así una jirafa
13//! y un erizo se escriben con los mismos rangos.
14
15use crate::bicho::Bicho;
16use crate::sdf_kit::{rgb, tono};
17
18/// Cómo se pinta un bicho: cuerpo, vientre, un detalle (melena/ala/caparazón), un
19/// extra duro (pico/pezuña/cuerno) y el ojo, más un patrón opcional.
20#[derive(Debug, Clone, Copy)]
21pub struct Pinta {
22    pub cuerpo: [f32; 3],
23    pub vientre: [f32; 3],
24    pub detalle: [f32; 3],
25    pub extra: [f32; 3],
26    pub ojo: [f32; 3],
27    pub patron: Patron,
28    pub patron_col: [f32; 3],
29    /// `true` = el ojo lleva esclera blanca visible (primates, aves de dibujo);
30    /// `false` = globo oscuro a secas, que es lo que se ve en un ciervo o un perro.
31    pub esclera: bool,
32}
33
34/// Patrón de pelaje/plumaje pintado con decals sobre el cuerpo ya armado.
35#[derive(Debug, Clone, Copy, PartialEq, Eq)]
36pub enum Patron {
37    /// Sin marcas.
38    Liso,
39    /// Manchas redondas repartidas por el lomo (vaca, jirafa, ciervo, jaguar).
40    Manchas,
41    /// Rayas transversales (cebra, tigre, abeja).
42    Rayas,
43    /// Antifaz oscuro alrededor de los ojos (mapache, panda).
44    Antifaz,
45    /// Montura: el lomo de un color y los flancos del otro (tapir, cerdo pintado).
46    Montura,
47    /// Rombos a lo largo del cuerpo (serpientes).
48    Rombos,
49    /// Anillos a lo largo de la cola/cuerpo (mapache, coral, lémur).
50    Anillos,
51    /// Lunares chicos y densos (huevo, cervatillo, mariquita).
52    Lunares,
53}
54
55impl Pinta {
56    /// Paleta de pelaje a partir del color del cuerpo: vientre aclarado, detalle
57    /// oscurecido, pezuñas grises, ojo casi negro.
58    pub fn pelo(hex: u32) -> Self {
59        let c = rgb(hex);
60        Self {
61            cuerpo: c,
62            vientre: tono(c, 1.28),
63            detalle: tono(c, 0.66),
64            extra: rgb(0x4A4A50),
65            ojo: rgb(0x1A1518),
66            patron: Patron::Liso,
67            patron_col: tono(c, 0.5),
68            esclera: false,
69        }
70    }
71    /// Paleta de plumaje: igual que [`pelo`](Self::pelo) pero con pico/patas cálidos.
72    pub fn pluma(hex: u32) -> Self {
73        let mut p = Self::pelo(hex);
74        p.extra = rgb(0xE0A03C);
75        p
76    }
77    pub fn vientre(mut self, hex: u32) -> Self {
78        self.vientre = rgb(hex);
79        self
80    }
81    pub fn detalle(mut self, hex: u32) -> Self {
82        self.detalle = rgb(hex);
83        self
84    }
85    pub fn extra(mut self, hex: u32) -> Self {
86        self.extra = rgb(hex);
87        self
88    }
89    pub fn ojo(mut self, hex: u32) -> Self {
90        self.ojo = rgb(hex);
91        self
92    }
93    pub fn con_esclera(mut self) -> Self {
94        self.esclera = true;
95        self
96    }
97    pub fn patron(mut self, p: Patron, hex: u32) -> Self {
98        self.patron = p;
99        self.patron_col = rgb(hex);
100        self
101    }
102}
103
104/// Orejas.
105#[derive(Debug, Clone, Copy, PartialEq, Eq)]
106pub enum Oreja {
107    Ninguna,
108    /// Redondas y pegadas (oso, koala, mono).
109    Redonda,
110    /// Triangulares paradas (gato, zorro, lobo).
111    Punta,
112    /// Largas paradas (conejo, burro, liebre).
113    Larga,
114    /// Caídas a los costados (perro de caza, cabra, cerdo).
115    Caida,
116    /// Abanicos grandes (elefante).
117    Abanico,
118    /// Cuencos laterales de caballo/vaca (cortas, hacia afuera).
119    Lateral,
120}
121
122/// Cuernos, astas y colmillos.
123#[derive(Debug, Clone, Copy, PartialEq, Eq)]
124pub enum Cuerno {
125    Ninguno,
126    /// Dos cuernitos curvos hacia arriba (cabra, vaca, toro).
127    Cortos,
128    /// Dos cuernos largos en lira (búfalo, íbice).
129    Largos,
130    /// Astas ramificadas (ciervo, alce).
131    Astas,
132    /// Un cuerno recto sobre el hocico (rinoceronte).
133    Nasal,
134    /// Dos colmillos que salen de la boca (elefante, jabalí, morsa).
135    Colmillos,
136}
137
138/// Colas.
139#[derive(Debug, Clone, Copy, PartialEq, Eq)]
140pub enum Cola {
141    Ninguna,
142    /// Muñón (oso, conejo, cerdo).
143    Muñon,
144    /// Larga y fina, con penacho al final (vaca, león, jirafa).
145    Penacho,
146    /// Larga y tupida (zorro, ardilla, lobo).
147    Tupida,
148    /// Larga y desnuda, prensil (mono, ratón, lagarto).
149    Prensil,
150    /// Enroscada sobre el lomo (cerdo, perro nórdico).
151    Rulo,
152    /// Gruesa en la base, se usa de contrapeso (canguro, cocodrilo, tigre).
153    Gruesa,
154    /// Crin de pelo que cuelga (caballo, burro).
155    Crin,
156}
157
158/// **Cuadrúpedo**: la receta más poblada del bestiario (mamíferos terrestres y el
159/// grueso de la granja). Todas las fracciones son de la **altura del lomo**.
160#[derive(Debug, Clone, Copy)]
161pub struct Cuadrupedo {
162    /// Largo del tronco (sin cuello ni cola).
163    pub largo: f32,
164    /// Alto de la panza = dónde empiezan las patas.
165    pub pata: f32,
166    /// Radio de una pata.
167    pub pata_r: f32,
168    /// Radio del tronco a media eslora.
169    pub cuerpo_r: f32,
170    /// Radio del pecho relativo al tronco (`1` = parejo; oso `1.25`).
171    pub pecho: f32,
172    /// Radio de la grupa relativo al tronco (caballo `1.05`, hiena `0.8`).
173    pub grupa: f32,
174    /// Combado del lomo: `+` arquea hacia arriba (gato, oso), `-` lo hunde (vaca vieja).
175    pub lomo: f32,
176    /// Largo del cuello (`0` = cabeza pegada al tronco).
177    pub cuello: f32,
178    /// Ángulo del cuello desde la horizontal: `0` = adelante, `1.4` = casi vertical.
179    pub cuello_ang: f32,
180    /// Radio del cuello.
181    pub cuello_r: f32,
182    /// Radio de la cabeza.
183    pub cabeza: f32,
184    /// Semiejes de la cabeza relativos a `cabeza` (ancho, alto, largo).
185    pub craneo: [f32; 3],
186    /// Largo del hocico en radios de cabeza (`0` = cara chata: gato, oso panda).
187    pub hocico: f32,
188    /// Radio del hocico relativo a la cabeza.
189    pub hocico_r: f32,
190    pub oreja: Oreja,
191    pub oreja_tam: f32,
192    pub cuerno: Cuerno,
193    pub cola: Cola,
194    /// Largo de la cola en fracciones del tronco.
195    pub cola_len: f32,
196    /// Jorobas sobre el lomo (`1` dromedario, `2` camello bactriano, bisonte `1` alta).
197    pub jorobas: u8,
198    pub joroba_alto: f32,
199    /// Melena alrededor del cuello (león) o crin sobre él (caballo): `0` = sin.
200    pub melena: f32,
201    /// Lana: bultos mullidos sobre el cuerpo (oveja, alpaca).
202    pub lana: f32,
203    /// Púas: conos cortos por el lomo (erizo, puercoespín).
204    pub puas: f32,
205    /// Trompa (elefante, tapir, oso hormiguero): largo en radios de cabeza.
206    pub trompa: f32,
207    /// Radio del ojo relativo a la cabeza.
208    pub ojo: f32,
209    /// Cuánto se separan los ojos del frente (`0` = al frente como un primate,
210    /// `1` = a los costados como una presa).
211    pub ojo_lateral: f32,
212    /// Se para en dos patas (canguro, oso hormiguero erguido, suricata).
213    pub bipedo: bool,
214    pub pinta: Pinta,
215}
216
217impl Default for Cuadrupedo {
218    /// El perro genérico: la silueta media desde la que se escriben las demás.
219    fn default() -> Self {
220        Self {
221            largo: 1.15,
222            pata: 0.46,
223            pata_r: 0.075,
224            cuerpo_r: 0.26,
225            pecho: 1.06,
226            grupa: 1.0,
227            lomo: 0.02,
228            cuello: 0.22,
229            cuello_ang: 0.55,
230            cuello_r: 0.14,
231            cabeza: 0.27,
232            craneo: [0.92, 0.92, 1.06],
233            hocico: 0.85,
234            hocico_r: 0.44,
235            oreja: Oreja::Punta,
236            oreja_tam: 1.0,
237            cuerno: Cuerno::Ninguno,
238            cola: Cola::Tupida,
239            cola_len: 0.55,
240            jorobas: 0,
241            joroba_alto: 0.0,
242            melena: 0.0,
243            lana: 0.0,
244            puas: 0.0,
245            trompa: 0.0,
246            ojo: 0.19,
247            ojo_lateral: 0.45,
248            bipedo: false,
249            pinta: Pinta::pelo(0xB08048),
250        }
251    }
252}
253
254/// Pico de un ave.
255#[derive(Debug, Clone, Copy, PartialEq, Eq)]
256pub enum Pico {
257    /// Cono corto de granívoro (gorrión, cardenal).
258    Corto,
259    /// Cono largo y recto (garza, cigüeña, martín pescador).
260    Largo,
261    /// Ganchudo (águila, cóndor, loro).
262    Curvo,
263    /// Enorme y liviano (tucán, pelícano).
264    Ancho,
265    /// Aguja (colibrí).
266    Aguja,
267    /// Pala achatada (pato, ganso, cisne).
268    Pala,
269}
270
271/// Copete/cresta.
272#[derive(Debug, Clone, Copy, PartialEq, Eq)]
273pub enum Cresta {
274    Ninguna,
275    /// Punta de plumas hacia arriba/atrás (cardenal, quetzal).
276    Punta,
277    /// Cresta carnosa roja (gallo).
278    Gallo,
279    /// Penacho largo hacia atrás (cacatúa, pavo real).
280    Penacho,
281    /// Penachos de oreja (búho).
282    Orejas,
283}
284
285/// Cómo llevan las alas.
286#[derive(Debug, Clone, Copy, PartialEq, Eq)]
287pub enum Ala {
288    /// Plegadas contra el cuerpo (lo normal en el suelo).
289    Plegada,
290    /// Extendidas (planeando).
291    Abierta,
292    /// Batiendo: el ángulo sale de la fase (colibrí, mariposa, ave en vuelo).
293    Bate,
294    /// Aletas: no vuela (pingüino).
295    Aleta,
296}
297
298/// Cola de un ave.
299#[derive(Debug, Clone, Copy, PartialEq, Eq)]
300pub enum ColaAve {
301    Corta,
302    /// Dos plumas largas (guacamayo, quetzal, golondrina).
303    Larga,
304    /// Abanico de plumas (gallo, paloma).
305    Abanico,
306    /// La rueda del pavo real (abanico grande con ocelos).
307    Rueda,
308}
309
310/// **Ave**: cuerpo ovoide inclinado + cuello + cabeza + pico, sobre dos patas.
311/// Fracciones relativas a la **altura total del ave parada**.
312#[derive(Debug, Clone, Copy)]
313pub struct Ave {
314    /// Semiejes del cuerpo (ancho, alto, largo).
315    pub cuerpo: [f32; 3],
316    /// Inclinación del eje del cuerpo: `0` = vertical (pingüino), `1.3` = horizontal
317    /// (gorrión posado, gallina).
318    pub inclina: f32,
319    pub cuello: f32,
320    /// Curvatura en S del cuello (cisne, garza).
321    pub cuello_s: f32,
322    pub cuello_r: f32,
323    pub cabeza: f32,
324    pub pico: Pico,
325    pub pico_len: f32,
326    pub pico_r: f32,
327    pub cresta: Cresta,
328    pub ala: Ala,
329    pub cola: ColaAve,
330    pub cola_len: f32,
331    /// Largo de las patas (`0.05` gorrión, `0.55` flamenco).
332    pub pata: f32,
333    pub pata_r: f32,
334    pub ojo: f32,
335    pub pinta: Pinta,
336}
337
338impl Default for Ave {
339    /// El pájaro genérico posado (gorrión).
340    fn default() -> Self {
341        Self {
342            cuerpo: [0.30, 0.32, 0.40],
343            inclina: 1.05,
344            cuello: 0.10,
345            cuello_s: 0.0,
346            cuello_r: 0.14,
347            cabeza: 0.22,
348            pico: Pico::Corto,
349            pico_len: 0.9,
350            pico_r: 0.42,
351            cresta: Cresta::Ninguna,
352            ala: Ala::Plegada,
353            cola: ColaAve::Corta,
354            cola_len: 0.5,
355            pata: 0.14,
356            pata_r: 0.028,
357            ojo: 0.30,
358            pinta: Pinta::pluma(0x8A6A48),
359        }
360    }
361}
362
363/// **Reptante**: lo que va bajo y largo — serpientes (sin patas), lagartos y
364/// cocodrilos (cuatro patas cortas y abiertas), tortugas (con caparazón), ranas.
365#[derive(Debug, Clone, Copy)]
366pub struct Reptante {
367    /// Largo del cuerpo en fracciones de… su propio grosor: acá manda el largo, y la
368    /// escala final la fija la altura pedida.
369    pub largo: f32,
370    pub grosor: f32,
371    /// Cuántas ondas dibuja el cuerpo en el piso (serpiente).
372    pub ondas: f32,
373    pub amplitud: f32,
374    /// Patas (`0` serpiente, `4` lagarto).
375    pub patas: u8,
376    pub pata: f32,
377    /// Cuánto se abren las patas hacia afuera (reptil = mucho).
378    pub abertura: f32,
379    pub cabeza: f32,
380    /// Largo del hocico en radios de cabeza (cocodrilo = 3).
381    pub hocico: f32,
382    /// Capucha desplegada (cobra).
383    pub capucha: f32,
384    /// Cresta dorsal de púas (iguana, dragón).
385    pub cresta: f32,
386    /// Caparazón abovedado (tortuga).
387    pub caparazon: f32,
388    /// Cascabel en la punta de la cola.
389    pub cascabel: bool,
390    /// Lengua bífida asomada.
391    pub lengua: bool,
392    /// Se levanta el tercio delantero (cobra alzada, iguana atenta).
393    pub alza: f32,
394    /// Cuerpo agazapado de anfibio: patas traseras plegadas y ojos arriba.
395    pub anfibio: bool,
396    pub ojo: f32,
397    pub pinta: Pinta,
398}
399
400impl Default for Reptante {
401    /// La serpiente genérica.
402    fn default() -> Self {
403        Self {
404            largo: 6.0,
405            grosor: 0.5,
406            ondas: 1.6,
407            amplitud: 1.1,
408            patas: 0,
409            pata: 0.5,
410            abertura: 0.9,
411            cabeza: 0.72,
412            hocico: 1.0,
413            capucha: 0.0,
414            cresta: 0.0,
415            caparazon: 0.0,
416            cascabel: false,
417            lengua: true,
418            alza: 0.0,
419            anfibio: false,
420            ojo: 0.26,
421            pinta: Pinta::pelo(0x5C8C3E),
422        }
423    }
424}
425
426/// **Nadador**: pez, delfín, ballena, tiburón. Va con el cuerpo horizontal y su
427/// altura de referencia es la del cuerpo (el catálogo lo posa flotando).
428#[derive(Debug, Clone, Copy)]
429pub struct Nadador {
430    /// Semiejes del cuerpo (ancho, alto, largo).
431    pub cuerpo: [f32; 3],
432    /// Aleta caudal vertical (peces) u horizontal (cetáceos).
433    pub caudal_vertical: bool,
434    pub caudal: f32,
435    pub dorsal: f32,
436    pub pectoral: f32,
437    /// Hocico prolongado (delfín, pez espada).
438    pub hocico: f32,
439    /// Boca abierta hacia abajo (tiburón).
440    pub boca: f32,
441    /// Tentáculos (pulpo, medusa): cuántos y qué largo.
442    pub tentaculos: u8,
443    pub tentaculo_len: f32,
444    pub ojo: f32,
445    pub pinta: Pinta,
446}
447
448impl Default for Nadador {
449    fn default() -> Self {
450        Self {
451            cuerpo: [0.26, 0.42, 0.72],
452            caudal_vertical: true,
453            caudal: 0.45,
454            dorsal: 0.35,
455            pectoral: 0.25,
456            hocico: 0.0,
457            boca: 0.0,
458            tentaculos: 0,
459            tentaculo_len: 0.0,
460            ojo: 0.16,
461            pinta: Pinta::pelo(0xE08A3C),
462        }
463    }
464}
465
466/// Alas de un artrópodo.
467#[derive(Debug, Clone, Copy, PartialEq, Eq)]
468pub enum AlaBicho {
469    Ninguna,
470    /// Cuatro alas anchas y planas, pintadas (mariposa).
471    Mariposa,
472    /// Membranas finas y alargadas (abeja, libélula, mosca).
473    Membrana,
474    /// Élitros duros que cubren el abdomen (escarabajo, mariquita).
475    Elitros,
476}
477
478/// **Insecto y afines** (artrópodos y caracoles): cadena de segmentos + patas finas.
479#[derive(Debug, Clone, Copy)]
480pub struct Insecto {
481    /// Segmentos del cuerpo (cabeza, tórax, abdomen…): radios sucesivos.
482    pub segmentos: [f32; 3],
483    /// Largo total del cuerpo.
484    pub largo: f32,
485    pub patas: u8,
486    pub pata: f32,
487    /// Cuánto se arquean las patas.
488    pub arco: f32,
489    pub alas: AlaBicho,
490    pub ala_len: f32,
491    pub antenas: f32,
492    /// Pinzas delanteras (escorpión, cangrejo).
493    pub pinzas: f32,
494    /// Cola en alto con aguijón (escorpión).
495    pub aguijon: f32,
496    /// Concha en espiral (caracol).
497    pub concha: f32,
498    /// Ojos sobre pedúnculos (caracol, cangrejo).
499    pub pedunculos: bool,
500    pub ojo: f32,
501    pub pinta: Pinta,
502}
503
504impl Default for Insecto {
505    fn default() -> Self {
506        Self {
507            segmentos: [0.30, 0.36, 0.44],
508            largo: 1.0,
509            patas: 6,
510            pata: 0.45,
511            arco: 0.5,
512            alas: AlaBicho::Ninguna,
513            ala_len: 0.9,
514            antenas: 0.4,
515            pinzas: 0.0,
516            aguijon: 0.0,
517            concha: 0.0,
518            pedunculos: false,
519            ojo: 0.22,
520            pinta: Pinta::pelo(0x3A3A42),
521        }
522    }
523}
524
525/// La receta de un bicho, por familia morfológica.
526#[derive(Debug, Clone, Copy)]
527pub enum Receta {
528    Cuatro(Cuadrupedo),
529    Ave(Ave),
530    Reptante(Reptante),
531    Nadador(Nadador),
532    Insecto(Insecto),
533}
534
535impl Receta {
536    /// Nombre de la familia (para la UI y los informes).
537    pub fn familia(&self) -> &'static str {
538        match self {
539            Receta::Cuatro(_) => "cuadrúpedo",
540            Receta::Ave(_) => "ave",
541            Receta::Reptante(_) => "reptante",
542            Receta::Nadador(_) => "nadador",
543            Receta::Insecto(_) => "insecto",
544        }
545    }
546
547    /// La paleta del bicho, sea de la familia que sea.
548    pub fn pinta(&self) -> &Pinta {
549        match self {
550            Receta::Cuatro(c) => &c.pinta,
551            Receta::Ave(a) => &a.pinta,
552            Receta::Reptante(r) => &r.pinta,
553            Receta::Nadador(n) => &n.pinta,
554            Receta::Insecto(i) => &i.pinta,
555        }
556    }
557}
558
559/// **La receta de cada especie.** Una fila por bicho: lo que la distingue, sobre el
560/// default de su familia.
561pub fn receta(b: Bicho) -> Receta {
562    match b {
563        // ---------------- Granja ----------------
564        Bicho::Vaca => Receta::Cuatro(Cuadrupedo {
565            largo: 1.35,
566            pata: 0.50,
567            cuerpo_r: 0.31,
568            grupa: 1.06,
569            cuello: 0.20,
570            cuello_ang: 0.30,
571            cuello_r: 0.19,
572            cabeza: 0.26,
573            craneo: [0.86, 0.92, 1.20],
574            hocico: 1.0,
575            hocico_r: 0.62,
576            oreja: Oreja::Lateral,
577            cuerno: Cuerno::Cortos,
578            cola: Cola::Penacho,
579            cola_len: 0.8,
580            ojo_lateral: 0.8,
581            pinta: Pinta::pelo(0xF2EEE6)
582                .detalle(0x33302E)
583                .extra(0xE8E0CE)
584                .patron(Patron::Manchas, 0x2E2B29),
585            ..Default::default()
586        }),
587        Bicho::Toro => Receta::Cuatro(Cuadrupedo {
588            largo: 1.30,
589            pata: 0.48,
590            cuerpo_r: 0.34,
591            pecho: 1.20,
592            grupa: 0.98,
593            lomo: 0.06,
594            cuello: 0.15,
595            cuello_ang: 0.18,
596            cuello_r: 0.25,
597            cabeza: 0.27,
598            craneo: [0.94, 0.94, 1.10],
599            hocico: 0.85,
600            hocico_r: 0.66,
601            oreja: Oreja::Lateral,
602            cuerno: Cuerno::Largos,
603            cola: Cola::Penacho,
604            cola_len: 0.75,
605            jorobas: 1,
606            joroba_alto: 0.10,
607            ojo_lateral: 0.75,
608            pinta: Pinta::pelo(0x4A3428).extra(0xD8CFC0),
609            ..Default::default()
610        }),
611        Bicho::Oveja => Receta::Cuatro(Cuadrupedo {
612            largo: 1.05,
613            pata: 0.42,
614            pata_r: 0.062,
615            cuerpo_r: 0.33,
616            cuello: 0.10,
617            cuello_ang: 0.35,
618            cuello_r: 0.16,
619            cabeza: 0.22,
620            craneo: [0.86, 0.94, 1.10],
621            hocico: 0.9,
622            hocico_r: 0.52,
623            oreja: Oreja::Caida,
624            oreja_tam: 0.9,
625            cola: Cola::Muñon,
626            lana: 1.0,
627            ojo_lateral: 0.8,
628            pinta: Pinta::pelo(0xF0EAE0).detalle(0x2E2C2E).extra(0x2E2C2E),
629            ..Default::default()
630        }),
631        Bicho::Cabra => Receta::Cuatro(Cuadrupedo {
632            largo: 1.05,
633            pata: 0.50,
634            pata_r: 0.055,
635            cuerpo_r: 0.24,
636            cuello: 0.18,
637            cuello_ang: 0.55,
638            cuello_r: 0.13,
639            cabeza: 0.22,
640            craneo: [0.82, 0.90, 1.16],
641            hocico: 1.0,
642            hocico_r: 0.48,
643            oreja: Oreja::Caida,
644            cuerno: Cuerno::Cortos,
645            cola: Cola::Muñon,
646            ojo_lateral: 0.8,
647            pinta: Pinta::pelo(0xD8CDB6).detalle(0x6A5A46).extra(0xCFC6B0),
648            ..Default::default()
649        }),
650        Bicho::Cerdo => Receta::Cuatro(Cuadrupedo {
651            largo: 1.25,
652            pata: 0.34,
653            pata_r: 0.070,
654            cuerpo_r: 0.36,
655            pecho: 0.98,
656            grupa: 1.05,
657            cuello: 0.05,
658            cuello_ang: 0.20,
659            cuello_r: 0.22,
660            cabeza: 0.24,
661            craneo: [0.90, 0.86, 1.20],
662            hocico: 1.0,
663            hocico_r: 0.60,
664            oreja: Oreja::Caida,
665            oreja_tam: 1.1,
666            cola: Cola::Rulo,
667            cola_len: 0.3,
668            ojo: 0.15,
669            ojo_lateral: 0.8,
670            pinta: Pinta::pelo(0xE8A8A4).detalle(0xC77E80),
671            ..Default::default()
672        }),
673        Bicho::Caballo => Receta::Cuatro(Cuadrupedo {
674            largo: 1.25,
675            pata: 0.58,
676            pata_r: 0.062,
677            cuerpo_r: 0.27,
678            pecho: 1.10,
679            grupa: 1.08,
680            cuello: 0.42,
681            cuello_ang: 0.85,
682            cuello_r: 0.15,
683            cabeza: 0.22,
684            craneo: [0.78, 0.92, 1.32],
685            hocico: 1.1,
686            hocico_r: 0.55,
687            oreja: Oreja::Punta,
688            oreja_tam: 0.8,
689            cola: Cola::Crin,
690            cola_len: 0.9,
691            melena: 0.8,
692            ojo_lateral: 0.85,
693            pinta: Pinta::pelo(0x8A5A32).detalle(0x35281E).extra(0x3A332C),
694            ..Default::default()
695        }),
696        Bicho::Burro => Receta::Cuatro(Cuadrupedo {
697            largo: 1.15,
698            pata: 0.52,
699            pata_r: 0.058,
700            cuerpo_r: 0.26,
701            cuello: 0.30,
702            cuello_ang: 0.80,
703            cuello_r: 0.14,
704            cabeza: 0.23,
705            craneo: [0.80, 0.92, 1.26],
706            hocico: 1.05,
707            hocico_r: 0.55,
708            oreja: Oreja::Larga,
709            oreja_tam: 1.2,
710            cola: Cola::Crin,
711            cola_len: 0.7,
712            melena: 0.3,
713            ojo_lateral: 0.85,
714            pinta: Pinta::pelo(0x9A9490).vientre(0xD6D0C6).detalle(0x4A453F),
715            ..Default::default()
716        }),
717        Bicho::Gallina => Receta::Ave(Ave {
718            cuerpo: [0.32, 0.34, 0.42],
719            inclina: 1.10,
720            cuello: 0.16,
721            cabeza: 0.19,
722            pico: Pico::Corto,
723            pico_len: 0.8,
724            cresta: Cresta::Gallo,
725            cola: ColaAve::Abanico,
726            cola_len: 0.45,
727            pata: 0.16,
728            pinta: Pinta::pluma(0xF0EAE0).detalle(0xD8CEBE).extra(0xE0A03C),
729            ..Default::default()
730        }),
731        Bicho::Gallo => Receta::Ave(Ave {
732            cuerpo: [0.30, 0.36, 0.40],
733            inclina: 0.85,
734            cuello: 0.24,
735            cabeza: 0.19,
736            pico: Pico::Corto,
737            cresta: Cresta::Gallo,
738            cola: ColaAve::Abanico,
739            cola_len: 0.75,
740            pata: 0.20,
741            pinta: Pinta::pluma(0x8A3A2A)
742                .vientre(0x2E2A2E)
743                .detalle(0x1F6B4A)
744                .extra(0xE8B23C),
745            ..Default::default()
746        }),
747        Bicho::Pato => Receta::Ave(Ave {
748            cuerpo: [0.32, 0.30, 0.46],
749            inclina: 1.25,
750            cuello: 0.16,
751            cuello_r: 0.16,
752            cabeza: 0.19,
753            pico: Pico::Pala,
754            pico_len: 1.0,
755            cola: ColaAve::Corta,
756            pata: 0.10,
757            pinta: Pinta::pluma(0xF0EDE6).detalle(0x2E6B4A).extra(0xE8A030),
758            ..Default::default()
759        }),
760        Bicho::Ganso => Receta::Ave(Ave {
761            cuerpo: [0.30, 0.30, 0.44],
762            inclina: 1.15,
763            cuello: 0.34,
764            cuello_s: 0.25,
765            cuello_r: 0.11,
766            cabeza: 0.16,
767            pico: Pico::Pala,
768            pata: 0.14,
769            pinta: Pinta::pluma(0xE8E2D6).detalle(0x8A8276).extra(0xE07A28),
770            ..Default::default()
771        }),
772
773        // ---------------- Compañía ----------------
774        Bicho::Perro => Receta::Cuatro(Cuadrupedo {
775            cola: Cola::Tupida,
776            cola_len: 0.6,
777            oreja: Oreja::Caida,
778            pinta: Pinta::pelo(0xB8813E).vientre(0xE6D2B0).detalle(0x6B4A22),
779            ..Default::default()
780        }),
781        Bicho::Gato => Receta::Cuatro(Cuadrupedo {
782            largo: 1.10,
783            pata: 0.44,
784            pata_r: 0.055,
785            cuerpo_r: 0.21,
786            lomo: 0.10,
787            cuello: 0.10,
788            cuello_ang: 0.45,
789            cuello_r: 0.12,
790            cabeza: 0.24,
791            craneo: [1.0, 0.94, 0.92],
792            hocico: 0.35,
793            hocico_r: 0.5,
794            oreja: Oreja::Punta,
795            oreja_tam: 1.2,
796            cola: Cola::Prensil,
797            cola_len: 0.95,
798            ojo: 0.22,
799            ojo_lateral: 0.30,
800            pinta: Pinta::pelo(0x8A8A92)
801                .vientre(0xE0DCD4)
802                .ojo(0x3A8A5A)
803                .patron(Patron::Rayas, 0x55555E),
804            ..Default::default()
805        }),
806
807        // ---------------- Bosque templado ----------------
808        Bicho::Ciervo => Receta::Cuatro(Cuadrupedo {
809            largo: 1.10,
810            pata: 0.58,
811            pata_r: 0.048,
812            cuerpo_r: 0.23,
813            cuello: 0.34,
814            cuello_ang: 1.0,
815            cuello_r: 0.12,
816            cabeza: 0.20,
817            craneo: [0.80, 0.90, 1.24],
818            hocico: 1.0,
819            hocico_r: 0.48,
820            oreja: Oreja::Larga,
821            oreja_tam: 0.9,
822            cuerno: Cuerno::Astas,
823            cola: Cola::Muñon,
824            ojo_lateral: 0.85,
825            pinta: Pinta::pelo(0xA9743E)
826                .vientre(0xEADCC4)
827                .extra(0xD8CDB4)
828                .patron(Patron::Lunares, 0xF0E4CE),
829            ..Default::default()
830        }),
831        Bicho::Alce => Receta::Cuatro(Cuadrupedo {
832            largo: 1.25,
833            pata: 0.62,
834            pata_r: 0.062,
835            cuerpo_r: 0.28,
836            pecho: 1.14,
837            jorobas: 1,
838            joroba_alto: 0.13,
839            cuello: 0.22,
840            cuello_ang: 0.62,
841            cuello_r: 0.18,
842            cabeza: 0.23,
843            craneo: [0.80, 0.92, 1.34],
844            hocico: 1.15,
845            hocico_r: 0.62,
846            oreja: Oreja::Larga,
847            cuerno: Cuerno::Astas,
848            cola: Cola::Muñon,
849            ojo_lateral: 0.85,
850            pinta: Pinta::pelo(0x4E3A2A).detalle(0x2E241C).extra(0xC9B189),
851            ..Default::default()
852        }),
853        Bicho::Zorro => Receta::Cuatro(Cuadrupedo {
854            largo: 1.15,
855            pata: 0.42,
856            pata_r: 0.05,
857            cuerpo_r: 0.21,
858            cuello: 0.12,
859            cuello_ang: 0.40,
860            cuello_r: 0.13,
861            cabeza: 0.23,
862            craneo: [0.92, 0.90, 1.14],
863            hocico: 1.15,
864            hocico_r: 0.36,
865            oreja: Oreja::Punta,
866            oreja_tam: 1.25,
867            cola: Cola::Tupida,
868            cola_len: 0.95,
869            ojo_lateral: 0.4,
870            pinta: Pinta::pelo(0xD2712A).vientre(0xF2ECE2).detalle(0x2E2A28),
871            ..Default::default()
872        }),
873        Bicho::Lobo => Receta::Cuatro(Cuadrupedo {
874            largo: 1.25,
875            pata: 0.50,
876            pata_r: 0.062,
877            cuerpo_r: 0.24,
878            pecho: 1.12,
879            cuello: 0.16,
880            cuello_ang: 0.35,
881            cuello_r: 0.17,
882            cabeza: 0.24,
883            craneo: [0.90, 0.90, 1.18],
884            hocico: 1.1,
885            hocico_r: 0.42,
886            oreja: Oreja::Punta,
887            cola: Cola::Tupida,
888            cola_len: 0.7,
889            melena: 0.25,
890            ojo_lateral: 0.35,
891            pinta: Pinta::pelo(0x8A8890).vientre(0xD8D4CC).detalle(0x4A4850).ojo(0xC8A020),
892            ..Default::default()
893        }),
894        Bicho::Oso => Receta::Cuatro(Cuadrupedo {
895            largo: 1.20,
896            pata: 0.40,
897            pata_r: 0.105,
898            cuerpo_r: 0.36,
899            pecho: 1.18,
900            lomo: 0.10,
901            cuello: 0.06,
902            cuello_ang: 0.25,
903            cuello_r: 0.24,
904            cabeza: 0.27,
905            craneo: [0.96, 0.92, 1.06],
906            hocico: 0.75,
907            hocico_r: 0.52,
908            oreja: Oreja::Redonda,
909            cola: Cola::Muñon,
910            ojo: 0.14,
911            ojo_lateral: 0.35,
912            pinta: Pinta::pelo(0x6B4A2E).detalle(0x3E2A1C),
913            ..Default::default()
914        }),
915        Bicho::Panda => Receta::Cuatro(Cuadrupedo {
916            largo: 1.15,
917            pata: 0.36,
918            pata_r: 0.11,
919            cuerpo_r: 0.38,
920            pecho: 1.10,
921            lomo: 0.06,
922            cuello: 0.04,
923            cuello_r: 0.24,
924            cabeza: 0.30,
925            craneo: [1.02, 0.96, 0.96],
926            hocico: 0.45,
927            hocico_r: 0.50,
928            oreja: Oreja::Redonda,
929            oreja_tam: 1.3,
930            cola: Cola::Muñon,
931            ojo: 0.13,
932            ojo_lateral: 0.25,
933            pinta: Pinta::pelo(0xF2EFE8)
934                .detalle(0x24222A)
935                .extra(0x24222A)
936                .patron(Patron::Antifaz, 0x24222A),
937            ..Default::default()
938        }),
939        Bicho::Mapache => Receta::Cuatro(Cuadrupedo {
940            largo: 1.10,
941            pata: 0.36,
942            pata_r: 0.06,
943            cuerpo_r: 0.26,
944            cuello: 0.06,
945            cuello_r: 0.16,
946            cabeza: 0.25,
947            craneo: [0.98, 0.90, 1.02],
948            hocico: 0.95,
949            hocico_r: 0.36,
950            oreja: Oreja::Redonda,
951            oreja_tam: 1.1,
952            cola: Cola::Tupida,
953            cola_len: 0.8,
954            ojo_lateral: 0.3,
955            pinta: Pinta::pelo(0x8E8A88)
956                .vientre(0xC8C4BE)
957                .detalle(0x33313A)
958                .patron(Patron::Antifaz, 0x33313A),
959            ..Default::default()
960        }),
961        Bicho::Conejo => Receta::Cuatro(Cuadrupedo {
962            largo: 0.95,
963            pata: 0.30,
964            pata_r: 0.070,
965            cuerpo_r: 0.30,
966            lomo: 0.12,
967            cuello: 0.04,
968            cuello_r: 0.18,
969            cabeza: 0.26,
970            craneo: [0.92, 0.92, 1.10],
971            hocico: 0.5,
972            hocico_r: 0.44,
973            oreja: Oreja::Larga,
974            oreja_tam: 1.7,
975            cola: Cola::Muñon,
976            ojo: 0.2,
977            ojo_lateral: 0.7,
978            pinta: Pinta::pelo(0xC9BCAA).vientre(0xF2EDE4).detalle(0xE8DED0),
979            ..Default::default()
980        }),
981        Bicho::Ardilla => Receta::Cuatro(Cuadrupedo {
982            largo: 0.85,
983            pata: 0.28,
984            pata_r: 0.055,
985            cuerpo_r: 0.26,
986            lomo: 0.14,
987            cuello: 0.04,
988            cuello_r: 0.16,
989            cabeza: 0.26,
990            craneo: [0.94, 0.94, 1.02],
991            hocico: 0.6,
992            hocico_r: 0.40,
993            oreja: Oreja::Punta,
994            oreja_tam: 0.9,
995            cola: Cola::Tupida,
996            cola_len: 1.35,
997            ojo: 0.24,
998            ojo_lateral: 0.45,
999            pinta: Pinta::pelo(0xB2622C).vientre(0xEEE4D2).detalle(0x8A4A20),
1000            ..Default::default()
1001        }),
1002        Bicho::Raton => Receta::Cuatro(Cuadrupedo {
1003            largo: 1.0,
1004            pata: 0.26,
1005            pata_r: 0.045,
1006            cuerpo_r: 0.28,
1007            lomo: 0.10,
1008            cuello: 0.03,
1009            cuello_r: 0.16,
1010            cabeza: 0.24,
1011            craneo: [0.88, 0.88, 1.16],
1012            hocico: 1.1,
1013            hocico_r: 0.32,
1014            oreja: Oreja::Redonda,
1015            oreja_tam: 1.6,
1016            cola: Cola::Prensil,
1017            cola_len: 1.2,
1018            ojo: 0.18,
1019            ojo_lateral: 0.6,
1020            pinta: Pinta::pelo(0x9A938C).vientre(0xE4DED4).detalle(0xE0AEB0),
1021            ..Default::default()
1022        }),
1023        Bicho::Erizo => Receta::Cuatro(Cuadrupedo {
1024            largo: 0.95,
1025            pata: 0.22,
1026            pata_r: 0.045,
1027            cuerpo_r: 0.34,
1028            lomo: 0.10,
1029            cuello: 0.02,
1030            cuello_r: 0.16,
1031            cabeza: 0.20,
1032            craneo: [0.86, 0.86, 1.22],
1033            hocico: 1.1,
1034            hocico_r: 0.34,
1035            oreja: Oreja::Redonda,
1036            oreja_tam: 0.7,
1037            cola: Cola::Ninguna,
1038            puas: 1.0,
1039            ojo: 0.17,
1040            ojo_lateral: 0.5,
1041            pinta: Pinta::pelo(0xC8AE8A).vientre(0xE0CFB6).detalle(0x4A3A2C),
1042            ..Default::default()
1043        }),
1044        Bicho::Buho => Receta::Ave(Ave {
1045            cuerpo: [0.34, 0.42, 0.32],
1046            inclina: 0.25,
1047            cuello: 0.04,
1048            cuello_r: 0.20,
1049            cabeza: 0.30,
1050            pico: Pico::Curvo,
1051            pico_len: 0.5,
1052            pico_r: 0.34,
1053            cresta: Cresta::Orejas,
1054            cola: ColaAve::Corta,
1055            pata: 0.10,
1056            ojo: 0.40,
1057            pinta: Pinta::pluma(0x8A7048)
1058                .vientre(0xD8C8A8)
1059                .detalle(0x5A4630)
1060                .extra(0xE8C24A)
1061                .ojo(0xF2C34A),
1062            ..Default::default()
1063        }),
1064
1065        // ---------------- Aves ----------------
1066        Bicho::Pajaro => Receta::Ave(Ave::default()),
1067        Bicho::Gorrion => Receta::Ave(Ave {
1068            pinta: Pinta::pluma(0x8A6A46)
1069                .vientre(0xD8CCBA)
1070                .detalle(0x5A4430)
1071                .extra(0x3A342E),
1072            ..Default::default()
1073        }),
1074        Bicho::Cardenal => Receta::Ave(Ave {
1075            cuerpo: [0.29, 0.32, 0.40],
1076            cresta: Cresta::Punta,
1077            cola: ColaAve::Larga,
1078            cola_len: 0.65,
1079            pinta: Pinta::pluma(0xD82E2A)
1080                .vientre(0xE85A4A)
1081                .detalle(0x8A1E1C)
1082                .extra(0xE8A030),
1083            ..Default::default()
1084        }),
1085        Bicho::Cuervo => Receta::Ave(Ave {
1086            cuerpo: [0.30, 0.32, 0.46],
1087            inclina: 1.15,
1088            cuello: 0.12,
1089            cabeza: 0.21,
1090            pico: Pico::Largo,
1091            pico_len: 0.9,
1092            pico_r: 0.34,
1093            cola: ColaAve::Abanico,
1094            pinta: Pinta::pluma(0x24242C).vientre(0x33333C).detalle(0x14141A).extra(0x1A1A20),
1095            ..Default::default()
1096        }),
1097        Bicho::Colibri => Receta::Ave(Ave {
1098            cuerpo: [0.24, 0.26, 0.34],
1099            inclina: 1.0,
1100            cuello: 0.06,
1101            cabeza: 0.18,
1102            pico: Pico::Aguja,
1103            pico_len: 2.4,
1104            pico_r: 0.16,
1105            ala: Ala::Bate,
1106            cola: ColaAve::Corta,
1107            pata: 0.04,
1108            pinta: Pinta::pluma(0x1EA06A)
1109                .vientre(0xE8D8A0)
1110                .detalle(0xD03060)
1111                .extra(0x2A2A30),
1112            ..Default::default()
1113        }),
1114        Bicho::Loro => Receta::Ave(Ave {
1115            cuerpo: [0.28, 0.32, 0.38],
1116            inclina: 0.65,
1117            cuello: 0.08,
1118            cabeza: 0.22,
1119            pico: Pico::Curvo,
1120            pico_len: 0.7,
1121            pico_r: 0.40,
1122            cola: ColaAve::Larga,
1123            cola_len: 0.8,
1124            pata: 0.10,
1125            pinta: Pinta::pluma(0x2EA83E)
1126                .vientre(0xE8D23A)
1127                .detalle(0xD03028)
1128                .extra(0x3A3A42),
1129            ..Default::default()
1130        }),
1131        Bicho::Guacamayo => Receta::Ave(Ave {
1132            cuerpo: [0.30, 0.34, 0.42],
1133            inclina: 0.60,
1134            cuello: 0.08,
1135            cabeza: 0.24,
1136            pico: Pico::Curvo,
1137            pico_len: 0.85,
1138            pico_r: 0.46,
1139            cola: ColaAve::Larga,
1140            cola_len: 1.5,
1141            pata: 0.10,
1142            pinta: Pinta::pluma(0xE02820)
1143                .vientre(0xE8A020)
1144                .detalle(0x1E6ED8)
1145                .extra(0x2A2A30)
1146                .patron(Patron::Rayas, 0x1EA84A),
1147            ..Default::default()
1148        }),
1149        Bicho::Tucan => Receta::Ave(Ave {
1150            cuerpo: [0.28, 0.32, 0.40],
1151            inclina: 0.75,
1152            cuello: 0.08,
1153            cabeza: 0.22,
1154            pico: Pico::Ancho,
1155            pico_len: 2.0,
1156            pico_r: 0.85,
1157            cola: ColaAve::Corta,
1158            pata: 0.12,
1159            pinta: Pinta::pluma(0x1E1C24)
1160                .vientre(0xF2E8C0)
1161                .detalle(0xE8A020)
1162                .extra(0xE8901E),
1163            ..Default::default()
1164        }),
1165        Bicho::Quetzal => Receta::Ave(Ave {
1166            cuerpo: [0.26, 0.30, 0.38],
1167            inclina: 0.55,
1168            cuello: 0.08,
1169            cabeza: 0.20,
1170            pico: Pico::Corto,
1171            cresta: Cresta::Punta,
1172            cola: ColaAve::Larga,
1173            cola_len: 2.0,
1174            pata: 0.09,
1175            pinta: Pinta::pluma(0x1AA07A)
1176                .vientre(0xD02A34)
1177                .detalle(0x148A6A)
1178                .extra(0xE8C040),
1179            ..Default::default()
1180        }),
1181        Bicho::Flamenco => Receta::Ave(Ave {
1182            cuerpo: [0.22, 0.22, 0.30],
1183            inclina: 1.1,
1184            cuello: 0.42,
1185            cuello_s: 0.55,
1186            cuello_r: 0.055,
1187            cabeza: 0.11,
1188            pico: Pico::Curvo,
1189            pico_len: 1.2,
1190            pico_r: 0.5,
1191            pata: 0.55,
1192            pata_r: 0.018,
1193            ojo: 0.28,
1194            pinta: Pinta::pluma(0xF090A8)
1195                .vientre(0xF8C0CC)
1196                .detalle(0xD8607E)
1197                .extra(0x2A2A32),
1198            ..Default::default()
1199        }),
1200        Bicho::Garza => Receta::Ave(Ave {
1201            cuerpo: [0.20, 0.22, 0.32],
1202            inclina: 1.15,
1203            cuello: 0.40,
1204            cuello_s: 0.40,
1205            cuello_r: 0.05,
1206            cabeza: 0.11,
1207            pico: Pico::Largo,
1208            pico_len: 2.2,
1209            pico_r: 0.24,
1210            cresta: Cresta::Punta,
1211            pata: 0.48,
1212            pata_r: 0.017,
1213            pinta: Pinta::pluma(0xE8E8E2).vientre(0xF2F2EE).detalle(0xC6C6C0).extra(0xE8C020),
1214            ..Default::default()
1215        }),
1216        Bicho::Cisne => Receta::Ave(Ave {
1217            cuerpo: [0.32, 0.28, 0.44],
1218            inclina: 1.25,
1219            cuello: 0.46,
1220            cuello_s: 0.75,
1221            cuello_r: 0.065,
1222            cabeza: 0.13,
1223            pico: Pico::Pala,
1224            pico_len: 0.9,
1225            pata: 0.08,
1226            pinta: Pinta::pluma(0xF6F4EE).vientre(0xFFFFFA).detalle(0xDCD8D0).extra(0xE86A20),
1227            ..Default::default()
1228        }),
1229        Bicho::Pelicano => Receta::Ave(Ave {
1230            cuerpo: [0.32, 0.32, 0.46],
1231            inclina: 1.05,
1232            cuello: 0.22,
1233            cuello_s: 0.3,
1234            cabeza: 0.17,
1235            pico: Pico::Ancho,
1236            pico_len: 2.4,
1237            pico_r: 0.7,
1238            pata: 0.12,
1239            pinta: Pinta::pluma(0xE4E2DA).vientre(0xF2F0EA).detalle(0xB8B4AC).extra(0xE8B040),
1240            ..Default::default()
1241        }),
1242        Bicho::Aguila => Receta::Ave(Ave {
1243            cuerpo: [0.32, 0.38, 0.44],
1244            inclina: 0.5,
1245            cuello: 0.10,
1246            cabeza: 0.22,
1247            pico: Pico::Curvo,
1248            pico_len: 0.8,
1249            pico_r: 0.42,
1250            ala: Ala::Abierta,
1251            cola: ColaAve::Abanico,
1252            cola_len: 0.6,
1253            pata: 0.14,
1254            pinta: Pinta::pluma(0x5A4030)
1255                .vientre(0x8A6848)
1256                .detalle(0xF0EDE4)
1257                .extra(0xE8B830)
1258                .ojo(0xE8C040),
1259            ..Default::default()
1260        }),
1261        Bicho::Condor => Receta::Ave(Ave {
1262            cuerpo: [0.36, 0.40, 0.46],
1263            inclina: 0.45,
1264            cuello: 0.14,
1265            cuello_r: 0.10,
1266            cabeza: 0.20,
1267            pico: Pico::Curvo,
1268            pico_len: 0.85,
1269            pico_r: 0.44,
1270            ala: Ala::Abierta,
1271            cola: ColaAve::Abanico,
1272            pata: 0.13,
1273            pinta: Pinta::pluma(0x24242A)
1274                .vientre(0x33333A)
1275                .detalle(0xF0EEE8)
1276                .extra(0xD8B08A),
1277            ..Default::default()
1278        }),
1279        Bicho::PavoReal => Receta::Ave(Ave {
1280            cuerpo: [0.28, 0.32, 0.38],
1281            inclina: 0.7,
1282            cuello: 0.26,
1283            cuello_r: 0.09,
1284            cabeza: 0.15,
1285            pico: Pico::Corto,
1286            cresta: Cresta::Penacho,
1287            cola: ColaAve::Rueda,
1288            cola_len: 1.6,
1289            pata: 0.22,
1290            pinta: Pinta::pluma(0x1A6AA8)
1291                .vientre(0x2A8AC0)
1292                .detalle(0x1E8A6A)
1293                .extra(0x3A3A42)
1294                .patron(Patron::Lunares, 0xE8C040),
1295            ..Default::default()
1296        }),
1297        Bicho::Avestruz => Receta::Ave(Ave {
1298            cuerpo: [0.34, 0.34, 0.42],
1299            inclina: 1.0,
1300            cuello: 0.50,
1301            cuello_s: 0.2,
1302            cuello_r: 0.07,
1303            cabeza: 0.12,
1304            pico: Pico::Corto,
1305            cola: ColaAve::Corta,
1306            pata: 0.52,
1307            pata_r: 0.035,
1308            pinta: Pinta::pluma(0x33313A).vientre(0xE8E4DA).detalle(0xF2EFE8).extra(0xD8A8A0),
1309            ..Default::default()
1310        }),
1311        Bicho::Martin => Receta::Ave(Ave {
1312            cuerpo: [0.28, 0.30, 0.36],
1313            inclina: 0.85,
1314            cuello: 0.06,
1315            cabeza: 0.22,
1316            pico: Pico::Largo,
1317            pico_len: 1.8,
1318            pico_r: 0.24,
1319            cresta: Cresta::Punta,
1320            cola: ColaAve::Corta,
1321            pata: 0.07,
1322            pinta: Pinta::pluma(0x1E7AC8)
1323                .vientre(0xE07A30)
1324                .detalle(0x145A9A)
1325                .extra(0x2A2A32),
1326            ..Default::default()
1327        }),
1328        Bicho::Pinguino => Receta::Ave(Ave {
1329            cuerpo: [0.30, 0.46, 0.30],
1330            inclina: 0.10,
1331            cuello: 0.04,
1332            cuello_r: 0.18,
1333            cabeza: 0.22,
1334            pico: Pico::Corto,
1335            pico_len: 1.0,
1336            ala: Ala::Aleta,
1337            cola: ColaAve::Corta,
1338            cola_len: 0.3,
1339            pata: 0.07,
1340            pinta: Pinta::pluma(0x2A2A34).vientre(0xF2F0EA).detalle(0x1A1A22).extra(0xE8A030),
1341            ..Default::default()
1342        }),
1343
1344        // ---------------- Selva / sabana ----------------
1345        Bicho::Mono => Receta::Cuatro(Cuadrupedo {
1346            largo: 0.85,
1347            pata: 0.45,
1348            pata_r: 0.055,
1349            cuerpo_r: 0.24,
1350            lomo: 0.08,
1351            cuello: 0.08,
1352            cuello_ang: 0.9,
1353            cuello_r: 0.14,
1354            cabeza: 0.26,
1355            craneo: [0.96, 0.96, 0.94],
1356            hocico: 0.45,
1357            hocico_r: 0.5,
1358            oreja: Oreja::Redonda,
1359            oreja_tam: 1.2,
1360            cola: Cola::Prensil,
1361            cola_len: 1.5,
1362            ojo: 0.17,
1363            ojo_lateral: 0.2,
1364            pinta: Pinta::pelo(0x8A6440).vientre(0xD8C0A0).detalle(0xE0BCA0).con_esclera(),
1365            ..Default::default()
1366        }),
1367        Bicho::Perezoso => Receta::Cuatro(Cuadrupedo {
1368            largo: 0.95,
1369            pata: 0.50,
1370            pata_r: 0.062,
1371            cuerpo_r: 0.27,
1372            lomo: -0.06,
1373            cuello: 0.06,
1374            cuello_ang: 0.7,
1375            cuello_r: 0.16,
1376            cabeza: 0.25,
1377            craneo: [0.98, 0.94, 0.92],
1378            hocico: 0.4,
1379            hocico_r: 0.46,
1380            oreja: Oreja::Ninguna,
1381            cola: Cola::Ninguna,
1382            ojo: 0.16,
1383            ojo_lateral: 0.25,
1384            pinta: Pinta::pelo(0x9A8A70)
1385                .vientre(0xC8BCA0)
1386                .detalle(0x6A5C48)
1387                .patron(Patron::Antifaz, 0x6A5C48),
1388            ..Default::default()
1389        }),
1390        Bicho::Tigre => Receta::Cuatro(Cuadrupedo {
1391            largo: 1.30,
1392            pata: 0.46,
1393            pata_r: 0.078,
1394            cuerpo_r: 0.26,
1395            pecho: 1.12,
1396            lomo: 0.04,
1397            cuello: 0.10,
1398            cuello_ang: 0.30,
1399            cuello_r: 0.19,
1400            cabeza: 0.26,
1401            craneo: [1.0, 0.94, 1.0],
1402            hocico: 0.5,
1403            hocico_r: 0.54,
1404            oreja: Oreja::Redonda,
1405            cola: Cola::Gruesa,
1406            cola_len: 1.0,
1407            ojo: 0.17,
1408            ojo_lateral: 0.28,
1409            pinta: Pinta::pelo(0xE0801E)
1410                .vientre(0xF2EDE2)
1411                .detalle(0x22201E)
1412                .ojo(0xC8A020)
1413                .patron(Patron::Rayas, 0x22201E),
1414            ..Default::default()
1415        }),
1416        Bicho::Jaguar => Receta::Cuatro(Cuadrupedo {
1417            largo: 1.25,
1418            pata: 0.44,
1419            pata_r: 0.080,
1420            cuerpo_r: 0.27,
1421            pecho: 1.14,
1422            cuello: 0.08,
1423            cuello_ang: 0.28,
1424            cuello_r: 0.20,
1425            cabeza: 0.27,
1426            craneo: [1.02, 0.94, 0.96],
1427            hocico: 0.45,
1428            hocico_r: 0.56,
1429            oreja: Oreja::Redonda,
1430            cola: Cola::Gruesa,
1431            cola_len: 0.9,
1432            ojo: 0.17,
1433            ojo_lateral: 0.28,
1434            pinta: Pinta::pelo(0xD8A840)
1435                .vientre(0xF0E6CE)
1436                .ojo(0x3A7A2A)
1437                .patron(Patron::Manchas, 0x2A2620),
1438            ..Default::default()
1439        }),
1440        Bicho::Leon => Receta::Cuatro(Cuadrupedo {
1441            largo: 1.28,
1442            pata: 0.48,
1443            pata_r: 0.078,
1444            cuerpo_r: 0.26,
1445            pecho: 1.10,
1446            cuello: 0.10,
1447            cuello_ang: 0.30,
1448            cuello_r: 0.19,
1449            cabeza: 0.25,
1450            craneo: [1.0, 0.94, 1.0],
1451            hocico: 0.5,
1452            hocico_r: 0.52,
1453            oreja: Oreja::Redonda,
1454            cola: Cola::Penacho,
1455            cola_len: 0.95,
1456            melena: 1.0,
1457            ojo: 0.16,
1458            ojo_lateral: 0.28,
1459            pinta: Pinta::pelo(0xD8AA62).vientre(0xEEE0C4).detalle(0x8A5A28).ojo(0xB08820),
1460            ..Default::default()
1461        }),
1462        Bicho::Cebra => Receta::Cuatro(Cuadrupedo {
1463            largo: 1.20,
1464            pata: 0.56,
1465            pata_r: 0.060,
1466            cuerpo_r: 0.26,
1467            pecho: 1.08,
1468            cuello: 0.36,
1469            cuello_ang: 0.85,
1470            cuello_r: 0.15,
1471            cabeza: 0.22,
1472            craneo: [0.80, 0.92, 1.28],
1473            hocico: 1.05,
1474            hocico_r: 0.55,
1475            oreja: Oreja::Punta,
1476            oreja_tam: 0.9,
1477            cola: Cola::Crin,
1478            cola_len: 0.8,
1479            melena: 0.7,
1480            ojo_lateral: 0.85,
1481            pinta: Pinta::pelo(0xF2EFE8)
1482                .vientre(0xFFFFFA)
1483                .detalle(0x24222A)
1484                .extra(0x33313A)
1485                .patron(Patron::Rayas, 0x24222A),
1486            ..Default::default()
1487        }),
1488        Bicho::Jirafa => Receta::Cuatro(Cuadrupedo {
1489            largo: 1.05,
1490            pata: 0.62,
1491            pata_r: 0.052,
1492            cuerpo_r: 0.24,
1493            pecho: 1.10,
1494            grupa: 0.88,
1495            cuello: 1.55,
1496            cuello_ang: 1.18,
1497            cuello_r: 0.115,
1498            cabeza: 0.17,
1499            craneo: [0.82, 0.90, 1.22],
1500            hocico: 0.9,
1501            hocico_r: 0.5,
1502            oreja: Oreja::Punta,
1503            oreja_tam: 1.0,
1504            cuerno: Cuerno::Cortos,
1505            cola: Cola::Penacho,
1506            cola_len: 0.85,
1507            melena: 0.5,
1508            ojo: 0.22,
1509            ojo_lateral: 0.85,
1510            pinta: Pinta::pelo(0xE0B060)
1511                .vientre(0xF2E4C4)
1512                .detalle(0x8A5A24)
1513                .patron(Patron::Manchas, 0x9A6428),
1514            ..Default::default()
1515        }),
1516        Bicho::Elefante => Receta::Cuatro(Cuadrupedo {
1517            largo: 1.25,
1518            pata: 0.50,
1519            pata_r: 0.135,
1520            cuerpo_r: 0.42,
1521            pecho: 1.02,
1522            grupa: 1.02,
1523            lomo: 0.05,
1524            cuello: 0.05,
1525            cuello_ang: 0.2,
1526            cuello_r: 0.28,
1527            cabeza: 0.30,
1528            craneo: [0.94, 0.96, 0.90],
1529            hocico: 0.0,
1530            hocico_r: 0.5,
1531            oreja: Oreja::Abanico,
1532            oreja_tam: 1.5,
1533            cuerno: Cuerno::Colmillos,
1534            cola: Cola::Penacho,
1535            cola_len: 0.55,
1536            trompa: 3.0,
1537            ojo: 0.13,
1538            ojo_lateral: 0.7,
1539            pinta: Pinta::pelo(0x9A9690).vientre(0xB4B0A8).detalle(0x6E6A66).extra(0xF0EAD8),
1540            ..Default::default()
1541        }),
1542        Bicho::Hipopotamo => Receta::Cuatro(Cuadrupedo {
1543            largo: 1.45,
1544            pata: 0.34,
1545            pata_r: 0.115,
1546            cuerpo_r: 0.42,
1547            pecho: 1.0,
1548            grupa: 1.02,
1549            cuello: 0.02,
1550            cuello_r: 0.30,
1551            cabeza: 0.30,
1552            craneo: [1.0, 0.82, 1.20],
1553            hocico: 0.85,
1554            hocico_r: 0.90,
1555            oreja: Oreja::Redonda,
1556            oreja_tam: 0.7,
1557            cola: Cola::Muñon,
1558            ojo: 0.12,
1559            ojo_lateral: 0.9,
1560            pinta: Pinta::pelo(0x9A7E86).vientre(0xC0A0A4).detalle(0x6E565E),
1561            ..Default::default()
1562        }),
1563        Bicho::Rinoceronte => Receta::Cuatro(Cuadrupedo {
1564            largo: 1.40,
1565            pata: 0.40,
1566            pata_r: 0.115,
1567            cuerpo_r: 0.38,
1568            pecho: 1.05,
1569            lomo: 0.05,
1570            cuello: 0.05,
1571            cuello_ang: 0.15,
1572            cuello_r: 0.28,
1573            cabeza: 0.26,
1574            craneo: [0.90, 0.86, 1.24],
1575            hocico: 1.0,
1576            hocico_r: 0.70,
1577            oreja: Oreja::Punta,
1578            oreja_tam: 0.8,
1579            cuerno: Cuerno::Nasal,
1580            cola: Cola::Penacho,
1581            cola_len: 0.5,
1582            ojo: 0.11,
1583            ojo_lateral: 0.9,
1584            pinta: Pinta::pelo(0x8E8A86).vientre(0xA6A29A).detalle(0x66625E).extra(0xE0DACA),
1585            ..Default::default()
1586        }),
1587        Bicho::Capibara => Receta::Cuatro(Cuadrupedo {
1588            largo: 1.20,
1589            pata: 0.36,
1590            pata_r: 0.070,
1591            cuerpo_r: 0.32,
1592            cuello: 0.04,
1593            cuello_r: 0.22,
1594            cabeza: 0.24,
1595            craneo: [0.92, 0.86, 1.18],
1596            hocico: 0.9,
1597            hocico_r: 0.62,
1598            oreja: Oreja::Redonda,
1599            oreja_tam: 0.7,
1600            cola: Cola::Ninguna,
1601            ojo: 0.14,
1602            ojo_lateral: 0.75,
1603            pinta: Pinta::pelo(0x9A7042).vientre(0xC8A276).detalle(0x6A4A28),
1604            ..Default::default()
1605        }),
1606        Bicho::Koala => Receta::Cuatro(Cuadrupedo {
1607            largo: 0.85,
1608            pata: 0.34,
1609            pata_r: 0.075,
1610            cuerpo_r: 0.30,
1611            lomo: 0.10,
1612            cuello: 0.03,
1613            cuello_r: 0.20,
1614            cabeza: 0.30,
1615            craneo: [1.02, 0.96, 0.92],
1616            hocico: 0.55,
1617            hocico_r: 0.42,
1618            oreja: Oreja::Redonda,
1619            oreja_tam: 1.7,
1620            cola: Cola::Ninguna,
1621            lana: 0.4,
1622            ojo: 0.15,
1623            ojo_lateral: 0.35,
1624            pinta: Pinta::pelo(0x9EA0A4).vientre(0xE0E2E2).detalle(0x3A3A40),
1625            ..Default::default()
1626        }),
1627        Bicho::Canguro => Receta::Cuatro(Cuadrupedo {
1628            largo: 0.80,
1629            pata: 0.52,
1630            pata_r: 0.075,
1631            cuerpo_r: 0.26,
1632            pecho: 0.82,
1633            grupa: 1.15,
1634            lomo: 0.05,
1635            cuello: 0.16,
1636            cuello_ang: 1.2,
1637            cuello_r: 0.13,
1638            cabeza: 0.22,
1639            craneo: [0.84, 0.90, 1.18],
1640            hocico: 0.9,
1641            hocico_r: 0.42,
1642            oreja: Oreja::Larga,
1643            oreja_tam: 1.3,
1644            cola: Cola::Gruesa,
1645            cola_len: 1.5,
1646            ojo: 0.18,
1647            ojo_lateral: 0.5,
1648            bipedo: true,
1649            pinta: Pinta::pelo(0xA8825E).vientre(0xD8C4A6).detalle(0x6A5238),
1650            ..Default::default()
1651        }),
1652        Bicho::Llama => Receta::Cuatro(Cuadrupedo {
1653            largo: 1.0,
1654            pata: 0.55,
1655            pata_r: 0.052,
1656            cuerpo_r: 0.26,
1657            cuello: 0.62,
1658            cuello_ang: 1.25,
1659            cuello_r: 0.11,
1660            cabeza: 0.18,
1661            craneo: [0.82, 0.90, 1.16],
1662            hocico: 0.9,
1663            hocico_r: 0.46,
1664            oreja: Oreja::Larga,
1665            oreja_tam: 1.0,
1666            cola: Cola::Muñon,
1667            lana: 0.7,
1668            ojo: 0.22,
1669            ojo_lateral: 0.8,
1670            pinta: Pinta::pelo(0xE0D2B8).vientre(0xF2EADA).detalle(0x8A7458),
1671            ..Default::default()
1672        }),
1673        Bicho::Camello => Receta::Cuatro(Cuadrupedo {
1674            largo: 1.20,
1675            pata: 0.58,
1676            pata_r: 0.062,
1677            cuerpo_r: 0.28,
1678            cuello: 0.55,
1679            cuello_ang: 1.05,
1680            cuello_r: 0.13,
1681            cabeza: 0.19,
1682            craneo: [0.82, 0.92, 1.20],
1683            hocico: 1.0,
1684            hocico_r: 0.5,
1685            oreja: Oreja::Redonda,
1686            oreja_tam: 0.6,
1687            cola: Cola::Penacho,
1688            cola_len: 0.6,
1689            jorobas: 2,
1690            joroba_alto: 0.20,
1691            ojo: 0.20,
1692            ojo_lateral: 0.8,
1693            pinta: Pinta::pelo(0xCFA870).vientre(0xE4CCA0).detalle(0x9A7A48),
1694            ..Default::default()
1695        }),
1696        Bicho::Foca => Receta::Cuatro(Cuadrupedo {
1697            largo: 1.55,
1698            pata: 0.18,
1699            pata_r: 0.09,
1700            cuerpo_r: 0.36,
1701            pecho: 1.05,
1702            grupa: 0.72,
1703            cuello: 0.10,
1704            cuello_ang: 0.9,
1705            cuello_r: 0.24,
1706            cabeza: 0.25,
1707            craneo: [0.94, 0.92, 1.06],
1708            hocico: 0.6,
1709            hocico_r: 0.5,
1710            oreja: Oreja::Ninguna,
1711            cola: Cola::Muñon,
1712            ojo: 0.24,
1713            ojo_lateral: 0.3,
1714            pinta: Pinta::pelo(0x8E9298).vientre(0xC8CCD0).detalle(0x5A5E66),
1715            ..Default::default()
1716        }),
1717
1718        // ---------------- Reptantes ----------------
1719        Bicho::Serpiente => Receta::Reptante(Reptante::default()),
1720        Bicho::Boa => Receta::Reptante(Reptante {
1721            largo: 7.0,
1722            grosor: 0.75,
1723            ondas: 1.3,
1724            amplitud: 1.3,
1725            cabeza: 0.85,
1726            pinta: Pinta::pelo(0xB09660)
1727                .vientre(0xE0D0A8)
1728                .patron(Patron::Rombos, 0x6A4A28),
1729            ..Default::default()
1730        }),
1731        Bicho::Cobra => Receta::Reptante(Reptante {
1732            largo: 6.5,
1733            grosor: 0.55,
1734            ondas: 1.2,
1735            amplitud: 0.9,
1736            capucha: 1.3,
1737            alza: 0.95,
1738            cabeza: 0.8,
1739            pinta: Pinta::pelo(0x6A6A50)
1740                .vientre(0xD8CFA8)
1741                .patron(Patron::Anillos, 0x2E2A22),
1742            ..Default::default()
1743        }),
1744        Bicho::Lagarto => Receta::Reptante(Reptante {
1745            largo: 4.0,
1746            grosor: 0.45,
1747            ondas: 0.9,
1748            amplitud: 0.6,
1749            patas: 4,
1750            pata: 0.55,
1751            cabeza: 0.75,
1752            hocico: 1.4,
1753            pinta: Pinta::pelo(0x6E8A3E).vientre(0xC8CE8A).detalle(0x4A6A28),
1754            ..Default::default()
1755        }),
1756        Bicho::Iguana => Receta::Reptante(Reptante {
1757            largo: 4.5,
1758            grosor: 0.55,
1759            ondas: 0.8,
1760            amplitud: 0.5,
1761            patas: 4,
1762            pata: 0.6,
1763            cresta: 1.0,
1764            alza: 0.2,
1765            cabeza: 0.8,
1766            hocico: 1.3,
1767            pinta: Pinta::pelo(0x4E8A5E)
1768                .vientre(0xB8D08A)
1769                .detalle(0x2E6A3E)
1770                .patron(Patron::Anillos, 0x2A4A2A),
1771            ..Default::default()
1772        }),
1773        Bicho::Camaleon => Receta::Reptante(Reptante {
1774            largo: 3.2,
1775            grosor: 0.62,
1776            ondas: 0.5,
1777            amplitud: 0.25,
1778            patas: 4,
1779            pata: 0.55,
1780            cresta: 0.5,
1781            cabeza: 1.0,
1782            hocico: 0.7,
1783            ojo: 0.34,
1784            pinta: Pinta::pelo(0x3EA06A)
1785                .vientre(0xD8D060)
1786                .detalle(0x2A7A4A)
1787                .patron(Patron::Rayas, 0xE0C040),
1788            ..Default::default()
1789        }),
1790        Bicho::Cocodrilo => Receta::Reptante(Reptante {
1791            largo: 6.5,
1792            grosor: 0.62,
1793            ondas: 0.6,
1794            amplitud: 0.45,
1795            patas: 4,
1796            pata: 0.42,
1797            cresta: 0.7,
1798            cabeza: 0.85,
1799            hocico: 3.0,
1800            lengua: false,
1801            ojo: 0.2,
1802            pinta: Pinta::pelo(0x4A5E3A).vientre(0xC0C088).detalle(0x2E3E24),
1803            ..Default::default()
1804        }),
1805        Bicho::Salamandra => Receta::Reptante(Reptante {
1806            largo: 3.6,
1807            grosor: 0.42,
1808            ondas: 1.1,
1809            amplitud: 0.8,
1810            patas: 4,
1811            pata: 0.4,
1812            cabeza: 0.8,
1813            hocico: 0.9,
1814            lengua: false,
1815            pinta: Pinta::pelo(0x22222A)
1816                .vientre(0x3A3A44)
1817                .patron(Patron::Manchas, 0xE8C020),
1818            ..Default::default()
1819        }),
1820        Bicho::Tortuga => Receta::Reptante(Reptante {
1821            largo: 2.2,
1822            grosor: 0.5,
1823            ondas: 0.0,
1824            amplitud: 0.0,
1825            patas: 4,
1826            pata: 0.45,
1827            abertura: 1.1,
1828            caparazon: 1.0,
1829            cabeza: 0.6,
1830            hocico: 0.9,
1831            lengua: false,
1832            ojo: 0.22,
1833            pinta: Pinta::pelo(0x6A8A4A)
1834                .vientre(0xC8B878)
1835                .detalle(0x4A5E2E)
1836                .patron(Patron::Manchas, 0x8A6A28),
1837            ..Default::default()
1838        }),
1839        Bicho::Rana => Receta::Reptante(Reptante {
1840            largo: 1.5,
1841            grosor: 0.9,
1842            ondas: 0.0,
1843            amplitud: 0.0,
1844            patas: 4,
1845            pata: 0.5,
1846            abertura: 1.2,
1847            anfibio: true,
1848            cabeza: 0.9,
1849            hocico: 0.5,
1850            lengua: false,
1851            ojo: 0.42,
1852            pinta: Pinta::pelo(0x5EA83E)
1853                .vientre(0xE0E8A0)
1854                .detalle(0x3A7A28)
1855                .patron(Patron::Manchas, 0x2E5A20),
1856            ..Default::default()
1857        }),
1858
1859        // ---------------- Agua ----------------
1860        Bicho::Pez => Receta::Nadador(Nadador::default()),
1861        Bicho::Delfin => Receta::Nadador(Nadador {
1862            cuerpo: [0.24, 0.30, 0.90],
1863            caudal_vertical: false,
1864            caudal: 0.42,
1865            dorsal: 0.30,
1866            pectoral: 0.28,
1867            hocico: 0.45,
1868            ojo: 0.09,
1869            pinta: Pinta::pelo(0x6A7E92).vientre(0xE4E8EE).detalle(0x4A5A6E),
1870            ..Default::default()
1871        }),
1872        Bicho::Ballena => Receta::Nadador(Nadador {
1873            cuerpo: [0.36, 0.42, 1.10],
1874            caudal_vertical: false,
1875            caudal: 0.55,
1876            dorsal: 0.14,
1877            pectoral: 0.34,
1878            hocico: 0.15,
1879            ojo: 0.06,
1880            pinta: Pinta::pelo(0x46586E).vientre(0xC8D2DC).detalle(0x32404E),
1881            ..Default::default()
1882        }),
1883        Bicho::Tiburon => Receta::Nadador(Nadador {
1884            cuerpo: [0.26, 0.32, 0.95],
1885            caudal_vertical: true,
1886            caudal: 0.5,
1887            dorsal: 0.45,
1888            pectoral: 0.34,
1889            hocico: 0.35,
1890            boca: 1.0,
1891            ojo: 0.07,
1892            pinta: Pinta::pelo(0x6E7A82).vientre(0xE0E4E4).detalle(0x4E5A62),
1893            ..Default::default()
1894        }),
1895        Bicho::Pulpo => Receta::Nadador(Nadador {
1896            cuerpo: [0.42, 0.48, 0.44],
1897            caudal: 0.0,
1898            dorsal: 0.0,
1899            pectoral: 0.0,
1900            tentaculos: 8,
1901            tentaculo_len: 1.3,
1902            ojo: 0.20,
1903            pinta: Pinta::pelo(0xC85A6A).vientre(0xE89A9A).detalle(0x9A3A50).con_esclera(),
1904            ..Default::default()
1905        }),
1906
1907        // ---------------- Artrópodos y afines ----------------
1908        Bicho::Mariposa => Receta::Insecto(Insecto {
1909            segmentos: [0.22, 0.26, 0.30],
1910            largo: 0.9,
1911            patas: 6,
1912            pata: 0.22,
1913            alas: AlaBicho::Mariposa,
1914            ala_len: 1.6,
1915            antenas: 0.6,
1916            pinta: Pinta::pelo(0x2A2630)
1917                .detalle(0xE8802A)
1918                .extra(0xF0D040)
1919                .patron(Patron::Lunares, 0xF2EEE6),
1920            ..Default::default()
1921        }),
1922        Bicho::Abeja => Receta::Insecto(Insecto {
1923            segmentos: [0.26, 0.32, 0.36],
1924            largo: 0.8,
1925            patas: 6,
1926            pata: 0.25,
1927            alas: AlaBicho::Membrana,
1928            ala_len: 0.9,
1929            antenas: 0.35,
1930            pinta: Pinta::pelo(0xE8B820)
1931                .detalle(0x2A2620)
1932                .extra(0xE8ECF2)
1933                .patron(Patron::Rayas, 0x2A2620),
1934            ..Default::default()
1935        }),
1936        Bicho::Libelula => Receta::Insecto(Insecto {
1937            segmentos: [0.24, 0.26, 0.16],
1938            largo: 1.6,
1939            patas: 6,
1940            pata: 0.2,
1941            alas: AlaBicho::Membrana,
1942            ala_len: 1.5,
1943            antenas: 0.15,
1944            ojo: 0.34,
1945            pinta: Pinta::pelo(0x2A8AA8).detalle(0x1E6A88).extra(0xD8ECF2),
1946            ..Default::default()
1947        }),
1948        Bicho::Escarabajo => Receta::Insecto(Insecto {
1949            segmentos: [0.28, 0.36, 0.40],
1950            largo: 0.85,
1951            patas: 6,
1952            pata: 0.3,
1953            alas: AlaBicho::Elitros,
1954            ala_len: 0.9,
1955            antenas: 0.3,
1956            pinta: Pinta::pelo(0x2E2A3A)
1957                .detalle(0xC82A2A)
1958                .patron(Patron::Lunares, 0x1A1820),
1959            ..Default::default()
1960        }),
1961        Bicho::Hormiga => Receta::Insecto(Insecto {
1962            segmentos: [0.24, 0.22, 0.30],
1963            largo: 1.0,
1964            patas: 6,
1965            pata: 0.42,
1966            arco: 0.7,
1967            antenas: 0.45,
1968            pinta: Pinta::pelo(0x4A2A20).detalle(0x2E1A14),
1969            ..Default::default()
1970        }),
1971        Bicho::Arana => Receta::Insecto(Insecto {
1972            segmentos: [0.26, 0.34, 0.42],
1973            largo: 0.7,
1974            patas: 8,
1975            pata: 0.85,
1976            arco: 1.1,
1977            antenas: 0.0,
1978            ojo: 0.14,
1979            pinta: Pinta::pelo(0x33303A).detalle(0x1E1C24).extra(0xC82A3A),
1980            ..Default::default()
1981        }),
1982        Bicho::Escorpion => Receta::Insecto(Insecto {
1983            segmentos: [0.22, 0.32, 0.26],
1984            largo: 1.1,
1985            patas: 8,
1986            pata: 0.5,
1987            arco: 0.9,
1988            antenas: 0.0,
1989            pinzas: 1.0,
1990            aguijon: 1.2,
1991            ojo: 0.10,
1992            pinta: Pinta::pelo(0x8A5A2A).detalle(0x5A3818).extra(0x3A2410),
1993            ..Default::default()
1994        }),
1995        Bicho::Cangrejo => Receta::Insecto(Insecto {
1996            segmentos: [0.30, 0.46, 0.20],
1997            largo: 0.5,
1998            patas: 8,
1999            pata: 0.6,
2000            arco: 1.2,
2001            antenas: 0.0,
2002            pinzas: 1.2,
2003            pedunculos: true,
2004            ojo: 0.12,
2005            pinta: Pinta::pelo(0xD84A2A).detalle(0xA83218).extra(0xF0C0A0),
2006            ..Default::default()
2007        }),
2008        Bicho::Caracol => Receta::Insecto(Insecto {
2009            segmentos: [0.20, 0.24, 0.22],
2010            largo: 1.0,
2011            patas: 0,
2012            pata: 0.0,
2013            arco: 0.0,
2014            antenas: 0.0,
2015            concha: 1.0,
2016            pedunculos: true,
2017            ojo: 0.10,
2018            pinta: Pinta::pelo(0xD8C0A0).detalle(0x8A5A30).extra(0xB88A50),
2019            ..Default::default()
2020        }),
2021        Bicho::Luciernaga => Receta::Insecto(Insecto {
2022            segmentos: [0.22, 0.28, 0.34],
2023            largo: 0.8,
2024            patas: 6,
2025            pata: 0.28,
2026            alas: AlaBicho::Elitros,
2027            ala_len: 0.85,
2028            antenas: 0.35,
2029            pinta: Pinta::pelo(0x3A3226).detalle(0x2A2418).extra(0xE8F080),
2030            ..Default::default()
2031        }),
2032    }
2033}
2034
2035/// **Altura típica en metros** de cada bicho (la que usa el catálogo y el mundo para
2036/// que un elefante no mida lo mismo que un conejo). Es la altura del **lomo** en los
2037/// cuadrúpedos y la altura **total** en el resto.
2038pub fn alto_tipico(b: Bicho) -> f32 {
2039    match b {
2040        Bicho::Ballena => 4.0,
2041        Bicho::Jirafa => 4.6,
2042        Bicho::Elefante => 3.0,
2043        Bicho::Avestruz => 2.4,
2044        Bicho::Alce => 2.0,
2045        Bicho::Camello => 1.9,
2046        Bicho::Rinoceronte => 1.7,
2047        Bicho::Caballo | Bicho::Cebra | Bicho::Toro => 1.6,
2048        Bicho::Condor | Bicho::Canguro | Bicho::Llama => 1.5,
2049        Bicho::Vaca | Bicho::Hipopotamo | Bicho::Flamenco => 1.4,
2050        Bicho::Oso | Bicho::Tiburon | Bicho::Garza | Bicho::Cisne => 1.3,
2051        Bicho::PavoReal | Bicho::Delfin => 1.2,
2052        Bicho::Leon | Bicho::Tigre | Bicho::Burro => 1.1,
2053        Bicho::Cocodrilo | Bicho::Aguila | Bicho::Pinguino => 1.0,
2054        Bicho::Ciervo | Bicho::Jaguar | Bicho::Panda | Bicho::Boa => 0.95,
2055        Bicho::Cerdo | Bicho::Cabra | Bicho::Oveja | Bicho::Lobo | Bicho::Foca => 0.85,
2056        Bicho::Perro | Bicho::Capibara | Bicho::Mono | Bicho::Cobra | Bicho::Pulpo => 0.7,
2057        Bicho::Koala | Bicho::Perezoso | Bicho::Zorro | Bicho::Ganso | Bicho::Pelicano => 0.6,
2058        Bicho::Gallo | Bicho::Buho | Bicho::Cuervo | Bicho::Serpiente => 0.5,
2059        Bicho::Gato | Bicho::Gallina | Bicho::Pato | Bicho::Conejo | Bicho::Tortuga => 0.4,
2060        Bicho::Mapache | Bicho::Guacamayo | Bicho::Tucan | Bicho::Loro | Bicho::Iguana => 0.35,
2061        Bicho::Ardilla | Bicho::Erizo | Bicho::Camaleon | Bicho::Lagarto | Bicho::Cardenal => 0.25,
2062        Bicho::Martin | Bicho::Quetzal | Bicho::Salamandra | Bicho::Rana | Bicho::Pez => 0.2,
2063        Bicho::Gorrion | Bicho::Pajaro | Bicho::Raton | Bicho::Cangrejo => 0.15,
2064        Bicho::Colibri | Bicho::Mariposa | Bicho::Escorpion | Bicho::Caracol => 0.1,
2065        Bicho::Escarabajo | Bicho::Arana | Bicho::Libelula => 0.08,
2066        Bicho::Abeja | Bicho::Hormiga | Bicho::Luciernaga => 0.05,
2067    }
2068}