Merge branch 'master' into utmovement
This commit is contained in:
commit
b4abb2e2ae
7 changed files with 36 additions and 22 deletions
|
|
@ -47,7 +47,7 @@ This mod requires GZDoom 3.5.0 or later.
|
||||||
|
|
||||||
## In progress
|
## In progress
|
||||||
|
|
||||||
- General polishing and bugfixing
|
- General polishing, bugfixing and rebalancing
|
||||||
- Add some more effects
|
- Add some more effects
|
||||||
- Visual recoil affecting aim (time to recycle SM's A_Swing once again)
|
- Visual recoil affecting aim (time to recycle SM's A_Swing once again)
|
||||||
- Lava/Slime footstep sounds?
|
- Lava/Slime footstep sounds?
|
||||||
|
|
@ -65,6 +65,7 @@ This mod requires GZDoom 3.5.0 or later.
|
||||||
scripted textures are implemented.
|
scripted textures are implemented.
|
||||||
- Add player models + weapon attachment support when that is also added in.
|
- Add player models + weapon attachment support when that is also added in.
|
||||||
- Add option to have UT-like player movement physics.
|
- Add option to have UT-like player movement physics.
|
||||||
|
- Migrate RandomSpawners to CheckReplacement.
|
||||||
|
|
||||||
## Known bugs
|
## Known bugs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -411,8 +411,8 @@ Class BioGel : Actor
|
||||||
s.args[3] = int(s.args[3]*Scale.x);
|
s.args[3] = int(s.args[3]*Scale.x);
|
||||||
invoker.deadtimer = -2;
|
invoker.deadtimer = -2;
|
||||||
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
||||||
UTMainHandler.DoBlast(self,Min(150,int(Scale.x*25)),20000*Scale.x);
|
UTMainHandler.DoBlast(self,Min(250,int(Scale.x*75)),20000*Scale.x);
|
||||||
A_Explode(int(Random[GES](18,22)*max(1,(Scale.x-1)**2)),Min(150,int(Scale.x*25)));
|
A_Explode(int(Random[GES](18,26)*Scale.x),Min(250,int(Scale.x*75)));
|
||||||
A_PlaySound("ges/explode",CHAN_VOICE);
|
A_PlaySound("ges/explode",CHAN_VOICE);
|
||||||
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
|
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
|
||||||
|
|
@ -123,16 +123,16 @@ Class UTRocket : Actor
|
||||||
l.target = self;
|
l.target = self;
|
||||||
A_PlaySound("utrl/fly",CHAN_VOICE,1.0,true,2.5);
|
A_PlaySound("utrl/fly",CHAN_VOICE,1.0,true,2.5);
|
||||||
}
|
}
|
||||||
action void A_RocketExplode( int dmg )
|
action void A_RocketExplode( int dmg, int rad )
|
||||||
{
|
{
|
||||||
bFORCEXYBILLBOARD = true;
|
bFORCEXYBILLBOARD = true;
|
||||||
A_SetRenderStyle(1.0,STYLE_Add);
|
A_SetRenderStyle(1.0,STYLE_Add);
|
||||||
A_SprayDecal("RocketBlast",150);
|
A_SprayDecal("RocketBlast",150);
|
||||||
A_NoGravity();
|
A_NoGravity();
|
||||||
A_SetScale(0.75);
|
A_SetScale(0.75);
|
||||||
UTMainHandler.DoBlast(self,100,80000);
|
UTMainHandler.DoBlast(self,rad,80000);
|
||||||
A_Explode(dmg,100);
|
A_Explode(dmg,rad);
|
||||||
A_QuakeEx(3,3,3,8,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:100,rollIntensity:0.2);
|
A_QuakeEx(3,3,3,8,0,rad+50,"",QF_RELATIVE|QF_SCALEDOWN,falloff:rad,rollIntensity:0.2);
|
||||||
A_PlaySound("utrl/explode",CHAN_VOICE);
|
A_PlaySound("utrl/explode",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
Spawn("RocketExplLight",pos);
|
Spawn("RocketExplLight",pos);
|
||||||
|
|
@ -179,7 +179,7 @@ Class UTRocket : Actor
|
||||||
}
|
}
|
||||||
Wait;
|
Wait;
|
||||||
Death:
|
Death:
|
||||||
TNT1 A 0 A_RocketExplode(Random[Eightball](90,115));
|
TNT1 A 0 A_RocketExplode(Random[Eightball](90,120),220);
|
||||||
SSMX ABCDEFGHIJ 2 Bright;
|
SSMX ABCDEFGHIJ 2 Bright;
|
||||||
Stop;
|
Stop;
|
||||||
}
|
}
|
||||||
|
|
@ -232,7 +232,7 @@ Class UTGrenade : UTRocket
|
||||||
}
|
}
|
||||||
Goto Spawn;
|
Goto Spawn;
|
||||||
Death:
|
Death:
|
||||||
TNT1 A 0 A_RocketExplode(Random[Eightball](90,120));
|
TNT1 A 0 A_RocketExplode(Random[Eightball](100,150),200);
|
||||||
Goto Super::Death+1;
|
Goto Super::Death+1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -385,9 +385,9 @@ Class FlakSlug : Actor
|
||||||
A_SprayDecal("RocketBlast",150);
|
A_SprayDecal("RocketBlast",150);
|
||||||
A_NoGravity();
|
A_NoGravity();
|
||||||
A_SetScale(1.2);
|
A_SetScale(1.2);
|
||||||
UTMainHandler.DoBlast(self,80,75000);
|
UTMainHandler.DoBlast(self,150,75000);
|
||||||
A_Explode(Random[Flak](70,80),80);
|
A_Explode(Random[Flak](70,80),150);
|
||||||
A_QuakeEx(4,4,4,8,0,200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:80,rollIntensity:0.2);
|
A_QuakeEx(4,4,4,8,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollIntensity:0.2);
|
||||||
A_PlaySound("flak/explode",CHAN_VOICE);
|
A_PlaySound("flak/explode",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
if ( !Tracer ) Spawn("SlugSmoke",pos);
|
if ( !Tracer ) Spawn("SlugSmoke",pos);
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ Class DamageAmplifier : Powerup
|
||||||
l = Spawn("DamageAmpLight",Owner.pos);
|
l = Spawn("DamageAmpLight",Owner.pos);
|
||||||
l.target = Owner;
|
l.target = Owner;
|
||||||
l.master = self;
|
l.master = self;
|
||||||
|
if ( deathmatch ) EffectTics /= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
override void DoEffect()
|
override void DoEffect()
|
||||||
|
|
|
||||||
|
|
@ -185,8 +185,6 @@ Class Razor2Alt : Razor2
|
||||||
{
|
{
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
DamageFunction 0;
|
|
||||||
DamageType 'RipperAltDealth';
|
|
||||||
BounceType "None";
|
BounceType "None";
|
||||||
-CANBOUNCEWATER;
|
-CANBOUNCEWATER;
|
||||||
+EXPLODEONWATER;
|
+EXPLODEONWATER;
|
||||||
|
|
@ -204,7 +202,7 @@ Class Razor2Alt : Razor2
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_SprayDecal("RazorBlast",20);
|
A_SprayDecal("RazorBlast",20);
|
||||||
UTMainHandler.DoBlast(self,120,87000);
|
UTMainHandler.DoBlast(self,120,87000);
|
||||||
A_Explode(Random[Ripper](30,50),120);
|
A_Explode(Random[Ripper](30,50),180,damagetype:'RipperAltDeath');
|
||||||
A_QuakeEx(3,3,3,10,0,180,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.1);
|
A_QuakeEx(3,3,3,10,0,180,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.1);
|
||||||
int numpt = Random[Ripper](10,20);
|
int numpt = Random[Ripper](10,20);
|
||||||
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||||
|
|
|
||||||
|
|
@ -336,10 +336,10 @@ Class ShockBeam : Actor
|
||||||
{
|
{
|
||||||
if ( target ) target.TakeInventory('ShockAmmo',2);
|
if ( target ) target.TakeInventory('ShockAmmo',2);
|
||||||
let b = t.Results.HitActor.target;
|
let b = t.Results.HitActor.target;
|
||||||
UTMainHandler.DoBlast(b,300,70000);
|
UTMainHandler.DoBlast(b,250,70000);
|
||||||
b.ExplodeMissile(null,self);
|
b.ExplodeMissile(null,self);
|
||||||
b.A_Explode(Random[ASMD](150,160),300);
|
b.A_Explode(Random[ASMD](150,180),250);
|
||||||
b.A_QuakeEx(6,6,6,60,0,1200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:300,rollIntensity:0.2);
|
b.A_QuakeEx(6,6,6,60,0,1200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:250,rollIntensity:0.2);
|
||||||
b.A_SprayDecal("BigShockMark1",100);
|
b.A_SprayDecal("BigShockMark1",100);
|
||||||
b.A_SprayDecal("BigShockMark2",100);
|
b.A_SprayDecal("BigShockMark2",100);
|
||||||
Spawn("ShockRifleWave",b.pos);
|
Spawn("ShockRifleWave",b.pos);
|
||||||
|
|
@ -829,7 +829,7 @@ Class ShockBall : Actor
|
||||||
action void A_BallExplode()
|
action void A_BallExplode()
|
||||||
{
|
{
|
||||||
UTMainHandler.DoBlast(self,70,70000);
|
UTMainHandler.DoBlast(self,70,70000);
|
||||||
A_Explode(Random[ASMD](40,50),70);
|
A_Explode(Random[ASMD](50,60),70);
|
||||||
A_SprayDecal("ShockMarkBig",16);
|
A_SprayDecal("ShockMarkBig",16);
|
||||||
Spawn("ShockExplLight",pos);
|
Spawn("ShockExplLight",pos);
|
||||||
A_SetScale(1.0);
|
A_SetScale(1.0);
|
||||||
|
|
@ -1115,6 +1115,15 @@ Class EnhancedShockAmmo : Ammo
|
||||||
{
|
{
|
||||||
int ticcnt;
|
int ticcnt;
|
||||||
|
|
||||||
|
override void PostBeginPlay()
|
||||||
|
{
|
||||||
|
Super.PostBeginPlay();
|
||||||
|
if ( deathmatch )
|
||||||
|
{
|
||||||
|
MaxAmount /= 2;
|
||||||
|
BackpackMaxAmount /= 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
override void Tick()
|
override void Tick()
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
|
|
@ -1129,9 +1138,9 @@ Class EnhancedShockAmmo : Ammo
|
||||||
Tag "Enhanced Shock Core";
|
Tag "Enhanced Shock Core";
|
||||||
Inventory.PickupMessage "You picked up an Enhanced Shock Core.";
|
Inventory.PickupMessage "You picked up an Enhanced Shock Core.";
|
||||||
Inventory.Amount 5;
|
Inventory.Amount 5;
|
||||||
Inventory.MaxAmount 25;
|
Inventory.MaxAmount 50;
|
||||||
Ammo.BackpackAmount 0;
|
Ammo.BackpackAmount 0;
|
||||||
Ammo.BackpackMaxAmount 25;
|
Ammo.BackpackMaxAmount 50;
|
||||||
Ammo.DropAmount 2;
|
Ammo.DropAmount 2;
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -1155,6 +1164,11 @@ Class ViewSuperShockSpark : ViewShockSpark
|
||||||
|
|
||||||
Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
||||||
{
|
{
|
||||||
|
override void PostBeginPlay()
|
||||||
|
{
|
||||||
|
Super.PostBeginPlay();
|
||||||
|
if ( deathmatch ) AmmoGive1 /= 2;
|
||||||
|
}
|
||||||
action void A_SShockFire()
|
action void A_SShockFire()
|
||||||
{
|
{
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
|
|
@ -1247,7 +1261,7 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
|
||||||
Weapon.AmmoUse 1;
|
Weapon.AmmoUse 1;
|
||||||
Weapon.AmmoType2 "EnhancedShockAmmo";
|
Weapon.AmmoType2 "EnhancedShockAmmo";
|
||||||
Weapon.AmmoUse2 1;
|
Weapon.AmmoUse2 1;
|
||||||
Weapon.AmmoGive 25;
|
Weapon.AmmoGive 50;
|
||||||
UTWeapon.DropAmmo 5;
|
UTWeapon.DropAmmo 5;
|
||||||
+WEAPON.AMMO_OPTIONAL;
|
+WEAPON.AMMO_OPTIONAL;
|
||||||
+WEAPON.ALT_AMMO_OPTIONAL;
|
+WEAPON.ALT_AMMO_OPTIONAL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue