Wow looks like I got a lot of stuff in here.
Added brightmaps and gldefs entries for most stuff. Imported a bunch of sprites, including some recycled stuff from old mods. Made new icons for the 0.83 status bar. Remade "Teleport Gun" model. Made new models for some ammo variants. Made skeleton code for a lot of stuff, this temporarily makes a lot of items disappear. Began working on ASMD. Flak Cannon has no projectiles yet.
This commit is contained in:
parent
62834e9e3f
commit
76cd3a5207
465 changed files with 1330 additions and 58 deletions
|
|
@ -2,9 +2,9 @@ Class UPlayer : UTPlayer
|
|||
{
|
||||
Default
|
||||
{
|
||||
//Player.StartItem "Automag";
|
||||
//Player.StartItem "DispersionPistol";
|
||||
//Player.StartItem "UMiniAmmo", 30;
|
||||
Player.StartItem "Automag";
|
||||
Player.StartItem "DispersionPistol";
|
||||
Player.StartItem "UMiniAmmo", 30;
|
||||
}
|
||||
|
||||
// Have to modify the give cheat to handle UT armor
|
||||
|
|
@ -304,7 +304,7 @@ Class UPlayerFemale : UPlayer
|
|||
Goto Spawn+1;
|
||||
Taunt2:
|
||||
#### # 5;
|
||||
PLT2 ABCDEFGHIJKLMNOPQR 4;
|
||||
PLT2 ABCDEFGHIJKLMNOPQR 3;
|
||||
Goto Spawn+1;
|
||||
Taunt3:
|
||||
#### # 5;
|
||||
|
|
@ -495,6 +495,29 @@ Class UnrealInventory : Inventory
|
|||
}
|
||||
}
|
||||
|
||||
Class UTeleportFog : Actor
|
||||
{
|
||||
Default
|
||||
{
|
||||
+NOBLOCKMAP;
|
||||
+NOTELEPORT;
|
||||
+NOGRAVITY;
|
||||
RenderStyle "Add";
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
Spawn("UTTeleportLight",pos+(0,0,16));
|
||||
A_PlaySound ("misc/teleport");
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TNT1 A 1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class UnrealStaticHandler : StaticEventHandler
|
||||
{
|
||||
ui TextureID tex[6];
|
||||
|
|
@ -576,19 +599,343 @@ Class UnrealStaticHandler : StaticEventHandler
|
|||
|
||||
Class UnrealMainHandler : EventHandler
|
||||
{
|
||||
// can't detect terraindef-based damage
|
||||
// this is currently an engine limitation
|
||||
static bool, bool DetectHurtfloors()
|
||||
{
|
||||
bool foundslime = false, foundlava = false;
|
||||
for ( int i=0; i<level.Sectors.Size(); i++ )
|
||||
{
|
||||
Sector s = level.Sectors[i];
|
||||
if ( !s.DamageAmount || !s.DamageInterval ) continue;
|
||||
if ( s.DamageType == 'Slime' ) foundslime = true;
|
||||
else if ( s.DamageType == 'Fire' ) foundlava = true;
|
||||
}
|
||||
return foundslime, foundlava;
|
||||
}
|
||||
|
||||
override void CheckReplacement( ReplaceEvent e )
|
||||
{
|
||||
if ( (e.Replacee == 'Shotgun') || (e.Replacee == 'SuperShotgun') || (e.Replacee == 'Crossbow') )
|
||||
if ( (e.Replacee == 'Chainsaw') || (e.Replacee == 'Gauntlets') )
|
||||
{
|
||||
/*if ( !Random[Replacements](0,3) ) e.Replacement = 'Automag';
|
||||
else if ( Random[Replacements](0,1) ) */e.Replacement = 'Stinger';
|
||||
/*else e.Replacement = 'ASMD';*/
|
||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'WeaponPowerUp';
|
||||
else switch ( Random[Replacements](0,3) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'Bonesaw';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'Stunner';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'Betamag';
|
||||
break;
|
||||
case 3:
|
||||
e.Replacement = 'Automag';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'Fist') || (e.Replacee == 'Staff') ) e.Replacement = 'DispersionPistol';
|
||||
else if ( (e.Replacee == 'Pistol') || (e.Replacee == 'GoldWand') )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'Betamag';
|
||||
else e.Replacement = 'Automag';
|
||||
}
|
||||
else if ( (e.Replacee == 'Shotgun') || (e.Replacee == 'SuperShotgun') || (e.Replacee == 'Crossbow') )
|
||||
{
|
||||
if ( !Random[Replacements](0,3) )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'Betamag';
|
||||
else e.Replacement = 'Automag';
|
||||
}
|
||||
else switch( Random[Replacements](0,2) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'Stinger';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'ASMD';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'QuadShot';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'Chaingun') || (e.Replacee == 'Blaster') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'UMinigun';
|
||||
else e.Replacement = 'Razorjack';
|
||||
}
|
||||
else if ( (e.Replacee == 'RocketLauncher') || (e.Replacee == 'PhoenixRod') )
|
||||
{
|
||||
/*if ( Random[Replacements](0,1) ) */e.Replacement = 'UFlakCannon';
|
||||
/*else e.Replacement = 'Eightball';*/
|
||||
switch ( Random[Replacements](0,2) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'FlameGun';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'UFlakCannon';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'Eightball';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'PlasmaRifle') || (e.Replacee == 'SkullRod') )
|
||||
{
|
||||
switch ( Random[Replacements](0,2) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'UFlamethrower';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'URifle';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'UBioRifle';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'BFG9000') || (e.Replacee == 'Mace') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'SMiniGun';
|
||||
else e.Replacement = 'BigGun';
|
||||
}
|
||||
else if ( (e.Replacee == 'Clip') || (e.Replacee == 'GoldWandAmmo') || (e.Replacee == 'GoldWandHefty') ) e.Replacement = 'UClip';
|
||||
else if ( (e.Replacee == 'ClipBox') )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'UClip';
|
||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'UMiniAmmo';
|
||||
else e.Replacement = 'RazorAmmo';
|
||||
}
|
||||
else if ( (e.Replacee == 'BlasterAmmo') || (e.Replacee == 'BlasterHefty') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'UMiniAmmo';
|
||||
else e.Replacement = 'RazorAmmo';
|
||||
}
|
||||
else if ( (e.Replacee == 'Shell') || (e.Replacee == 'CrossbowAmmo') )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'UClip';
|
||||
else switch( Random[Replacements](0,2) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'StingerAmmo2';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'ASMDAmmo2';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'UShells2';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'ShellBox') || (e.Replacee == 'CrossbowHefty') )
|
||||
{
|
||||
switch( Random[Replacements](0,2) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'StingerAmmo';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'ASMDAmmo';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'UShells';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'RocketAmmo') || (e.Replacee == 'PhoenixRodAmmo') || (e.Replacee == 'MaceAmmo') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) )
|
||||
{
|
||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'UFlakBox';
|
||||
else e.Replacement = 'UFlakAmmo';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'URocketAmmo';
|
||||
else e.Replacement = 'URocketAmmo2';
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'RocketBox') || (e.Replacee == 'PhoenixRodHefty') || (e.Replacee == 'MaceHefty') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'UFlakBox';
|
||||
else e.Replacement = 'URocketAmmo';
|
||||
}
|
||||
else if ( (e.Replacee == 'Cell') || (e.Replacee == 'SkullRodAmmo') )
|
||||
{
|
||||
if ( !Random[Replacements](0,4) ) e.Replacement = 'BigAmmo2';
|
||||
else if ( Random[Replacements](0,1) )
|
||||
{
|
||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'ImpalerAmmo';
|
||||
else e.Replacement = 'ImpalerAmmo2';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( !Random[Replacements](0,3) ) e.Replacement = 'URifleAmmo';
|
||||
else e.Replacement = 'URifleAmmo2';
|
||||
}
|
||||
}
|
||||
else if ( (e.Replacee == 'CellPack') || (e.Replacee == 'SkullRodHefty') )
|
||||
{
|
||||
if ( !Random[Replacements](0,4) ) e.Replacement = 'BigAmmo';
|
||||
else if ( Random[Replacements](0,1) ) e.Replacement = 'ImpalerAmmo';
|
||||
else e.Replacement = 'URifleAmmo';
|
||||
}
|
||||
else if ( (e.Replacee == 'InvulnerabilitySphere') || (e.Replacee == 'ArtiInvulnerability') ) e.Replacement = 'PowerShield';
|
||||
else if ( (e.Replacee == 'Berserk') || (e.Replacee == 'ArtiTomeOfPower') )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'WeaponPowerUp';
|
||||
else e.Replacement = 'Amplifier';
|
||||
}
|
||||
else if ( e.Replacee == 'ArtiEgg' ) e.Replacement = 'VoiceBox';
|
||||
else if ( (e.Replacee == 'Soulsphere') || (e.Replacee == 'ArtiSuperHealth') ) e.Replacement = 'SuperHealth';
|
||||
else if ( e.Replacee == 'Megasphere' ) e.Replacement = 'ShieldBelt';
|
||||
else if ( (e.Replacee == 'Allmap') || (e.Replacee == 'SuperMap') ) e.Replacement = 'MotionDetector';
|
||||
else if ( (e.Replacee == 'BlurSphere') || (e.Replacee == 'ArtiInvisibility') )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'UInvisibility';
|
||||
else e.Replacement = 'Dampener';
|
||||
}
|
||||
else if ( (e.Replacee == 'Infrared') || (e.Replacee == 'ArtiTorch') )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'USearchlight';
|
||||
else e.Replacement = 'UFlashlight';
|
||||
}
|
||||
else if ( e.Replacee == 'RadSuit' )
|
||||
{
|
||||
bool HasSlime, HasLava;
|
||||
[HasSlime, HasLava] = DetectHurtfloors();
|
||||
if ( HasSlime )
|
||||
{
|
||||
if ( HasLava )
|
||||
{
|
||||
if ( Random[Replacements](0,3) )
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) e.Replacement = 'AsbestosSuit';
|
||||
else e.Replacement = 'ToxinSuit';
|
||||
}
|
||||
else e.Replacement = 'UJumpBoots';
|
||||
}
|
||||
else if ( Random[Replacements](0,3) ) e.Replacement = 'ToxinSuit';
|
||||
else e.Replacement = 'UJumpBoots';
|
||||
}
|
||||
else if ( HasLava && Random[Replacements](0,3) ) e.Replacement = 'AsbestosSuit';
|
||||
else e.Replacement = 'UJumpBoots';
|
||||
}
|
||||
else if ( e.Replacee == 'ArtiFly' ) e.Replacement = 'UJumpBoots';
|
||||
else if ( (e.Replacee == 'Backpack') || (e.Replacee == 'BagOfHolding') ) e.Replacement = 'UnrealBackpack';
|
||||
else if ( (e.Replacee == 'ArmorBonus') || (e.Replacee == 'ArtiTimeBomb') ) e.Replacement = 'Flare';
|
||||
else if ( (e.Replacee == 'HealthBonus') || (e.Replacee == 'CrystalVial') ) e.Replacement = 'Bandages';
|
||||
else if ( (e.Replacee == 'GreenArmor') || (e.Replacee == 'Silvershield') ) e.Replacement = 'KevlarSuit';
|
||||
else if ( (e.Replacee == 'BlueArmor') || (e.Replacee == 'EnchantedShield') ) e.Replacement = 'UArmor';
|
||||
else if ( e.Replacee == 'Stimpack' )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'UHealth';
|
||||
else e.Replacement = 'Seeds';
|
||||
}
|
||||
else if ( e.Replacee == 'Medikit' ) e.Replacement = 'UHealth';
|
||||
else if ( e.Replacee == 'ArtiHealth' )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) ) e.Replacement = 'UHealth';
|
||||
else e.Replacement = 'Seeds';
|
||||
}
|
||||
else if ( e.Replacee == 'ArtiTeleport' )
|
||||
{
|
||||
// I have no idea what to replace this with, so just have some random stuff
|
||||
switch( Random[Replacements](0,5) )
|
||||
{
|
||||
case 0:
|
||||
e.Replacement = 'UnrealBackpack';
|
||||
break;
|
||||
case 1:
|
||||
e.Replacement = 'ShieldBelt';
|
||||
break;
|
||||
case 2:
|
||||
e.Replacement = 'SuperHealth';
|
||||
break;
|
||||
case 3:
|
||||
e.Replacement = 'Amplifier';
|
||||
break;
|
||||
case 4:
|
||||
e.Replacement = 'WeaponPowerUp';
|
||||
break;
|
||||
case 5:
|
||||
e.Replacement = 'VoiceBox';
|
||||
break;
|
||||
case 6:
|
||||
e.Replacement = 'SentryItem';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( e.Replacee == 'TeleportFog' ) e.Replacement = 'UTeleportFog';
|
||||
// replace UT items (while this is mainly for the DT map pack, it also has the added effect of preventing the guns from being added by "give all")
|
||||
else if ( e.Replacee is 'ImpactHammer' ) e.Replacement = 'DispersionPistol';
|
||||
else if ( e.Replacee is 'Translocator' ) e.Replacement = 'UTranslocator';
|
||||
else if ( e.Replacee is 'UTChainsaw' ) e.Replacement = 'Slot1Weapons';
|
||||
else if ( e.Replacee is 'Enforcer' ) e.Replacement = 'Slot2Weapons';
|
||||
else if ( e.Replacee is 'BioRifle' ) e.Replacement = 'Slot3Weapons';
|
||||
else if ( e.Replacee is 'ShockRifle' ) e.Replacement = 'Slot4Weapons';
|
||||
else if ( e.Replacee is 'PulseGun' ) e.Replacement = 'Slot5Weapons';
|
||||
else if ( e.Replacee is 'Ripper2' ) e.Replacement = 'Slot6Weapons';
|
||||
else if ( e.Replacee is 'Minigun' ) e.Replacement = 'Slot7Weapons';
|
||||
else if ( e.Replacee is 'FlakCannon' ) e.Replacement = 'Slot8Ammo';
|
||||
else if ( e.Replacee is 'UTRocketLauncher' ) e.Replacement = 'Slot0Weapons';
|
||||
else if ( e.Replacee is 'SniperRifle' ) e.Replacement = 'Slot0Weapons';
|
||||
else if ( e.Replacee is 'WarheadLauncher' ) e.Replacement = 'Slot0SWeapons';
|
||||
else if ( e.Replacee is 'EnhancedShockRifle' ) e.Replacement = 'Amplifier';
|
||||
else if ( e.Replacee is 'ChainsawAmmo' ) e.Replacement = 'UNothing';
|
||||
else if ( e.Replacee is 'EClip' ) e.Replacement = 'Slot2Ammo';
|
||||
else if ( e.Replacee is 'BioAmmo' ) e.Replacement = 'Slot3Ammo';
|
||||
else if ( e.Replacee is 'ShockAmmo' ) e.Replacement = 'Slot4Ammo';
|
||||
else if ( e.Replacee is 'PulseAmmo' ) e.Replacement = 'Slot5Ammo';
|
||||
else if ( e.Replacee is 'RipperAmmo' ) e.Replacement = 'Slot6Ammo';
|
||||
else if ( e.Replacee is 'MiniAmmo' ) e.Replacement = 'Slot7Ammo';
|
||||
else if ( e.Replacee is 'FlakAmmo' ) e.Replacement = 'Slot8Ammo';
|
||||
else if ( e.Replacee is 'UTRocketAmmo' ) e.Replacement = 'Slot9Ammo';
|
||||
else if ( e.Replacee is 'RifleAmmo' ) e.Replacement = 'Slot0Ammo';
|
||||
else if ( e.Replacee is 'WarheadAmmo' ) e.Replacement = 'Slot0SAmmo';
|
||||
else if ( e.Replacee is 'EnhancedShockAmmo' ) e.Replacement = 'UNothing';
|
||||
else if ( e.Replacee is 'UTBackpack' ) e.Replacement = 'UnrealBackpack';
|
||||
else if ( e.Replacee is 'UDamage' ) e.Replacement = 'Amplifier';
|
||||
}
|
||||
|
||||
// translocator stuff
|
||||
override void PlayerEntered( PlayerEvent e )
|
||||
{
|
||||
if ( flak_translocator )
|
||||
{
|
||||
players[e.playernumber].mo.TakeInventory("Translocator",1);
|
||||
players[e.playernumber].mo.GiveInventory("UTranslocator",1);
|
||||
}
|
||||
}
|
||||
override void PlayerRespawned( PlayerEvent e )
|
||||
{
|
||||
if ( flak_translocator )
|
||||
{
|
||||
players[e.playernumber].mo.TakeInventory("Translocator",1);
|
||||
players[e.playernumber].mo.GiveInventory("UTranslocator",1);
|
||||
}
|
||||
}
|
||||
override void NetworkProcess( ConsoleEvent e )
|
||||
{
|
||||
if ( e.Name ~== "refreshtrans" )
|
||||
{
|
||||
if ( flak_translocator )
|
||||
{
|
||||
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] )
|
||||
{
|
||||
players[i].mo.TakeInventory("Translocator",1);
|
||||
players[i].mo.GiveInventory("UTranslocator",1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( int i=0; i<MAXPLAYERS; i++ ) if ( playeringame[i] )
|
||||
{
|
||||
players[i].mo.TakeInventory("UTranslocator",1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( e.Replacee == 'Backpack' ) e.Replacement = 'UnrealBackpack';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue