Skip to content

Commit

Permalink
Fix the SuperTransport body type to be SUPER HEAVY, not HEAVY.
Browse files Browse the repository at this point in the history
Try harder not to have them be on top of each other (only in MultiPlayer games).
Fix explosion type.
Fix damage calculations when they are on the ground.
Try to better balance the Super Transport, hitpoints now at 500, Armor types changed to 35 & 20 and make weapon MG1-VTOL instead of MG3-VTOL.
  • Loading branch information
vexed committed Oct 30, 2013
1 parent d5428b9 commit e3279f6
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 9 deletions.
2 changes: 1 addition & 1 deletion data/mp/stats/assignweapons.txt
Expand Up @@ -317,7 +317,7 @@ SK-Mantis-VTOL-HBB,Bomb2-VTOL-HvHE,NULL,NULL,6
SK-Retre-VTOL-HBB,Bomb2-VTOL-HvHE,NULL,NULL,6
SK-Retal-VTOL-Scourge,Missile-VTOL-AT,NULL,NULL,6
SK-Retre-VTOL-Plasmite,Bomb5-VTOL-Plasmite,NULL,NULL,6
SuperTransport,MG3-VTOL,NULL,NULL,5
SuperTransport,MG1-VTOL,NULL,NULL,5
SK-Veng-Hover-Seraph,Missile-MdArt,NULL,NULL,6
Dragon-Hover-SeraphGauss,Missile-MdArt,RailGun3Mk1,NULL,6
ZNULLDESIGN,ZNULLWEAPON,ZNULLWEAPON,ZNULLWEAPON,0
2 changes: 1 addition & 1 deletion data/mp/stats/body.txt
@@ -1,7 +1,7 @@
Body key,Unused,Size,Build power,Build points,Weight,Body points,Body model,Unused,Weapon slots,Engine power,AFRK,AFRH,AREK,AREH,ALEK,ALEH,ARIK,ARIH,ATOK,ATOH,ABOK,ABOH,Flame model,Designable
ZNULLBODY,Level All,LIGHT,0,0,0,0,MIBNKBOD.PIE,20,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
TransporterBody,Level All,MEDIUM,325,637,250,200,drcytran.pie,100,1,2000,20,9,20,9,20,9,20,9,20,9,20,9,0,0
SuperTransportBody,Level All,HEAVY,500,625,1850,1000,drtrans.pie,100,1,7525,40,40,40,40,40,40,40,40,40,40,40,40,0,0
SuperTransportBody,Level All,SUPER HEAVY,500,625,1850,500,drtrans.pie,100,1,7525,34,20,34,20,34,20,34,20,34,20,34,20,0,0
Superbody,Level All,HEAVY,10,10,2700,9000,DRHBOD11.PIE,500,1,40000,999,999,999,999,999,999,999,999,999,999,999,999,0,0
FireBody,Level One,LIGHT,4,75,3000,200,EXFIRE.PIE,50,1,4000,4,1,4,1,4,1,4,1,4,1,4,1,0,0
CybRotMgGrd,Level All,LIGHT,21,75,150,200,cybd_std.pie,100,1,600,12,6,12,6,12,6,12,6,12,6,12,6,0,0
Expand Down
2 changes: 1 addition & 1 deletion src/action.cpp
Expand Up @@ -83,7 +83,7 @@ struct DROID_ACTION_DATA
psDroid->sMove.Status == MOVESHUFFLE)

/** Radius for search when looking for VTOL landing position */
static const int vtolLandingRadius = 23;
static const int vtolLandingRadius = 43;

/**
* @typedef tileMatchFunction
Expand Down
13 changes: 10 additions & 3 deletions src/droid.cpp
Expand Up @@ -161,8 +161,8 @@ int32_t droidDamage(DROID *psDroid, unsigned damage, WEAPON_CLASS weaponClass, W

CHECK_DROID(psDroid);

// VTOLs on the ground take triple damage
if (isVtolDroid(psDroid) && psDroid->sMove.Status == MOVEINACTIVE)
// VTOLs (and transporters in MP) on the ground take triple damage
if (isVtolDroid(psDroid) || ((psDroid->droidType == DROID_TRANSPORTER || psDroid->droidType == DROID_SUPERTRANSPORTER) && bMultiPlayer) && (psDroid->sMove.Status == MOVEINACTIVE))
{
damage *= 3;
}
Expand Down Expand Up @@ -539,7 +539,14 @@ static void removeDroidFX(DROID *psDel, unsigned impactTime)
pos.x = psDel->pos.x;
pos.z = psDel->pos.y;
pos.y = psDel->pos.z;
addEffect(&pos, EFFECT_DESTRUCTION, DESTRUCTION_TYPE_DROID, false, NULL, 0, impactTime);
if (psDel->droidType == DROID_SUPERTRANSPORTER)
{
addEffect(&pos, EFFECT_EXPLOSION, EXPLOSION_TYPE_LARGE, false, NULL, 0, impactTime);
}
else
{
addEffect(&pos, EFFECT_DESTRUCTION, DESTRUCTION_TYPE_DROID, false, NULL, 0, impactTime);
}
audio_PlayStaticTrack( psDel->pos.x, psDel->pos.y, ID_SOUND_EXPLOSION );
}
}
Expand Down
12 changes: 9 additions & 3 deletions src/move.cpp
Expand Up @@ -1123,7 +1123,8 @@ static void moveCalcDroidSlide(DROID *psDroid, int *pmx, int *pmy)
{
if (((DROID *)psObj)->droidType == DROID_TRANSPORTER || ((DROID *)psObj)->droidType == DROID_SUPERTRANSPORTER)
{
// ignore transporters
// ignore transporters in campaign
if (!bMultiPlayer)
continue;
}
if (!bLegs && ((DROID *)psObj)->droidType == DROID_PERSON)
Expand Down Expand Up @@ -1883,10 +1884,15 @@ static void moveUpdateVtolModel(DROID *psDroid, SDWORD speed, uint16_t direction

moveGetDroidPosDiffs( psDroid, &dx, &dy );

/* set slide blocking tile for map edge */
if ( psDroid->droidType != DROID_TRANSPORTER && psDroid->droidType != DROID_SUPERTRANSPORTER)
// set slide blocking tile for map edge
// and in MP, try not to have transports cluster together as much
if (((psDroid->droidType != DROID_TRANSPORTER && psDroid->droidType != DROID_SUPERTRANSPORTER))|| bMultiPlayer)
{
moveCalcBlockingSlide(psDroid, &dx, &dy, direction, &slideDir);
if (bMultiPlayer)
{
moveCalcDroidSlide(psDroid, &dx, &dy);
}
}

moveUpdateDroidPos( psDroid, dx, dy );
Expand Down

0 comments on commit e3279f6

Please sign in to comment.