Changeset 78:dcde131dddae

Show
Ignore:
Timestamp:
11/22/07 12:12:01 (3 years ago)
Author:
mdoison
Branch:
madcat
convert_revision:
svn:7c786126-522e-0410-a822-d6d8feae56ca/branches/madcat@100
Message:

add goon.patch (tjw 1.2)

  • goon+ is now at s2
  • improve goons capacities
  • pounce give always a knockback
  • improve pounce effect
  • give splash damage to pounceball
Location:
src/game
Files:
8 modified

Legend:

Unmodified
Added
Removed
  • src/game/bg_misc.c

    r76 r78  
    18841884    1.0f,                                           //float   shadowScale; 
    18851885    "alien_general_hud",                            //char    *hudname; 
    1886     ( 1 << S3 ),                                    //int  stages 
     1886    ( 1 << S2 )|( 1 << S3 ),                                    //int  stages 
    18871887    { -32, -32, -21 },                              //vec3_t  mins; 
    18881888    { 32, 32, 21 },                                 //vec3_t  maxs; 
  • src/game/bg_pmove.c

    r76 r78  
    523523    && ( pm->ps->pm_flags & PMF_CHARGE ) ) 
    524524  { 
    525     pm->ps->weaponTime += LEVEL3_POUNCE_TIME; 
    526525    pm->ps->pm_flags &= ~PMF_CHARGE; 
     526    return qfalse; 
    527527  } 
    528528 
     
    28682868      attack3 = pm->cmd.buttons & BUTTON_USE_HOLDABLE; 
    28692869 
    2870       if( !pm->autoWeaponHit[ pm->ps->weapon ] && !attack1 && !attack2 && !attack3 ) 
    2871       { 
    2872         pm->ps->weaponTime = 0; 
    2873         pm->ps->weaponstate = WEAPON_READY; 
     2870      // pounce is autohit 
     2871      if( !attack1 && !attack2 && !attack3 ) 
    28742872        return; 
    2875       } 
    28762873      break; 
    28772874 
  • src/game/g_active.c

    r77 r78  
    634634      if( client->ps.stats[ STAT_MISC ] < pounceSpeed && ucmd->buttons & BUTTON_ATTACK2 ) 
    635635        client->ps.stats[ STAT_MISC ] += ( 100.0f / (float)LEVEL3_POUNCE_CHARGE_TIME ) * pounceSpeed; 
    636  
    637       if( !( ucmd->buttons & BUTTON_ATTACK2 ) ) 
    638       { 
    639         if( client->pmext.pouncePayload > 0 ) 
    640           client->allowedToPounce = qtrue; 
    641       } 
    642636 
    643637      if( client->ps.stats[ STAT_MISC ] > pounceSpeed ) 
  • src/game/g_combat.c

    r68 r78  
    987987  } 
    988988 
     989  // ...and for goon pouncing 
     990  if( mod == MOD_LEVEL3_POUNCE ) 
     991    knockback *= 1.5f; 
     992 
    989993  if( targ->client ) 
    990994  { 
  • src/game/g_local.h

    r77 r78  
    453453  int                 medKitIncrementTime; 
    454454  int                 lastCreepSlowTime;    // time until creep can be removed 
    455  
    456   qboolean            allowedToPounce; 
    457455 
    458456  qboolean            charging; 
  • src/game/g_missile.c

    r0 r78  
    791791  bolt->parent = self; 
    792792  bolt->damage = LEVEL3_BOUNCEBALL_DMG; 
    793   bolt->splashDamage = 0; 
    794   bolt->splashRadius = 0; 
     793  bolt->splashDamage = LEVEL3_BOUNCEBALL_DMG; 
     794  bolt->splashRadius = LEVEL3_BOUNCEBALL_RADIUS; 
    795795  bolt->methodOfDeath = MOD_LEVEL3_BOUNCEBALL; 
    796796  bolt->splashMethodOfDeath = MOD_LEVEL3_BOUNCEBALL; 
  • src/game/g_weapon.c

    r77 r78  
    11691169  int       damage; 
    11701170  vec3_t    mins, maxs; 
     1171  int       payload; 
     1172 
     1173  if( ent->client->pmext.pouncePayload <= 0 ) 
     1174    return qfalse; 
     1175 
     1176  // in case the goon lands on his target, he get's one shot after landing 
     1177  payload = ent->client->pmext.pouncePayload; 
     1178  if( !( ent->client->ps.pm_flags & PMF_CHARGE ) ) 
     1179    ent->client->pmext.pouncePayload = 0; 
    11711180 
    11721181  VectorSet( mins, -LEVEL3_POUNCE_WIDTH, -LEVEL3_POUNCE_WIDTH, -LEVEL3_POUNCE_WIDTH ); 
    11731182  VectorSet( maxs, LEVEL3_POUNCE_WIDTH, LEVEL3_POUNCE_WIDTH, LEVEL3_POUNCE_WIDTH ); 
    1174  
    1175   if( ent->client->ps.groundEntityNum != ENTITYNUM_NONE ) 
    1176   { 
    1177     ent->client->allowedToPounce = qfalse; 
    1178     ent->client->pmext.pouncePayload = 0; 
    1179   } 
    1180  
    1181   if( !ent->client->allowedToPounce ) 
    1182     return qfalse; 
    11831183 
    11841184  if( ent->client->ps.weaponTime ) 
     
    12121212    tent->s.eventParm = DirToByte( tr.plane.normal ); 
    12131213    tent->s.weapon = ent->s.weapon; 
    1214     tent->s.generic1 = ent->s.generic1; //weaponMode 
     1214    tent->s.generic1 = WPM_SECONDARY; 
    12151215  } 
    12161216 
     
    12181218    return qfalse; 
    12191219 
    1220   damage = (int)( ( (float)ent->client->pmext.pouncePayload 
    1221     / (float)LEVEL3_POUNCE_SPEED ) * LEVEL3_POUNCE_DMG ); 
     1220  damage = (int)( ( (float)payload / (float)LEVEL3_POUNCE_SPEED ) 
     1221    * LEVEL3_POUNCE_DMG ); 
    12221222 
    12231223  ent->client->pmext.pouncePayload = 0; 
    12241224 
    12251225  G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, 
    1226       DAMAGE_NO_KNOCKBACK|DAMAGE_NO_LOCDAMAGE, MOD_LEVEL3_POUNCE ); 
    1227  
    1228   ent->client->allowedToPounce = qfalse; 
     1226      DAMAGE_NO_LOCDAMAGE, MOD_LEVEL3_POUNCE ); 
     1227 
     1228  ent->client->ps.weaponTime += LEVEL3_POUNCE_TIME; 
    12291229 
    12301230  return qtrue; 
     
    14081408      break; 
    14091409    case WP_ALEVEL3: 
     1410      meleeAttack( ent, LEVEL3_CLAW_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW ); 
     1411      break; 
    14101412    case WP_ALEVEL3_UPG: 
    1411       meleeAttack( ent, LEVEL3_CLAW_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW ); 
     1413      meleeAttack( ent, LEVEL3_CLAW_UPG_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW ); 
    14121414      break; 
    14131415    case WP_ALEVEL2: 
  • src/game/tremulous.h

    r77 r78  
    8888 
    8989#define LEVEL3_CLAW_DMG             ADM(80) 
    90 #define LEVEL3_CLAW_RANGE           96.0f 
    91 #define LEVEL3_CLAW_WIDTH           16.0f 
     90#define LEVEL3_CLAW_RANGE           72.0f 
     91#define LEVEL3_CLAW_UPG_RANGE       96.0f 
     92#define LEVEL3_CLAW_WIDTH           12.0f 
    9293#define LEVEL3_CLAW_REPEAT          700 
    9394#define LEVEL3_CLAW_K_SCALE         1.0f 
     
    101102#define LEVEL3_POUNCE_SPEED_MOD     0.75f 
    102103#define LEVEL3_POUNCE_CHARGE_TIME   700 
     104#define LEVEL3_POUNCE_CHARGE_MIN    400 
    103105#define LEVEL3_POUNCE_TIME          400 
    104106#define LEVEL3_BOUNCEBALL_DMG       ADM(110) 
    105107#define LEVEL3_BOUNCEBALL_REPEAT    1000 
    106108#define LEVEL3_BOUNCEBALL_SPEED     1000.0f 
     109#define LEVEL3_BOUNCEBALL_RADIUS    30 
    107110 
    108111#define LEVEL4_CLAW_DMG             ADM(100)