All pastes #409717 Raw Edit

Anonymous

public text v1 · immutable
#409717 ·published 2007-03-25 21:39 UTC
rendered paste body
class XMTeamGame extends TeamGame;

var float GravityZ;

function PostBeginPlay()
{
        
        Super.PostBeginPlay();
        Level.Gravity = GravityZ;
 
}

function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
    local PhysicsVolume PV;
    local vector XYDir;
    local float ZDiff,Time;
    local JumpPad J;

    PV = PhysicsVolume(Other);

	if ( PV != None )
	{
		PV.Gravity.Z = FMax(PV.Gravity.Z,GravityZ);
		PV.BACKUP_Gravity = PV.Gravity;
		PV.bAlwaysRelevant = true;
		PV.RemoteRole = ROLE_DumbProxy;
	}
	J = JumpPad(Other);
	if ( J != None )
	{
		XYDir = J.JumpTarget.Location - J.Location;
		ZDiff = XYDir.Z;
		Time = 2.5f * J.JumpZModifier * Sqrt(Abs(ZDiff/GravityZ));
		J.JumpVelocity = XYDir/Time;
		J.JumpVelocity.Z = ZDiff/Time - 0.5f * GravityZ * Time;
	}

	//vehicles shouldn't be affected by this mutator (it would break them)
	if (Vehicle(Other) != None && KarmaParams(Other.KParams) != None)
		KarmaParams(Other.KParams).KActorGravScale *= class'PhysicsVolume'.default.Gravity.Z / GravityZ;

	return true;
}

defaultproperties
{
   GravityZ=-300.0000000
   DefaultPlayerName="Player"
   GameName="Example Game"

}