//-------------------------------------------------------------------

Name: HalfLife1Monsterpack
Version: v2
Author: Shaun Goeppinger aka Iniquitous
Date: 22/01/2017


//-------------------------------------------------------------------
//Changes
//-------------------------------------------------------------------

*Merged ragdoll versions so now there is only 1 monster class each
*Fixed Nihilanth summoning players when it shouldn't

(ragdolls will only be visible for those players with the pack installed and those that have the .ini file present and bHasRagdoll=true)

//-------------------------------------------------------------------
//Description
//-------------------------------------------------------------------

This monsterpack for UT2004 Invasion Gametype includes 13 new monsters
and a baby Voltigore making 14.

The monsters and a short description are as follows:

Alien Controller - This is a flying monster which shoots 2 different types
of projectiles, a smaller projectile (of numerous numbers) which does not seek,
and a larger seeking projectile. Also has melee attacks.

Baby Headcrab - This is what the Gonarch can spawn and can be used a monster
in its own right. It is a small under developed headcrab. It is melee only.

Bullsquid - This monster can shoot a projectile and has melee attacks.

Gargantua - This is s larger boss type monster which has melee attacks, a ground shock wave attack which also spawns
3 red ground projectiles. The monster also has flamethrowers for arms. This monster can be set to be immune to certain
damage types.

Gonarch - This is a larger boss type monster which has melee attacks and a projectile attack. It can also spawn
baby headcrabs and must be damaged by shooting its sack.

Gonome - This is a zombie monster which has both projectile and melee attacks.

Grunt - This monster has melee attacks and can fire "hornets" which are able to lock onto and follow players around corners. This is a hard monster
due to the fact its hornets can do massive amount of damage if they are not out run. 

HoundEye - This monster has melee attacks and a shock wave attack. The damage from the shock wave increase if more houndeyes are nearby.

Nihilanth - This is a boss type monster which can fly. It can fire projectiles and has a melee attack. It can also summon its target to him if it
cannot see it.

PitDrone - This monster has both melee and projectile attacks,

ShockTrooper - This monster has both melee and projectile attacks.

Voltigore - This monster has both melee and projectile attacks.

Baby voltigore - A smaller version of the voltigore which does not have a projectile attack.

Vortigaunt - This monster has both melee and projectile attacks.


//-------------------------------------------------------------------
//Installation
//-------------------------------------------------------------------

.u files go in the System folder
.ini files go in the System folder
.uxk files go in the Animations folder

To use these monsters online you must include the ServerPackages line
in your UT2004.ini file.

ServerPackages=HalfLife1MonsterPackv2

To use the monsters in game, you must use a mutator or gametype which supports
custom monsters such as InvasionPro, Satoremonsterpack, Monstermanager etc..

Monster Lines are as follows:

MonsterTable=(MonsterName="HL AlienController",MonsterClassName="HalfLife1MonsterPackv2.AlienController")
MonsterTable=(MonsterName="HL BullSquid",MonsterClassName="HalfLife1MonsterPackv2.BullSquid")
MonsterTable=(MonsterName="HL BabyHeadCrab",MonsterClassName="HalfLife1MonsterPackv2.BabyHeadCrab")
MonsterTable=(MonsterName="HL Gargantua",MonsterClassName="HalfLife1MonsterPackv2.Gargantua")
MonsterTable=(MonsterName="HL Gonarch",MonsterClassName="HalfLife1MonsterPackv2.Gonarch")
MonsterTable=(MonsterName="HL Gonome",MonsterClassName="HalfLife1MonsterPackv2.Gonome")
MonsterTable=(MonsterName="HL Grunt",MonsterClassName="HalfLife1MonsterPackv2.Grunt")
MonsterTable=(MonsterName="HL HoundEye",MonsterClassName="HalfLife1MonsterPackv2.HoundEye")
MonsterTable=(MonsterName="HL Nihilanth",MonsterClassName="HalfLife1MonsterPackv2.Nihilanth")
MonsterTable=(MonsterName="HL PitDrone",MonsterClassName="HalfLife1MonsterPackv2.PitDrone")
MonsterTable=(MonsterName="HL ShockTrooper",MonsterClassName="HalfLife1MonsterPackv2.ShockTrooper")
MonsterTable=(MonsterName="HL Voltigore",MonsterClassName="HalfLife1MonsterPackv2.Voltigore")
MonsterTable=(MonsterName="HL BabyVoltigore",MonsterClassName="HalfLife1MonsterPackv2.BabyVoltigore")
MonsterTable=(MonsterName="HL Vortigaunt",MonsterClassName="HalfLife1MonsterPackv2.Vortigaunt")

To see screenies of the monsters please visit 

www.unreal.shaungoeppinger.com/monhl1.html

//-------------------------------------------------------------------
//Configuration
//-------------------------------------------------------------------

The monsters come with many config settings. To configure your monsters
open the HL1MonsterPackConfig.ini file. In the file you will find the
following settings. 

This is what they all mean (if relevant to the monster, for example
bProjCanLock only applies to the AlienController's seeking projectile). 

Just change them to what you want!

//change these to tweak the ragdoll effect
KillingForce=200 
UpKickForce=300
bHasRagdoll=true //if false monster will just use normal dying animation

Nihilanth doesn't have a ragdoll

bUseHealthConfig=True //If true the health settings will take effect
bUseDamageConfig=True //If true the damage settings will take effect
MeleeDamage=20 //The amount of damage the melee attack does
MeleeDamageBig=25 //If the monster has a big melee attack, the amount of damage that does
RangedAttackIntervalTime=1.700000 //the time between ranged attacked (in seconds)
ProjectileDamage=8 //The amount of damage the projectile does
SeekingProjectileDamage=20 //(Alien Controller) The amount of damage the seeking projectile does
bProjCanLock=True // (Alien Controller) Can the projectile lock onto and seek the target?
NewHealth=60 //The nea health setting to apply if bUseHealthConfig is true
bCanBeTeleFrag=True //If true the monster can be telefragged

ShockDamage=25 //(Gargantua) How much damage the ground shock does
ShockRadius=1024.000000 //(Gargantua) The radius of the ground shock
ShockWaveInterval=4.000000 //(Gargantua) The minimum interval between ground shocks
FlameDamagePerSecond=30 //(Gargantua) The damage per second of the flame attack - tweek this to your liking
ImmuneDamageType="XWeapons.DamTypeMinigunBullet" //(Gargantua) The gargantua can be immune to certain damage types, set the class names of those damage types here. Use a fake class to remove default immunities, such as "Fake.Fake"
TeleportIntervalTime=10 //(Nihilanth) The minimum time between the teleportation of players (the monsters current enemy)
bCanTeleportPlayers=True //(Nihilanth) If true the Nihilanth can teleport its current target/enemy to him

SonicWaveRadius=275 //(HoundEye) The radius of the sonic wave
ProjectileDamage=12 //(HoundEye) The base damage of the sonic wave
PackDamageMultiplier=1.2 //(HoundEye) The number to multiply the sonic wave damage by, per HoundEye that is close enough
PackRadius=750 //(HoundEye) The pack radius of the HoundEye (the radius that HoundEyes need to be in around each other to count as a pack member in order to increase the shock damage.

bHornetCanLock=True //(Grunt) Can the Grunts Hornet projectile lock onto players?
NumHornetBounces=1 //(Grunt) The Hornet projectile can bounce/move around corners seeking players (if bHornetCanBounceCorners is true), how many times can it bounce off a wall?
bHornetCanBounceCorners=True //(Grunt) Can the Hornet Projectile bounce around corners?
ProjectileDamage=20 //(Grunt) The damage the red ground projectiles do 

bCanSpawnBabyHeadCrabs=True //(Gonarch) Can the Gonarch spawn baby headcrabs?
BabyHeadCrabSpawnInterval=7 //(Gonarch) The minimum time between baby headcrab spawns
MaxBabyHeadCrabs=4 //(Gonarch) The maximum number of baby headcrabs the Gonarch can have at any one time
BabyHeadCrabClass="HalfLife1MonsterPackv1.BabyHeadCrab" //(Gonarch) The class name of the babyheadcrab (I included this so you can set something else to spawn if you wish)


[HalfLife1MonsterPackv2.AlienController]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=20
RangedAttackIntervalTime=1.700000
ProjectileDamage=8
bProjCanLock=True
SeekingProjectileDamage=20
NewHealth=60
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.BabyHeadCrab]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=10
NewHealth=20
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.BabyVoltigore]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=30
MeleeDamageBig=40
NewHealth=300
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.BullSquid]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=18
MeleeDamageBig=25
RangedAttackIntervalTime=2.600000
ProjectileDamage=15
NewHealth=120
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.Gargantua]
bUseHealthConfig=True 
bUseDamageConfig=True
MeleeDamage=80
MeleeDamageBig=110
RangedAttackIntervalTime=3.500000
NewHealth=800
ShockDamage=25
ShockRadius=1024.000000
ShockWaveInterval=4.000000
bCanBeTeleFrag=False
FlameDamagePerSecond=30
ImmuneDamageType="XWeapons.DamTypeMinigunBullet"
ImmuneDamageType="UTClassic.DamTypeClassicSniper"
ImmuneDamageType="XWeapons.DamTypeAssaultBullet"
ImmuneDamageType="XWeapons.DamTypeShockBeam"
ImmuneDamageType="XWeapons.DamTypeLinkShaft"
ImmuneDamageType="XWeapons.DamTypeSniperShot"
ImmuneDamageType="XWeapons.DamTypeSniperHeadShot"
ImmuneDamageType="Fake.Fake"
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.Gonarch]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=120
MeleeDamageBig=175
RangedAttackIntervalTime=2.600000
ProjectileDamage=40
NewHealth=1500
BabyHeadCrabSpawnInterval=7
bCanSpawnBabyHeadCrabs=True
MaxBabyHeadCrabs=4
BabyHeadCrabClass="HalfLife1MonsterPackv2.BabyHeadCrab"
bCanBeTeleFrag=False
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.Gonome]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=20
RangedAttackIntervalTime=4.200000
ProjectileDamage=20
NewHealth=70
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.Grunt]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=20
RangedAttackIntervalTime=3.000000
ProjectileDamage=8
NewHealth=120
bHornetCanLock=True
NumHornetBounces=1
bHornetCanBounceCorners=True
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.HoundEye]
bUseHealthConfig=True 
bUseDamageConfig=True 
RangedAttackIntervalTime=1.800000
NewHealth=30
SonicWaveRadius=275
PackDamageMultiplier=1.2
PackRadius=750
bCanBeTeleFrag=True
ProjectileDamage=12
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.Nihilanth]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=50
RangedAttackIntervalTime=4.200000
ProjectileDamage=25
NewHealth=1600
TeleportIntervalTime=10
bCanTeleportPlayers=True
bCanBeTeleFrag=False

[HalfLife1MonsterPackv2.PitDrone]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=20
MeleeDamageBig=30
RangedAttackIntervalTime=3.000000
ProjectileDamage=15
NewHealth=50
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.ShockTrooper]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=20
RangedAttackIntervalTime=0.500000
ProjectileDamage=25
NewHealth=200
bCanBeTeleFrag=True

[HalfLife1MonsterPackv2.Voltigore]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=60
MeleeDamageBig=80.000000
RangedAttackIntervalTime=2.700000
ProjectileDamage=50
NewHealth=600
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

[HalfLife1MonsterPackv2.Vortigaunt]
bUseHealthConfig=True 
bUseDamageConfig=True 
MeleeDamage=15
RangedAttackIntervalTime=3.000000
ProjectileDamage=35
NewHealth=100
bCanBeTeleFrag=True
KillingForce=200
UpKickForce=300
bHasRagdoll=true

//-------------------------------------------------------------------
//Credits
//-------------------------------------------------------------------

Me! If you like my monsters please consider making a small
donation www.unreal.shaungoeppinger.com/donate.html

Want a monster making? I am available for hire, please enquire.

me@shaungoeppinger.com

A big thank you to everyone who donated to make this monster pack possible.

And a thank you to Skaarj_Master for providing ideas, suggestions and testing! 
Check out his OSMT maps here: http://forums.epicgames.com/threads/864052-Monster-hunt-2k4
