diff --git a/GameVersion.cpp b/GameVersion.cpp index 557b7e68..abb7b60a 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -55,8 +55,8 @@ #endif -CHAR8 czVersionNumber[16] = { "Build 19.08.24" }; //YY.MM.DD +CHAR8 czVersionNumber[16] = { "Build 20.04.27" }; //YY.MM.DD CHAR16 zTrackingNumber[16] = { L"Z" }; -CHAR16 zRevisionNumber[16] = { L"Revision 8692" }; +CHAR16 zRevisionNumber[16] = { L"Revision 8794" }; // SAVE_GAME_VERSION is defined in header, change it there diff --git a/Strategic/Strategic Movement.cpp b/Strategic/Strategic Movement.cpp index be25cec0..a111d6cc 100644 --- a/Strategic/Strategic Movement.cpp +++ b/Strategic/Strategic Movement.cpp @@ -3549,57 +3549,63 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup /////////////////////////////////////////////////////////////////////////////// // SANDRO - STOMP traits - ranger reduces time needed for travelling around - if ( pGroup->usGroupTeam == OUR_TEAM && !fAir && gGameOptions.fNewTraitSystem ) + if ( pGroup->usGroupTeam == OUR_TEAM && gGameOptions.fNewTraitSystem ) { - // see if we have any ranger here - UINT8 ubSurvivalistHere = 0; - UINT8 ustravelbackground_foot = 0; - UINT8 ustravelbackground_car = 0; - UINT8 ustravelbackground_air = 0; + // see if we have any survivalist here + float fSurvivalistHere = 0; + // background bonuses + INT8 stravelbackground_foot = 20; + INT8 stravelbackground_car = -20; + INT8 stravelbackground_air = -20; curr = pGroup->pPlayerList; while( curr ) { pSoldier = curr->pSoldier; - ubSurvivalistHere += NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT ); + fSurvivalistHere += NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT ); // Flugente: backgrounds - ustravelbackground_foot = max(ustravelbackground_foot, pSoldier->GetBackgroundValue(BG_TRAVEL_FOOT)); - ustravelbackground_car = max(ustravelbackground_car, pSoldier->GetBackgroundValue(BG_TRAVEL_CAR)); - ustravelbackground_air = max(ustravelbackground_air, pSoldier->GetBackgroundValue(BG_TRAVEL_AIR)); + // silversurfer: Why the different calculations and defaults? + // Well, a slow soldier on foot can slow the whole team down, but one fast soldier won't make the whole team quicker. He is no survivalist after all. + // A good driver on the other hand will drive faster and since the team is on the same vehicle, they all will be faster. + // A merc with flight experience can pose as co-pilot and provide some assistance to the pilot, so again the whole team profits. + stravelbackground_foot = min(stravelbackground_foot, pSoldier->GetBackgroundValue(BG_TRAVEL_FOOT)); + stravelbackground_car = max(stravelbackground_car, pSoldier->GetBackgroundValue(BG_TRAVEL_CAR)); + stravelbackground_air = max(stravelbackground_air, pSoldier->GetBackgroundValue(BG_TRAVEL_AIR)); curr = curr->next; } // yes, we have... - if ( ubSurvivalistHere || ustravelbackground_foot || ustravelbackground_car || ustravelbackground_air ) + if ( (fSurvivalistHere && !fAir) || (stravelbackground_foot && fFoot) || (stravelbackground_car && (fCar || fTruck || fTracked)) || (stravelbackground_air && fAir) ) { - // no more than certain number of simultaneous bonuses - ubSurvivalistHere = min( gSkillTraitValues.ubSVMaxBonusesToTravelSpeed, ubSurvivalistHere ); + // no more than certain number of simultaneous bonuses with diminishing returns + fSurvivalistHere = (min(gSkillTraitValues.ubSVMaxBonusesToTravelSpeed, fSurvivalistHere) * 2.5) / (1.0 + min(gSkillTraitValues.ubSVMaxBonusesToTravelSpeed, fSurvivalistHere) * 1.5); // on foot, the bonus should be higher if( fFoot ) { // however, we cannot be quicker than the helicopter - iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (ubSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingFoot)) / 100) ); + iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (fSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingFoot)) / 100) ); - iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ustravelbackground_foot) / 100)); + iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - stravelbackground_foot) / 100)); } // all other types (except air) else if ( fAir ) { // however, we cannot be quicker than the helicopter - iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (ubSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingVehicle)) / 100) ); + // silversurfer: removed because survivalist has nothing to do with flying +// iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (fSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingVehicle)) / 100) ); // yes, this background allows us to fly faster :-) - iBestTraverseTime = max( 9, (iBestTraverseTime * (100 - ustravelbackground_air) / 100)); + iBestTraverseTime = max( 9, (iBestTraverseTime * (100 - stravelbackground_air) / 100)); } else { // however, we cannot be quicker than the helicopter - iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (ubSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingVehicle)) / 100) ); + iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (fSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingVehicle)) / 100) ); - iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ustravelbackground_car) / 100)); + iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - stravelbackground_car) / 100)); } } } diff --git a/Utils/_Ja25DutchText.cpp b/Utils/_Ja25DutchText.cpp index 29c4196f..317c6de0 100644 --- a/Utils/_Ja25DutchText.cpp +++ b/Utils/_Ja25DutchText.cpp @@ -392,8 +392,8 @@ STR16 gzIMPMinorTraitsHelpTextsSnitch[]= STR16 gzIMPMajorTraitsHelpTextsSurvival[] = // TODO.Translate { - L"+%d%s group traveling speed between sectors if traveling by foot\n", - L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n", + L"-%d%s travel time needed between sectors if traveling by foot\n", + L"-%d%s travel time needed between sectors if traveling in vehicle (except helicopter)\n", L"-%d%s less energy spent for travelling between sectors\n", L"-%d%s weather penalties\n", L"-%d%s worn out speed of camouflage by water or time\n", diff --git a/Utils/_Ja25EnglishText.cpp b/Utils/_Ja25EnglishText.cpp index c2e4a0be..6be61db7 100644 --- a/Utils/_Ja25EnglishText.cpp +++ b/Utils/_Ja25EnglishText.cpp @@ -392,8 +392,8 @@ STR16 gzIMPMinorTraitsHelpTextsSnitch[]= STR16 gzIMPMajorTraitsHelpTextsSurvival[] = { - L"+%d%s group traveling speed between sectors if traveling by foot\n", - L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n", + L"-%d%s travel time needed between sectors if traveling by foot\n", + L"-%d%s travel time needed between sectors if traveling in vehicle (except helicopter)\n", L"-%d%s less energy spent for travelling between sectors\n", L"-%d%s weather penalties\n", //L"+%d%s camouflage effectiveness\n", diff --git a/Utils/_Ja25GermanText.cpp b/Utils/_Ja25GermanText.cpp index 068bac16..e8d5398a 100644 --- a/Utils/_Ja25GermanText.cpp +++ b/Utils/_Ja25GermanText.cpp @@ -393,8 +393,8 @@ STR16 gzIMPMinorTraitsHelpTextsSnitch[]= STR16 gzIMPMajorTraitsHelpTextsSurvival[] = { - L"+%d%s Marschgeschwindigkeit der Gruppe zwischen Sektoren zu Fuß\n", - L"+%d%s Marschgeschwindigkeit der Gruppe zwischen Sektoren bei Benutzung von Fahrzeugen (außer dem Helikopter)\n", + L"-%d%s Reisezeit der Gruppe zwischen Sektoren zu Fuß\n", + L"-%d%s Reisezeit der Gruppe zwischen Sektoren bei Benutzung von Fahrzeugen (außer dem Helikopter)\n", L"-%d%s weniger Energieverlust beim Reisen zwischen Sektoren\n", L"-%d%s Einfluss durch schlechtes Wetter\n", //L"+%d%s Tarnungs-Effektivität\n", diff --git a/Utils/_Ja25ItalianText.cpp b/Utils/_Ja25ItalianText.cpp index 2ce19251..227f7e3d 100644 --- a/Utils/_Ja25ItalianText.cpp +++ b/Utils/_Ja25ItalianText.cpp @@ -390,8 +390,8 @@ STR16 gzIMPMinorTraitsHelpTextsSnitch[]= STR16 gzIMPMajorTraitsHelpTextsSurvival[] = // TODO.Translate { - L"+%d%s group traveling speed between sectors if traveling by foot\n", - L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n", + L"-%d%s travel time needed between sectors if traveling by foot\n", + L"-%d%s travel time needed between sectors if traveling in vehicle (except helicopter)\n", L"-%d%s less energy spent for travelling between sectors\n", L"-%d%s weather penalties\n", L"-%d%s worn out speed of camouflage by water or time\n", diff --git a/Utils/_Ja25PolishText.cpp b/Utils/_Ja25PolishText.cpp index 1bf2fc10..ab8de9f7 100644 --- a/Utils/_Ja25PolishText.cpp +++ b/Utils/_Ja25PolishText.cpp @@ -392,8 +392,8 @@ STR16 gzIMPMinorTraitsHelpTextsSnitch[]= STR16 gzIMPMajorTraitsHelpTextsSurvival[] = // TODO.Translate { - L"+%d%s group traveling speed between sectors if traveling by foot\n", - L"+%d%s group traveling speed between sectors if traveling in vehicle (except helicopter)\n", + L"-%d%s travel time needed between sectors if traveling by foot\n", + L"-%d%s travel time needed between sectors if traveling in vehicle (except helicopter)\n", L"-%d%s less energy spent for travelling between sectors\n", L"-%d%s weather penalties\n", L"-%d%s worn out speed of camouflage by water or time\n",