From 839cabd68286d2bc56b04c518f184f38369c3853 Mon Sep 17 00:00:00 2001 From: Mikko Tiusanen Date: Sat, 14 Feb 2015 15:19:07 +0200 Subject: Various gameplay balance changes and minor bug fixes, code organization. Increased goon pounce delay a little bit. Incognito players as players of level matching their score. Adjusted the hp, build time and bp of various buildings. Alien hives now track movement a bit faster. Added cvars to limit colony and refinery bp max effects. Colonies and refineries can now prevent enemy building within their radius. Reduced flamer and lightning gun damage and slowed down rockets. Increased Adv. mara zap rate and adv. goon barb regen. Increased hummel barbs damage and reduced their repeat rate a little bit. --- src/game/bg_pmove.c | 4 +- src/game/edge_version.h | 2 +- src/game/g_active.c | 4 +- src/game/g_admin.c | 3 +- src/game/g_buildable.c | 108 +++++++++++++++++++++---------------------- src/game/g_main.c | 25 ++++++++-- src/game/g_missile.c | 4 +- src/game/tremulous.h | 120 ++++++++++++++++++++++++------------------------ 8 files changed, 145 insertions(+), 125 deletions(-) diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c index 017b389..476e195 100644 --- a/src/game/bg_pmove.c +++ b/src/game/bg_pmove.c @@ -3104,10 +3104,10 @@ static void PM_Weapon( void ) switch(pm->ps->weapon) { case WP_ALEVEL3: - max = LEVEL3_POUNCE_TIME_UPG; + max = LEVEL3_POUNCE_TIME; break; case WP_ALEVEL3_UPG: - max = LEVEL3_POUNCE_TIME; + max = LEVEL3_POUNCE_TIME_UPG; break; case WP_ALEVEL5: max = LEVEL5_POUNCE_TIME; diff --git a/src/game/edge_version.h b/src/game/edge_version.h index 6795229..55170dc 100644 --- a/src/game/edge_version.h +++ b/src/game/edge_version.h @@ -1,3 +1,3 @@ #ifndef EDGE_MOD_VERSION -#define EDGE_MOD_VERSION "7.6i" +#define EDGE_MOD_VERSION "7.7" #endif diff --git a/src/game/g_active.c b/src/game/g_active.c index 2fdb514..6021a65 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -1847,11 +1847,11 @@ void ClientThink_real( gentity_t *ent ) continue; } - if( modifier < 4.6f && boost->s.eType == ET_BUILDABLE && + if( modifier < COCOON_REGEN_MOD && boost->s.eType == ET_BUILDABLE && boost->s.modelindex == BA_A_COCOON && boost->spawned && boost->health > 0 && boost->powered ) { - modifier = 4.6f; + modifier = COCOON_REGEN_MOD; continue; } diff --git a/src/game/g_admin.c b/src/game/g_admin.c index 3b1566c..6c04029 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -2762,7 +2762,8 @@ qboolean G_admin_listplayers( gentity_t *ent ) } else { - l = G_admin_level( 2 ); // Display 'Verified Player' level + // Display level matching admin's score instead of the real/fixed level for incognito players. + l = G_admin_find_level_for_score( p->pers.admin->score ); } } diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index d855af5..18a0fae 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -3618,51 +3618,51 @@ static int G_CompareBuildablesForRemoval( const void *a, const void *b ) BA_A_SPAWN, BA_A_OVERMIND, BA_A_PANZER_SMALL, - BA_A_PANZER_MEDIUM, - BA_A_PANZER_LARGE, - BA_A_TENDON_SMALL, - BA_A_TENDON_MEDIUM, - BA_A_TENDON_LARGE, - BA_A_NET, - BA_A_NET_SPIKE, - BA_A_INFESTATION_SLIME, - BA_A_INFESTATION_THICKET, - BA_A_INFESTATION_BLISTER, - BA_A_REFLECTOR, - BA_A_MUSCLE, - BA_A_SPITEFUL_ABCESS, - BA_A_COCOON, - BA_A_ORGANIC_BULB, - BA_A_POD, - BA_A_POD_STUMP, - BA_A_CREEPCOLONY, - + BA_A_PANZER_MEDIUM, + BA_A_PANZER_LARGE, + BA_A_TENDON_SMALL, + BA_A_TENDON_MEDIUM, + BA_A_TENDON_LARGE, + BA_A_NET, + BA_A_NET_SPIKE, + BA_A_INFESTATION_SLIME, + BA_A_INFESTATION_THICKET, + BA_A_INFESTATION_BLISTER, + BA_A_REFLECTOR, + BA_A_MUSCLE, + BA_A_SPITEFUL_ABCESS, + BA_A_COCOON, + BA_A_ORGANIC_BULB, + BA_A_POD, + BA_A_POD_STUMP, + BA_A_CREEPCOLONY, + BA_H_MGTURRET, - BA_H_MGTURRET2, + BA_H_MGTURRET2, BA_H_TESLAGEN, BA_H_DCC, BA_H_MEDISTAT, BA_H_ARMOURY, BA_H_SPAWN, BA_H_REPEATER, - BA_H_CONTAINER_SMALL, + BA_H_CONTAINER_SMALL, BA_H_CONTAINER_MEDIUM, - BA_H_CONTAINER_LARGE, - BA_H_PLATE_SMALL, - BA_H_PLATE_LARGE, + BA_H_CONTAINER_LARGE, + BA_H_PLATE_SMALL, + BA_H_PLATE_LARGE, BA_H_FENCE, BA_H_FENCE_ROD, BA_H_BARRIER_LINE, BA_H_BARRIER_CORNER, BA_H_BARRIER_POINT, - BA_H_SHIELD, - BA_H_LADDER, - BA_H_TEFLON_FOIL, + BA_H_SHIELD, + BA_H_LADDER, + BA_H_TEFLON_FOIL, BA_H_BARREL, BA_H_LIGHT, - BA_H_COVER, - BA_H_COVER_STUMP, - BA_H_REFINERY, + BA_H_COVER, + BA_H_COVER_STUMP, + BA_H_REFINERY, }; gentity_t *buildableA, *buildableB; @@ -4237,13 +4237,19 @@ itemBuildError_t G_CanBuild( gentity_t *ent, buildable_t buildable, int distance { case 0: break; case 1: // only creep providing buildings are blocked - // if( buildable != BA_A_OVERMIND && buildable != BA_A_SPAWN ) - break; - // otherwise check the power + if( buildable != BA_A_OVERMIND && buildable != BA_A_SPAWN ) + break; + if( G_IsPowered( entity_origin ) != BA_NONE ) + reason = IBE_BLOCKEDBYENEMY; + break; + case 2: // Creeps/colonies block building for enemy team + if( G_IsGathered( TEAM_HUMANS, entity_origin, qfalse, ent ) ) + reason = IBE_BLOCKEDBYENEMY; + break; default: if( G_IsPowered( entity_origin ) != BA_NONE ) reason = IBE_BLOCKEDBYENEMY; - break; + break; } // Check that there isn't another refinery/colony nearby @@ -4266,22 +4272,11 @@ itemBuildError_t G_CanBuild( gentity_t *ent, buildable_t buildable, int distance // Check for power { //tell player to build a repeater to provide power - if( buildable != BA_H_REACTOR && buildable != BA_H_REPEATER && buildable != BA_H_LADDER -&& buildable != BA_H_CONTAINER_SMALL -&& buildable != BA_H_CONTAINER_MEDIUM -&& buildable != BA_H_CONTAINER_LARGE -&& buildable != BA_H_PLATE_SMALL -&& buildable != BA_H_PLATE_LARGE -&& buildable != BA_H_FENCE -&& buildable != BA_H_FENCE_ROD -&& buildable != BA_H_BARRIER_LINE -&& buildable != BA_H_BARRIER_CORNER -&& buildable != BA_H_BARRIER_POINT -&& buildable != BA_H_TEFLON_FOIL -&& buildable != BA_H_BARREL -&& buildable != BA_H_COVER -&& buildable != BA_H_COVER_STUMP - ) + if( buildable != BA_H_REACTOR && buildable != BA_H_REPEATER && buildable != BA_H_LADDER && + buildable != BA_H_CONTAINER_SMALL && buildable != BA_H_CONTAINER_MEDIUM && buildable != BA_H_CONTAINER_LARGE && + buildable != BA_H_PLATE_SMALL && buildable != BA_H_PLATE_LARGE && buildable != BA_H_FENCE && buildable != BA_H_FENCE_ROD && + buildable != BA_H_BARRIER_LINE && buildable != BA_H_BARRIER_CORNER && buildable != BA_H_BARRIER_POINT && + buildable != BA_H_TEFLON_FOIL && buildable != BA_H_BARREL && buildable != BA_H_COVER && buildable != BA_H_COVER_STUMP ) reason = IBE_NOPOWERHERE; } @@ -4291,13 +4286,18 @@ itemBuildError_t G_CanBuild( gentity_t *ent, buildable_t buildable, int distance { case 0: break; case 1: // only power providing buildings are blocked -// if( buildable != BA_H_REACTOR && buildable != BA_H_REPEATER ) - + if( buildable != BA_H_REACTOR && buildable != BA_H_REPEATER ) break; - // otherwise check the creep - default: if( G_IsCreepHere( entity_origin ) ) reason = IBE_BLOCKEDBYENEMY; + case 2: // Creeps/colonies block building for enemy team + if( G_IsGathered( TEAM_ALIENS, entity_origin, qfalse, ent ) ) + reason = IBE_BLOCKEDBYENEMY; + break; + default: + if( G_IsCreepHere( entity_origin ) ) + reason = IBE_BLOCKEDBYENEMY; + break; } //this buildable requires a DCC diff --git a/src/game/g_main.c b/src/game/g_main.c index 1249905..7dc5bc8 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -205,6 +205,10 @@ vmCvar_t g_DretchTurretDamage; vmCvar_t g_DretchBuildingDamage; vmCvar_t g_OwnTeamBPFactor; vmCvar_t g_EnemyTeamBPFactor; +vmCvar_t g_MinAlienExtraBuildPoints; +vmCvar_t g_MaxAlienExtraBuildPoints; +vmCvar_t g_MinHumanExtraBuildPoints; +vmCvar_t g_MaxHumanExtraBuildPoints; // copy cvars that can be set in worldspawn so they can be restored later static char cv_gravity[ MAX_CVAR_VALUE_STRING ]; @@ -376,8 +380,13 @@ static cvarTable_t gameCvarTable[ ] = { &g_DretchTurretDamage, "g_DretchTurretDamage", "1", CVAR_ARCHIVE, 0, qfalse }, { &g_DretchBuildingDamage, "g_DretchBuildingDamage", "0.5", CVAR_ARCHIVE, 0, qfalse }, { &g_OwnTeamBPFactor, "g_OwnTeamBPFactor", "1.0", CVAR_ARCHIVE, 0, qfalse }, - { &g_EnemyTeamBPFactor, "g_EnemyTeamBPFactor", "0.0", CVAR_ARCHIVE, 0, qfalse } + { &g_EnemyTeamBPFactor, "g_EnemyTeamBPFactor", "0.0", CVAR_ARCHIVE, 0, qfalse }, + { &g_MinAlienExtraBuildPoints, "g_MinAlienExtraBuildPoints", "-800", CVAR_ARCHIVE, 0, qfalse }, + { &g_MaxAlienExtraBuildPoints, "g_MaxAlienExtraBuildPoints", "800", CVAR_ARCHIVE, 0, qfalse }, + { &g_MinHumanExtraBuildPoints, "g_MinHumanExtraBuildPoints", "-800", CVAR_ARCHIVE, 0, qfalse }, + { &g_MaxHumanExtraBuildPoints, "g_MaxHumanExtraBuildPoints", "800", CVAR_ARCHIVE, 0, qfalse } }; + static int gameCvarTableSize = sizeof( gameCvarTable ) / sizeof( gameCvarTable[ 0 ] ); void G_InitGame( int levelTime, int randomSeed, int restart ); void G_RunFrame( int levelTime ); @@ -1403,6 +1412,16 @@ void G_CalculateBuildPoints( void ) level.alienExtraBuildPoints = g_OwnTeamBPFactor.value * (aVar + aFixed) + g_EnemyTeamBPFactor.value * (hVar + hFixed); level.humanExtraBuildPoints = g_OwnTeamBPFactor.value * (hVar + hFixed) + g_EnemyTeamBPFactor.value * (aVar + aFixed); + if (level.alienExtraBuildPoints < g_MinAlienExtraBuildPoints.value) + level.alienExtraBuildPoints = g_MinAlienExtraBuildPoints.value; + else if (level.alienExtraBuildPoints > g_MaxAlienExtraBuildPoints.value) + level.alienExtraBuildPoints = g_MaxAlienExtraBuildPoints.value; + + if (level.humanExtraBuildPoints < g_MinHumanExtraBuildPoints.value) + level.humanExtraBuildPoints = g_MinHumanExtraBuildPoints.value; + else if (level.humanExtraBuildPoints > g_MaxHumanExtraBuildPoints.value) + level.humanExtraBuildPoints = g_MaxHumanExtraBuildPoints.value; + level.humanBuildPoints += level.humanExtraBuildPoints; level.alienBuildPoints += level.alienExtraBuildPoints; } @@ -2643,8 +2662,8 @@ void G_ArmageddonStep( void ) case BA_A_SPAWN: case BA_H_SPAWN: case BA_H_ARMOURY: - case BA_H_REPEATER: - continue; //dont get killed + case BA_H_REPEATER: + continue; //dont get killed case BA_A_TRAPPER: case BA_H_MGTURRET: case BA_H_MGTURRET2: diff --git a/src/game/g_missile.c b/src/game/g_missile.c index 63f5e97..46f61af 100644 --- a/src/game/g_missile.c +++ b/src/game/g_missile.c @@ -636,9 +636,9 @@ gentity_t *NapalmChargeFire( gentity_t *self, vec3_t start, vec3_t dir, bolt->s.generic1 = self->s.generic1; //weaponMode bolt->r.ownerNum = self->s.number; bolt->parent = self; - bolt->damage = damage / 1.6; + bolt->damage = damage / 1.7; bolt->splashDamage = damage / 5.2; - bolt->splashRadius = damage /1.1 ; + bolt->splashRadius = damage / 1.1 ; bolt->methodOfDeath = MOD_FLAMES; bolt->splashMethodOfDeath = MOD_FLAMER_SPLASH; bolt->clipmask = MASK_SHOT; diff --git a/src/game/tremulous.h b/src/game/tremulous.h index ad36a93..48ef1e7 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -205,7 +205,7 @@ TREMULOUS EDGE MOD SRC FILE #define LEVEL2_AREAZAP_CHAIN_RANGE 150.0f #define LEVEL2_AREAZAP_CHAIN_FALLOFF 8.0f #define LEVEL2_AREAZAP_WIDTH 15.0f -#define LEVEL2_AREAZAP_REPEAT 1500 +#define LEVEL2_AREAZAP_REPEAT 1300 #define LEVEL2_AREAZAP_TIME 1000 #define LEVEL2_AREAZAP_MAX_TARGETS 5 #define LEVEL2_WALLJUMP_MAXSPEED 1000.0f @@ -246,14 +246,14 @@ TREMULOUS EDGE MOD SRC FILE #define LEVEL3_CLAW_K_SCALE 1.0f #define LEVEL3_CLAW_U_REPEAT 800 #define LEVEL3_CLAW_U_K_SCALE 1.0f -#define LEVEL3_POUNCE_DMG ADM(80) +#define LEVEL3_POUNCE_DMG ADM(90) #define LEVEL3_POUNCE_RANGE 48.0f #define LEVEL3_POUNCE_UPG_RANGE LEVEL3_POUNCE_RANGE + 3.0f #define LEVEL3_POUNCE_WIDTH 14.0f -#define LEVEL3_POUNCE_TIME 800 // msec for full Dragoon pounce -#define LEVEL3_POUNCE_TIME_UPG 800 // msec for full Adv. Dragoon pounce +#define LEVEL3_POUNCE_TIME 900 // msec for full Dragoon pounce +#define LEVEL3_POUNCE_TIME_UPG 900 // msec for full Adv. Dragoon pounce #define LEVEL3_POUNCE_TIME_MIN 200 // msec before which pounce cancels -#define LEVEL3_POUNCE_REPEAT 400 // msec before a new pounce starts +#define LEVEL3_POUNCE_REPEAT 400 // msec before a new pounce starts (default: 400) #define LEVEL3_POUNCE_SPEED_MOD 0.75f // walking speed modifier for pounce charging #define LEVEL3_POUNCE_JUMP_MAG 850 // Dragoon pounce jump power #define LEVEL3_POUNCE_JUMP_MAG_UPG 930 // Adv. Dragoon pounce jump power @@ -261,7 +261,7 @@ TREMULOUS EDGE MOD SRC FILE #define LEVEL3_BOUNCEBALL_REPEAT 1200 #define LEVEL3_BOUNCEBALL_SPEED 1000.0f #define LEVEL3_BOUNCEBALL_RADIUS 75 -#define LEVEL3_BOUNCEBALL_REGEN 13000 // msec until new barb +#define LEVEL3_BOUNCEBALL_REGEN 10000 // msec until new barb //Tyrant #define LEVEL4_SPEED 1.2f @@ -308,8 +308,8 @@ TREMULOUS EDGE MOD SRC FILE #define LEVEL5_PRICKLES_RADIUS 50 #define LEVEL5_PRICKLES_SPEED 1600.0f #define LEVEL5_PRICKLESSPLASH_DMG 5 -#define LEVEL5_PRICKLES_DMG 6 -#define LEVEL5_PRICKLES_RELOADTIME 160 +#define LEVEL5_PRICKLES_DMG 7 // DPS: 40 +#define LEVEL5_PRICKLES_RELOADTIME 175 #define LEVEL5_PRICKLES_AMMO 10 #define LEVEL5_PRICKLES_SPREAD 100 #define LEVEL5_POUNCE_JUMP_MAG 900 @@ -366,7 +366,7 @@ TREMULOUS EDGE MOD SRC FILE #define BLASTER_K_SCALE 1.0f #define BLASTER_SPREAD 200 #define BLASTER_SPEED 1400 -#define BLASTER_DMG HDM(10) +#define BLASTER_DMG HDM(10) // DPS: 7.14 #define BLASTER_SIZE 5 #define RIFLE_CLIPSIZE 35 @@ -376,7 +376,7 @@ TREMULOUS EDGE MOD SRC FILE #define RIFLE_RELOAD 2000 #define RIFLE_PRICE 0 #define RIFLE_SPREAD 200 -#define RIFLE_DMG HDM(5) +#define RIFLE_DMG HDM(5) // DPS: 55.55 #define RIFLE_REPEAT2 35 #define RIFLE_K_SCALE2 1.2f @@ -388,13 +388,13 @@ TREMULOUS EDGE MOD SRC FILE #define PAINSAW_PRICE 100 #define PAINSAW_REPEAT 75 #define PAINSAW_K_SCALE 1.0f -#define PAINSAW_DAMAGE HDM(11) +#define PAINSAW_DAMAGE HDM(11) // DPS: 146.67 #define PAINSAW_RANGE 64.0f #define PAINSAW_WIDTH 0.0f #define PAINSAW_HEIGHT 8.0f #define PAINSAW_REPEAT2 3000 -#define PAINSAW_DAMAGE2 HDM(60) +#define PAINSAW_DAMAGE2 HDM(60) // DPS: 20 #define PAINSAW_DAMAGESPLASH2 5 #define PAINSAW_BLADELIFETIME 3500 #define PAINSAW_BLADESPEED 800.0f @@ -423,8 +423,8 @@ TREMULOUS EDGE MOD SRC FILE #define NADEFLAMES_SPEED 400.0f #define CHECK_FREQUENCY 100 -#define FLAMES_RANGE 40.0f -#define FLAMES_DETECT 50.0f +#define FLAMES_RANGE 40.0f +#define FLAMES_DETECT 50.0f #define FLAMES_CHECK_FREQUENCY 100 #define FLAMES_SPEED 400.0f @@ -445,7 +445,7 @@ TREMULOUS EDGE MOD SRC FILE #define SHOTGUN_K_SCALE 1.0f #define SHOTGUN_RELOAD 2000 #define SHOTGUN_SPREAD 700 -#define SHOTGUN_DMG HDM(5) +#define SHOTGUN_DMG HDM(5) // DPS: 55 #define SHOTGUN_RANGE (8192 * 12) #define LASGUN_PRICE 250 @@ -453,7 +453,7 @@ TREMULOUS EDGE MOD SRC FILE #define LASGUN_REPEAT 190 #define LASGUN_K_SCALE 1.0f #define LASGUN_RELOAD 2000 -#define LASGUN_DAMAGE HDM(9) +#define LASGUN_DAMAGE HDM(9) // DPS: 47.37 #define LASGUN_REPEAT2 5000 #define LASGUN_PUSH_DURATION 4000 @@ -466,7 +466,7 @@ TREMULOUS EDGE MOD SRC FILE #define MDRIVER_PRICE 350 #define MDRIVER_CLIPSIZE 5 #define MDRIVER_MAXCLIPS 3 -#define MDRIVER_DMG HDM(40) +#define MDRIVER_DMG HDM(40) // DPS: 40 #define MDRIVER_REPEAT 1000 #define MDRIVER_K_SCALE 1.0f #define MDRIVER_RELOAD 2200 @@ -483,17 +483,17 @@ TREMULOUS EDGE MOD SRC FILE #define CHAINGUN_REPEAT 80 #define CHAINGUN_K_SCALE 1.0f #define CHAINGUN_SPREAD 1100 -#define CHAINGUN_DMG HDM(6) +#define CHAINGUN_DMG HDM(6) // DPS: 75 #define CHAINGUN_REPEAT2 120 #define CHAINGUN_SPREAD2 550 -#define CHAINGUN_DMG2 HDM(6) +#define CHAINGUN_DMG2 HDM(6) // DPS: 50 #define FLAMER_PRICE 550 #define FLAMER_GAS 200 #define FLAMER_REPEAT 150 #define FLAMER_K_SCALE 2.0f -#define FLAMER_DMG HDM(20) +#define FLAMER_DMG HDM(20) // DPS: 133.33 #define FLAMER_SPLASHDAMAGE HDM(12) #define FLAMER_RADIUS 50 // splash radius #define FLAMER_SIZE 12 // missile bounding box @@ -501,6 +501,11 @@ TREMULOUS EDGE MOD SRC FILE #define FLAMER_LIFETIME2 600.0f #define FLAMER_SPEED 550.0f #define FLAMER_LAG 0.65f // the amount of player velocity that is added to the fireball +#define FLAMER2_LIFETIME 350.0f +#define FLAMER_CHARGE_TIME_MIN 200 +#define FLAMER_CHARGE_TIME_MAX 3000 +#define FLAMER_CHARGE_AMMO 50 // ammo cost of a full charge shot +#define FLAMER_SECONDARY_REPEAT 200 #define PRIFLE_PRICE 450 #define PRIFLE_CLIPS 40 @@ -508,7 +513,7 @@ TREMULOUS EDGE MOD SRC FILE #define PRIFLE_REPEAT 100 #define PRIFLE_K_SCALE 1.0f #define PRIFLE_RELOAD 2000 -#define PRIFLE_DMG HDM(9) +#define PRIFLE_DMG HDM(9) // DPS: 90 #define PRIFLE_SPEED 1200 #define PRIFLE_SIZE 5 #define PRIFLE_SECONDARY_SPEED 900 @@ -517,7 +522,7 @@ TREMULOUS EDGE MOD SRC FILE #define LIGHTNING_PRICE 500 #define LIGHTNING_AMMO 300 #define LIGHTNING_K_SCALE 1 -#define LIGHTNING_DPS 140 +#define LIGHTNING_DPS 100 #define LIGHTNING_DIFFICULTY 2 #define LIGHTNING_REPEAT 50 // keep it as low as possible #define LIGHTNING_DAMAGE ( LIGHTNING_DPS * LIGHTNING_REPEAT / 1000 ) @@ -528,7 +533,7 @@ TREMULOUS EDGE MOD SRC FILE #define LCANNON_K_SCALE 1.0f #define LCANNON_REPEAT 500 #define LCANNON_RELOAD 0 -#define LCANNON_DAMAGE HDM(265) +#define LCANNON_DAMAGE HDM(265) // DPS: 88.33 #define LCANNON_RADIUS 150 // primary splash damage radius #define LCANNON_SIZE 5 // missile bounding box radius #define LCANNON_SECONDARY_DAMAGE HDM(30) @@ -542,21 +547,16 @@ TREMULOUS EDGE MOD SRC FILE #define LCANNON_CHARGE_TIME_WARN 2000 #define LCANNON_CHARGE_AMMO 10 // ammo cost of a full charge shot -#define FLAMER_CHARGE_TIME_MIN 200 -#define FLAMER_CHARGE_TIME_MAX 3000 -#define FLAMER_CHARGE_AMMO 50 // ammo cost of a full charge shot -#define FLAMER_SECONDARY_REPEAT 200 - #define ROCKETL_PRICE 700 #define ROCKETL_AMMO 20 #define ROCKETL_CLIPS 1 #define ROCKETL_RELOAD 0 #define ROCKETL_REPEAT 1200 #define ROCKETL_K_SCALE 1.0f -#define ROCKETL_DAMAGE HDM(80) +#define ROCKETL_DAMAGE HDM(80) // DPS: 66.67 #define ROCKETL_RADIUS 80 #define ROCKETL_SIZE 5 -#define ROCKETL_SPEED 700 +#define ROCKETL_SPEED 500 #define HBUILD_PRICE 0 #define HBUILD_REPEAT 1000 @@ -667,6 +667,7 @@ TREMULOUS EDGE MOD SRC FILE #define BOOSTER_SPLASHRADIUS 100 #define BOOSTER_CREEPSIZE 70 #define BOOSTER_REGEN_MOD 3.0f +#define COCOON_REGEN_MOD 4.6f #define BOOSTER_VALUE ABVM(BOOSTER_BP) #define BOOST_TIME 20000 #define BOOST_WARN_TIME 15000 @@ -686,7 +687,7 @@ TREMULOUS EDGE MOD SRC FILE #define HIVE_BP 8 #define HIVE_BT 13000 -#define HIVE_HEALTH ABHM(130) +#define HIVE_HEALTH ABHM(160) #define HIVE_REGEN 10 #define HIVE_SPLASHDAMAGE 30 #define HIVE_SPLASHRADIUS 200 @@ -697,12 +698,12 @@ TREMULOUS EDGE MOD SRC FILE #define HIVE_K_SCALE 1.0f #define HIVE_DMG 80 #define HIVE_SPEED 340.0f -#define HIVE_DIR_CHANGE_PERIOD 500 +#define HIVE_DIR_CHANGE_PERIOD 400 #define HIVE_VALUE ABVM(HIVE_BP) #define TRAPPER_BP 4 #define TRAPPER_BT 5000 -#define TRAPPER_HEALTH ABHM(50) +#define TRAPPER_HEALTH ABHM(100) #define TRAPPER_REGEN 6 #define TRAPPER_SPLASHDAMAGE 15 #define TRAPPER_SPLASHRADIUS 100 @@ -727,28 +728,28 @@ TREMULOUS EDGE MOD SRC FILE #define OVERMIND_ATTACK_REPEAT 1000 #define OVERMIND_VALUE ABVM(50) -#define PANZER_SMALL_BP 1 -#define PANZER_SMALL_BT 3000 -#define PANZER_SMALL_HEALTH ABHM(100) -#define PANZER_SMALL_REGEN 1 +#define PANZER_SMALL_BP 4 +#define PANZER_SMALL_BT 4000 +#define PANZER_SMALL_HEALTH ABHM(160) +#define PANZER_SMALL_REGEN 8 #define PANZER_SMALL_SPLASHDAMAGE 1 #define PANZER_SMALL_SPLASHRADIUS 10 #define PANZER_SMALL_CREEPSIZE 0 #define PANZER_SMALL_VALUE ABVM(PANZER_SMALL_BP) -#define PANZER_MEDIUM_BP 2 -#define PANZER_MEDIUM_BT 9000 -#define PANZER_MEDIUM_HEALTH ABHM(250) -#define PANZER_MEDIUM_REGEN 1 +#define PANZER_MEDIUM_BP 7 +#define PANZER_MEDIUM_BT 7000 +#define PANZER_MEDIUM_HEALTH ABHM(260) +#define PANZER_MEDIUM_REGEN 10 #define PANZER_MEDIUM_SPLASHDAMAGE 5 #define PANZER_MEDIUM_SPLASHRADIUS 40 #define PANZER_MEDIUM_CREEPSIZE 0 #define PANZER_MEDIUM_VALUE ABVM(PANZER_MEDIUM_BP) -#define PANZER_LARGE_BP 5 -#define PANZER_LARGE_BT 18000 -#define PANZER_LARGE_HEALTH ABHM(450) -#define PANZER_LARGE_REGEN 1 +#define PANZER_LARGE_BP 9 +#define PANZER_LARGE_BT 9000 +#define PANZER_LARGE_HEALTH ABHM(400) +#define PANZER_LARGE_REGEN 12 #define PANZER_LARGE_SPLASHDAMAGE 10 #define PANZER_LARGE_SPLASHRADIUS 70 #define PANZER_LARGE_CREEPSIZE 0 @@ -964,7 +965,6 @@ TREMULOUS EDGE MOD SRC FILE #define MGTURRET2_DMG HDM(18) #define MGTURRET2_SPINUP_TIME 550 // time between target sighted and fire #define MGTURRET2_VALUE HBVM(MGTURRET2_BP) -#define FLAMER2_LIFETIME 350.0f #define TESLAGEN_BP 10 #define TESLAGEN_BT 15000 @@ -1015,23 +1015,23 @@ TREMULOUS EDGE MOD SRC FILE #define REPEATER_VALUE HBVM(REPEATER_BP) //EDGE BUILDINGS HUMANS -#define CONTAINER_SMALL_BP 1 -#define CONTAINER_SMALL_BT 3000 -#define CONTAINER_SMALL_HEALTH HBHM(60) +#define CONTAINER_SMALL_BP 5 +#define CONTAINER_SMALL_BT 5000 +#define CONTAINER_SMALL_HEALTH HBHM(180) #define CONTAINER_SMALL_SPLASHDAMAGE 1 #define CONTAINER_SMALL_SPLASHRADIUS 10 #define CONTAINER_SMALL_VALUE HBVM(CONTAINER_SMALL_BP) -#define CONTAINER_MEDIUM_BP 2 -#define CONTAINER_MEDIUM_BT 9000 -#define CONTAINER_MEDIUM_HEALTH HBHM(250) +#define CONTAINER_MEDIUM_BP 8 +#define CONTAINER_MEDIUM_BT 8000 +#define CONTAINER_MEDIUM_HEALTH HBHM(280) #define CONTAINER_MEDIUM_SPLASHDAMAGE 5 #define CONTAINER_MEDIUM_SPLASHRADIUS 40 #define CONTAINER_MEDIUM_VALUE HBVM(CONTAINER_MEDIUM_BP) -#define CONTAINER_LARGE_BP 5 -#define CONTAINER_LARGE_BT 18000 -#define CONTAINER_LARGE_HEALTH HBHM(450) +#define CONTAINER_LARGE_BP 10 +#define CONTAINER_LARGE_BT 10000 +#define CONTAINER_LARGE_HEALTH HBHM(420) #define CONTAINER_LARGE_SPLASHDAMAGE 10 #define CONTAINER_LARGE_SPLASHRADIUS 70 #define CONTAINER_LARGE_VALUE HBVM(CONTAINER_LARGE_BP) @@ -1057,30 +1057,30 @@ TREMULOUS EDGE MOD SRC FILE #define FENCE_SPLASHRADIUS 50 #define FENCE_VALUE HBVM(FENCE_BP) -#define FENCE_ROD_BP 2 +#define FENCE_ROD_BP 5 #define FENCE_ROD_BT 5000 -#define FENCE_ROD_HEALTH HBHM(50) +#define FENCE_ROD_HEALTH HBHM(120) #define FENCE_ROD_SPLASHDAMAGE 5 #define FENCE_ROD_SPLASHRADIUS 20 #define FENCE_ROD_VALUE HBVM(FENCE_ROD_BP) #define BARRIER_LINE_BP 2 #define BARRIER_LINE_BT 10000 -#define BARRIER_LINE_HEALTH HBHM(350) +#define BARRIER_LINE_HEALTH HBHM(280) #define BARRIER_LINE_SPLASHDAMAGE 10 #define BARRIER_LINE_SPLASHRADIUS 50 #define BARRIER_LINE_VALUE HBVM(BARRIER_LINE_BP) #define BARRIER_CORNER_BP 2 #define BARRIER_CORNER_BT 10000 -#define BARRIER_CORNER_HEALTH HBHM(350) +#define BARRIER_CORNER_HEALTH HBHM(280) #define BARRIER_CORNER_SPLASHDAMAGE 10 #define BARRIER_CORNER_SPLASHRADIUS 50 #define BARRIER_CORNER_VALUE HBVM(BARRIER_CORNER_BP) #define BARRIER_POINT_BP 3 #define BARRIER_POINT_BT 10000 -#define BARRIER_POINT_HEALTH HBHM(350) +#define BARRIER_POINT_HEALTH HBHM(320) #define BARRIER_POINT_SPLASHDAMAGE 10 #define BARRIER_POINT_SPLASHRADIUS 50 #define BARRIER_POINT_VALUE HBVM(BARRIER_POINT_BP) -- cgit