dded new character trait "Coward" (charrcter trait #13)

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8362 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2017-01-12 23:24:41 +00:00
parent 556ce68586
commit 3419fd1c5d
27 changed files with 86 additions and 91 deletions
+2
View File
@@ -3656,6 +3656,8 @@ void LoadMoraleSettings()
gMoraleSettings.bValues[MORALE_BAD_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_BAD_FOOD", -1, -100, 100);
gMoraleSettings.bValues[MORALE_LOATHSOME_FOOD] = iniReader.ReadInteger("Tactical Morale Settings","MORALE_LOATHSOME_FOOD", -5, -100, 100);
gMoraleSettings.bValues[MORALE_FEAR_OF_HEIGHTS] = iniReader.ReadInteger( "Tactical Morale Settings", "MORALE_FEAR_OF_HEIGHTS", -8, -100, 100 );
gMoraleSettings.bValues[MORALE_RAN_AWAY_COWARD] = iniReader.ReadInteger( "Tactical Morale Settings", "MORALE_RAN_AWAY_COWARD", 5, -100, 100 );
gMoraleSettings.bValues[MORALE_ENEMYGROUP_COWARD] = iniReader.ReadInteger( "Tactical Morale Settings", "MORALE_ENEMYGROUP_COWARD", -3, -100, 100 );
gMoraleSettings.bValues[MORALE_KILLED_CIVILIAN] = iniReader.ReadInteger("Strategic Morale Settings","MORALE_KILLED_CIVILIAN", -5, -100, 100);
gMoraleSettings.bValues[MORALE_BATTLE_WON] = iniReader.ReadInteger("Strategic Morale Settings","MORALE_BATTLE_WON", 4, -100, 100);
-12
View File
@@ -712,7 +712,6 @@ BOOLEAN IsBackGroundAllowed( UINT16 ubNumber )
break;
}
switch ( iAttitude )
{
case CHAR_TRAIT_SOCIABLE:
@@ -723,17 +722,6 @@ BOOLEAN IsBackGroundAllowed( UINT16 ubNumber )
if ( zBackground[ ubNumber ].value[BG_LEADERSHIP] > 0 )
return FALSE;
break;
case CHAR_TRAIT_OPTIMIST:
case CHAR_TRAIT_ASSERTIVE:
case CHAR_TRAIT_INTELLECTUAL:
case CHAR_TRAIT_PRIMITIVE:
case CHAR_TRAIT_AGGRESSIVE:
case CHAR_TRAIT_PHLEGMATIC:
case CHAR_TRAIT_DAUNTLESS:
case CHAR_TRAIT_PACIFIST:
case CHAR_TRAIT_MALICIOUS:
case CHAR_TRAIT_SHOWOFF:
break;
default:
break;
}
+15 -39
View File
@@ -70,7 +70,7 @@ INT32 giIMPCharacterTraitFinsihButtonImage;
//image handle
UINT32 guiIST_GreyGoldBox2;
MOUSE_REGION gMR_CharacterTraitHelpTextRegions[IMP_NUMBER_CHARACTER_TRAITS];
MOUSE_REGION gMR_CharacterTraitHelpTextRegions[NUM_CHAR_TRAITS];
//*******************************************************************
//
@@ -102,7 +102,6 @@ void AssignCharacterTraitHelpText( UINT8 ubNumber );
void EnterIMPCharacterTrait( void )
{
// UINT32 ubCnt;
VOBJECT_DESC VObjectDesc;
//add the skill trait buttons
@@ -117,8 +116,6 @@ void EnterIMPCharacterTrait( void )
return;
}
giIMPCharacterTraitFinsihButtonImage = LoadButtonImage( "LAPTOP\\button_5.sti" ,-1,0,-1,1,-1 );
giIMPCharacterTraitFinsihButton = CreateIconAndTextButton( giIMPCharacterTraitFinsihButtonImage, pImpButtonText[ 13 ], FONT12ARIAL,
FONT_WHITE, DEFAULT_SHADOW,
@@ -126,9 +123,7 @@ void EnterIMPCharacterTrait( void )
TEXT_CJUSTIFIED,
LAPTOP_SCREEN_UL_X + ( 350 ), LAPTOP_SCREEN_WEB_UL_Y + ( 340 ), BUTTON_TOGGLE, MSYS_PRIORITY_HIGH,
BtnGenericMouseMoveButtonCallback, (GUI_CALLBACK)BtnIMPCharacterTraitFinishCallback );
SetButtonCursor( giIMPCharacterTraitFinsihButton, CURSOR_WWW);
//if we are not DONE and are just reviewing
@@ -145,7 +140,7 @@ void EnterIMPCharacterTrait( void )
// add regions for help texts
UINT16 usPosX = IMP_CHARACTER_1ST_COLUMN_START_X + 62;
UINT16 usPosY = IMP_CHARACTER_1ST_COLUMN_START_Y + 8;
for( UINT8 ubCnt=0; ubCnt<(gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES); ubCnt++ )
for ( UINT8 ubCnt = 0; ubCnt<(gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++ubCnt )
{
MSYS_DefineRegion( &gMR_CharacterTraitHelpTextRegions[ubCnt], ( usPosX ), ( usPosY ),
(usPosX + 156), ( usPosY + 17), MSYS_PRIORITY_HIGH,
@@ -167,7 +162,6 @@ void EnterIMPCharacterTrait( void )
}
}
void RenderIMPCharacterTrait( void )
{
//render the metal background graphic
@@ -175,22 +169,19 @@ void RenderIMPCharacterTrait( void )
//Display the title
if ( gGameOptions.fNewTraitSystem )
DrawTextToScreen( gzIMPCharacterTraitText[IMP_NUMBER_CHARACTER_TRAITS], LAPTOP_SCREEN_UL_X - 111, LAPTOP_TITLE_Y, LAPTOP_TEXT_WIDTH, FONT14ARIAL, FONT_MCOLOR_WHITE, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED );
DrawTextToScreen( gzIMPCharacterTraitText[NUM_CHAR_TRAITS], LAPTOP_SCREEN_UL_X - 111, LAPTOP_TITLE_Y, LAPTOP_TEXT_WIDTH, FONT14ARIAL, FONT_MCOLOR_WHITE, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED );
else
DrawTextToScreen( gzIMPAttitudesText[IMP_NUMBER_ATTITUDES], LAPTOP_SCREEN_UL_X - 111, LAPTOP_TITLE_Y, LAPTOP_TEXT_WIDTH, FONT14ARIAL, FONT_MCOLOR_WHITE, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED );
DrawTextToScreen( gzIMPAttitudesText[NUM_ATTITUDES], LAPTOP_SCREEN_UL_X - 111, LAPTOP_TITLE_Y, LAPTOP_TEXT_WIDTH, FONT14ARIAL, FONT_MCOLOR_WHITE, FONT_MCOLOR_BLACK, FALSE, CENTER_JUSTIFIED );
IMPCharacterTraitDisplayCharacterTraits();
}
void ExitIMPCharacterTrait( void )
{
INT32 iCnt;
DeleteVideoObjectFromIndex( guiIST_GreyGoldBox2 );
//remove the skill buttons
for(iCnt = 0; iCnt < (gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES); iCnt++)
for ( INT32 iCnt = 0; iCnt < (gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++iCnt )
{
//if there is a button allocated
if( giIMPCharacterTraitAnswerButton[iCnt] != -1 )
@@ -207,7 +198,6 @@ void ExitIMPCharacterTrait( void )
UnloadButtonImage( giIMPCharacterTraitFinsihButtonImage );
}
void HandleIMPCharacterTrait( void )
{
if( gfIST_Redraw2 )
@@ -221,13 +211,12 @@ void HandleIMPCharacterTrait( void )
void AddImpCharacterTraitButtons()
{
INT32 iCnt = 0;
UINT16 usPosX, usPosY;
usPosX = IMP_CHARACTER_1ST_COLUMN_START_X;
usPosY = IMP_CHARACTER_1ST_COLUMN_START_Y;
for(iCnt = 0; iCnt < (gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES) ; iCnt++)
for ( INT32 iCnt = 0; iCnt < (gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++iCnt )
{
//reset
giIMPCharacterTraitAnswerButton[iCnt] = -1;
@@ -287,8 +276,6 @@ void BtnIMPCharacterTraitAnswerCallback(GUI_BUTTON *btn,INT32 reason)
void HandleIMPCharacterTraitAnswers( UINT32 uiSkillPressed )
{
INT8 bCnt;
//if we are DONE and are just reviewing
if( iCurrentProfileMode == IMP__FINISH )
{
@@ -296,13 +283,13 @@ void HandleIMPCharacterTraitAnswers( UINT32 uiSkillPressed )
}
//reset all other buttons
for( bCnt=0; bCnt < (gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES); bCnt++ )
for ( INT8 bCnt = 0; bCnt < (gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++bCnt )
{
gfCharacterTraitQuestions[ bCnt ] = FALSE;
}
//make sure its a valid character trait
if( uiSkillPressed > (UINT32)(gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES) )
if ( uiSkillPressed >( UINT32 )(gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES) )
{
Assert( 0 );
return;
@@ -337,11 +324,8 @@ void HandleIMPCharacterTraitAnswers( UINT32 uiSkillPressed )
void HandleCharacterTraitButtonStates( )
{
INT8 bCnt;
for( bCnt=0; bCnt < (gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES); bCnt++ )
for ( INT8 bCnt = 0; bCnt < (gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++bCnt )
{
//if the skill is selected ( ie depressed )
if( gfCharacterTraitQuestions[ bCnt ] )
{
@@ -356,7 +340,6 @@ void HandleCharacterTraitButtonStates( )
void IMPCharacterTraitDisplayCharacterTraits()
{
INT8 bCnt;
UINT16 usPosX, usPosY;
UINT16 usBoxPosX, usBoxPosY;
HVOBJECT hImageHandle;
@@ -367,7 +350,7 @@ void IMPCharacterTraitDisplayCharacterTraits()
usPosX = IMP_CHARACTER_1ST_COLUMN_START_X + IMP_CHARACTER_TRAIT__TEXT_OFFSET_X;
usPosY = IMP_CHARACTER_1ST_COLUMN_START_Y + IMP_CHARACTER_TRAIT__TEXT_OFFSET_Y;
for( bCnt=0; bCnt<(gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES); bCnt++ )
for ( INT8 bCnt = 0; bCnt<(gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++bCnt )
{
usBoxPosX = usPosX - IMP_CHARACTER_TRAIT__GREY_BOX_OFFSET_X;
usBoxPosY = usPosY - IMP_CHARACTER_TRAIT__GREY_BOX_OFFSET_Y;
@@ -409,7 +392,6 @@ void IMPCharacterTraitDisplayCharacterTraits()
}
}
void BtnIMPCharacterTraitFinishCallback(GUI_BUTTON *btn,INT32 reason)
{
// btn callback for IMP personality quiz answer button
@@ -443,7 +425,6 @@ void BtnIMPCharacterTraitFinishCallback(GUI_BUTTON *btn,INT32 reason)
}
}
BOOLEAN CameBackToCharacterTraitPageButNotFinished()
{
//if we are in a page that comes after this one
@@ -459,21 +440,18 @@ BOOLEAN CameBackToCharacterTraitPageButNotFinished()
INT8 iChosenCharacterTrait()
{
INT8 bCnt;
INT8 iCharacterTraitNumber = 0;
//loop through all the buttons and reset them
for( bCnt=0; bCnt<(gGameOptions.fNewTraitSystem ? IMP_NUMBER_CHARACTER_TRAITS : IMP_NUMBER_ATTITUDES); bCnt++ )
for ( INT8 bCnt = 0; bCnt<(gGameOptions.fNewTraitSystem ? NUM_CHAR_TRAITS : NUM_ATTITUDES); ++bCnt )
{
//if the trait is selected
if( gfCharacterTraitQuestions[ bCnt ] )
{
iCharacterTraitNumber = bCnt;
return bCnt;
}
}
return( iCharacterTraitNumber );
}
return 0;
}
void AssignCharacterTraitHelpText( UINT8 ubNumber )
{
@@ -484,6 +462,4 @@ void AssignCharacterTraitHelpText( UINT8 ubNumber )
// Set region help text
SetRegionFastHelpText( &(gMR_CharacterTraitHelpTextRegions[ubNumber]), apStr );
SetRegionHelpEndCallback( &gMR_CharacterTraitHelpTextRegions[ubNumber], MSYS_NO_CALLBACK );
return;
}
-35
View File
@@ -8,41 +8,6 @@ void RenderIMPCharacterTrait( void );
void ExitIMPCharacterTrait( void );
void HandleIMPCharacterTrait( void );
//enum
//{
typedef enum
{
IMP_ATTITUDE_NORMAL = 0,
IMP_ATTITUDE_FRIENDLY,
IMP_ATTITUDE_LONER,
IMP_ATTITUDE_OPTIMIST,
IMP_ATTITUDE_PESSIMIST,
IMP_ATTITUDE_AGGRESSIVE,
IMP_ATTITUDE_ARROGANT,
IMP_ATTITUDE_BIGSHOT,
IMP_ATTITUDE_ASSHOLE,
IMP_ATTITUDE_COWARD,
IMP_NUMBER_ATTITUDES,
};
typedef enum
{
IMP_CHARACTER_TRAIT_NORMAL = 0,
IMP_CHARACTER_TRAIT_SOCIABLE,
IMP_CHARACTER_TRAIT_LONER,
IMP_CHARACTER_TRAIT_OPTIMIST,
IMP_CHARACTER_TRAIT_ASSERTIVE,
IMP_CHARACTER_TRAIT_INTELLECTUAL,
IMP_CHARACTER_TRAIT_PRIMITIVE,
IMP_CHARACTER_TRAIT_AGGRESSIVE,
IMP_CHARACTER_TRAIT_PHLEGMATIC,
IMP_CHARACTER_TRAIT_DAUNTLESS,
IMP_CHARACTER_TRAIT_PACIFIST,
IMP_CHARACTER_TRAIT_MALICIOUS,
IMP_CHARACTER_TRAIT_SHOWOFF,
IMP_NUMBER_CHARACTER_TRAITS,
};
INT8 iChosenCharacterTrait();
STR16 gzIMPCharacterTraitText[];
+4
View File
@@ -4287,6 +4287,10 @@ void HandleIMPCharProfileResultsMessage( void)
wcscpy(pString, gzIMPCharacterTraitText[CHAR_TRAIT_SHOWOFF]);
iOffSet = IMP_ATTITUDE_ARROGANT;
break;
case CHAR_TRAIT_COWARD:
wcscpy( pString, gzIMPCharacterTraitText[CHAR_TRAIT_COWARD] );
iOffSet = IMP_ATTITUDE_COWARD;
break;
}
wcscat(pString, L". ±");
+13
View File
@@ -1075,6 +1075,19 @@ void PrepareForPreBattleInterface( GROUP *pPlayerDialogGroup, GROUP *pInitiating
#endif
SetMusicMode( MUSIC_TACTICAL_ENEMYPRESENT );
// Flugente: for cowards, check our teamsize and that of the enemy...
if ( gGameOptions.fNewTraitSystem )
{
UINT16 enemyteamsize = NumNonPlayerTeamMembersInSector( pPlayerDialogGroup->ubSectorX, pPlayerDialogGroup->ubSectorY, ENEMY_TEAM );
UINT16 militiateamsize = NumNonPlayerTeamMembersInSector( pPlayerDialogGroup->ubSectorX, pPlayerDialogGroup->ubSectorY, MILITIA_TEAM );
UINT16 mercsteamsize = PlayerMercsInSector( pPlayerDialogGroup->ubSectorX, pPlayerDialogGroup->ubSectorY, pPlayerDialogGroup->ubSectorZ );
if ( enemyteamsize >= 2 * (militiateamsize + mercsteamsize) && mercsteamsize )
{
HandleMoraleEvent( NULL, MORALE_ENEMYGROUP_COWARD, pPlayerDialogGroup->ubSectorX, pPlayerDialogGroup->ubSectorY, pPlayerDialogGroup->ubSectorZ );
}
}
if( gfTacticalTraversal && pInitiatingBattleGroup == gpTacticalTraversalGroup ||
pInitiatingBattleGroup && pInitiatingBattleGroup->usGroupTeam != OUR_TEAM &&
pInitiatingBattleGroup->ubSectorX == gWorldSectorX &&
+1 -1
View File
@@ -187,7 +187,7 @@ BOOLEAN MercIsOwedTooMuchMoney( UINT8 ubProfileID )
BOOLEAN MercThinksPlayerIsInactiveTooLong( UINT8 ubProfileID )
{
UINT8 ubTolerance = gMoraleSettings.bValues[MORALE_PLAYER_INACTIVE_DAYS];
if( gMercProfiles[ubProfileID].bCharacterTrait == CHAR_TRAIT_PACIFIST )
if ( gMercProfiles[ubProfileID].bCharacterTrait == CHAR_TRAIT_PACIFIST || gMercProfiles[ubProfileID].bCharacterTrait == CHAR_TRAIT_COWARD )
{
ubTolerance = max(0, ubTolerance + gMoraleSettings.bValues[MORALE_PLAYER_INACTIVE_DAYS_PACIFIST_BONUS]);
}
+8
View File
@@ -432,6 +432,7 @@ void CreateSpeechEventsFromDynamicOpinionEvent( DynamicOpinionSpeechEvent aEvent
case(CHAR_TRAIT_PACIFIST) : agreemodifier_personal += 20; break;
case(CHAR_TRAIT_MALICIOUS) : agreemodifier_personal += -8; break;
case(CHAR_TRAIT_SHOWOFF) : agreemodifier_personal += -3; break;
case CHAR_TRAIT_COWARD: agreemodifier_personal += 5; break;
}
// if the event is positive, then we are much more likely to agree
@@ -566,6 +567,10 @@ void CreateSpeechEventsFromDynamicOpinionEvent( DynamicOpinionSpeechEvent aEvent
chance_to_reason += -2;
chance_to_agression += 2;
break;
case CHAR_TRAIT_COWARD:
chance_to_reason += 20;
chance_to_agression += -20;
break;
}
if ( Chance( chance_to_reason ) )
@@ -2189,6 +2194,9 @@ void HandleDynamicOpinionChange( SOLDIERTYPE* pSoldier, UINT8 usEvent, BOOLEAN f
break;
case OPINIONEVENT_ORDEREDRETREAT:
// cowards obviously won't complain about a retreat, pacifists are also okay with it
if ( DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_COWARD ) || DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_PACIFIST ) )
continue;
break;
case OPINIONEVENT_CIVKILLER:
+24 -4
View File
@@ -103,7 +103,9 @@ MoraleEvent gbMoraleEvent[NUM_MORALE_EVENTS] =
{ TACTICAL_MORALE_EVENT, 5}, //MORALE_GOOD_FOOD,
{ TACTICAL_MORALE_EVENT, -1}, //MORALE_BAD_FOOD,
{ TACTICAL_MORALE_EVENT, -5}, //MORALE_LOATHSOME_FOOD,
{TACTICAL_MORALE_EVENT, -8}, //MORALE_FEAR_OF_HEIGHTS,
{ TACTICAL_MORALE_EVENT, -8}, //MORALE_FEAR_OF_HEIGHTS,
{ TACTICAL_MORALE_EVENT, +5}, //MORALE_RAN_AWAY_COWARD,
{ TACTICAL_MORALE_EVENT, +5}, //MORALE_ENEMYGROUP_COWARD,
// added by anv
{ STRATEGIC_MORALE_EVENT, -5}, //MORALE_BUDDY_FIRED,
{ STRATEGIC_MORALE_EVENT, -8}, //MORALE_BUDDY_FIRED_ON_BAD_TERMS,
@@ -789,12 +791,16 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I
if ( !HAS_SKILL_TRAIT( pTeamSoldier, COVERT_NT ) || ( (pTeamSoldier->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER)) == 0) )
{
// SANDRO - no penalty for pacifists to run away
if ( !DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_PACIFIST ) )
if ( !DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_PACIFIST ) && !DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_COWARD ) )
HandleMoraleEventForSoldier( pTeamSoldier, MORALE_RAN_AWAY );
// Double morale drop for aggressive people
if ( DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_AGGRESSIVE ) )
HandleMoraleEventForSoldier( pTeamSoldier, MORALE_RAN_AWAY );
// Flugente: cowards actually gain morale this way
if ( DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_COWARD ) )
HandleMoraleEventForSoldier( pTeamSoldier, MORALE_RAN_AWAY_COWARD );
}
}
else
@@ -807,7 +813,8 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I
HandleMoraleEventForSoldier( pTeamSoldier, MORALE_RAN_AWAY );
break;
case ATT_COWARD:
// no penalty - cowards are perfectly happy to avoid fights!
// Flugente: cowards actually gain morale this way
HandleMoraleEventForSoldier( pTeamSoldier, MORALE_RAN_AWAY_COWARD );
break;
default:
HandleMoraleEventForSoldier( pTeamSoldier, MORALE_RAN_AWAY );
@@ -1010,6 +1017,19 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I
HandleMoraleEventForSoldier( pSoldier, bMoraleEvent );
break;
case MORALE_ENEMYGROUP_COWARD:
// affects coward in sector
ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( pTeamSoldier = MercPtrs[ubLoop]; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ubLoop++, pTeamSoldier++ )
{
if ( pTeamSoldier->bActive && (pTeamSoldier->sSectorX == sMapX) && (pTeamSoldier->sSectorY == sMapY) && (pTeamSoldier->bSectorZ == bMapZ) )
{
if ( DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_COWARD ) )
HandleMoraleEventForSoldier( pTeamSoldier, bMoraleEvent );
}
}
break;
case MORALE_BUDDY_FIRED:
case MORALE_BUDDY_FIRED_EARLY:
case MORALE_BUDDY_FIRED_ON_BAD_TERMS:
+2
View File
@@ -55,6 +55,8 @@ typedef enum
MORALE_BAD_FOOD,
MORALE_LOATHSOME_FOOD,
MORALE_FEAR_OF_HEIGHTS,
MORALE_RAN_AWAY_COWARD,
MORALE_ENEMYGROUP_COWARD,
// added by anv
MORALE_BUDDY_FIRED,
+1
View File
@@ -198,6 +198,7 @@ typedef enum
CHAR_TRAIT_PACIFIST,
CHAR_TRAIT_MALICIOUS,
CHAR_TRAIT_SHOWOFF,
CHAR_TRAIT_COWARD,
NUM_CHAR_TRAITS
} CharacterTraits;
+1
View File
@@ -7797,6 +7797,7 @@ STR16 gzIMPCharacterTraitText[]=
L"和平主义者",
L"恶毒",
L"爱炫耀",
L"Coward", // TODO.Translate
L"I.M.P. 性格特征",
};
+1
View File
@@ -7810,6 +7810,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Pacifist",
L"Malicious",
L"Show-off",
L"Coward", // TODO.Translate
L"I.M.P. Character Traits",
};
+1
View File
@@ -7798,6 +7798,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Pacifist",
L"Malicious",
L"Show-off",
L"Coward",
L"I.M.P. Character Traits",
};
+1
View File
@@ -7804,6 +7804,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Pacifiste",
L"Malicieux",
L"Frimeur",
L"Coward", // TODO.Translate
L"IMP : Traits de caractère",
};
+1
View File
@@ -7631,6 +7631,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Pazifistisch",
L"Sadistisch",
L"Machohaft", //LOOTF - alt. "Angeberisch"
L"Feigling",
L"B.S.E. - Charakterzüge",
};
+1
View File
@@ -7800,6 +7800,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Pacifist",
L"Malicious",
L"Show-off",
L"Coward", // TODO.Translate
L"I.M.P. Character Traits",
};
+1
View File
@@ -463,6 +463,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"优点:进行非战斗任务时士气会提升(除了训练民兵)。\n缺点:杀人不增加士气。",// L"A: He gains morale when on non-combat assignments (except training militia).\nD: Gains no morale for killing.",
L"优点:攻击有更高的几率能造成受害者属性值降低,和更严重的创伤,同时提高自己的士气。\n缺点:与其他人交流是个问题,脱离战斗后士气也会快速下沉。",// L"A: Has bigger chance for inflicting stat loss and can inflict special painful wounds when able to\n Gains bonus morale for inflicting stat loss.\nD: Has penalty for communication with people and his morale sinks faster if not fighting.",
L"优点:附近有异性雇佣兵时表现更佳。\n缺点:附近所有同性雇佣兵士气提升得慢。",// L"A: Has better performance when there are some mercs of opposite gender nearby.\nD: Morale of other mercs of the same gender grows slower if nearby.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -462,6 +462,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"A: Gains morale on non-combat assignments (except training militia).\nD: Gains no morale for killing.",
L"A: Higher chance for inflicting stat loss, which may also inflict special painful wounds.\n Gains bonus morale for inflicting stat loss.\nD: Penalty in communicating with people and morale sinks faster while not in battle.",
L"A: Better performance when mercs of opposite gender are nearby.\nD: Morale for mercs of the same gender grows slower when nearby.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -463,6 +463,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"A: Gains morale on non-combat assignments (except training militia).\nD: Gains no morale for killing.",
L"A: Higher chance for inflicting stat loss, which may also inflict special painful wounds.\n Gains bonus morale for inflicting stat loss.\nD: Penalty in communicating with people and morale sinks faster while not in battle.",
L"A: Better performance when mercs of opposite gender are nearby.\nD: Morale for mercs of the same gender grows slower when nearby.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.",
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -461,6 +461,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"+ : Gagne du moral lorsque vous faites une mission qui n'est pas liée au combat (excepté l'entraînement de milice).\n- : Pas de gains lorsque vous tuez quelqu'un.",
L"+ : A plus de chance d'infliger des pertes de stats sur l'ennemi, qui peut aussi infliger de lourds dégâts.\n Gagne du moral lorsque vous infligez des pertes de stats sur l'ennemi.\n- : A une pénalité pour la communication et son moral baisse plus rapidement lorsqu'il ne combat pas.",
L"+ : A de meilleures performances lorsqu'un certain type d'ennemi est opposé à lui.\n- : Les mercenaires qui possèdent le même type que l'ennemi gagne moins de moral.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
+1
View File
@@ -464,6 +464,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"V: Erhält Moralzuwachs für nichtkämpferische Tätigkeiten (Außnahme: Milizausbildung).\nN: Erhält keinen Moralzuwachs für das Töten von Gegnern.",
L"V: Hat eine höhere Chance, Statusschäden anzurichten, und kann besonders fiese Wunden verursachen.\n Erhält mehr Moral für erfolgreiche Statusschäden.\nN: Kann schlechter mit Leuten reden. Die Moral sinkt ohne Kampf schneller.",
L"V: Ist leistungsfähiger, wenn Söldner des anderen Geschlechts in der Nähe sind.\nN: Die Moral anderer naher Söldner des gleichen Geschlechts steigt langsamer.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -460,6 +460,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"A: Gains morale on non-combat assignments (except training militia).\nD: Gains no morale for killing.",
L"A: Higher chance for inflicting stat loss, which may also inflict special painful wounds.\n Gains bonus morale for inflicting stat loss.\nD: Penalty in communicating with people and morale sinks faster while not in battle.",
L"A: Better performance when mercs of opposite gender are nearby.\nD: Morale for mercs of the same gender grows slower when nearby.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -462,6 +462,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"A: Gains morale on non-combat assignments (except training militia).\nD: Gains no morale for killing.",
L"A: Higher chance for inflicting stat loss, which may also inflict special painful wounds.\n Gains bonus morale for inflicting stat loss.\nD: Penalty in communicating with people and morale sinks faster while not in battle.",
L"A: Better performance when mercs of opposite gender are nearby.\nD: Morale for mercs of the same gender grows slower when nearby.",
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -463,6 +463,7 @@ STR16 gzIMPNewCharacterTraitsHelpTexts[]=
L"плюсы: Боевой дух повышается при выполнении небоевых заданий (кроме тренировки ополчения).\n \nминусы: Убийство врагов не повышает боевой дух.", //Pacifist
L"плюсы: Имеет больший шанс нанести болезненные раны и травмы, приводящие к ухудшению параметров.\nБоевой дух повышается при нанесении таких ран.\n \nминусы: Имеет проблемы в общении и быстро теряет боевой дух, если не сражается.", //Malicious
L"плюсы: Лучше работает в компании представителей противоположного пола.\n \nминусы: Боевой дух бойцов того же пола в его присутствии растёт медленнее.", //Show-off
L"A: Gains morale when retreating.\nD: Loses morale when encountering numerically superior enemy forces.", // TODO.Translate
};
STR16 gzIMPDisabilitiesHelpTexts[]=
+1
View File
@@ -7815,6 +7815,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Pacyfista",
L"Podstępny",
L"Gwiazdor",
L"Coward", // TODO.Translate
L"Cechy charakteru I.M.P.-a",
};
+1
View File
@@ -7798,6 +7798,7 @@ STR16 gzIMPCharacterTraitText[]=
L"Миролюбивый", //Pacifist
L"Злобный", //Malicious
L"Хвастун", //Show-off
L"Coward", // TODO.Translate
L"I.M.P.: Личностные качества", //I.M.P. Character Traits
};