//======== (C) Copyright 2001 Charles G. Cleveland All rights reserved. =========
//
// The copyright to the contents herein is the property of Charles G. Cleveland.
// The contents may be used and/or copied only with the written permission of
// Charles G. Cleveland, or in accordance with the terms and conditions stipulated in
// the agreement/contract under which the contents have been supplied.
//
// Purpose: 
//
// $Workfile: AvHAlienWeaponConstants.h$
// $Date: 2002/11/05 06:17:25 $
//
//-------------------------------------------------------------------------------
// $Log: AvHAlienWeaponConstants.h,v $
// Revision 1.29  2002/11/05 06:17:25  Flayra
// - Balance changes
//
// Revision 1.28  2002/10/28 20:33:11  Flayra
// - Increased claw range so the onos can hit ground targets without crouching
//
// Revision 1.27  2002/10/20 02:36:14  Flayra
// - Regular update
//
// Revision 1.26  2002/10/18 22:17:03  Flayra
// - Balance
//
// Revision 1.25  2002/10/16 20:51:06  Flayra
// - Fixed problem where projectile hit player
// - Added paralysis projectile
//
// Revision 1.24  2002/10/16 00:47:56  Flayra
// - Removed unneeded bite2 sounds
// - Removed blink fail
// - Lowered blink ROF in case that was causing the spam of particle systems
//
// Revision 1.23  2002/10/03 18:38:04  Flayra
// - Toned down primal scream (rate of fire, energy acquisition, +30% damage instead of %40%)
//
// Revision 1.22  2002/09/25 20:42:26  Flayra
// - Balance changes
//
// Revision 1.21  2002/09/23 22:09:07  Flayra
// - Regular update
//
// Revision 1.20  2002/09/09 19:48:15  Flayra
// - Spit damage adjusted
//
// Revision 1.19  2002/08/31 18:01:00  Flayra
// - Work at VALVe
//
// Revision 1.18  2002/08/16 02:31:23  Flayra
// - Big balance change: all weapons reduced by 20% damage
//
// Revision 1.17  2002/08/09 00:54:56  Flayra
// - Regular update
//
// Revision 1.16  2002/07/26 23:03:08  Flayra
// - New artwork
//
// Revision 1.15  2002/07/23 16:57:52  Flayra
// - Lots of tweaks (new artwork, balance/feel)
//
// Revision 1.14  2002/07/08 16:45:24  Flayra
// - Spit gun and bites were shooting through walls, balance changes
//
// Revision 1.13  2002/07/01 21:15:02  Flayra
// - Added new alien abilities (primal scream, babblers, bilebomb, umbra)
//
// Revision 1.12  2002/06/25 17:28:55  Flayra
// - Consolidated view models, correct animations for player models, removed ancient weapons
//
// Revision 1.11  2002/06/10 19:49:37  Flayra
// - Updated with new alien view model artwork (with running anims)
//
// Revision 1.10  2002/06/03 16:25:34  Flayra
// - Removed outdated v_leap.mdl (!)
//
// Revision 1.9  2002/05/23 02:34:00  Flayra
// - Post-crash checkin.  Restored @Backup from around 4/16.  Contains changes for last four weeks of development.
//
//===============================================================================
#ifndef AVHALIENWEAPONCONSTANTS_H
#define AVHALIENWEAPONCONSTANTS_H

#include "mod/AvHBasePlayerWeaponConstants.h"

// Alien view models
#define			kLevel1ViewModel		"models/v_lvl1.mdl"
#define			kLevel2ViewModel		"models/v_lvl2.mdl"
#define			kLevel3ViewModel		"models/v_lvl3.mdl"
#define			kLevel4ViewModel		"models/v_lvl4.mdl"
#define			kLevel5ViewModel		"models/v_lvl5.mdl"

// Spit gun constants.
const int		kSpitGRange			= 400; // range not used
const float		kSpitLifetime		= 2.0f;
const float		kSpitGXPunch		= 1.4f;
const float		kSpitParentVelocityScalar = .1f;
const int		kSpitVelocity		= 1500;
#define			kSpitGunSprite		"sprites/bigspit.spr"
#define			kSpitHitSound1		"weapons/spithit1.wav"
#define			kSpitHitSound2		"weapons/spithit2.wav"
#define			kSpitGEventName		"events/SpitGun.sc"
#define			kSpitGAnimExt		"ability1"
#define			kSpitGFireSound1	"weapons/spit-1.wav"
#define			kSpitGFireSound2	"weapons/spit-2.wav"
const int		kSpitGBarrelLength	= 20;
#define			kSpitClassName		"spitgunspit"

// The spit size must be small so that the collision results on the server
// are close to the collision results for the temp entity on the client.
const float		kSpitSize			= 1;


// Swipe constants.
const int		kSwipeRange			= 60;
const float		kSwipePunch			= 4.0;
#define			kSwipeSound1		"weapons/swipe1.wav"
#define			kSwipeSound2		"weapons/swipe2.wav"
#define			kSwipeSound3		"weapons/swipe3.wav"
#define			kSwipeSound4		"weapons/swipe4.wav"
#define			kSwipeHitSound1		"weapons/swipehit1.wav"
#define			kSwipeHitSound2		"weapons/swipehit2.wav"
#define			kSwipeKillSound		"weapons/swipekill.wav"

#define			kSwipeEventName		"events/Swipe.sc"
#define			kSwipeAnimExt		"ability1"
#define			kSwipeFireSound1	"weapons/swipe-1.wav"
#define			kSwipeFireSound2	"weapons/swipe-2.wav"
const int		kSwipeBarrelLength	= 30;

// Claws constants.
const int		kClawsRange			= 90;
const float		kClawsPunch			= 10.0;
#define			kClawsSound1		"weapons/claws1.wav"
#define			kClawsSound2		"weapons/claws2.wav"
#define			kClawsSound3		"weapons/claws3.wav"
#define			kClawsHitSound1		"weapons/clawshit1.wav"
#define			kClawsHitSound2		"weapons/clawshit2.wav"
#define			kClawsKillSound		"weapons/clawskill.wav"
#define			kClawsEventName		"events/Claws.sc"
#define			kClawsAnimExt		"ability1"
#define			kClawsFireSound1	"weapons/claws-1.wav"
#define			kClawsFireSound2	"weapons/claws-2.wav"
const int		kClawsBarrelLength	= 30;
const int		kClawsAdrenPitchFactor	= 50;

// Spores constants.
const int		kSporeRange			= 60;
const float		kSporePunch			= 2.0;

const float		kSporeParentVelocityScalar = .1f;
const int		kShootCloudVelocity	= 1100;
#define			kSporeSprite		"sprites/spore.spr"
#define			kClientSporeSprite	"sprites/spore2.spr"

#define			kSporeFireSound			"weapons/sporefire.wav"
#define			kSporeCloudSound		"weapons/sporecloud.wav"
#define			kSporeShootEventName	"events/ShootSpores.sc"
#define			kSporeCloudEventName	"events/SporeCloud.sc"
#define			kSporeAnimExt			"ability2"
const int		kSporeBarrelLength		= 30;
const int		kSporePointCost			= 2;


// Spike gun constants.
const int		kSpikeRange				= 8012;
const float		kSpikePunch				= 4.0;

#define			kSpikeSpread			VECTOR_CONE_3DEGREES
#define			kSpikeFireSound			"weapons/spikefire.wav"
#define			kSpikeProjectileModel	"models/spike.mdl"
#define			kSpikeShootEventName	"events/SpikeGun.sc"
#define			kSpikeAnimExt			"ability2"
const int		kSpikeBarrelLength		= 30;
const int		kSpikeVelocity			= 3500;
#define			kSpikeGunHitSprite		"sprites/spikehit.spr"


// Paralysis gun constants.
const int		kParalysisRange			= 8012;
const float		kParalysisPunch			= 2.0;

#define			kParalysisFireSound			"weapons/paralysisfire.wav"
#define			kParalysisHitSound			"weapons/paralysishit.wav"
#define			kParalysisShootEventName	"events/ParalysisGun.sc"
#define			kParalysisStartEventName	"events/ParalysisStart.sc"
#define			kParalysisProjectileModel	"models/paralysis.mdl"
#define			kParalysisAnimExt			"ability3"
const float		kParalysisROF				= 1.0f;
const int		kParalysisDamage			= 0;
const int		kParalysisBarrelLength		= 200;
const int		kParalysisVelocity			= 3500;

const int		kParalysisMaxClip			= 10;
const int		kParalysisStartClip			= 10;

// Bite constants.
const float		kBitePunch				= 2.5;
#define			kBiteSound				"weapons/bite.wav"
#define			kBiteHitSound1			"weapons/bitehit1.wav"
#define			kBiteHitSound2			"weapons/bitehit2.wav"
#define			kBiteKillSound			"weapons/bitekill.wav"
#define			kBiteEventName			"events/Bite.sc"
#define			kBiteAnimExt			"ability1"
#define			kBiteFireSound1			"weapons/bite-1.wav"
#define			kBiteFireSound2			"weapons/bite-2.wav"
const int		kBiteBarrelLength		= 20;

// Bite2 constants.
const int		kBite2Range				= 60;
const float		kBite2Punch				= 2.5;
#define			kBite2Sound				"weapons/bite2.wav"
#define			kBite2EventName			"events/Bite2.sc"
#define			kBite2AnimExt			"ability1"
#define			kBite2FireSound1		"weapons/bite2-1.wav"
#define			kBite2FireSound2		"weapons/bite2-2.wav"
const int		kBite2BarrelLength		= 20;

// Healing spray constants.
const int		kHealingSprayRange			= 300;
#define			kHealingSpraySound			"weapons/alien_spray.wav"
#define			kHealingSprayEventName		"events/HealingSpray.sc"
#define			kHealingSprayAnimExt		"ability2"
const int		kHealingSprayBarrelLength	= 30;

// Metabolize constants
#define			kMetabolizeEventName		"events/Metabolize.sc"
#define			kMetabolizeSuccessEventName	"events/MetabolizeSuccess.sc"
//#define			kMetabolizeFireSound		"weapons/metabolize_fire.wav"
#define			kMetabolizeFireSound1		"weapons/metabolize1.wav"
#define			kMetabolizeFireSound2		"weapons/metabolize2.wav"
#define			kMetabolizeFireSound3		"weapons/metabolize3.wav"
#define			kMetabolizeSuccessSound		"weapons/metabolize_success.wav"

// Web spinning constants.
const int		kWebSpinnerRange			= 500;
#define			kWebSpinnerShootEventName	"events/SpinWeb.sc"
#define			kWebProjectileSprite		"sprites/webprojectile.spr"
#define			kWebSpinnerAnimExt			"ability4"
#define			kWebSpinSound1				"weapons/webspin1.wav"
#define			kWebSpinSound2				"weapons/webspin2.wav"
const int		kWebSpinnerBarrelLength		= 20;
#define			kWebProjectileClassName		"webgunproj"
const float		kWebProjectileParentVelocityScalar		= .05f;
const int		kWebProjectileVelocity					= 1000;
const float		kWebGXPunch					= 2.0;

// Babbler gun constants.
const int		kBabblerGunRange			= 400;
#define			kBabblerGunSound			"player/role3_spawn1.wav"
#define			kBabblerGunEventName		"events/BabblerGun.sc"
#define			kBabblerGunAnimExt			"ability4"
//#define			kBabblerModel				"models/w_babbler.mdl"
#define			kBabblerModel				"models/player/alien1/alien1.mdl"
const float		kBabblerGunROF				= 1.0f;
const int		kBabblerGunBarrelLength		= 50;
const int		kBabblerBiteDamage			= 20;
const int		kBabblerExplodeDamage		= 40;
const float		kBabblerXPunch				= 8.0;
#define			kBabblerHunt1Sound			"player/role3_idle1.wav"
#define			kBabblerHunt2Sound			"player/role3_move1.wav"
#define			kBabblerHunt3Sound			"player/role3_move1.wav"
#define			kBabblerBiteSound			"weapons/bite.wav"
#define			kBabblerDieSound			"player/role3_die1.wav"
#define			kBabblerBlastSound			"weapons/divinewindexplode.wav"

// Primal scream constants.
#define			kPrimalScreamShootEventName	"events/PrimalScream.sc"
#define			kStopPrimalScreamSoundEvent	"events/StopScream.sc"
#define			kPrimalScreamAnimExt		"ability4"
#define			kPrimalScreamSound			"weapons/primalscream.wav"
const int		kPrimalScreamBarrelLength	= 100;

// Building gun constants.
const int		kBuildingGunRange			= 50;
const float		kBuildingGunPunch			= 2.5;
#define			kBuildingGunEventName		"events/Build.sc"
#define			kBuildingGunAnimExt			"ability6"
#define			kBuildingGunSound1			"weapons/build1.wav"
#define			kBuildingGunSound2			"weapons/build2.wav"
const float		kBuildingGunROF				= 1.0f;
const int		kBuildingGunDamage			= 50;
const int		kBuildingGunBarrelLength	= 100;
const int		kBuildingGunPointCost		= 3;

// Parasite gun constants.
const int		kParasiteRange			= 2048;
const float		kParasitePunch			= .5;

#define			kParasiteFireSound		"weapons/parasitefire.wav"
#define			kParasiteHitSound		"weapons/parasitehit.wav"
#define			kParasiteShootEventName	"events/ParasiteGun.sc"
#define			kParasiteProjectileModel	"models/parasite.mdl"
#define			kParasiteAnimExt		"ability2"
const int		kParasiteBarrelLength	= 10;
const int		kParasiteVelocity		= 2500;

// Umbra gun constants.
const int		kUmbraRange				= 8012;
const float		kUmbraPunch				= 2.0;
const int		kUmbraVelocity			= 1100;
#define			kUmbraSprite			"sprites/umbra.spr"
#define			kClientUmbraSprite		"sprites/umbra2.spr"

#define			kUmbraFireSound			"weapons/umbrafire.wav"
#define			kUmbraBlockedSound		"weapons/umbrablocked.wav"
#define			kUmbraCloudEventName	"events/UmbraCloud.sc"
#define			kUmbraShootEventName	"events/UmbraGun.sc"
#define			kUmbraAnimExt			"ability3"
const int		kUmbraBarrelLength		= 30;

// Blink gun constants.
const float		kBlinkPunch				= 2.0;

#define			kBlinkSuccessSound		"weapons/blinksuccess.wav"
#define			kBlinkEffectSuccessEventName	"events/BlinkSuccess.sc"
#define			kBlinkAnimExt			"ability2"

// DivineWind gun constants.
const int		kDivineWindRange				= 8012;
const float		kDivineWindPunch				= 2.0;

#define			kDivineWindFireSound		"weapons/divinewindfire.wav"
#define			kDivineWindExplodeSound		"weapons/divinewindexplode.wav"
#define			kDivineWindShootEventName	"events/DivineWind.sc"
#define			kDivineWindAnimExt			"ability4"

// Bile bomb
const int		kBileBombRange				= 9214;
const float		kBileBombPunch				= 8.0;

#define			kBileBombFireSound			"weapons/bilebombfire.wav"
#define			kBileBombHitSound			"weapons/bilebombhit.wav"
#define			kBileBombShootEventName		"events/BileBomb.sc"
#define			kBileBombVModel				"models/v_lvl3.mdl"
#define			kBileBombAnimExt			"ability3"
#define			kBileBombProjectileModel	"models/bilebomb.mdl"

const int		kBileBombBarrelLength		= 20;
const float		kBileBombFrictionConstant	= .8f;
const int		kBileBombVelocity			= 750;

// The bile bomb size must be small so that the collision results on the server
// are close to the collision results for the temp entity on the client.
const float		kBileBombSize				= 1;

// Acid rocket
const int		kAcidRocketRange					= 8012;
const float		kAcidRocketPunch					= 2.0;
const float		kAcidRocketParentVelocityScalar		= .1f;
const int		kAcidRocketVelocity			= 2000;
#define			kAcidRocketFireSound		"weapons/acidrocketfire.wav"
#define			kAcidRocketHitSound			"weapons/acidrockethit.wav"
#define			kAcidRocketShootEventName	"events/AcidRocket.sc"
#define			kAcidRocketVModel			"models/v_lvl4.mdl"
#define			kAcidRocketProjectileModel	"models/acidrocket.mdl"
#define			kAcidRocketAnimExt			"ability4"

const int		kAcidRocketBarrelLength		= 40;

// Devour gun constants.
const float		kDevourPunch				= 2.0;

#define			kDevourFireSound			"weapons/devour.wav"
#define			kDevourSwallowSound			"weapons/devourswallow.wav"
#define			kDevourCompleteSound		"weapons/devourcomplete.wav"
#define			kDevourCancelSound			"weapons/devourcancel.wav"
#define			kDevourShootEventName		"events/Devour.sc"
#define			kDevourAnimExt				"ability3"


// Stomp gun constants.
#define			kStompFireSound				"weapons/stomp.wav"
#define			kStompShootEventName		"events/Stomp.sc"
//#define			kStompProjectileModel		"sprites/shockwave.spr"
#define			kStompProjectileModel		"models/stomp.mdl"
#define			kwsStompProjectile			"stompprojectile"
const int		kStompBarrelLength			= 30;
const float		kStompProjectileLifetime	= 1.2f;
const int		kStompModelRenderAmount		= 180;
const int		kStompProjectileVelocity	= 600;
#define			kStompAnimExt				"ability2"


#endif