/***********************************************************************

	monster_demon_vulgar.def

***********************************************************************/

export James {
 	options -prefix VUL_ -keep Lknee Rknee -keep r_fireball l_fireball ROT -align movement -parent r_fireball Rwrist -parent l_fireball Lwrist -parent spine_1 ROT -parent ROT root -sourcedir models/monsters/vulgar/cycles -destdir models/md5/monsters/vulgar

	mesh	vulgar_mesh.mb -dest vulgar
	anim	idle2.mb
	anim	walk.mb
	anim	run.mb
	anim	attack1.mb
	anim	attack2.mb
	anim	attack3.mb
	anim	idle1.mb
	anim	af_pose.mb -range 1 1
	anim	pain_chest.mb
	anim	pain_head.mb
	anim	pain_luparm.mb
	anim	pain_ruparm.mb
	anim	teleport.mb
	anim	evade_left.mb
	anim	evade_right.mb
	anim	sight.mb
	anim	range_attack1.mb
	anim	range_attack2.mb
	anim	run_evade_right.mb
	anim	run_evade_left.mb
	anim	run_pain_left.mb
	anim	run_pain_right.mb
	anim	run_pain_chest.mb
	anim	run_pain_head.mb
	anim	leap_attack.mb -range 25 33 -dest jump_start
	anim	leap_attack.mb -range 34 55 -dest jump_loop
	anim	attack1.mb -range 8 14 -dest jump_end
}

model monster_demon_vulgar {
	mesh							models/md5/monsters/vulgar/vulgar.md5mesh
	
	channel torso					( *spine_1 )
	channel legs					( *origin )
	anim idle1						models/md5/monsters/vulgar/idle1.md5anim
	anim idle2						models/md5/monsters/vulgar/idle2.md5anim
	anim walk						models/md5/monsters/vulgar/walk.md5anim

	anim run						models/md5/monsters/vulgar/run.md5anim
	anim run_evade_left				models/md5/monsters/vulgar/run_evade_left.md5anim
	anim run_evade_right			models/md5/monsters/vulgar/run_evade_right.md5anim
	anim run_pain_left				models/md5/monsters/vulgar/run_pain_left.md5anim
	anim run_pain_right				models/md5/monsters/vulgar/run_pain_right.md5anim
	anim run_pain_chest				models/md5/monsters/vulgar/run_pain_chest.md5anim
	anim run_pain_head				models/md5/monsters/vulgar/run_pain_head.md5anim

	anim melee_attack1				models/md5/monsters/vulgar/attack1.md5anim {
		frame 1							call overrideLegs
		frame 9							melee melee_vulgarRightClaw
		frame 25						melee melee_vulgarLeftClaw
	}
	anim melee_attack2				models/md5/monsters/vulgar/attack2.md5anim {
		frame 1							call overrideLegs
		frame 10						melee melee_vulgarRightClaw
	}
	anim melee_attack3				models/md5/monsters/vulgar/attack3.md5anim {
		frame 1							call overrideLegs
		frame 10						melee melee_vulgarLeftClaw
	}
	anim pain 						models/md5/monsters/vulgar/pain_chest.md5anim
	anim pain_chest					models/md5/monsters/vulgar/pain_chest.md5anim
	anim pain_head					models/md5/monsters/vulgar/pain_head.md5anim
	anim pain_left_arm				models/md5/monsters/vulgar/pain_luparm.md5anim
	anim pain_right_arm				models/md5/monsters/vulgar/pain_ruparm.md5anim
	anim af_pose					models/md5/monsters/vulgar/af_pose.md5anim
	anim teleport					models/md5/monsters/vulgar/teleport.md5anim {
		frame 15						sound_voice snd_sight
	}
	anim evade_left					models/md5/monsters/vulgar/evade_left.md5anim
	anim evade_right				models/md5/monsters/vulgar/evade_right.md5anim

	anim sight						models/md5/monsters/vulgar/sight.md5anim
	anim range_attack1				models/md5/monsters/vulgar/range_attack1.md5anim {
		frame 1							call overrideLegs
		frame 2							create_missile r_fireball
		frame 11						launch_missile r_fireball
	}
	anim range_attack2				models/md5/monsters/vulgar/range_attack2.md5anim {
		frame 1							call overrideLegs
		frame 2							create_missile l_fireball
		frame 12						launch_missile l_fireball
	}
	anim jump_start					models/md5/monsters/vulgar/jump_start.md5anim
	anim jump_loop					models/md5/monsters/vulgar/jump_loop.md5anim

	anim jump_end					models/md5/monsters/vulgar/jump_end.md5anim {
		frame 1							call overrideLegs
		frame 2							melee melee_vulgarRightClaw
	}
}

entityDef monster_demon_vulgar {
	"inherit"						"monster_default"
	"scriptobject"					"ai"
	"nativeobject"					"rvmMonsterDemonVulgar"
	"model"							"monster_demon_vulgar"
	"ragdoll"						"monster_demon_vulgar"
	"size"							"48 48 68"
	"use_aas"						"aas48"
	"team"							"1"
	"rank"							"1"
	"health"						"400"
	"def_projectile"				"projectile_vulgar_fireball"
	"attack_cone"					"70"
	"attack_accuracy"				"0"
	"melee_range"					"84"
	"bone_focus"					"head_FK"
	
	"burnaway"						"0.50"
	"smoke_burnParticleSystem"			"burn_imp.prt-root"
	
	"look_min"						"-90 -125 0"
	"look_max"						"25 125 0"
	"look_joint spine_1"			"0.4 0.4 0"
	"look_joint head_FK"			"0.6 0.6 0"
	
	"damage_zone head"				"*spine_6"
	"damage_zone chest"				"*spine_1 -*Rshldr -*Lshldr -*spine_6"
	"damage_zone left_arm"			"*Lshldr"
	"damage_zone right_arm"			"*Rshldr"
	"damage_zone legs"				"*Hips origin root"
	"damage_scale head"				"2"
	"mass"   						"250"

	"ik_numLegs"					"2"
	"ik_footSize"					"4"
	"ik_waist"						"root"
	"ik_hip1"						"Lupleg"
	"ik_hip2"						"Rupleg"
	"ik_knee1"						"Lloleg"
	"ik_knee2"						"Rloleg"
	"ik_ankle1"						"Lankle"
	"ik_ankle2"						"Rankle"
	"ik_dir1"						"Lknee"
	"ik_dir2"						"Rknee"
	"ik_foot1"						"Lball"
	"ik_foot2"						"Rtoe"
}

entityDef damage_vulgar_fireball {
	"damage"						"12"
	"kickDir"						"1 0 0"

	"mtr_blob"						"genericDamage"
	"blob_time"						"300"
	"blob_size"						"400"
	"blob_offset_x"					"400"

	"knockback"						"10"

	"kick_time"						"400"
	"kick_amplitude"				"1"

	"dv_time"						"100"
	"smoke_wound_flesh"				"bloodwound.smoke"
}

entityDef damage_vulgar_fireball_splash {
	"damage"						"5"
	"radius"						"50"
}

entityDef projectile_vulgar_fireball {
	"spawnclass"					"idProjectile"
	"mins"							"-4 -4 -4"
	"maxs"							"4 4 4"
	"cone"							"3"
	"model" 						"models/weapons/impfireball/impfireball2.lwo"
						
	"def_damage"					"damage_vulgar_fireball"
	"def_splash_damage"				"damage_vulgar_fireball_splash"
									
	"launchFromBarrel"				"1"
	"health"						"5"					// amount of damage projectile can take if damaged (0 means it can't be destroyed)
	"velocity"						"475 0 -150"			// how fast the projectile leaves the gun (or distance if fuse is 0)
	"angular_velocity"				"0 0 0"				// how the projectile is rotating when it leaves the gun
	"thrust"						"0"					// the rate of acceleration (always in the direction of the projectiles model)
	"thrust_start"					"0"					// when to start accelerating
	"thrust_end"					"0"					// when to stop accelerating
	"linear_friction"				"0"					// "air" friction
	"angular_friction"				"0"
	"contact_friction"				"0"
	"bounce"						"0"					// how much speed a projectile retains when it bounces off of objects (coefficient of restitution).  0 means no bounce.
	"mass"							"5"
	"gravity"						"250"				// how much gravity affects the trajectory.  gravity direction is same as the entity that fired it.
	"fuse"							"20"				// how long before the projectile is removed or self-detonates.  Use 0 for beam weapons (velocity == distance).

	"detonate_on_fuse"				"0"					// whether projectile should detonate when it's fuse runs out
	"detonate_on_death"				"1"					// whether projectile should detonate when it's "killed" (health runs out)
	"detonate_on_world"				"1"					// whether projectile should detonate when it hits an obstacle
	"detonate_on_actor"				"1"					// whether projectile should detonate when it hits a character in the game

	"impact_damage_effect"			"0"					// whether projectile causes blood splats from characters that bleed
	"impact_gib"					"1"					// whether projectile can gib a character or not (for example: bullets don't gib, but rockets do)

	"mtr_detonate"					"textures/decals/ballburn01"
	"decal_size"					"75" 

	"smoke_fly"						"impsparks.smoke"									// particle effect while in the air
	"smoke_detonate"				""			// particle effect when detonates
	"smoke_residue"					""			// particle effect while in the air
	"smoke_bounce"					""					// particle effect when bounces
	"smoke_fuse"					""					// particle effect when removed from fuse expiring
	
	// parametric particles -- temp
	"model_detonate"				"bigExplosion.ips"
										
	"debris_count"					"3"
	"def_debris"					"debris_largeshrapnel"
	"def_shrapnel"					"debris_shrapnel"
	
	"mtr_light_shader"				"lights/impflyflash"
	"light_color"					"0.9 0.7 0.05"
	"light_radius"					"160"
	"light_offset"					"0 0 0"


	"mtr_explode_light_shader"		"lights/impflash"
	"explode_light_color"			"3.6 3.0 0.5"
	"explode_light_radius"			"320"
	"explode_light_fadetime"		"1"

	"snd_explode"					"monster_demon_imp_fireball_explode"
	"snd_fly"						"monster_demon_imp_fireball_flight"					// particle effect while in the air
}

entityDef melee_vulgarLeapAttack {
	// melee specific parameters
	"snd_hit"						"monster_demon_imp_melee_hit"
	"kickDir"						"1 0 0"

	// damage parameters
	"damage"						"20"

	"mtr_blob"						"leftSlash"
	"blob_time"						"300"
	"blob_x"						"140"
	"blob_y"						"-100"
	"blob_width"					"600"
	"blob_height"					"600"

	"knockback"						"100"

	"kick_time"						"800"
	"kick_amplitude"				"2"

	"dv_time"						"400"
}

entityDef melee_vulgarLeftClaw {
	// melee specific parameters
	"snd_hit"					"monster_demon_imp_melee_hit"
	"snd_miss"					"monster_demon_imp_melee_miss"
	"kickDir"					"0 -1 0"


	// damage parameters
	"damage"					"12"

	"mtr_blob"					"leftSlash"
	"blob_time"					"300"
	"blob_x"					"140"
	"blob_y"					"-100"
	"blob_width"				"600"
	"blob_height"				"600"

	"knockback"					"40"

	"kick_time"					"400"
	"kick_amplitude"			"2"

	"dv_time"					"100"
}

entityDef melee_vulgarRightClaw {
	"snd_hit"					"monster_demon_imp_melee_hit"
	"snd_miss"					"monster_demon_imp_melee_miss"
	"kickDir"					"0 1 0"

	"damage"					"12"

	"mtr_blob"					"rightSlash"
	"blob_time"					"300"
	"blob_x"					"-100"
	"blob_y"					"-100"
	"blob_width"				"600"
	"blob_height"				"600"

	"knockback"					"30"

	"kick_time"					"400"
	"kick_amplitude"			"2"

	"dv_time"					"100"
}
