diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cgame/cg_event.c | 6 | ||||
| -rw-r--r-- | src/cgame/cg_tutorial.c | 23 | ||||
| -rw-r--r-- | src/game/bg_misc.c | 58 | ||||
| -rw-r--r-- | src/game/bg_mod.h | 1 | ||||
| -rw-r--r-- | src/game/bg_pmove.c | 9 | ||||
| -rw-r--r-- | src/game/bg_public.h | 2 | ||||
| -rw-r--r-- | src/game/g_csw.h | 1 | ||||
| -rw-r--r-- | src/game/g_weapon.c | 4 | ||||
| -rw-r--r-- | src/game/tremulous.h | 16 | 
9 files changed, 118 insertions, 2 deletions
diff --git a/src/cgame/cg_event.c b/src/cgame/cg_event.c index 7e20cc5..436e819 100644 --- a/src/cgame/cg_event.c +++ b/src/cgame/cg_event.c @@ -361,6 +361,12 @@ static void CG_Obituary( entityState_t *ent )        case MOD_LEVEL0_BITE:          message = "^5was bitten by^7";          break; +      case MOD_LEVEL1_CLAW: +        message = "^5was swiped by^7"; +        Com_sprintf( className, 64, "^5's %s", +            BG_ClassConfig( PCL_ALIEN_LEVEL1 )->humanName ); +        message2 = className; +        break;        case MOD_LEVEL2_CLAW:        case MOD_LEVEL2_CLAW_UPG:          message = "^5was clawed by^7"; diff --git a/src/cgame/cg_tutorial.c b/src/cgame/cg_tutorial.c index 0819892..b44b2f1 100644 --- a/src/cgame/cg_tutorial.c +++ b/src/cgame/cg_tutorial.c @@ -258,6 +258,25 @@ static void CG_AlienLevel0Text( char *text, playerState_t *ps )  /*  =============== +CG_AlienLevel1Text +=============== +*/ +static void CG_AlienLevel1Text( char *text, playerState_t *ps ) +{ +  Q_strcat( text, MAX_TUTORIAL_TEXT, +      "Touch humans to grab them\n" ); + +  Q_strcat( text, MAX_TUTORIAL_TEXT, +      va( "Press %s to swipe\n", +        CG_KeyNameForCommand( "+attack" ) ) ); + +  Q_strcat( text, MAX_TUTORIAL_TEXT, +      va( "Press %s to walk on walls\n", +        CG_KeyNameForCommand( "+movedown" ) ) ); +} + +/* +===============  CG_AlienLevel2Text  ===============  */ @@ -631,6 +650,10 @@ const char *CG_TutorialText( void )            CG_AlienLevel0Text( text, ps );            break; +        case PCL_ALIEN_LEVEL1: +          CG_AlienLevel1Text( text, ps ); +          break; +          case PCL_ALIEN_LEVEL2:          case PCL_ALIEN_LEVEL2_UPG:            CG_AlienLevel2Text( text, ps ); diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 0780ab8..33d4138 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -2253,11 +2253,42 @@ static const classAttributes_t bg_classList[ ] =      400.0f,                                         //float   stopSpeed;      250.0f,                                         //float   jumpMagnitude;      2.0f,                                           //float   knockbackScale; -    { PCL_ALIEN_LEVEL2, PCL_NONE },                 //int     children[ 3 ]; +    { PCL_ALIEN_LEVEL1, PCL_NONE },                 //int     children[ 3 ];      LEVEL0_COST,                                    //int     cost;      LEVEL0_VALUE,                                    //int     value;    },    { +    PCL_ALIEN_LEVEL1,                               //int     classnum; +    "level1",                                       //char    *classname; +    "A support class able to crawl on walls and ceilings. Its melee " +      "attack is most effective when combined with the ability to grab " +      "and hold its victims in place. Provides a weak healing aura " +      "that accelerates the healing rate of nearby aliens. It also has " +      "an acid bomb that can be used to deal moderate area damage. " +      "The basilisk is also resistant to flamer.", +    STAGE_GE_1,                                     //int     stages +    LEVEL1_HEALTH,                                  //int     health; +    0.0f,                                           //float   fallDamage; +    LEVEL1_REGEN,                                   //float   regenRate; +    SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE,    //int     abilities; +    WP_ALEVEL1,                                     //weapon_t  startWeapon +    0.0f,                                           //float   buildDist; +    120,                                            //int     fov; +    0.001f,                                         //float   bob; +    1.8f,                                           //float   bobCycle; +    60,                                             //int     steptime; +    LEVEL1_SPEED,                                   //float   speed; +    10.0f,                                          //float   acceleration; +    1.0f,                                           //float   airAcceleration; +    6.0f,                                           //float   friction; +    300.0f,                                         //float   stopSpeed; +    310.0f,                                         //float   jumpMagnitude; +    1.2f,                                           //float   knockbackScale; +    { PCL_ALIEN_LEVEL2, PCL_NONE, PCL_NONE },       //int     children[ 3 ]; +    LEVEL1_COST,                                    //int     cost; +    LEVEL1_VALUE,                                   //int     value; +  }, +  {      PCL_ALIEN_LEVEL2,                               //int     classnum;      "level2",                                       //char    *classname;      "Has a melee attack and the ability to jump off walls. This " @@ -2986,6 +3017,31 @@ static const weaponAttributes_t bg_weapons[ ] =      TEAM_ALIENS           //team_t    team;    },    { +    WP_ALEVEL1,           //int       weaponNum; +    0,                    //int       price; +    STAGE_GE_1,           //int  stages +    SLOT_WEAPON,          //int       slots; +    "level1",             //char      *weaponName; +    "Claws",              //char      *humanName; +    "", +    1,                    //int       maxAmmo; +    0,                    //int       maxClips; +    qtrue,                //int       infiniteAmmo; +    qfalse,               //int       usesEnergy; +    LEVEL1_CLAW_REPEAT,   //int       repeatRate1; +    0,                    //int       repeatRate2; +    0,                    //int       repeatRate3; +    0,                    //int       reloadTime; +    LEVEL1_CLAW_K_SCALE,  //float     knockbackScale; +    qfalse,               //qboolean  hasAltMode; +    qfalse,               //qboolean  hasThirdMode; +    qfalse,               //qboolean  canZoom; +    90.0f,                //float     zoomFov; +    qfalse,               //qboolean  purchasable; +    qfalse,               //qboolean  longRanged; +    TEAM_ALIENS           //team_t    team; +  }, +  {      WP_ALEVEL2,           //int       weaponNum;      0,                    //int       price;      STAGE_GE_2,           //int  stages diff --git a/src/game/bg_mod.h b/src/game/bg_mod.h index a34b7f5..1db77dc 100644 --- a/src/game/bg_mod.h +++ b/src/game/bg_mod.h @@ -31,6 +31,7 @@ MOD( MOD_TARGET_LASER, CSW_UNKNOWN ),  MOD( MOD_TRIGGER_HURT, CSW_UNKNOWN ),  MOD( MOD_ABUILDER_CLAW, CSW_ABUILDER ),  MOD( MOD_LEVEL0_BITE, CSW_UNKNOWN ), +MOD( MOD_LEVEL1_CLAW, CSW_LEVEL1 ),  MOD( MOD_LEVEL3_CLAW, CSW_LEVEL3 ),  MOD( MOD_LEVEL3_POUNCE, CSW_UNKNOWN ),  MOD( MOD_LEVEL5_POUNCE, CSW_UNKNOWN ), diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c index 3b36d9e..8ab7282 100644 --- a/src/game/bg_pmove.c +++ b/src/game/bg_pmove.c @@ -3482,6 +3482,15 @@ static void PM_Weapon( void )      //       weapon.cfg      switch( pm->ps->weapon )      { +      case WP_ALEVEL1: +        if( attack1 ) +        { +          num /= RAND_MAX / 6 + 1; +          PM_ForceLegsAnim( NSPA_ATTACK1 ); +          PM_StartWeaponAnim( WANIM_ATTACK1 + num ); +        } +        break; +        case WP_ALEVEL2_UPG:          if( attack2 )          { diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 6c0e626..8f12356 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -345,6 +345,7 @@ typedef enum  {    WP_NONE,    WP_ALEVEL0, +  WP_ALEVEL1,    WP_ALEVEL2,    WP_ALEVEL2_UPG,    WP_ALEVEL5, @@ -793,6 +794,7 @@ typedef enum    PCL_ALIEN_BUILDER0_UPG,    //offensive classes    PCL_ALIEN_LEVEL0, +  PCL_ALIEN_LEVEL1,    PCL_ALIEN_LEVEL2,    PCL_ALIEN_LEVEL2_UPG,    PCL_ALIEN_LEVEL5, diff --git a/src/game/g_csw.h b/src/game/g_csw.h index 49e2088..96158b7 100644 --- a/src/game/g_csw.h +++ b/src/game/g_csw.h @@ -17,6 +17,7 @@ CSW( CSW_GRENADE,       MOD_GRENADE,    "Grenade",         GRENADE_DAMAGE ),  CSW( CSW_ABUILDER,      MOD_ABUILDER_CLAW,     "Granger",         ABUILDER_CLAW_DMG ),  CSW( CSW_ABUILDER_ALT,  MOD_SLOWBLOB,          "Granger Spit",    ABUILDER_BLOB_DMG ), +CSW( CSW_LEVEL1,        MOD_LEVEL1_CLAW,       "Basilisk",        LEVEL1_CLAW_DMG ),  CSW( CSW_LEVEL2,        MOD_LEVEL2_CLAW,       "Marauder",        LEVEL2_CLAW_DMG ),  CSW( CSW_LEVEL2_UPG,    MOD_LEVEL2_CLAW_UPG,   "Adv. Marauder",   LEVEL2_CLAW_UPG_DMG ),  CSW( CSW_LEVEL2_ALT,    MOD_LEVEL2_ZAP,        "Marauder Zap",    LEVEL2_AREAZAP_DMG ), diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 586af40..90eb069 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -1763,6 +1763,10 @@ void FireWeapon( gentity_t *ent )    // fire the specific weapon    switch( ent->s.weapon )    { +    case WP_ALEVEL1: +      meleeAttack( ent, LEVEL1_CLAW_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH, +                   LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW ); +      break;      case WP_ALEVEL3:        meleeAttack( ent, LEVEL3_CLAW_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_WIDTH,                     LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW ); diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 95b6398..f548b58 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -125,12 +125,26 @@ TREMULOUS EDGE MOD SRC FILE  #define LEVEL0_BITE_REPEAT          500  #define LEVEL0_BITE_K_SCALE         1.0f +//Basilik +#define LEVEL1_SPEED                1.25f +#define LEVEL1_VALUE                AVM(270) +#define LEVEL1_HEALTH               AHM(60) +#define LEVEL1_REGEN                (0.03f * LEVEL1_HEALTH) +#define LEVEL1_COST                 1 + +#define LEVEL1_CLAW_DMG             ADM(32) +#define LEVEL1_CLAW_RANGE           64.0f +#define LEVEL1_CLAW_U_RANGE         LEVEL1_CLAW_RANGE + 3.0f +#define LEVEL1_CLAW_WIDTH           10.0f +#define LEVEL1_CLAW_REPEAT          600 +#define LEVEL1_CLAW_K_SCALE         1.0f +  //Marauder  #define LEVEL2_SPEED                1.2f  #define LEVEL2_VALUE                AVM(420)  #define LEVEL2_HEALTH               AHM(150)  #define LEVEL2_REGEN                (0.03f * LEVEL2_HEALTH) -#define LEVEL2_COST                 2 +#define LEVEL2_COST                 1  #define LEVEL2_UPG_SPEED            1.2f  #define LEVEL2_UPG_VALUE            AVM(540)  #define LEVEL2_UPG_HEALTH           AHM(175)  | 
