Fix the SuperTransport body type to be SUPER HEAVY, not HEAVY.

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.
master
vexed 2013-10-29 22:49:00 -04:00
parent d5428b94e4
commit e3279f6d03
5 changed files with 22 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}
@ -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 );
}
}

View File

@ -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)
@ -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 );