Initial attempt at boars added. Needs work, lots of work.

This commit is contained in:
Storm Dragon
2026-01-21 07:53:03 -05:00
parent 5c25ba9a19
commit bcc0c7db01
9 changed files with 399 additions and 60 deletions

View File

@@ -32,20 +32,12 @@ const int SLING_DAMAGE_MIN = 5;
const int SLING_DAMAGE_MAX = 8;
const int SLING_RANGE = 8;
// Bow settings (for future implementation)
// Option 1: Longer range, similar damage
// const int BOW_DAMAGE_MIN = 6;
// const int BOW_DAMAGE_MAX = 9;
// const int BOW_RANGE = 12; // 50% more range than sling
//
// Option 2: Much longer range, slightly more damage
// const int BOW_DAMAGE_MIN = 7;
// const int BOW_DAMAGE_MAX = 10;
// const int BOW_RANGE = 15; // Nearly double sling range
//
// Recommendation: Bows should have BOTH more range AND more damage than slings
// to justify the likely higher resource cost and complexity to craft.
// Suggested balance: BOW_RANGE = 12, damage 6-9 (average 7.5 vs sling's 6.5)
// Bow settings
const int BOW_DAMAGE_MIN = 6;
const int BOW_DAMAGE_MAX = 9;
const int BOW_RANGE = 12;
const int ARROWS_PER_CRAFT = 12;
const int ARROW_CAPACITY_PER_QUIVER = 12;
// Zombie settings
const int ZOMBIE_HEALTH = 12;
@@ -60,6 +52,21 @@ const int ZOMBIE_FOOTSTEP_MAX_DISTANCE = 5;
const float ZOMBIE_SOUND_VOLUME_STEP = 3.0;
const int ZOMBIE_ATTACK_MAX_HEIGHT = 6;
// Boar settings
const int BOAR_HEALTH = 4;
const int BOAR_MAX_COUNT = 3;
const int BOAR_MOVE_INTERVAL_MIN = 800;
const int BOAR_MOVE_INTERVAL_MAX = 1500;
const int BOAR_ATTACK_INTERVAL = 1500;
const int BOAR_DAMAGE_MIN = 1;
const int BOAR_DAMAGE_MAX = 3;
const int BOAR_SOUND_MIN_DELAY = 3000;
const int BOAR_SOUND_MAX_DELAY = 6000;
const int BOAR_FOOTSTEP_MAX_DISTANCE = 5;
const float BOAR_SOUND_VOLUME_STEP = 3.0;
const int BOAR_SIGHT_RANGE = 4;
const int BOAR_CHARGE_SPEED = 500; // ms per tile when charging
// Barricade configuration
const int BARRICADE_BASE_HEALTH = 100;
const int BARRICADE_MAX_HEALTH = 500;
@@ -188,10 +195,10 @@ const int WIND_GUST_MIN_DELAY = 30000; // Min 30 seconds between gusts
const int WIND_GUST_MAX_DELAY = 60000; // Max 60 seconds between gusts
const int THUNDER_MIN_INTERVAL = 8000; // Min 8 seconds between thunder
const int THUNDER_MAX_INTERVAL = 35000; // Max 35 seconds between thunder
const int THUNDER_MOVEMENT_SPEED = 2000; // ms per tile movement (slow roll across sky)
const float THUNDER_SOUND_VOLUME_STEP = 2.0; // Gentler volume falloff
const int THUNDER_SPAWN_DISTANCE_MIN = 20; // Min distance from player
const int THUNDER_SPAWN_DISTANCE_MAX = 40; // Max distance from player
const int THUNDER_MOVEMENT_SPEED = 250; // ms per tile movement (faster roll across sky)
const float THUNDER_SOUND_VOLUME_STEP = 0.5; // Gentler volume falloff
const int THUNDER_SPAWN_DISTANCE_MIN = 0; // Min distance from player
const int THUNDER_SPAWN_DISTANCE_MAX = 20; // Max distance from player
const int CHANCE_CLEAR_TO_WINDY = 15;
const int CHANCE_CLEAR_TO_RAINY = 6;
const int CHANCE_CLEAR_TO_STORMY = 5;
@@ -202,3 +209,27 @@ const int CHANCE_RAINY_STAY = 40;
const int CHANCE_RAINY_TO_STORMY = 35;
const int CHANCE_STORMY_STAY = 40;
const int CHANCE_STORMY_TO_RAINY = 35;
// Weather States
const int WEATHER_CLEAR = 0;
const int WEATHER_WINDY = 1;
const int WEATHER_RAINY = 2;
const int WEATHER_STORMY = 3;
// Weather Intensity levels (0 = none, 1-3 = low/medium/high)
const int INTENSITY_NONE = 0;
const int INTENSITY_LOW = 1;
const int INTENSITY_MEDIUM = 2;
const int INTENSITY_HIGH = 3;
const string RAIN_SOUND = "sounds/nature/rain.ogg";
// Environment / Fall Damage
const int SAFE_FALL_HEIGHT = 10;
const int FALL_DAMAGE_MIN = 0;
const int FALL_DAMAGE_MAX = 4;
// Base Automation
const int RESIDENT_SLING_COOLDOWN = 4000; // 4 seconds between shots
const int RESIDENT_COLLECTION_CHANCE = 10; // 10% chance per basket per hour