New feature: Diseaes affect your mercenaries. They can be contracted in varíous ways and have varying effects.

For more info, see http://www.ja-galaxy-forum.com/ubbthreads.php/topics/334918#Post334918

Requires GameDir >= r2099.

Does not break savegame compatibility.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7384 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2014-08-10 13:45:11 +00:00
parent 09244c2369
commit 36e9d15edc
96 changed files with 5569 additions and 1573 deletions
+12 -4
View File
@@ -9442,7 +9442,6 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
INT8 bStatLoss = 0;
UINT8 ubAmmoType;
#ifdef ENABLE_ZOMBIES
if ( pTarget->IsZombie() )
{
// if bullet does not hits anything other than the head, it doesn't do any damage
@@ -9458,7 +9457,6 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
pTarget->usSoldierFlagMask &= ~SOLDIER_HEADSHOT;
}
}
#endif
// NOTE: reduction of bullet impact due to range and obstacles is handled
// in MoveBullet.
@@ -9843,6 +9841,9 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
gMercProfiles[ pTarget->ubProfile ].bWisdom = pTarget->stats.bWisdom;
}
// Flugente: disease
HandlePossibleInfection( pTarget, pFirer, INFECTION_TYPE_WOUND_WIS );
if (pTarget->name[0] && pTarget->bVisible == TRUE)
{
// make stat RED for a while...
@@ -9935,6 +9936,9 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
gMercProfiles[ pTarget->ubProfile ].bDexterity = pTarget->stats.bDexterity;
}
// Flugente: disease
HandlePossibleInfection( pTarget, pFirer, INFECTION_TYPE_WOUND_DEX );
if (pTarget->name[0] && pTarget->bVisible == TRUE)
{
// make stat RED for a while...
@@ -9969,6 +9973,9 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
gMercProfiles[ pTarget->ubProfile ].bStrength = pTarget->stats.bStrength;
}
// Flugente: disease
HandlePossibleInfection( pTarget, pFirer, INFECTION_TYPE_WOUND_STR );
if (pTarget->name[0] && pTarget->bVisible == TRUE)
{
// make stat RED for a while...
@@ -10004,6 +10011,9 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
gMercProfiles[ pTarget->ubProfile ].bAgility = pTarget->stats.bAgility;
}
// Flugente: disease
HandlePossibleInfection( pTarget, pFirer, INFECTION_TYPE_WOUND_AGI );
if (pTarget->name[0] && pTarget->bVisible == TRUE)
{
// make stat RED for a while...
@@ -10330,7 +10340,6 @@ INT32 HTHImpact( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget, INT32 iHitBy, BO
BOOLEAN autoresolve = IsAutoResolveActive();
iImpact = max( 1, (INT32)(iImpact * (100 - pTarget->GetDamageResistance(autoresolve, FALSE)) / 100 ) );
#ifdef ENABLE_ZOMBIES
// Flugente: if the target is a zombie, any melee attack, regardless of hit location, will set the headshot flag. Thus any zombie killed in melee will stay dead (if you play with that option)
if ( pTarget->IsZombie() )
{
@@ -10340,7 +10349,6 @@ INT32 HTHImpact( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget, INT32 iHitBy, BO
pTarget->usSoldierFlagMask |= SOLDIER_HEADSHOT;
}
}
#endif
return( iImpact );
}