Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/server/server.cpp b/server/server.cpp
- index 9c9d501..76ac182 100644
- --- a/server/server.cpp
- +++ b/server/server.cpp
- @@ -76,6 +76,9 @@ static double minFoodDecrementSeconds = 5.0;
- static double maxFoodDecrementSeconds = 20;
- static int babyBirthFoodDecrement = 10;
- +static double minFoodDecrementActions = 1.0;
- +static double maxFoodDecrementActions = 4.0;
- +
- // bonus applied to all foods
- // makes whole server a bit easier (or harder, if negative)
- static int eatBonus = 0;
- @@ -257,6 +260,9 @@ typedef struct LiveObject {
- // should we send player a food status message
- char foodUpdate;
- + // how tired the player is from using things
- + float tiredness;
- +
- // info about the last thing we ate, for FX food messages sent
- // just to player
- int lastAteID;
- @@ -996,6 +1002,23 @@ double computeFoodDecrementTimeSeconds( LiveObject *inPlayer ) {
- return value;
- }
- +double computeFoodDecrementTimeActions( LiveObject *inPlayer ) {
- + double value = maxFoodDecrementActions * 2 * inPlayer->heat;
- +
- + if( value > maxFoodDecrementActions ) {
- + // also reduce if too hot (above 0.5 heat)
- +
- + double extra = value - maxFoodDecrementActions;
- +
- + value = maxFoodDecrementActions - extra;
- + }
- +
- + // all player temp effects push us up above min
- + value += minFoodDecrementActions;
- +
- + return value;
- + }
- +
- double getAgeRate() {
- return 1.0 / 60.0;
- @@ -2500,6 +2523,12 @@ void processLoggedInPlayer( Socket *inSock,
- babyBirthFoodDecrement =
- SettingsManager::getIntSetting( "babyBirthFoodDecrement", 10 );
- + minFoodDecrementActions =
- + SettingsManager::getFloatSetting( "minFoodDecrementActions", 1.0f );
- +
- + maxFoodDecrementActions =
- + SettingsManager::getFloatSetting( "maxFoodDecrementActions", 4.0f );
- +
- eatBonus =
- SettingsManager::getIntSetting( "eatBonus", 0 );
- @@ -2667,6 +2696,9 @@ void processLoggedInPlayer( Socket *inSock,
- newObject.foodStore = 2;
- }
- + // start out not tired
- + newObject.tiredness = 0;
- +
- newObject.heat = 0.5;
- newObject.foodDecrementETASeconds =
- @@ -3601,6 +3633,12 @@ int main() {
- babyBirthFoodDecrement =
- SettingsManager::getIntSetting( "babyBirthFoodDecrement", 10 );
- + minFoodDecrementActions =
- + SettingsManager::getFloatSetting( "minFoodDecrementActions", 1.0f );
- +
- + maxFoodDecrementActions =
- + SettingsManager::getFloatSetting( "maxFoodDecrementActions", 4.0f );
- +
- eatBonus =
- SettingsManager::getIntSetting( "eatBonus", 0 );
- @@ -5372,6 +5410,12 @@ int main() {
- getObject( r->newTarget ),
- &playerIndicesToSendUpdatesAbout );
- }
- + nextPlayer->tiredness += 1.0 / computeFoodDecrementTimeActions( nextPlayer );
- + if (nextPlayer->tiredness >= 1) {
- + nextPlayer->foodDecrementETASeconds =
- + Time::getCurrentTime();
- + nextPlayer->tiredness --;
- + }
- }
- else if( nextPlayer->holdingID == 0 &&
- ! targetObj->permanent &&
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement