PetConstants.cs
1 namespace GUNRPG.Core.VirtualPet; 2 3 /// <summary> 4 /// Tunable constants for the virtual pet simulation system. 5 /// These values are provisional and should be adjusted based on gameplay testing. 6 /// </summary> 7 public static class PetConstants 8 { 9 /// <summary> 10 /// Maximum value for any stat (0-100 range). 11 /// </summary> 12 public const float MaxStatValue = 100f; 13 14 /// <summary> 15 /// Minimum value for any stat (0-100 range). 16 /// </summary> 17 public const float MinStatValue = 0f; 18 19 // ======================================== 20 // Background Decay Rates (per hour) 21 // ======================================== 22 23 /// <summary> 24 /// Rate at which hunger increases per hour when not eating. 25 /// Provisional value - adjust based on gameplay testing. 26 /// </summary> 27 public const float HungerIncreasePerHour = 5f; 28 29 /// <summary> 30 /// Rate at which hydration decreases per hour when not drinking. 31 /// Provisional value - adjust based on gameplay testing. 32 /// </summary> 33 public const float HydrationDecreasePerHour = 8f; 34 35 /// <summary> 36 /// Rate at which fatigue increases per hour during activity. 37 /// Provisional value - adjust based on gameplay testing. 38 /// </summary> 39 public const float FatigueIncreasePerHour = 10f; 40 41 /// <summary> 42 /// Rate at which stress increases per hour under normal conditions. 43 /// Provisional value - adjust based on gameplay testing. 44 /// </summary> 45 public const float StressIncreasePerHour = 3f; 46 47 // ======================================== 48 // Recovery Rates (per hour) 49 // ======================================== 50 51 /// <summary> 52 /// Rate at which health recovers per hour during rest. 53 /// Provisional value - adjust based on gameplay testing. 54 /// </summary> 55 public const float HealthRecoveryPerHour = 15f; 56 57 /// <summary> 58 /// Rate at which stress decreases per hour during rest/relaxation. 59 /// Provisional value - adjust based on gameplay testing. 60 /// </summary> 61 public const float StressRecoveryPerHour = 12f; 62 63 /// <summary> 64 /// Rate at which fatigue decreases per hour during rest. 65 /// Provisional value - adjust based on gameplay testing. 66 /// </summary> 67 public const float FatigueRecoveryPerHour = 20f; 68 69 // ======================================== 70 // Conditional Decay Thresholds 71 // ======================================== 72 73 /// <summary> 74 /// Stress threshold above which fatigue increases faster. 75 /// Provisional value - adjust based on gameplay testing. 76 /// </summary> 77 public const float HighStressThreshold = 60f; 78 79 /// <summary> 80 /// Injury threshold above which stress increases faster. 81 /// Provisional value - adjust based on gameplay testing. 82 /// </summary> 83 public const float HighInjuryThreshold = 40f; 84 85 /// <summary> 86 /// Stress threshold above which morale starts to decrease. 87 /// Provisional value - adjust based on gameplay testing. 88 /// </summary> 89 public const float MoraleDecayStressThreshold = 50f; 90 91 /// <summary> 92 /// Hunger threshold above which health decay becomes active. 93 /// Provisional value - adjust based on gameplay testing. 94 /// </summary> 95 public const float CriticalHungerThreshold = 80f; 96 97 /// <summary> 98 /// Hydration threshold below which health decay becomes active (dehydration). 99 /// Provisional value - adjust based on gameplay testing. 100 /// </summary> 101 public const float CriticalHydrationThreshold = 20f; 102 103 /// <summary> 104 /// Injury threshold above which health decay becomes active. 105 /// Provisional value - adjust based on gameplay testing. 106 /// </summary> 107 public const float CriticalInjuryThreshold = 60f; 108 109 // ======================================== 110 // Conditional Decay Rates (per hour) 111 // ======================================== 112 113 /// <summary> 114 /// Additional fatigue increase per hour when stress is high. 115 /// Provisional value - adjust based on gameplay testing. 116 /// </summary> 117 public const float FatigueIncreaseHighStress = 5f; 118 119 /// <summary> 120 /// Additional stress increase per hour when injury is high. 121 /// Provisional value - adjust based on gameplay testing. 122 /// </summary> 123 public const float StressIncreaseHighInjury = 4f; 124 125 /// <summary> 126 /// Morale decrease per hour when stress is elevated. 127 /// Provisional value - adjust based on gameplay testing. 128 /// </summary> 129 public const float MoraleDecayPerHour = 2f; 130 131 /// <summary> 132 /// Health decrease per hour when critical conditions are met. 133 /// Provisional value - adjust based on gameplay testing. 134 /// </summary> 135 public const float HealthDecayPerHour = 3f; 136 137 /// <summary> 138 /// Additional morale decrease per hour when health is decaying. 139 /// Provisional value - adjust based on gameplay testing. 140 /// </summary> 141 public const float MoraleDecayDuringHealthDecay = 3f; 142 143 // ======================================== 144 // Recovery Reduction Thresholds 145 // ======================================== 146 147 /// <summary> 148 /// Injury threshold above which health recovery is reduced. 149 /// Provisional value - adjust based on gameplay testing. 150 /// </summary> 151 public const float InjuryRecoveryReductionThreshold = 30f; 152 153 /// <summary> 154 /// Hunger threshold above which stress recovery is reduced. 155 /// Provisional value - adjust based on gameplay testing. 156 /// </summary> 157 public const float HungerStressRecoveryThreshold = 70f; 158 159 /// <summary> 160 /// Hydration threshold below which stress recovery is reduced (dehydration). 161 /// Provisional value - adjust based on gameplay testing. 162 /// </summary> 163 public const float HydrationStressRecoveryThreshold = 30f; 164 165 /// <summary> 166 /// Stress threshold above which fatigue recovery is reduced. 167 /// Provisional value - adjust based on gameplay testing. 168 /// </summary> 169 public const float StressFatigueRecoveryThreshold = 60f; 170 171 /// <summary> 172 /// Minimum recovery multiplier (prevents recovery from being eliminated entirely). 173 /// Value of 0.3 means recovery can be reduced to 30% at most. 174 /// Provisional value - adjust based on gameplay testing. 175 /// </summary> 176 public const float MinRecoveryMultiplier = 0.3f; 177 178 // ======================================== 179 // Mission Impact Constants 180 // ======================================== 181 182 /// <summary> 183 /// Base injury increase per hit taken during a mission. 184 /// Provisional value - adjust based on gameplay testing. 185 /// </summary> 186 public const float InjuryPerHit = 8f; 187 188 /// <summary> 189 /// Stress increase per point of opponent difficulty (0-100 scale). 190 /// Provisional value - adjust based on gameplay testing. 191 /// </summary> 192 public const float StressPerDifficultyPoint = 0.3f; 193 194 /// <summary> 195 /// Fatigue increase for completing any mission. 196 /// Provisional value - adjust based on gameplay testing. 197 /// </summary> 198 public const float MissionFatigueIncrease = 15f; 199 200 /// <summary> 201 /// Morale decrease when stress exceeds this threshold after a mission. 202 /// Provisional value - adjust based on gameplay testing. 203 /// </summary> 204 public const float PostMissionStressThreshold = 70f; 205 206 /// <summary> 207 /// Morale decrease amount when post-mission stress is high. 208 /// Provisional value - adjust based on gameplay testing. 209 /// </summary> 210 public const float PostMissionMoraleDecrease = 5f; 211 212 /// <summary> 213 /// Fatigue threshold above which stress gain is amplified during missions. 214 /// Provisional value - adjust based on gameplay testing. 215 /// </summary> 216 public const float HighFatigueStressAmplificationThreshold = 60f; 217 218 /// <summary> 219 /// Multiplier for stress gain when fatigue is high. 220 /// Value of 1.5 means 50% more stress when fatigued. 221 /// Provisional value - adjust based on gameplay testing. 222 /// </summary> 223 public const float HighFatigueStressMultiplier = 1.5f; 224 }