Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. diff --git a/server/server.cpp b/server/server.cpp
  2. index 9c9d501..76ac182 100644
  3. --- a/server/server.cpp
  4. +++ b/server/server.cpp
  5. @@ -76,6 +76,9 @@ static double minFoodDecrementSeconds = 5.0;
  6. static double maxFoodDecrementSeconds = 20;
  7. static int babyBirthFoodDecrement = 10;
  8.  
  9. +static double minFoodDecrementActions = 1.0;
  10. +static double maxFoodDecrementActions = 4.0;
  11. +
  12. // bonus applied to all foods
  13. // makes whole server a bit easier (or harder, if negative)
  14. static int eatBonus = 0;
  15. @@ -257,6 +260,9 @@ typedef struct LiveObject {
  16. // should we send player a food status message
  17. char foodUpdate;
  18.  
  19. + // how tired the player is from using things
  20. + float tiredness;
  21. +
  22. // info about the last thing we ate, for FX food messages sent
  23. // just to player
  24. int lastAteID;
  25. @@ -996,6 +1002,23 @@ double computeFoodDecrementTimeSeconds( LiveObject *inPlayer ) {
  26. return value;
  27. }
  28.  
  29. +double computeFoodDecrementTimeActions( LiveObject *inPlayer ) {
  30. + double value = maxFoodDecrementActions * 2 * inPlayer->heat;
  31. +
  32. + if( value > maxFoodDecrementActions ) {
  33. + // also reduce if too hot (above 0.5 heat)
  34. +
  35. + double extra = value - maxFoodDecrementActions;
  36. +
  37. + value = maxFoodDecrementActions - extra;
  38. + }
  39. +
  40. + // all player temp effects push us up above min
  41. + value += minFoodDecrementActions;
  42. +
  43. + return value;
  44. + }
  45. +
  46.  
  47. double getAgeRate() {
  48. return 1.0 / 60.0;
  49. @@ -2500,6 +2523,12 @@ void processLoggedInPlayer( Socket *inSock,
  50. babyBirthFoodDecrement =
  51. SettingsManager::getIntSetting( "babyBirthFoodDecrement", 10 );
  52.  
  53. + minFoodDecrementActions =
  54. + SettingsManager::getFloatSetting( "minFoodDecrementActions", 1.0f );
  55. +
  56. + maxFoodDecrementActions =
  57. + SettingsManager::getFloatSetting( "maxFoodDecrementActions", 4.0f );
  58. +
  59.  
  60. eatBonus =
  61. SettingsManager::getIntSetting( "eatBonus", 0 );
  62. @@ -2667,6 +2696,9 @@ void processLoggedInPlayer( Socket *inSock,
  63. newObject.foodStore = 2;
  64. }
  65.  
  66. + // start out not tired
  67. + newObject.tiredness = 0;
  68. +
  69. newObject.heat = 0.5;
  70.  
  71. newObject.foodDecrementETASeconds =
  72. @@ -3601,6 +3633,12 @@ int main() {
  73. babyBirthFoodDecrement =
  74. SettingsManager::getIntSetting( "babyBirthFoodDecrement", 10 );
  75.  
  76. + minFoodDecrementActions =
  77. + SettingsManager::getFloatSetting( "minFoodDecrementActions", 1.0f );
  78. +
  79. + maxFoodDecrementActions =
  80. + SettingsManager::getFloatSetting( "maxFoodDecrementActions", 4.0f );
  81. +
  82.  
  83. eatBonus =
  84. SettingsManager::getIntSetting( "eatBonus", 0 );
  85. @@ -5372,6 +5410,12 @@ int main() {
  86. getObject( r->newTarget ),
  87. &playerIndicesToSendUpdatesAbout );
  88. }
  89. + nextPlayer->tiredness += 1.0 / computeFoodDecrementTimeActions( nextPlayer );
  90. + if (nextPlayer->tiredness >= 1) {
  91. + nextPlayer->foodDecrementETASeconds =
  92. + Time::getCurrentTime();
  93. + nextPlayer->tiredness --;
  94. + }
  95. }
  96. else if( nextPlayer->holdingID == 0 &&
  97. ! targetObj->permanent &&
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement