Various fixes and tweaks. Adjusted collision for most things (turns out projectiles with 0 height break with 3d floors).

Added brightmaps to flak chunks. Reverted chunk trail to be sprite-based.
This commit is contained in:
Marisa the Magician 2018-05-30 21:31:41 +02:00
commit 92ae39afba
32 changed files with 209 additions and 46 deletions

View file

@ -38,6 +38,8 @@ Class UTArmorBonus : UTArmor replaces ArmorBonus
UTArmor.ArmorAbsorption 25;
Inventory.PickupMessage "You picked up an Armor Bonus.";
Inventory.PickupSound "misc/ut_shard";
Radius 4;
Height 12;
}
States
{
@ -58,6 +60,8 @@ Class UTThighPads : UTArmor replaces GreenArmor
UTArmor.ArmorAbsorption 50;
Inventory.PickupMessage "You got the Thigh Pads.";
Inventory.PickupSound "misc/ut_armor";
Radius 8;
Height 20;
}
States
{
@ -78,6 +82,8 @@ Class UTBodyArmor : UTArmor replaces BlueArmor
UTArmor.ArmorAbsorption 75;
Inventory.PickupMessage "You got the Body Armor.";
Inventory.PickupSound "misc/ut_armor";
Radius 10;
Height 20;
}
States
{
@ -135,6 +141,8 @@ Class UTShieldBelt : UTArmor replaces Megasphere
Inventory.PickupMessage "You got the Shield Belt.";
Inventory.PickupSound "belt/pickup";
Inventory.RespawnTics 2100;
Radius 10;
Height 8;
}
States
{

View file

@ -28,6 +28,8 @@ Class BioAmmo : Ammo
Ammo.BackpackAmount 50;
Ammo.BackpackMaxAmount 100;
Ammo.DropAmount 10;
Radius 8;
Height 8;
}
States
{
@ -82,14 +84,19 @@ Class BioHitbox : Actor
{
Default
{
Radius 2;
Height 2;
Radius 3;
Height 6;
+SHOOTABLE;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOBLOOD;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
if ( target ) A_SetSize(1.5*target.scale.x,3*target.scale.y);
}
override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle )
{
if ( inflictor == target ) return 0;
@ -338,8 +345,8 @@ Class BioGel : Actor
DamageType 'Slime';
DamageFunction Random[GES](20,30)*Scale.x;
RenderStyle "Add";
Radius 4;
Height 4;
Radius 3;
Height 3;
Scale 2;
Speed 20;
PROJECTILE;
@ -490,6 +497,9 @@ Class BioRifle : UTWeapon
Weapon.AmmoType2 "BioAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 25;
Radius 10;
Height 16;
UTWeapon.DroppedHeight 14;
}
States
{

View file

@ -131,6 +131,12 @@ Class UTChainsaw : UTWeapon
if ( d.HitType == TRACE_HitWall ) d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4);
}
}
override void DetachFromOwner()
{
if ( Owner ) Owner.A_StopSound(CHAN_6);
A_PlaySound("chainsaw/lower",CHAN_6);
Super.DetachFromOwner();
}
Default
{
Tag "Chainsaw";
@ -141,6 +147,9 @@ Class UTChainsaw : UTWeapon
Weapon.SelectionOrder 9;
+WEAPON.MELEEWEAPON;
+FORCEPAIN;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 12;
}
States
{

View file

@ -9,6 +9,8 @@ Class UTRocketAmmo : Ammo
Ammo.BackpackAmount 12;
Ammo.BackpackMaxAmount 48;
Ammo.DropAmount 3;
Radius 4;
Height 14;
}
States
{
@ -27,6 +29,8 @@ Class UTRocketAmmo2 : UTRocketAmmo
Inventory.PickupMessage "You picked up a Single Rocket.";
Inventory.Amount 1;
Ammo.DropAmount 1;
Radius 2;
Height 13;
}
States
{
@ -108,7 +112,7 @@ Class UTRocket : Actor
DamageFunction Random[Eightball](70,80);
DamageType 'RocketDeath';
Radius 2;
Height 0;
Height 2;
Speed 30;
PROJECTILE;
+SKYEXPLODE;
@ -386,6 +390,9 @@ Class UTRocketLauncher : UTWeapon
Weapon.AmmoType2 "UTRocketAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 6;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 12;
}
States
{

View file

@ -6,6 +6,8 @@ Class EClip : MiniAmmo replaces Clip
Inventory.PickupMessage "You picked up a Clip.";
Inventory.Amount 20;
Ammo.DropAmount 5;
Radius 8;
Height 6;
}
States
{
@ -94,7 +96,7 @@ Class UTCasing : Actor
Default
{
Radius 2;
Height 0;
Height 2;
+NOBLOCKMAP;
+MISSILE;
+MOVEWITHSECTOR;
@ -360,6 +362,9 @@ Class Enforcer : UTWeapon replaces Pistol
Weapon.AmmoGive 30;
Enforcer.ClipCount 20;
Enforcer.SlaveClipCount 20;
Radius 8;
Height 16;
UTWeapon.DroppedHeight 8;
}
States
{

View file

@ -35,6 +35,8 @@ Class FlakAmmo : Ammo
Ammo.BackpackAmount 20;
Ammo.BackpackMaxAmount 50;
Ammo.DropAmount 5;
Radius 10;
Height 8;
}
States
{
@ -52,6 +54,8 @@ Class FlakAmmo2 : FlakAmmo
Inventory.PickupMessage "You picked up a Flak Shell.";
Inventory.Amount 1;
Ammo.DropAmount 1;
Radius 4;
Height 6;
}
States
{
@ -77,9 +81,9 @@ Class ChunkLight : DynamicLight
return;
}
if ( globalfreeze || level.frozen ) return;
args[LIGHT_RED] = 255*target.alpha;
args[LIGHT_GREEN] = 224*target.alpha;
args[LIGHT_BLUE] = 128*target.alpha;
args[LIGHT_RED] = 255*(10-target.frame)*0.1;
args[LIGHT_GREEN] = 224*(10-target.frame)*0.1;
args[LIGHT_BLUE] = 128*(10-target.frame)*0.1;
}
}
@ -94,7 +98,6 @@ Class ChunkTrail : Actor
+NOGRAVITY;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+INVISIBLE; // temporarily until clipping screwery is fixed
Scale 0.2;
}
override void PostBeginPlay()
@ -107,13 +110,11 @@ Class ChunkTrail : Actor
{
Super.Tick();
if ( globalfreeze || level.frozen ) return;
A_SpawnParticle("FFFF00",SPF_FULLBRIGHT,1,8,startalphaf:alpha);
A_SpawnParticle("E0A000",SPF_FULLBRIGHT,1,16,startalphaf:alpha*0.6);
A_SpawnParticle("804000",SPF_FULLBRIGHT,1,32,startalphaf:alpha*0.3);
if ( InStateSequence(CurState,FindState("Death")) ) return;
if ( !target )
{
SetStateLabel("Death");
int dist = FindState("Spawn").DistanceTo(CurState);
SetState(FindState("Death")+dist);
return;
}
SetOrigin(target.pos+(0,0,speed),true);
@ -121,13 +122,12 @@ Class ChunkTrail : Actor
States
{
Spawn:
FGLO A 1 Bright;
Wait;
FGLO ABCDEFGHIJK 3 Bright;
Stop;
Death:
FGLO A 1 Bright A_FadeOut(0.1);
Wait;
FGLO ABCDEFGHIJK 1 Bright;
Stop;
}
}
Class FlakChunk : Actor
@ -142,7 +142,7 @@ Class FlakChunk : Actor
{
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
Radius 2;
Height 0;
Height 2;
Speed 50;
DamageFunction Random[Flak](12,18);
DamageType 'Shredded';
@ -164,7 +164,7 @@ Class FlakChunk : Actor
lifespeed = FRandom[Flak](0.004,0.008);
trail = ChunkTrail(Spawn("ChunkTrail",pos));
trail.target = self;
trail.speed = 0.5;
trail.speed = 2;
rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1);
pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1);
yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1);
@ -356,14 +356,13 @@ Class SlugLight : DynamicLight
Class FlakSlug : Actor
{
ChunkTrail trail;
Default
{
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
DamageType 'FlakDeath';
DamageFunction Random[Flak](60,80);
Radius 2;
Height 0;
Height 2;
Speed 40;
PROJECTILE;
-NOGRAVITY;
@ -373,19 +372,12 @@ Class FlakSlug : Actor
override void PostBeginPlay()
{
Super.PostBeginPlay();
trail = ChunkTrail(Spawn("ChunkTrail",pos));
trail.target = self;
trail.speed = 1;
vel.z += 5;
}
override void Tick()
{
Super.Tick();
if ( waterlevel > 0 )
{
vel.xy *= 0.98;
if ( trail ) trail.Destroy();
}
if ( waterlevel > 0 ) vel.xy *= 0.98;
}
action void A_FlakExplode()
{
@ -565,6 +557,9 @@ Class FlakCannon : UTWeapon
Weapon.AmmoType2 "FlakAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 10;
Radius 12;
Height 16;
UTWeapon.DroppedHeight 16;
}
States
{

View file

@ -12,6 +12,8 @@ Class UTHealthPack : Health replaces Soulsphere
Inventory.PickupMessage "You picked up the Big Keg O' Health.";
Inventory.PickupSound "misc/ut_keg";
Inventory.RespawnTics 3500;
Radius 18;
Height 30;
}
States
{
@ -30,6 +32,8 @@ Class UTHealthBox : Health replaces Medikit
Inventory.PickupMessage "You picked up a Health Box.";
Health.LowMessage 25,"You picked up a Health Box that you REALLY need!";
Inventory.PickupSound "misc/ut_heal";
Radius 16;
Height 12;
}
States
{
@ -48,6 +52,8 @@ Class UTMedBox : Health replaces Stimpack
Inventory.PickupMessage "You picked up a Health Pack.";
Inventory.PickupSound "misc/ut_heal";
Inventory.RespawnTics 700;
Radius 12;
Height 10;
}
States
{
@ -69,6 +75,8 @@ Class UTHealthBonus : Health replaces HealthBonus
Inventory.PickupMessage "You picked up a Health Vial.";
Inventory.PickupSound "misc/ut_heal";
RenderStyle "Add";
Radius 2;
Height 16;
}
States
{

View file

@ -195,6 +195,11 @@ Class ImpactHammer : UTWeapon replaces Fist
}
A_Refire(flash);
}
override void DetachFromOwner()
{
if ( Owner ) Owner.A_StopSound(CHAN_WEAPON);
Super.DetachFromOwner();
}
Default
{

View file

@ -35,6 +35,8 @@ Class MiniAmmo : Ammo
Ammo.BackpackAmount 100;
Ammo.BackpackMaxAmount 199;
Ammo.DropAmount 20;
Radius 12;
Height 14;
}
States
{
@ -192,6 +194,9 @@ Class Minigun : UTWeapon
Weapon.AmmoType2 "MiniAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 50;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 8;
}
States
{

View file

@ -12,6 +12,8 @@ Class UDamage : PowerupGiver replaces Berserk
Powerup.Type "DamageAmplifier";
Inventory.PickupSound "udamage/pickup";
Inventory.RespawnTics 4200;
Radius 15;
Height 40;
}
override void PostBeginPlay()
{
@ -196,6 +198,8 @@ Class UTBackpack : BackpackItem replaces Backpack
Tag "Backpack";
Inventory.PickupMessage "You got a Backpack.";
Inventory.RespawnTics 2100;
Radius 10;
Height 32;
}
States
{
@ -235,6 +239,8 @@ Class UTInvisibility : PowerupGiver replaces BlurSphere
Inventory.PickupMessage "You have Invisibility.";
Inventory.PickupSound "invis/pickup";
Inventory.RespawnTics 4200;
Radius 6;
Height 20;
}
override void PostBeginPlay()
{
@ -259,6 +265,8 @@ Class UTInvisibilityX : Actor
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
Radius 0.1;
Height 0;
}
override void Tick()
{
@ -290,6 +298,8 @@ Class UTMapRevealer : MapRevealer replaces Allmap
Inventory.MaxAmount 0;
Inventory.PickupSound "trans/pickup";
Inventory.PickupMessage "You got the Computer Map.";
Radius 10;
Height 4;
}
States
{
@ -311,6 +321,8 @@ Class UTJumpBoots : Inventory replaces RadSuit
Inventory.PickupMessage "You picked up the AntiGrav boots.";
Inventory.PickupSound "boot/pickup";
Inventory.RespawnTics 1050;
Radius 9;
Height 14;
}
override bool Use( bool pickup )
{
@ -395,6 +407,8 @@ Class Searchlight : Inventory replaces Infrared
Inventory.MaxAmount 200;
Inventory.InterHubAmount 0;
Inventory.PickupMessage "You picked up the Searchlight.";
Radius 10;
Height 16;
}
override bool Use( bool pickup )

View file

@ -27,6 +27,8 @@ Class PulseAmmo : Ammo
Ammo.BackpackAmount 50;
Ammo.BackpackMaxAmount 199;
Ammo.DropAmount 10;
Radius 5;
Height 12;
}
States
{
@ -99,7 +101,7 @@ Class PulseBall : Actor
Scale 0.2;
Speed 30;
Radius 2;
Height 0;
Height 2;
}
override void PostBeginPlay()
{
@ -516,6 +518,11 @@ Class PulseGun : UTWeapon
Super.OwnerDied();
if ( beam ) beam.Destroy();
}
override void DetachFromOwner()
{
if ( beam ) beam.Destroy();
Super.DetachFromOwner();
}
Default
{
Tag "Pulse Gun";
@ -529,6 +536,9 @@ Class PulseGun : UTWeapon
Weapon.AmmoUse2 1;
Weapon.AmmoGive 60;
PulseGun.ClipCount 50;
Radius 18;
Height 16;
UTWeapon.DroppedHeight 12;
}
States
{

View file

@ -9,6 +9,8 @@ Class RipperAmmo : Ammo
Ammo.BackpackAmount 50;
Ammo.BackpackMaxAmount 75;
Ammo.DropAmount 10;
Radius 4;
Height 21;
}
States
{
@ -27,6 +29,8 @@ Class Razor2Trail : Actor
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
Radius 0.1;
Height 0;
}
override void Tick()
{
@ -54,7 +58,7 @@ Class Razor2 : Actor
Default
{
Radius 2;
Height 0;
Height 2;
Speed 50;
DamageFunction Random[Ripper](20,30);
DamageType "Ripper";
@ -244,6 +248,9 @@ Class Ripper2 : UTWeapon
Weapon.AmmoType2 "RipperAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 15;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 16;
}
action void A_RazorFire( bool alt = false )
{

View file

@ -9,6 +9,8 @@ Class ShockAmmo : Ammo
Ammo.BackpackAmount 20;
Ammo.BackpackMaxAmount 50;
Ammo.DropAmount 5;
Radius 4;
Height 23;
}
States
{
@ -759,8 +761,8 @@ Class ShockHitbox : Actor
{
Default
{
Radius 24;
Height 24;
Radius 8;
Height 16;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
@ -818,7 +820,7 @@ Class ShockBall : Actor
DamageType 'jolted';
DamageFunction Random[ASMD](50,60);
Radius 2;
Height 0;
Height 2;
Scale 0.4;
Speed 20;
PROJECTILE;
@ -880,7 +882,7 @@ Class SuperShockBall : Actor
DamageType 'jolted';
DamageFunction Random[ASMD](5000,6000);
Radius 2;
Height 0;
Height 2;
Scale 0.5;
Speed 25;
PROJECTILE;
@ -956,6 +958,9 @@ Class ShockRifle : UTWeapon
Weapon.AmmoType2 "ShockAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 20;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 8;
}
States
{
@ -1002,6 +1007,8 @@ Class EnhancedShockAmmo : Ammo
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 25;
Ammo.DropAmount 2;
Radius 4;
Height 23;
}
States
{
@ -1065,6 +1072,9 @@ Class EnhancedShockRifle : UTWeapon replaces InvulnerabilitySphere
Weapon.AmmoType2 "EnhancedShockAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 25;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 8;
}
States
{

View file

@ -9,6 +9,8 @@ Class RifleAmmo : Ammo
Ammo.BackpackAmount 20;
Ammo.BackpackMaxAmount 50;
Ammo.DropAmount 5;
Radius 6;
Height 12;
}
States
{
@ -26,6 +28,8 @@ Class RifleAmmo2 : RifleAmmo
Inventory.PickupMessage "You got a Rifle Round.";
Inventory.Amount 1;
Ammo.DropAmount 1;
Radius 1;
Height 8;
}
States
{
@ -138,6 +142,9 @@ Class SniperRifle : UTWeapon
Weapon.AmmoType2 "RifleAmmo";
Weapon.AmmoUse2 1;
Weapon.AmmoGive 8;
Radius 20;
Height 16;
UTWeapon.DroppedHeight 10;
}
States
{

View file

@ -2,7 +2,7 @@ Class ModuleHitbox : Actor
{
Default
{
Radius 10;
Radius 5;
Height 4;
+SHOOTABLE;
+NOGRAVITY;
@ -30,7 +30,7 @@ Class ModuleHitbox : Actor
Destroy();
return;
}
SetOrigin(target.pos-(0,0,height*0.5),true);
SetOrigin(target.pos,true);
if ( target.bMISSILE ) return;
let bi = BlockThingsIterator.Create(self,32);
while ( bi.Next() )
@ -119,7 +119,7 @@ Class TranslocatorModule : Actor
Default
{
Radius 2;
Height 0;
Height 2;
Speed 25;
PROJECTILE;
-NOGRAVITY;
@ -357,6 +357,9 @@ Class Translocator : UTWeapon
Weapon.SlotNumber 1;
Weapon.SelectionOrder 10;
+WEAPON.NO_AUTO_SWITCH;
Radius 5;
Height 16;
UTWeapon.DroppedHeight 4;
}
States
{

View file

@ -184,6 +184,10 @@ Class RandomSpawner2 : RandomSpawner
Class UTWeapon : Weapon
{
double droppedheight;
Property DroppedHeight : droppedheight;
// Drawstuffs under HUD
virtual ui void PreRender() {}
// Drawstuffs over HUD
@ -197,6 +201,7 @@ Class UTWeapon : Weapon
{
d.SetState(d.ResolveState("Spawn")+1);
d.bALWAYSPICKUP = true;
d.A_SetSize(-1,UTWeapon(d).droppedheight);
}
return d;
}
@ -205,6 +210,7 @@ Class UTWeapon : Weapon
{
SetState(ResolveState("Spawn")+1);
bALWAYSPICKUP = true;
A_SetSize(-1,droppedheight);
return false;
}
@ -228,6 +234,7 @@ Class UTWeapon : Weapon
Weapon.BobRangeX 0.2;
Weapon.BobRangeY 0.4;
+WEAPON.NOALERT;
UTWeapon.DroppedHeight 16;
}
}

View file

@ -11,6 +11,8 @@ Class WarheadAmmo : Ammo
Ammo.BackpackMaxAmount 2;
Ammo.DropAmount 1;
Inventory.RespawnTics 2100;
Radius 2;
Height 42;
}
States
{
@ -110,8 +112,8 @@ Class WarheadHitbox : Actor
{
Default
{
Radius 8;
Height 8;
Radius 2;
Height 4;
+SHOOTABLE;
+NOGRAVITY;
+NOCLIP;
@ -242,8 +244,8 @@ Class WarShell : Actor
Default
{
Obituary "%o was vaporized by %k's Redeemer!!";
Radius 4;
Height 4;
Radius 2;
Height 2;
Speed 2;
DamageType 'RedeemerDeath';
DamageFactor 1000;
@ -649,6 +651,9 @@ Class WarheadLauncher : UTWeapon replaces BFG9000
Inventory.RespawnTics 2100;
+INVENTORY.ALWAYSPICKUP;
+WEAPON.NOAUTOFIRE;
Radius 24;
Height 16;
UTWeapon.DroppedHeight 16;
}
States
{