1.0 release:
- Swap around some assets and code with Doom Tournament. - Searchlight moved to here. - Computer map and Armor bonus moved to DT. - Armor absorption priority code moved to DT. - Added Unreal crosshairs. - Fix incorrect Autocannon flash color. - Ported over Translocator ally telefrag prevention. - Fixed razor blades emitting no effects when hitting a non-bleeding enemy. - Misc. cleanup.
18
Readme.md
|
|
@ -3,8 +3,7 @@
|
||||||
The Unreal 1 counterpart to Doom Tournament. Adds Unreal 1 weapons and items
|
The Unreal 1 counterpart to Doom Tournament. Adds Unreal 1 weapons and items
|
||||||
(including dummied out stuff and others).
|
(including dummied out stuff and others).
|
||||||
|
|
||||||
This mod requires GZDoom g4.3pre-125-g021e548db or later, and runs on top of
|
This mod requires GZDoom 4.2.3 or later, and runs on top of Doom Tournament.
|
||||||
Doom Tournament (currently the devel branch is required).
|
|
||||||
|
|
||||||
## Currently Implemented
|
## Currently Implemented
|
||||||
|
|
||||||
|
|
@ -74,12 +73,12 @@ Doom Tournament (currently the devel branch is required).
|
||||||
|
|
||||||
## In progress
|
## In progress
|
||||||
|
|
||||||
- Final polishing
|
- N/A, this is the 1.0 release.
|
||||||
|
|
||||||
## Planned
|
## Planned
|
||||||
|
|
||||||
- Shifted to a 1.1 update:
|
- Shifted to a 1.1 update:
|
||||||
- Impaler "slice" animation for melee alt
|
- Impaler "slice" animation for melee alt.
|
||||||
- Alternate flamethrower secondary that behaves more like the Unreal Bible
|
- Alternate flamethrower secondary that behaves more like the Unreal Bible
|
||||||
describes (unlit blobs at a rate of 4 per second that catch on fire with
|
describes (unlit blobs at a rate of 4 per second that catch on fire with
|
||||||
explosions/lava/etc).
|
explosions/lava/etc).
|
||||||
|
|
@ -88,13 +87,4 @@ Doom Tournament (currently the devel branch is required).
|
||||||
- Actual Bonesaw?
|
- Actual Bonesaw?
|
||||||
- Implement ASMD behavior described in the Unreal novels (highly destructive
|
- Implement ASMD behavior described in the Unreal novels (highly destructive
|
||||||
green beam that bounces off mirrors and water).
|
green beam that bounces off mirrors and water).
|
||||||
|
- Redo Quadshot animations (including partial reloads).
|
||||||
- RTNP add-on
|
|
||||||
- Monster pack (someday)
|
|
||||||
- Map pack (maybe? who knows)
|
|
||||||
|
|
||||||
## Known bugs
|
|
||||||
|
|
||||||
- The Quadshot will visibly load 4 shells even when there's less available,
|
|
||||||
this is a limitation of the animation and I'll have to make alternate ones
|
|
||||||
for it eventually.
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 803 B |
BIN
brightmaps/JTranslator1.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
48
gldefs.txt
|
|
@ -440,16 +440,9 @@ Object StarterImpalerBolt
|
||||||
Frame "PBLT" { light "IBOLTLIGHT" }
|
Frame "PBLT" { light "IBOLTLIGHT" }
|
||||||
}
|
}
|
||||||
|
|
||||||
PointLight UCOMPLIGHT
|
|
||||||
{
|
|
||||||
Color 0.3 1.0 0.2
|
|
||||||
Size 12
|
|
||||||
Offset 0 8 0
|
|
||||||
Attenuate 1
|
|
||||||
}
|
|
||||||
Object UAllMap
|
Object UAllMap
|
||||||
{
|
{
|
||||||
Frame "PMAP" { light "UCOMPLIGHT" }
|
Frame "TRNS" { light "UTCOMPLIGHT" }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shaders / Brightmaps
|
// Shaders / Brightmaps
|
||||||
|
|
@ -538,8 +531,11 @@ Brightmap Texture "models/JEightB1.png"
|
||||||
}
|
}
|
||||||
HardwareShader Texture "models/JFlashl1.png"
|
HardwareShader Texture "models/JFlashl1.png"
|
||||||
{
|
{
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
Shader "shaders/glsl/AmbientGlow.fp"
|
||||||
Texture "brighttex" "brightmaps/JFlashl1.png"
|
}
|
||||||
|
HardwareShader Texture "models/JBigFlash1.png"
|
||||||
|
{
|
||||||
|
Shader "shaders/glsl/AmbientGlow.fp"
|
||||||
}
|
}
|
||||||
HardwareShader Texture "models/JImpale1_.png"
|
HardwareShader Texture "models/JImpale1_.png"
|
||||||
{
|
{
|
||||||
|
|
@ -858,38 +854,12 @@ HardwareShader Texture "models/FlametFX.png"
|
||||||
{
|
{
|
||||||
Shader "shaders/glsl/FlametFX.fp"
|
Shader "shaders/glsl/FlametFX.fp"
|
||||||
}
|
}
|
||||||
HardwareShader Texture "models/shield.png"
|
HardwareShader Texture "models/JTranslator1.png"
|
||||||
{
|
|
||||||
Shader "shaders/glsl/AmbientGlow.fp"
|
|
||||||
}
|
|
||||||
HardwareShader Texture "models/JAllMap1_a00.png"
|
|
||||||
{
|
{
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
||||||
Texture "brighttex" "brightmaps/JAllMap1_a00.png"
|
Texture "brighttex" "brightmaps/JTranslator1.png"
|
||||||
}
|
|
||||||
HardwareShader Texture "models/JAllMap1_a01.png"
|
|
||||||
{
|
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
|
||||||
Texture "brighttex" "brightmaps/JAllMap1_a01.png"
|
|
||||||
}
|
|
||||||
HardwareShader Texture "models/JAllMap1_a02.png"
|
|
||||||
{
|
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
|
||||||
Texture "brighttex" "brightmaps/JAllMap1_a02.png"
|
|
||||||
}
|
|
||||||
HardwareShader Texture "models/JAllMap1_a03.png"
|
|
||||||
{
|
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
|
||||||
Texture "brighttex" "brightmaps/JAllMap1_a03.png"
|
|
||||||
}
|
|
||||||
HardwareShader Texture "models/JAllMap2.png"
|
|
||||||
{
|
|
||||||
Shader "shaders/glsl/AmbientGlow.fp"
|
|
||||||
}
|
|
||||||
HardwareShader Texture "models/JAllMap3.png"
|
|
||||||
{
|
|
||||||
Shader "shaders/glsl/AmbientGlow.fp"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PP shaders
|
// PP shaders
|
||||||
HardwareShader PostProcess scene
|
HardwareShader PostProcess scene
|
||||||
{
|
{
|
||||||
|
|
|
||||||
BIN
graphics/crosshairs/XHAIRB10.png
Normal file
|
After Width: | Height: | Size: 123 B |
BIN
graphics/crosshairs/XHAIRB11.png
Normal file
|
After Width: | Height: | Size: 148 B |
BIN
graphics/crosshairs/XHAIRB12.png
Normal file
|
After Width: | Height: | Size: 166 B |
BIN
graphics/crosshairs/XHAIRB8.png
Normal file
|
After Width: | Height: | Size: 145 B |
BIN
graphics/crosshairs/XHAIRB9.png
Normal file
|
After Width: | Height: | Size: 153 B |
|
|
@ -213,7 +213,6 @@ M_MSNOFLOOR = "Cannot deploy Sentry at this height.";
|
||||||
M_MSNOFLAT = "Cannot deploy Sentry on such a steep slope.";
|
M_MSNOFLAT = "Cannot deploy Sentry on such a steep slope.";
|
||||||
M_NSTOOFAR = "Cannot recall Sentry from this distance.";
|
M_NSTOOFAR = "Cannot recall Sentry from this distance.";
|
||||||
M_FFNOROOM = "No room to activate Force Field.";
|
M_FFNOROOM = "No room to activate Force Field.";
|
||||||
M_ISELECT = "%s selected.";
|
|
||||||
S_MINHUD = "Health %d Score %d Ammo %d";
|
S_MINHUD = "Health %d Score %d Ammo %d";
|
||||||
S_MINHUD2 = "Health %d Score %d Ammo %d/%d";
|
S_MINHUD2 = "Health %d Score %d Ammo %d/%d";
|
||||||
/* Menus */
|
/* Menus */
|
||||||
|
|
@ -463,7 +462,6 @@ M_MSNOFLOOR = "No se puede colocar la Torreta a esta altura.";
|
||||||
M_MSNOFLAT = "No se puede colocar la Torreta en una cuesta tan inclinada.";
|
M_MSNOFLAT = "No se puede colocar la Torreta en una cuesta tan inclinada.";
|
||||||
M_NSTOOFAR = "No se puede retirar la Torreta desde esta distancia.";
|
M_NSTOOFAR = "No se puede retirar la Torreta desde esta distancia.";
|
||||||
M_FFNOROOM = "No hay espacio para activar el Campo de Fuerza.";
|
M_FFNOROOM = "No hay espacio para activar el Campo de Fuerza.";
|
||||||
M_ISELECT = "Seleccionado %s.";
|
|
||||||
S_MINHUD = "Salud %d Puntuación %d Munición %d";
|
S_MINHUD = "Salud %d Puntuación %d Munición %d";
|
||||||
S_MINHUD2 = "Salud %d Puntuación %d Munición %d/%d";
|
S_MINHUD2 = "Salud %d Puntuación %d Munición %d/%d";
|
||||||
/* Menus */
|
/* Menus */
|
||||||
|
|
|
||||||
|
|
@ -69,22 +69,6 @@ Model "ASMDBall"
|
||||||
FrameIndex TAZB A 0 0
|
FrameIndex TAZB A 0 0
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Model "ASMDExpl"
|
|
||||||
{
|
|
||||||
Path "models"
|
|
||||||
Model 0 "TazerExpl_d.3d"
|
|
||||||
Skin 0 "AsmdBeam.png"
|
|
||||||
Scale 0.8 0.8 0.96
|
|
||||||
DONTCULLBACKFACES
|
|
||||||
|
|
||||||
FrameIndex TAZB A 0 0
|
|
||||||
FrameIndex TAZB B 0 1
|
|
||||||
FrameIndex TAZB C 0 2
|
|
||||||
FrameIndex TAZB D 0 3
|
|
||||||
FrameIndex TAZB E 0 4
|
|
||||||
FrameIndex TAZB F 0 5
|
|
||||||
}*/
|
|
||||||
|
|
||||||
Model "ASMDBeamRing"
|
Model "ASMDBeamRing"
|
||||||
{
|
{
|
||||||
Path "models"
|
Path "models"
|
||||||
|
|
|
||||||
|
|
@ -809,11 +809,11 @@ Model "UAllMap"
|
||||||
AngleOffset 90
|
AngleOffset 90
|
||||||
|
|
||||||
SurfaceSkin 0 0 "JAllMap1_a00.png"
|
SurfaceSkin 0 0 "JAllMap1_a00.png"
|
||||||
FrameIndex MDET A 0 0
|
FrameIndex TRNS A 0 0
|
||||||
SurfaceSkin 0 0 "JAllMap1_a01.png"
|
SurfaceSkin 0 0 "JAllMap1_a01.png"
|
||||||
FrameIndex MDET B 0 0
|
FrameIndex TRNS B 0 0
|
||||||
SurfaceSkin 0 0 "JAllMap1_a02.png"
|
SurfaceSkin 0 0 "JAllMap1_a02.png"
|
||||||
FrameIndex MDET C 0 0
|
FrameIndex TRNS C 0 0
|
||||||
SurfaceSkin 0 0 "JAllMap1_a03.png"
|
SurfaceSkin 0 0 "JAllMap1_a03.png"
|
||||||
FrameIndex MDET D 0 0
|
FrameIndex TRNS D 0 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
models/BigFlash_a.3d
Normal file
BIN
models/BigFlash_d.3d
Normal file
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
BIN
models/JBigFlash1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
models/JTranslator1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
models/TranslatorMesh_a.3d
Normal file
BIN
models/TranslatorMesh_d.3d
Normal file
|
Before Width: | Height: | Size: 39 KiB |
|
|
@ -218,6 +218,7 @@ voice/activate voicesnd
|
||||||
|
|
||||||
univis/toggle invisibl
|
univis/toggle invisibl
|
||||||
|
|
||||||
|
lite/pickup fshlite1
|
||||||
lite/off fshlite2
|
lite/off fshlite2
|
||||||
|
|
||||||
scuba/stop scubada1
|
scuba/stop scubada1
|
||||||
|
|
|
||||||
BIN
sounds/FSHLITE1.ogg
Normal file
|
Before Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
|
@ -1,2 +1 @@
|
||||||
Sprite "TAZBA0",1,1{}
|
Sprite "TAZBA0",1,1{}
|
||||||
Sprite "RNGXA0",1,1{}
|
|
||||||
5
xhairs.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
8 "Unreal Crosshair 1"
|
||||||
|
9 "Unreal Crosshair 2"
|
||||||
|
10 "Unreal Crosshair 3"
|
||||||
|
11 "Unreal Crosshair 4"
|
||||||
|
12 "Unreal Crosshair 5"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
version "4.3"
|
version "4.2.2"
|
||||||
|
|
||||||
#include "zscript/unrealcommon.zsc"
|
#include "zscript/unrealcommon.zsc"
|
||||||
#include "zscript/dispersionpistol.zsc"
|
#include "zscript/dispersionpistol.zsc"
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ Class SMiniGun : UnrealWeapon
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !bAlt && !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !bAlt && !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(32,0,0,255),1);
|
UTMainHandler.DoFlash(self,Color(32,255,255,0),1);
|
||||||
A_QuakeEx(2,2,2,bAlt?5:3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollintensity:0.12);
|
A_QuakeEx(2,2,2,bAlt?5:3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollintensity:0.12);
|
||||||
A_PlaySound(bAlt?"smini/altfire":"smini/fire",CHAN_WEAPON);
|
A_PlaySound(bAlt?"smini/altfire":"smini/fire",CHAN_WEAPON);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,8 @@ Class RazorBlade : Actor
|
||||||
}
|
}
|
||||||
Goto Spawn;
|
Goto Spawn;
|
||||||
Death:
|
Death:
|
||||||
|
TNT1 A 0 A_RazorHit();
|
||||||
|
XDeath:
|
||||||
TNT1 A 1 A_StopSound(CHAN_VOICE);
|
TNT1 A 1 A_StopSound(CHAN_VOICE);
|
||||||
Stop;
|
Stop;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,8 @@
|
||||||
Class UnrealArmor : UTArmor
|
Class UnrealArmor : UTArmor
|
||||||
{
|
{
|
||||||
int priority;
|
|
||||||
|
|
||||||
Property AbsorptionPriority : priority;
|
|
||||||
|
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
-INVENTORY.ALWAYSPICKUP;
|
-INVENTORY.ALWAYSPICKUP;
|
||||||
UnrealArmor.AbsorptionPriority 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
override void AttachToOwner( Actor other )
|
|
||||||
{
|
|
||||||
Super.AttachToOwner(other);
|
|
||||||
// find last armor that's better than us
|
|
||||||
Inventory found = null;
|
|
||||||
for ( Inventory i=other.Inv; i; i=i.Inv )
|
|
||||||
{
|
|
||||||
if ( !(i is 'UnrealArmor') || (i == self) || (UnrealArmor(i).priority < priority) ) continue;
|
|
||||||
found = i;
|
|
||||||
}
|
|
||||||
if ( !found ) return;
|
|
||||||
// place ourselves right after it
|
|
||||||
Inventory saved = found.Inv;
|
|
||||||
found.Inv = self;
|
|
||||||
other.Inv = Inv;
|
|
||||||
Inv = saved;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,7 +15,7 @@ Class UArmor : UnrealArmor
|
||||||
Inventory.MaxAmount 100;
|
Inventory.MaxAmount 100;
|
||||||
Inventory.InterHubAmount 100;
|
Inventory.InterHubAmount 100;
|
||||||
UTArmor.ArmorAbsorption 90;
|
UTArmor.ArmorAbsorption 90;
|
||||||
UnrealArmor.AbsorptionPriority 7;
|
UTArmor.AbsorptionPriority 7;
|
||||||
Inventory.PickupMessage "$I_UARMOR";
|
Inventory.PickupMessage "$I_UARMOR";
|
||||||
Inventory.PickupSound "misc/u1armor";
|
Inventory.PickupSound "misc/u1armor";
|
||||||
Inventory.Icon "I_Armor";
|
Inventory.Icon "I_Armor";
|
||||||
|
|
@ -60,7 +37,7 @@ Class AsbestosSuit : UnrealArmor
|
||||||
Inventory.MaxAmount 50;
|
Inventory.MaxAmount 50;
|
||||||
Inventory.InterHubAmount 50;
|
Inventory.InterHubAmount 50;
|
||||||
UTArmor.ArmorAbsorption 50;
|
UTArmor.ArmorAbsorption 50;
|
||||||
UnrealArmor.AbsorptionPriority 6;
|
UTArmor.AbsorptionPriority 6;
|
||||||
Inventory.PickupMessage "$I_ASBSUIT";
|
Inventory.PickupMessage "$I_ASBSUIT";
|
||||||
Inventory.PickupSound "misc/suit";
|
Inventory.PickupSound "misc/suit";
|
||||||
Inventory.Icon "I_Suit";
|
Inventory.Icon "I_Suit";
|
||||||
|
|
@ -97,7 +74,7 @@ Class ToxinSuit : UnrealArmor
|
||||||
Inventory.MaxAmount 50;
|
Inventory.MaxAmount 50;
|
||||||
Inventory.InterHubAmount 50;
|
Inventory.InterHubAmount 50;
|
||||||
UTArmor.ArmorAbsorption 50;
|
UTArmor.ArmorAbsorption 50;
|
||||||
UnrealArmor.AbsorptionPriority 6;
|
UTArmor.AbsorptionPriority 6;
|
||||||
Inventory.PickupMessage "$I_TOXSUIT";
|
Inventory.PickupMessage "$I_TOXSUIT";
|
||||||
Inventory.PickupSound "misc/suit";
|
Inventory.PickupSound "misc/suit";
|
||||||
Inventory.Icon "I_TSuit";
|
Inventory.Icon "I_TSuit";
|
||||||
|
|
@ -134,7 +111,7 @@ Class KevlarSuit : UnrealArmor
|
||||||
Inventory.MaxAmount 100;
|
Inventory.MaxAmount 100;
|
||||||
Inventory.InterHubAmount 100;
|
Inventory.InterHubAmount 100;
|
||||||
UTArmor.ArmorAbsorption 80;
|
UTArmor.ArmorAbsorption 80;
|
||||||
UnrealArmor.AbsorptionPriority 6;
|
UTArmor.AbsorptionPriority 6;
|
||||||
Inventory.PickupMessage "$I_KEVSUIT";
|
Inventory.PickupMessage "$I_KEVSUIT";
|
||||||
Inventory.PickupSound "misc/suit";
|
Inventory.PickupSound "misc/suit";
|
||||||
Inventory.Icon "I_Kevlar";
|
Inventory.Icon "I_Kevlar";
|
||||||
|
|
@ -184,7 +161,7 @@ Class ShieldBelt : UnrealArmor
|
||||||
Inventory.MaxAmount 100;
|
Inventory.MaxAmount 100;
|
||||||
Inventory.InterHubAmount 100;
|
Inventory.InterHubAmount 100;
|
||||||
UTArmor.ArmorAbsorption 100;
|
UTArmor.ArmorAbsorption 100;
|
||||||
UnrealArmor.AbsorptionPriority 10;
|
UTArmor.AbsorptionPriority 10;
|
||||||
Inventory.PickupMessage "$I_SHIELDBELT";
|
Inventory.PickupMessage "$I_SHIELDBELT";
|
||||||
Inventory.PickupSound "belt/pickup";
|
Inventory.PickupSound "belt/pickup";
|
||||||
Inventory.RespawnTics 2100;
|
Inventory.RespawnTics 2100;
|
||||||
|
|
@ -256,7 +233,7 @@ Class PowerShield : UnrealArmor
|
||||||
Inventory.MaxAmount 200;
|
Inventory.MaxAmount 200;
|
||||||
Inventory.InterHubAmount 200;
|
Inventory.InterHubAmount 200;
|
||||||
UTArmor.ArmorAbsorption 100;
|
UTArmor.ArmorAbsorption 100;
|
||||||
UnrealArmor.AbsorptionPriority 11; // wow dude
|
UTArmor.AbsorptionPriority 11; // wow dude
|
||||||
Inventory.PickupMessage "$I_POWERSHIELD";
|
Inventory.PickupMessage "$I_POWERSHIELD";
|
||||||
Inventory.PickupSound "sbelt/pickup";
|
Inventory.PickupSound "sbelt/pickup";
|
||||||
Inventory.RespawnTics 3500;
|
Inventory.RespawnTics 3500;
|
||||||
|
|
@ -327,7 +304,7 @@ Class UArmorBonus : UArmor
|
||||||
Inventory.MaxAmount 200;
|
Inventory.MaxAmount 200;
|
||||||
Inventory.InterHubAmount 200;
|
Inventory.InterHubAmount 200;
|
||||||
UTArmor.ArmorAbsorption 25;
|
UTArmor.ArmorAbsorption 25;
|
||||||
UnrealArmor.AbsorptionPriority 1;
|
UTArmor.AbsorptionPriority 1;
|
||||||
Inventory.PickupMessage "$I_ARMORBONUS";
|
Inventory.PickupMessage "$I_ARMORBONUS";
|
||||||
Inventory.PickupSound "misc/u1armor";
|
Inventory.PickupSound "misc/u1armor";
|
||||||
Inventory.Icon "I_Bonus";
|
Inventory.Icon "I_Bonus";
|
||||||
|
|
|
||||||
|
|
@ -347,7 +347,7 @@ Class UAllMap : MapRevealer
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
Spawn:
|
Spawn:
|
||||||
MDET ABCDCB 6;
|
TRNS ABCDCB 6;
|
||||||
Loop;
|
Loop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -202,6 +202,15 @@ Class UTranslocator : UnrealWeapon
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
// squeeze down new z if ceiling is in the way
|
// squeeze down new z if ceiling is in the way
|
||||||
if ( (newpos.z+height > moduleceilingz) ) newpos.z = max(modulefloorz,moduleceilingz-height);
|
if ( (newpos.z+height > moduleceilingz) ) newpos.z = max(modulefloorz,moduleceilingz-height);
|
||||||
|
// temporarily disable telefragging for all allies
|
||||||
|
bool oldnotele[MAXPLAYERS];
|
||||||
|
for ( int i=0; i<MAXPLAYERS; i++ )
|
||||||
|
{
|
||||||
|
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||||
|
oldnotele[i] = players[i].mo.bNOTELEFRAG;
|
||||||
|
if ( !IsFriend(players[i].mo) ) continue;
|
||||||
|
players[i].mo.bNOTELEFRAG = true;
|
||||||
|
}
|
||||||
if ( Warp(self,newpos.x,newpos.y,newpos.z,flags:WARPF_ABSOLUTEPOSITION|WARPF_TESTONLY) && TeleportMove(newpos,true) )
|
if ( Warp(self,newpos.x,newpos.y,newpos.z,flags:WARPF_ABSOLUTEPOSITION|WARPF_TESTONLY) && TeleportMove(newpos,true) )
|
||||||
{
|
{
|
||||||
A_PlaySound("flak/click",CHAN_WEAPON);
|
A_PlaySound("flak/click",CHAN_WEAPON);
|
||||||
|
|
@ -210,6 +219,11 @@ Class UTranslocator : UnrealWeapon
|
||||||
player.fov = min(175,player.desiredfov+60);
|
player.fov = min(175,player.desiredfov+60);
|
||||||
}
|
}
|
||||||
else A_PlaySound("transloc/return",CHAN_WEAPON);
|
else A_PlaySound("transloc/return",CHAN_WEAPON);
|
||||||
|
for ( int i=0; i<MAXPLAYERS; i++ )
|
||||||
|
{
|
||||||
|
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||||
|
players[i].mo.bNOTELEFRAG = oldnotele[i];
|
||||||
|
}
|
||||||
if ( bBroken )
|
if ( bBroken )
|
||||||
{
|
{
|
||||||
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);
|
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);
|
||||||
|
|
|
||||||