rendered paste bodysimulated function HitWall(vector HitNormal, Actor HitWall) {
StickToWall(HitNormal);
}
simulated function Landed(vector HitNormal) {
StickToWall(HitNormal);
}
simulated function StickToWall(vector HitNormal) {
if(bStickingToPawn || bStickingToWall) return;
PlayAnim('Still');
SetPhysics(PHYS_None);
//TimeLeft=StickyTime;
HitLocation=HitNormal;
bStickingToWall=true;
SetTimer(0.2,false);
}
simulated function HitWall (vector HitNormal, actor Wall)
{
if ( bAlreadyHit )
{
bBounce = false;
return;
}
bAlreadyHit = ( HitNormal.Z > 0.7 );
PlaySound(ImpactSound, SLOT_Misc); // hit wall sound
Velocity = 0.3*(( Velocity dot HitNormal ) * HitNormal * (-2.0) + Velocity); // Reflect off Wall w/damping
speed = VSize(Velocity);
}
simulated event Landed( vector HitNormal )
{
local rotator newRot;
SetTimer(2.5, false);
newRot = Rotation;
newRot.Pitch = 0;
newRot.Roll = 0;
SetRotation(newRot);
PlayAnim('Open',0.1);
if ( Role == ROLE_Authority )
{
RemoteRole = ROLE_DumbProxy;
RealLocation = Location;
if ( Master.Owner.IsA('Bot') )
{
if ( Pawn(Master.Owner).Weapon == Master )
Bot(Master.Owner).SwitchToBestWeapon();
LifeSpan = 10;
}
Disable('Tick');
}
}