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

68 lines
1.5 KiB
Ucode

Class ScrnNailBodyAttacher extends BodyAttacher;
var float MonsterSpeed;
var float MonsterOriginalSpeed;
var EPhysics MonsterPhysics;
simulated function PostBeginPlay()
{
local KFMonster m;
m = KFMonster(Owner);
if ( m != none ) {
MonsterSpeed = m.GroundSpeed;
MonsterOriginalSpeed = m.OriginalGroundSpeed;
MonsterPhysics = Owner.Physics;
m.GroundSpeed = 0;
m.OriginalGroundSpeed = 0;
}
log("ScrnNailBodyAttacher spawned");
SetTimer(1,False);
}
simulated function Destroyed()
{
local KFMonster m;
super.Destroyed();
m = KFMonster(Owner);
if ( m != none && m.Health > 0 ) {
m.GroundSpeed = MonsterSpeed;
m.OriginalGroundSpeed = MonsterOriginalSpeed;
m.SetPhysics(MonsterPhysics);
}
log("ScrnNailBodyAttacher destroyed");
}
simulated function Tick( float Delta )
{
if( Owner==None )
{
Destroy();
Return;
}
//Owner.SetLocation(Location);
if( Physics==PHYS_Karma /* || Owner.Physics!=PHYS_KarmaRagdoll */ )
Return;
if( Owner.Physics !=PHYS_KarmaRagdoll )
Owner.SetPhysics(PHYS_KarmaRagdoll);
KConstraintActor1 = Owner;
KPos1 = (Location-AttachEndPoint)/50.f;
KPos2 = AttachEndPoint/50.f;
KPriAxis1 = vect(1,0,0);
KSecAxis1 = vect(0,0,1);
KPriAxis2 = vect(1,0,0);
KSecAxis2 = vect(0,0,1);
SetPhysics(PHYS_Karma);
SetTimer(0,False); //disable auto-destroy
}
defaultproperties
{
}