Merge branch 'master' into utmovement

This commit is contained in:
Marisa the Magician 2018-08-18 00:04:20 +02:00
commit b4abb2e2ae
7 changed files with 36 additions and 22 deletions

View file

@ -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

View file

@ -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++ )

View file

@ -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;
} }
} }

View file

@ -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);

View file

@ -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()

View file

@ -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));

View file

@ -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;