//-----------------------------------------------------------------------------
//
//  $Logfile:: /Quake 2 Engine/Sin/code/game/assaultrifle.cpp                 $
// $Revision:: 33                                                             $
//   $Author:: Markd                                                          $
//     $Date:: 11/15/98 9:12p                                                 $
//
// Copyright (C) 1998 by Ritual Entertainment, Inc.
// All rights reserved.
//
// This source is may not be distributed and/or modified without
// expressly written permission by Ritual Entertainment, Inc.
//
// $Log:: /Quake 2 Engine/Sin/code/game/assaultrifle.cpp                      $
// 
// 33    11/15/98 9:12p Markd
// Put in more precaching for models and sprites
// 
// 32    11/13/98 3:30p Markd
// put in more precaching on weapons
// 
// 31    10/05/98 10:18p Aldie
// Covnverted over to new silencer methods
// 
// 30    8/29/98 5:26p Markd
// added specialfx, replaced misc with specialfx where appropriate
// 
// 29    8/19/98 6:37p Markd
// Moved Assault rifle tracer into def file
// 
// 28    8/06/98 10:53p Aldie
// Added weapon tweaks and kickback.  Also modified blast radius damage and
// rocket jumping.
// 
// 27    8/04/98 11:57a Aldie
// Increased spread
// 
// 26    8/01/98 3:24p Aldie
// Added server effects flag for specific weapons
// 
// 25    8/01/98 3:03p Aldie
// Client side muzzle flash (dynamic light)
// 
// 24    7/26/98 4:06p Aldie
// 
// 23    7/26/98 3:59p Aldie
// Less muzzleflashes
// 
// 22    7/22/98 10:40p Aldie
// Fixed tracers
// 
// 21    7/22/98 9:57p Markd
// Defined weapon type
// 
// 20    7/21/98 1:10p Aldie
// Added meansofdeath to obituaries
// 
// 19    7/12/98 5:48p Jimdose
// changed timing on tracers to once every 5 frames
// 
// 18    7/12/98 5:37p Jimdose
// Recoded the tracer fire based on framenum.  Frametime was being used as if
// it had millisecond precision.
// 
// 17    6/19/98 9:29p Jimdose
// Moved gun orientation code to Weapon
// 
// 16    6/18/98 3:56p Aldie
// Made a tracer for the assaultrifle.
// 
// 15    6/15/98 9:08p Aldie
// Added SilencedBullet class for silencers
// 
// 14    6/10/98 2:10p Aldie
// Updated damage function.
// 
// 13    6/08/98 7:21p Aldie
// Updated attack time
// 
// 12    4/20/98 1:56p Markd
// SINED decelration is now in def file
// 
// 11    4/18/98 3:08p Markd
// Changed view weapon naming convention
// 
// 10    4/09/98 3:29p Jimdose
// Removed sound from shoot since anim plays it
// 
// 9     4/07/98 6:42p Jimdose
// Rewrote weapon code.
// Added order to rank
// 
// 8     4/05/98 2:58a Jimdose
// changed attack time (again)
// 
// 7     4/04/98 6:01p Jimdose
// Changed attack time
// 
// 6     4/02/98 4:20p Jimdose
// Tweaked for DM
// 
// 5     3/30/98 9:54p Jimdose
// Changed location of .def files
// 
// 4     3/30/98 2:34p Jimdose
// Moved firing to BulletWeapon to make more general
// Added Ammo
// Added world models
// 
// 3     3/27/98 11:04p Jimdose
// added muzzle flash
// 
// 2     3/27/98 6:34p Jimdose
// created file
// 
// DESCRIPTION:
// Assault rifle
// 

#include "g_local.h"
#include "assaultrifle.h"

CLASS_DECLARATION( BulletWeapon, AssaultRifle, "weapon_assaultrifle" );

ResponseDef AssaultRifle::Responses[] =
	{
	   { &EV_Weapon_Shoot, ( Response )&AssaultRifle::Shoot },
		{ NULL, NULL }
	};

AssaultRifle::AssaultRifle()
	{
	SetModels( "asrifle.def", "view_asrifle.def" );
	SetAmmo( "Bullet10mm", 1, 30 );
	SetRank( 40, 40 );	 
   SetType( WEAPON_2HANDED_LO );
   modelIndex( "10mm.def" );
   modelIndex( "sprites/gunblast.spr" );
   modelIndex( "shell.def" );
   silenced = true;
	}

void AssaultRifle::Shoot
	(
	Event *ev
	)

	{
   FireBullets( 1, "120 120 120", 8, 14, DAMAGE_BULLET, MOD_ASSRIFLE, false );
	NextAttack( 0 );
	}
