92 lines
3.1 KiB
Ucode
92 lines
3.1 KiB
Ucode
// Code originally was taken from Scary Ghost's Super Zombies mutator
|
|
class ZombieGorefast_GRITTIER extends ZombieGorefast;
|
|
|
|
#exec OBJ LOAD FILE=ScrnZedPack_T.utx
|
|
|
|
var float minRageDist;
|
|
|
|
function TakeDamage(int Damage, Pawn InstigatedBy, Vector Hitlocation, Vector momentum, class<DamageType> DamType, optional int HitIndex)
|
|
{
|
|
if (InstigatedBy == none || class<KFWeaponDamageType>(DamType) == none)
|
|
Super(Monster).TakeDamage(Damage, instigatedBy, hitLocation, momentum, DamType); // skip NONE-reference error
|
|
else
|
|
Super(KFMonster).TakeDamage(Damage, instigatedBy, hitLocation, momentum, DamType);
|
|
}
|
|
function RangedAttack(Actor A) {
|
|
Super(KFMonster).RangedAttack(A);
|
|
if( !bShotAnim && !bDecapitated && VSize(A.Location-Location)<=minRageDist )
|
|
GoToState('RunningState');
|
|
}
|
|
|
|
state RunningState {
|
|
// Don't override speed in this state
|
|
function bool CanSpeedAdjust() {
|
|
return super.CanSpeedAdjust();
|
|
}
|
|
|
|
function BeginState() {
|
|
super.BeginState();
|
|
}
|
|
|
|
function EndState() {
|
|
super.EndState();
|
|
}
|
|
|
|
function RemoveHead() {
|
|
super.RemoveHead();
|
|
}
|
|
|
|
function RangedAttack(Actor A) {
|
|
|
|
if ( bShotAnim || Physics == PHYS_Swimming)
|
|
return;
|
|
else if ( CanAttack(A) ) {
|
|
bShotAnim = true;
|
|
|
|
//Always do the charging melee attack
|
|
SetAnimAction('ClawAndMove');
|
|
RunAttackTimeout = GetAnimDuration('GoreAttack1', 1.0);
|
|
return;
|
|
}
|
|
}
|
|
|
|
simulated function Tick(float DeltaTime) {
|
|
super.Tick(DeltaTime);
|
|
}
|
|
|
|
|
|
Begin:
|
|
GoTo('CheckCharge');
|
|
CheckCharge:
|
|
if( Controller!=None && Controller.Target!=None && VSize(Controller.Target.Location-Location)<minRageDist ) {
|
|
Sleep(0.5+ FRand() * 0.5);
|
|
//log("Still charging");
|
|
GoTo('CheckCharge');
|
|
}
|
|
else {
|
|
//log("Done charging");
|
|
GoToState('');
|
|
}
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
minRageDist=1400.000000
|
|
MoanVoice=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Talk'
|
|
MeleeAttackHitSound=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_HitPlayer'
|
|
JumpSound=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Jump'
|
|
DetachedArmClass=Class'KFChar.SeveredArmGorefast'
|
|
DetachedLegClass=Class'KFChar.SeveredLegGorefast'
|
|
DetachedHeadClass=Class'KFChar.SeveredHeadGorefast'
|
|
HitSound(0)=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Pain'
|
|
DeathSound(0)=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Death'
|
|
ChallengeSound(0)=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Challenge'
|
|
ChallengeSound(1)=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Challenge'
|
|
ChallengeSound(2)=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Challenge'
|
|
ChallengeSound(3)=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_Challenge'
|
|
MenuName="Gorefast.se"
|
|
AmbientSound=Sound'KF_BaseGorefast.Gorefast_Idle'
|
|
Mesh=SkeletalMesh'KF_Freaks_Trip.GoreFast_Freak'
|
|
Skins(0)=Combiner'ScrnZedPack_T.gorefast_grittier.gorefast_grittier_cmb'
|
|
}
|