374 lines
9.5 KiB
Ucode
374 lines
9.5 KiB
Ucode
class Mut_UT2341Replacement extends Mutator;
|
|
|
|
var config bool bReplaceAssaultRifle;
|
|
var config bool bReplaceBioRifle;
|
|
var config bool bReplaceONSMineLayer;
|
|
var config bool bReplaceShockRifle;
|
|
var config bool bReplaceLinkGun;
|
|
var config bool bReplaceMinigun;
|
|
var config bool bReplaceFlakCannon;
|
|
var config bool bReplaceONSGrenadeLauncer;
|
|
var config bool bReplaceRocketLauncher;
|
|
var config bool bReplaceSniperRifle;
|
|
var config bool bReplaceClassicSniperRifle;
|
|
var config bool bReplaceRedeemer;
|
|
var config bool bReplacePainter;
|
|
var config bool bReplaceStartWeapons;
|
|
|
|
|
|
function PostBeginPlay()
|
|
{
|
|
//local xPickupBase P;
|
|
|
|
Super.PostBeginPlay();
|
|
|
|
//Apparently CheckReplacement doesn't work on the client side
|
|
/*
|
|
foreach AllActors (class'xPickupBase', P)
|
|
{
|
|
P.bHidden = True;
|
|
P.myEmitter.bHidden = True;
|
|
P.SetDrawType(DT_None);
|
|
P.SetStaticMesh(None);
|
|
}
|
|
*/
|
|
|
|
}
|
|
|
|
function string GetInventoryClassOverride(string InventoryClassName)
|
|
{
|
|
switch(InventoryClassName)
|
|
{
|
|
case "XWeapons.AssaultRifle":
|
|
if(bReplaceAssaultRifle)
|
|
return "UT2341WeaponsReducedv1a.UT2341Ripper";
|
|
break;
|
|
|
|
case "XWeapons.BioRifle":
|
|
if(bReplaceBioRifle)
|
|
return "UT2341WeaponsReducedv1a.UT2341BioRifle";
|
|
break;
|
|
|
|
case "XWeapons.ONSMineLayer":
|
|
if(bReplaceONSMineLayer)
|
|
return "UT2341WeaponsReducedv1a.UT2341Ripper";
|
|
break;
|
|
|
|
case "XWeapons.ShockRifle":
|
|
if(bReplaceShockRifle)
|
|
return "UT2341WeaponsReducedv1a.UT2341ShockRifle";
|
|
break;
|
|
|
|
case "XWeapons.LinkGun":
|
|
if(bReplaceLinkGun)
|
|
return "UT2341WeaponsReducedv1a.UT2341PulseGun";
|
|
break;
|
|
|
|
case "XWeapons.Minigun":
|
|
if(bReplaceMinigun)
|
|
return "UT2341WeaponsReducedv1a.UT2341Minigun";
|
|
break;
|
|
|
|
case "XWeapons.FlakCannon":
|
|
if(bReplaceFlakCannon)
|
|
return "UT2341WeaponsReducedv1a.UT2341FlakCannon";
|
|
break;
|
|
|
|
case "XWeapons.ONSGrenadeLauncher":
|
|
if(bReplaceONSGrenadeLauncer)
|
|
return "UT2341WeaponsReducedv1a.UT2341Ripper";
|
|
break;
|
|
|
|
case "XWeapons.RocketLauncher":
|
|
if(bReplaceRocketLauncher)
|
|
return "UT2341WeaponsReducedv1a.UT2341RocketLauncher";
|
|
break;
|
|
|
|
case "XWeapons.SniperRifle":
|
|
if(bReplaceSniperRifle)
|
|
return "UT2341WeaponsReducedv1a.UT2341SniperRifle";
|
|
break;
|
|
|
|
case "XWeapons.ClassicSniperRifle":
|
|
if(bReplaceClassicSniperRifle)
|
|
return "UT2341WeaponsReducedv1a.UT2341SniperRifle";
|
|
break;
|
|
|
|
case "XWeapons.Redeemer":
|
|
if(bReplaceRedeemer)
|
|
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
|
|
break;
|
|
|
|
case "XWeapons.Painter":
|
|
if(bReplacePainter)
|
|
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
|
|
break;
|
|
|
|
case "XWeapons.ONSPainter":
|
|
if(bReplacePainter)
|
|
return "UT2341WeaponsReducedv1a.UT2341Redeemer";
|
|
break;
|
|
}
|
|
|
|
if ( NextMutator != None )
|
|
return NextMutator.GetInventoryClassOverride(InventoryClassName);
|
|
return InventoryClassName;
|
|
}
|
|
|
|
|
|
|
|
|
|
function bool CheckReplacement( Actor Other, out byte bSuperRelevant )
|
|
{
|
|
local int i;
|
|
local WeaponLocker L;
|
|
local PhysicsVolume PV;
|
|
bSuperRelevant = 0;
|
|
|
|
/*
|
|
PV = PhysicsVolume(Other);
|
|
if ( PV != None )
|
|
{
|
|
PV.bAlwaysRelevant = true;
|
|
PV.RemoteRole = ROLE_DumbProxy;
|
|
return true;
|
|
}
|
|
*/
|
|
|
|
|
|
if (xPawn(Other) != None)
|
|
{
|
|
if(bReplaceStartWeapons)
|
|
{
|
|
xPawn(Other).RequiredEquipment[0] = "UT2341WeaponsReducedv1a.UT2341Enforcer";
|
|
|
|
xPawn(Other).RequiredEquipment[1] = "UT2341WeaponsReducedv1a.UT2341Hammer";
|
|
|
|
if (xLastManStandingGame(Level.Game) != None)
|
|
xPawn(Other).RequiredEquipment[2] = "UT2341WeaponsReducedv1a.UT2341Ripper";
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if (xPickupBase(Other) != None)
|
|
{
|
|
Other.bHidden = True;
|
|
Other.SetDrawType(DT_None);
|
|
Other.SetStaticMesh(None);
|
|
|
|
if ( xWeaponBase(Other) != None )
|
|
{
|
|
switch(xWeaponBase(Other).WeaponType)
|
|
{
|
|
case class'AssaultRifle':
|
|
if(bReplaceAssaultRifle)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
|
|
break;
|
|
|
|
case class'BioRifle':
|
|
if(bReplaceBioRifle)
|
|
xWeaponBase(Other).WeaponType = class'UT2341BioRifle';
|
|
break;
|
|
|
|
case class'ONSMineLayer':
|
|
if(bReplaceONSMineLayer)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
|
|
break;
|
|
|
|
case class'ShockRifle':
|
|
if(bReplaceShockRifle)
|
|
xWeaponBase(Other).WeaponType = class'UT2341ShockRifle';
|
|
break;
|
|
|
|
case class'LinkGun':
|
|
if(bReplaceLinkGun)
|
|
xWeaponBase(Other).WeaponType = class'UT2341PulseGun';
|
|
break;
|
|
|
|
case class'Minigun':
|
|
if(bReplaceMinigun)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Minigun';
|
|
break;
|
|
|
|
case class'FlakCannon':
|
|
if(bReplaceFlakCannon)
|
|
xWeaponBase(Other).WeaponType = class'UT2341FlakCannon';
|
|
break;
|
|
|
|
case class'ONSGrenadeLauncher':
|
|
if(bReplaceONSGrenadeLauncer)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Ripper';
|
|
break;
|
|
|
|
case class'RocketLauncher':
|
|
if(bReplaceRocketLauncher)
|
|
xWeaponBase(Other).WeaponType = class'UT2341RocketLauncher';
|
|
break;
|
|
|
|
case class'SniperRifle':
|
|
if(bReplaceSniperRifle)
|
|
xWeaponBase(Other).WeaponType = class'UT2341SniperRifle';
|
|
break;
|
|
|
|
case class'ClassicSniperRifle':
|
|
if(bReplaceClassicSniperRifle)
|
|
xWeaponBase(Other).WeaponType = class'UT2341SniperRifle';
|
|
break;
|
|
|
|
case class'Redeemer':
|
|
if(bReplaceRedeemer)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
|
|
break;
|
|
|
|
case class'Painter':
|
|
if(bReplacePainter)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
|
|
break;
|
|
|
|
case class'ONSPainter':
|
|
if(bReplacePainter)
|
|
xWeaponBase(Other).WeaponType = class'UT2341Redeemer';
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
if (Pickup(Other) != None)
|
|
{
|
|
if ( WeaponLocker(Other) != None )
|
|
{
|
|
L = WeaponLocker(Other);
|
|
for (i = 0; i < L.Weapons.Length; i++)
|
|
{
|
|
switch(L.Weapons[i].WeaponClass)
|
|
{
|
|
case class'BioRifle':
|
|
if(bReplaceAssaultRifle)
|
|
L.Weapons[i].WeaponClass = class'UT2341BioRifle';
|
|
break;
|
|
case class'AssaultRifle':
|
|
if(bReplaceBioRifle)
|
|
L.Weapons[i].WeaponClass = class'UT2341Ripper';
|
|
break;
|
|
case class'ONSMineLayer':
|
|
if(bReplaceONSMineLayer)
|
|
L.Weapons[i].WeaponClass = class'UT2341Ripper';
|
|
break;
|
|
case class'ShockRifle':
|
|
if(bReplaceShockRifle)
|
|
L.Weapons[i].WeaponClass = class'UT2341ShockRifle';
|
|
break;
|
|
case class'LinkGun':
|
|
if(bReplaceLinkGun)
|
|
L.Weapons[i].WeaponClass = class'UT2341PulseGun';
|
|
break;
|
|
case class'Minigun':
|
|
if(bReplaceMinigun)
|
|
L.Weapons[i].WeaponClass = class'UT2341Minigun';
|
|
break;
|
|
case class'FlakCannon':
|
|
if(bReplaceFlakCannon)
|
|
L.Weapons[i].WeaponClass = class'UT2341FlakCannon';
|
|
break;
|
|
case class'RocketLauncher':
|
|
if(bReplaceRocketLauncher)
|
|
L.Weapons[i].WeaponClass = class'UT2341RocketLauncher';
|
|
break;
|
|
case class'SniperRifle':
|
|
if(bReplaceSniperRifle)
|
|
L.Weapons[i].WeaponClass = class'UT2341SniperRifle';
|
|
break;
|
|
case class'ClassicSniperRifle':
|
|
if(bReplaceClassicSniperRifle)
|
|
L.Weapons[i].WeaponClass = class'UT2341SniperRifle';
|
|
break;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
if (UTAmmoPickup(Other) != None)
|
|
{
|
|
switch(UTAmmoPickup(Other).Class)
|
|
{
|
|
case class'AssaultAmmoPickup':
|
|
if(bReplaceAssaultRifle)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
|
|
break;
|
|
case class'BioAmmoPickup':
|
|
if(bReplaceBioRifle)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341BioAmmoPickup");
|
|
break;
|
|
case class'ONSMineAmmoPickup':
|
|
if(bReplaceONSMineLayer)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
|
|
break;
|
|
case class'ShockAmmoPickup':
|
|
if(bReplaceShockRifle)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341ShockRifleAmmoPickup");
|
|
break;
|
|
case class'LinkAmmoPickup':
|
|
if(bReplaceLinkGun)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341PulseAmmoPickup");
|
|
break;
|
|
case class'MinigunAmmoPickup':
|
|
if(bReplaceMinigun)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341MinigunAmmoPickup");
|
|
break;
|
|
case class'FlakAmmoPickup':
|
|
if(bReplaceFlakCannon)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341FlakAmmoPickup");
|
|
break;
|
|
case class'ONSGrenadeAmmoPickup':
|
|
if(bReplaceONSGrenadeLauncer)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RipperAmmoPickup");
|
|
break;
|
|
case class'RocketAmmoPickup':
|
|
if(bReplaceRocketLauncher)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341RocketAmmoPickup");
|
|
break;
|
|
case class'SniperAmmoPickup':
|
|
if(bReplaceSniperRifle)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341SniperAmmoPickup");
|
|
break;
|
|
case class'ClassicSniperAmmoPickup':
|
|
if(bReplaceClassicSniperRifle)
|
|
ReplaceWith( Other, "UT2341WeaponsReducedv1a.UT2341SniperAmmoPickup");
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
return true;
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
GroupName = "Arena"
|
|
FriendlyName = "Unreal Tournament 2341"
|
|
Description = "Replaces the standard weapons with UT99 equivalents."
|
|
bNetTemporary = True
|
|
bAlwaysRelevant = True
|
|
RemoteRole = ROLE_SimulatedProxy
|
|
bReplaceAssaultRifle = True
|
|
bReplaceBioRifle = True
|
|
bReplaceONSMineLayer = True
|
|
bReplaceShockRifle = True
|
|
bReplaceLinkGun = True
|
|
bReplaceMinigun = True
|
|
bReplaceFlakCannon = True
|
|
bReplaceONSGrenadeLauncer = True
|
|
bReplaceRocketLauncher = True
|
|
bReplaceSniperRifle = True
|
|
bReplaceClassicSniperRifle = True
|
|
bReplaceRedeemer = True
|
|
bReplacePainter = True
|
|
bReplaceStartWeapons = True
|
|
bAddToServerpackages = True
|
|
}
|