/ GUNRPG.Core / VirtualPet / PetConstants.cs
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  }