export interface AnimalDefinition { name: string animal: CreatureDefinition monster: CreatureDefinition } export interface CreatureDefinition { sight: number scent: number acceleration: number maxSpeed: number turnRate: number laziness: number // Laziness determines how often the creature wanders each time it decides if it should wander. 1 means it'll never act, 0 means it'll always act. noisiness: number // Noisness determines how likely the creature randomly will make noise. } export const animals: Record = { deer: { name: 'deer', animal: { sight: 100, scent: 50, acceleration: 0.5, maxSpeed: 3, turnRate: 10, laziness: 0.75, noisiness: 0.1, }, monster: { sight: 125, scent: 75, acceleration: 0.75, maxSpeed: 3, turnRate: 10, laziness: 0.75, noisiness: 0.1, } }, nutria: { name: 'nutria', animal: { sight: 50, scent: 50, acceleration: 0.25, maxSpeed: 2, turnRate: 20, laziness: 0.95, noisiness: 0.05, }, monster: { sight: 50, scent: 50, acceleration: 0.25, maxSpeed: 2, turnRate: 20, laziness: 0.95, noisiness: 0.05, }, }, turkey: { name: 'turkey', animal: { sight: 50, scent: 75, acceleration: 0.75, maxSpeed: 2, turnRate: 20, laziness: 0.85, noisiness: 0.2, }, monster: { sight: 75, scent: 75, acceleration: 0.75, maxSpeed: 2, turnRate: 20, laziness: 0.85, noisiness: 0.2, } }, }