rott/kf_sources/KFMod/Classes/ZombieBossBase.uc
2026-07-14 20:27:09 +07:00

172 lines
5.1 KiB
Ucode

// Zombie Monster for KF Invasion gametype
class ZombieBossBase extends KFMonster
abstract;
#exec OBJ LOAD FILE=KFPatch2.utx
#exec OBJ LOAD FILE=KF_Specimens_Trip_T.utx
var bool bChargingPlayer,bClientCharg,bFireAtWill,bMinigunning,bIsBossView;
var float RageStartTime,LastChainGunTime,LastMissileTime,LastSneakedTime;
var bool bClientMiniGunning;
var name ChargingAnim; // How he runs when charging the player.
var byte SyringeCount,ClientSyrCount;
var int MGFireCounter;
var vector TraceHitPos;
var Emitter mTracer,mMuzzleFlash;
var bool bClientCloaked;
var float LastCheckTimes;
var int HealingLevels[3],HealingAmount;
var(Sounds) sound RocketFireSound; // The sound of the rocket being fired
var(Sounds) sound MiniGunFireSound; // The sound of the minigun being fired
var(Sounds) sound MiniGunSpinSound; // The sound of the minigun spinning
var(Sounds) sound MeleeImpaleHitSound;// The sound of melee impale attack hitting the player
var float MGFireDuration; // How long to fire for this burst
var float MGLostSightTimeout; // When to stop firing because we lost sight of the target
var() float MGDamage; // How much damage the MG will do
var() float ClawMeleeDamageRange;// How long his arms melee strike is
var() float ImpaleMeleeDamageRange;// How long his spike melee strike is
var float LastChargeTime; // Last time the patriarch charged
var float LastForceChargeTime;// Last time patriarch was forced to charge
var int NumChargeAttacks; // Number of attacks this charge
var float ChargeDamage; // How much damage he's taken since the last charge
var float LastDamageTime; // Last Time we took damage
// Sneaking
var float SneakStartTime; // When did we start sneaking
var int SneakCount; // Keep track of the loop that sends the boss to initial hunting state
// PipeBomb damage
var() float PipeBombDamageScale;// Scale the pipe bomb damage over time
replication
{
reliable if( Role==ROLE_Authority )
bChargingPlayer,SyringeCount,TraceHitPos,bMinigunning,bIsBossView;
}
//-------------------------------------------------------------------------------
// NOTE: All Code resides in the child class(this class was only created to
// eliminate hitching caused by loading default properties during play)
//-------------------------------------------------------------------------------
defaultproperties
{
DrawScale=1.05
bOnlyDamagedByCrossbow=true
bMeleeStunImmune = true
damageForce=170000
bFatAss=True
KFRagdollName="Patriarch_Trip"
ScoringValue=500
RagDeathVel=80.000000
RagDeathUpKick=100.000000
MeleeRange=10.000000
MovementAnims(0)="WalkF"
MovementAnims(1)="WalkF"
MovementAnims(2)="WalkF"
MovementAnims(3)="WalkF"
WalkAnims(0)="WalkF"
WalkAnims(1)="WalkF"
WalkAnims(2)="WalkF"
WalkAnims(3)="WalkF"
BurningWalkFAnims(0)="WalkF"
BurningWalkFAnims(1)="WalkF"
BurningWalkFAnims(2)="WalkF"
BurningWalkAnims(0)="WalkF"
BurningWalkAnims(1)="WalkF"
BurningWalkAnims(2)="WalkF"
AirAnims(0)="JumpInAir"
AirAnims(1)="JumpInAir"
AirAnims(2)="JumpInAir"
AirAnims(3)="JumpInAir"
TakeoffAnims(0)="JumpTakeOff"
TakeoffAnims(1)="JumpTakeOff"
TakeoffAnims(2)="JumpTakeOff"
TakeoffAnims(3)="JumpTakeOff"
LandAnims(0)="JumpLanded"
LandAnims(1)="JumpLanded"
LandAnims(2)="JumpLanded"
LandAnims(3)="JumpLanded"
AirStillAnim="JumpInAir"
TakeoffStillAnim="JumpTakeOff"
TurnLeftAnim="TurnLeft"
TurnRightAnim="TurnRight"
ChargingAnim="RunF"
IdleHeavyAnim="BossIdle"
IdleRifleAnim="BossIdle"
IdleCrouchAnim="BossIdle"
IdleWeaponAnim="BossIdle"
IdleRestAnim="BossIdle"
AmbientGlow=0
Mass=1000.000000
RotationRate=(Yaw=36000,Roll=0)
GroundSpeed=120.000000
WaterSpeed=120.000000
MeleeDamage=75
Health=4000//4000
HealthMax=4000//4000
PlayerCountHealthScale=0.75
bBoss=True
MenuName="Patriarch"
CollisionRadius=26
CollisionHeight=44
SoundVolume=75
Intelligence=BRAINS_Human
bCanDistanceAttackDoors=True
bNetNotify=False
bUseExtendedCollision=True
ColOffset=(Z=65)//(Z=50)
ColRadius=27
ColHeight=25//40
PrePivot=(Z=3)
HealingLevels(0)=5600
HealingLevels(1)=3500
HealingLevels(2)=2187
HealingAmount=1750
ZombieFlag=3
ClawMeleeDamageRange=85//50
ImpaleMeleeDamageRange=45//75
MGDamage=6.0
//bForceSkelUpdate=true
SeveredHeadAttachScale=1.5
SeveredLegAttachScale=1.2
SeveredArmAttachScale=1.1
HeadHeight=2.0
HeadScale=1.3
CrispUpThreshhold=1
OnlineHeadshotOffset=(X=28,Y=0,Z=75)
OnlineHeadshotScale=1.2
MotionDetectorThreat=10.0
PipeBombDamageScale=0.0
ZapThreshold=5.0
ZappedDamageMod=1.25
ZapResistanceScale=1.0 // don't let the patriarch gain resistance, since his zapp effects are pretty light
DamageToMonsterScale=5.0
bHarpoonToHeadStuns=false
bHarpoonToBodyStuns=false
}