//-----------------------------------------------------------------------------
//
//  $Logfile:: /Quake 2 Engine/Sin/code/game/genericbullet.cpp                $
// $Revision:: 16                                                             $
//   $Author:: Aldie                                                          $
//     $Date:: 10/27/98 3:44a                                                 $
//
// 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/genericbullet.cpp                     $
// 
// 16    10/27/98 3:44a Aldie
// Tweak damage
// 
// 15    10/23/98 4:45a Aldie
// Added BeeGun for the Beecadrone
// 
// 14    10/13/98 2:28p Aldie
// Do a tracer on every shot
// 
// 13    10/05/98 11:23p Markd
// Added ReconahGun
// 
// 12    10/04/98 10:22p Markd
// Took out NextAttack delerations
// 
// 11    8/26/98 5:36p Aldie
// Don't need a worldmodel for genbullet.
// 
// 10    8/06/98 10:53p Aldie
// Added weapon tweaks and kickback.  Also modified blast radius damage and
// rocket jumping.
// 
// 9     8/01/98 3:24p Aldie
// Added server effects flag for specific weapons
// 
// 8     7/26/98 3:53p Aldie
// Network tweaking
// 
// 7     7/26/98 3:12a Aldie
// Changed muzzle flash
// 
// 6     7/22/98 10:41p Aldie
// Fixed tracers
// 
// 5     7/22/98 5:16p Aldie
// Added tracers
// 
// 4     7/21/98 1:10p Aldie
// Added meansofdeath to obituaries
// 
// 3     7/17/98 4:40p Aldie
// Changed models to genbullet.def
// 
// 2     7/08/98 11:23p Markd
// first time
// 
// 1     7/08/98 9:07p Markd
//
// DESCRIPTION:
// Generic Bullet Weapon.
// 

#include "g_local.h"
#include "genericbullet.h"

CLASS_DECLARATION( BulletWeapon, GenericBullet, "weapon_genericbullet" );

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

GenericBullet::GenericBullet()
	{
   SetModels( NULL, "view_genbullet.def" );
	SetAmmo( "Bullet10mm", 1, 100 );
	}

void GenericBullet::Shoot
	(
	Event *ev
	)

	{
   FireTracer();
   FireBullets( 1, "10 10 10", 2, 3, DAMAGE_BULLET, MOD_GENBULLET, true );
   NextAttack( 0 );
	}

CLASS_DECLARATION( GenericBullet, ReconahGun, "weapon_reconahgun" );

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

void ReconahGun::Shoot
	(
	Event *ev
	)

	{
	if ( ( level.framenum % 3 ) == ( entnum % 3 ) )
      {
      FireTracer();
      }

	FireBullets( 1, "10 10 10", 14, 26, DAMAGE_BULLET, MOD_GENBULLET, true );
	}

CLASS_DECLARATION( GenericBullet, BeeGun, "weapon_beegun" );

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

void BeeGun::Shoot
	(
	Event *ev
	)

	{
	FireBullets( 1, "10 10 10", 4, 8, DAMAGE_BULLET, MOD_GENBULLET, true );
	}
