New merc (somewhat): Similar to Larry's two personalities, Buns now has an alternate personality as well.

For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=tree&th=23806&goto=354149&#msg_354149

Requires GameDir >= r2430.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8588 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2018-07-25 20:14:33 +00:00
parent b70fcbe5e6
commit 887170dda5
24 changed files with 216 additions and 96 deletions
+26 -2
View File
@@ -10279,7 +10279,7 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
}
// possibly get traumatized if damage gets close to killing us (not if we're slowly bleeding)
if ( this->stats.bLife < OKLIFE && ubReason != TAKE_DAMAGE_BLOODLOSS )
if ( this->stats.bLife < OKLIFE )//&& ubReason != TAKE_DAMAGE_BLOODLOSS )
HandlePossibleInfection( this, NULL, INFECTION_TYPE_TRAUMATIC );
}
@@ -18937,7 +18937,25 @@ BOOLEAN SOLDIERTYPE::HasDisease( BOOLEAN fDiagnosedOnly, BOOLEAN fHealableOnly,
return FALSE;
}
// get the magnitude os a disease we might have, used to determine wether there are any effects
// Do we have an outbroken disease with a special property?
BOOLEAN SOLDIERTYPE::HasDiseaseWithFlag( UINT32 aFlag )
{
if ( !gGameExternalOptions.fDisease )
return FALSE;
for ( int i = 0; i < NUM_DISEASES; ++i )
{
// disease is relevant if we are infected and are not looking for symbols only while the disease has no symbol
if ( ( Disease[i].usDiseaseProperties & aFlag ) && this->sDiseasePoints[i] > 0 && ( this->sDiseaseFlag[i] & SOLDIERDISEASE_OUTBREAK ) )
{
return TRUE;
}
}
return FALSE;
}
// get the magnitude of a disease we might have, used to determine wether there are any effects
FLOAT SOLDIERTYPE::GetDiseaseMagnitude( UINT8 aDisease )
{
if ( !gGameExternalOptions.fDisease )
@@ -19071,6 +19089,12 @@ void SOLDIERTYPE::PrintDiseaseDesc( CHAR16* apStr, BOOLEAN fFullDesc )
wcscat( apStr, atStr );
}
}
if ( (this->ubProfile == BUNS || this->ubProfile == BUNS_CHAOTIC) && ( Disease[i].usDiseaseProperties & DISEASE_PROPERTY_PTSD_BUNS ) )
{
swprintf( atStr, szDiseaseText[TEXT_DISEASE_PTSD_BUNS_SPECIAL] );
wcscat( apStr, atStr );
}
}
}
else if ( fShowExactPoints && this->sDiseasePoints[i] > 0 )