Merge branch 'devel' into experimental

This commit is contained in:
Marisa the Magician 2019-04-13 19:24:03 +02:00
commit 11d1f78d3d
984 changed files with 730 additions and 245 deletions

View file

@ -36,13 +36,13 @@ Class UTArmorBonus : UTArmor
Default
{
Tag "Armor Bonus";
Tag "$T_ARMORBONUS";
+COUNTITEM;
Inventory.Amount 1;
Inventory.MaxAmount 50;
Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 25;
Inventory.PickupMessage "You picked up an Armor Bonus.";
Inventory.PickupMessage "$I_ARMORBONUS";
Inventory.PickupSound "misc/ut_shard";
}
States
@ -76,12 +76,12 @@ Class UTThighPads : UTArmor
}
Default
{
Tag "Thigh Pads";
Tag "$T_THIGHPADS";
Inventory.Amount 50;
Inventory.MaxAmount 50;
Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 50;
Inventory.PickupMessage "You got the Thigh Pads.";
Inventory.PickupMessage "$I_THIGHPADS";
Inventory.PickupSound "misc/ut_armor";
}
States
@ -115,12 +115,12 @@ Class UTBodyArmor : UTArmor
}
Default
{
Tag "Body Armor";
Tag "$T_BODYARMOR";
Inventory.Amount 100;
Inventory.MaxAmount 100;
Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 75;
Inventory.PickupMessage "You got the Body Armor.";
Inventory.PickupMessage "$I_BODYARMOR";
Inventory.PickupSound "misc/ut_armor";
}
States
@ -142,7 +142,7 @@ Class UTShieldBelt : UTArmor
}
int oldamt = amount;
Super.AbsorbDamage(damage,damageType,newdamage);
if ( (oldamt > 0) && (amount <= 0) ) PrintPickupMessage(true,"The Shield Belt has depleted.");
if ( (oldamt > 0) && (amount <= 0) ) PrintPickupMessage(true,StringTable.Localize("$D_SHIELDBELT"));
}
override bool HandlePickup( Inventory item )
{
@ -173,14 +173,14 @@ Class UTShieldBelt : UTArmor
}
Default
{
Tag "Shield Belt";
Tag "$T_SHIELDBELT";
+COUNTITEM;
+INVENTORY.BIGPOWERUP;
Inventory.Amount 150;
Inventory.MaxAmount 150;
Inventory.InterHubAmount 150;
UTArmor.ArmorAbsorption 100;
Inventory.PickupMessage "You got the Shield Belt.";
Inventory.PickupMessage "$I_SHIELDBELT";
Inventory.PickupSound "belt/pickup";
Inventory.RespawnTics 2100;
}

View file

@ -2,8 +2,8 @@ Class BioAmmo : Ammo
{
Default
{
Tag "Biosludge Ammo";
Inventory.PickupMessage "You picked up the Biosludge Ammo.";
Tag "$T_BIOAMMO";
Inventory.PickupMessage "$I_BIOAMMO";
Inventory.Amount 25;
Inventory.MaxAmount 100;
Ammo.BackpackAmount 50;
@ -22,8 +22,8 @@ Class BioAmmo2 : BioAmmo // small variant
{
Default
{
Tag "Biosludge Ammo";
Inventory.PickupMessage "You picked up the Small Biosludge Ammo.";
Tag "$T_BIOAMMO2";
Inventory.PickupMessage "$I_BIOAMMO2";
Inventory.Amount 10;
Ammo.DropAmount 5;
Scale 0.5;
@ -538,7 +538,7 @@ Class BioGel : Actor
}
Default
{
Obituary "%o drank a glass of %k's dripping green load.";
Obituary "$O_BIORIFLE";
DamageType 'Slime';
RenderStyle "Add";
Radius 3;
@ -729,8 +729,8 @@ Class BioRifle : UTWeapon
}
Default
{
Tag "GES Bio Rifle";
Inventory.PickupMessage "You got the GES BioRifle.";
Tag "$T_BIORIFLE";
Inventory.PickupMessage "$I_BIORIFLE";
Weapon.UpSound "ges/select";
Weapon.SlotNumber 3;
Weapon.SelectionOrder 7;

View file

@ -156,9 +156,9 @@ Class UTChainsaw : UTWeapon
}
Default
{
Tag "Chainsaw";
Obituary "%k ripped into %o with a blood soaked Chainsaw.";
Inventory.PickupMessage "It's been twenty five years since I've seen one of these."; // was five years in UT99
Tag "$T_CHAINSAW";
Obituary "$O_CHAINSAW";
Inventory.PickupMessage "$I_CHAINSAW";
Weapon.UpSound "chainsaw/select";
Weapon.SlotNumber 1;
Weapon.SelectionOrder 9;

View file

@ -3,9 +3,9 @@ Class UTHereticYellowKey : KeyYellow
{
Default
{
Tag "Red Key";
Tag "$T_YELLOWKEY";
Species "KeyYellow";
Inventory.PickupMessage "You got the Yellow Key.";
Inventory.PickupMessage "$I_YELLOWKEY";
}
States
{
@ -19,9 +19,9 @@ Class UTHereticGreenKey : KeyGreen
{
Default
{
Tag "Green Key";
Tag "$T_GREENKEY";
Species "KeyGreen";
Inventory.PickupMessage "You got the Green Key.";
Inventory.PickupMessage "$I_GREENKEY";
}
States
{
@ -35,9 +35,9 @@ Class UTHereticBlueKey : KeyBlue
{
Default
{
Tag "Blue Key";
Tag "$T_BLUEKEY";
Species "KeyBlue";
Inventory.PickupMessage "You got the Blue Key.";
Inventory.PickupMessage "$I_BLUEKEY";
}
States
{
@ -140,7 +140,7 @@ Class UTPlayerHereticCompatTMale1 : UTPlayerHereticCompat
Default
{
Player.SoundClass "tmale1";
Player.DisplayName "M Commando";
Player.DisplayName "$N_TMALE1";
Player.Portrait "Blake";
-NOMENU;
}
@ -150,7 +150,7 @@ Class UTPlayerHereticCompatTMale2 : UTPlayerHereticCompat
Default
{
Player.SoundClass "tmale2";
Player.DisplayName "M Soldier";
Player.DisplayName "$N_TMALE2";
Player.Portrait "Brock";
-NOMENU;
}
@ -160,7 +160,7 @@ Class UTPlayerHereticCompatTFemale1 : UTPlayerHereticCompat
Default
{
Player.SoundClass "tfemale";
Player.DisplayName "F Commando";
Player.DisplayName "$N_TFEMALE1";
Player.Portrait "Ivana";
UTPlayer.DollType DOLL_Female;
-NOMENU;
@ -171,7 +171,7 @@ Class UTPlayerHereticCompatTFemale2 : UTPlayerHereticCompat
Default
{
Player.SoundClass "tfemale";
Player.DisplayName "F Soldier";
Player.DisplayName "$N_TFEMALE2";
Player.Portrait "Lauren";
UTPlayer.DollType DOLL_Female;
-NOMENU;
@ -183,7 +183,7 @@ Class UTPlayerHereticCompatTBoss : UTPlayerHereticCompat
Default
{
Player.SoundClass "tboss";
Player.DisplayName "Boss";
Player.DisplayName "$N_TBOSS";
Player.Portrait "Xan";
UTPlayer.DollType DOLL_Boss;
// should have NOBLOOD, but Xan did bleed in vanilla UT so...

View file

@ -2,8 +2,8 @@ Class UTRocketAmmo : Ammo
{
Default
{
Tag "Rocket Pack";
Inventory.PickupMessage "You picked up a Rocket Pack.";
Tag "$T_ROCKETAMMO";
Inventory.PickupMessage "$I_ROCKETAMMO";
Inventory.Amount 12;
Inventory.MaxAmount 48;
Ammo.BackpackAmount 12;
@ -23,8 +23,8 @@ Class UTRocketAmmo2 : UTRocketAmmo
{
Default
{
Tag "Single Rocket";
Inventory.PickupMessage "You picked up a Single Rocket.";
Tag "$T_ROCKETAMMO2";
Inventory.PickupMessage "$I_ROCKETAMMO2";
Inventory.Amount 1;
Ammo.DropAmount 1;
+INVENTORY.IGNORESKILL;
@ -107,7 +107,7 @@ Class UTRocket : Actor
int ticcnt;
Default
{
Obituary "%o was smacked down by %k's Rocket Launcher.";
Obituary "$O_EIGHTBALL";
DamageType 'RocketDeath';
Radius 2;
Height 2;
@ -462,8 +462,8 @@ Class UTRocketLauncher : UTWeapon
Default
{
Tag "Rocket Launcher";
Inventory.PickupMessage "You got the Rocket Launcher.";
Tag "$T_EIGHTBALL";
Inventory.PickupMessage "$I_EIGHTBALL";
Weapon.UpSound "utrl/select";
Weapon.SlotNumber 9;
Weapon.SelectionOrder 1;
@ -509,8 +509,9 @@ Class UTRocketLauncher : UTWeapon
EBLI A 5
{
A_PlaySound("utrl/load",CHAN_6,0.3);
if ( invoker.bSingleRocket = !invoker.bSingleRocket ) A_Print("Instant Rocket mode enabled");
else A_Print("Instant Rocket mode disabled");
if ( invoker.bSingleRocket = !invoker.bSingleRocket )
A_Print(StringTable.Localize("$M_SINGLEROCKETON"));
else A_Print(StringTable.Localize("$M_SINGLEROCKETOFF"));
}
Goto Idle;
Fire:

View file

@ -2,8 +2,8 @@ Class EClip : MiniAmmo
{
Default
{
Tag "Clip"; // "Large Bullets" in UT, but I think that's an oversight, since it's the same as the Minigun ammo
Inventory.PickupMessage "You picked up a Clip.";
Tag "$T_CLIP"; // "Large Bullets" in UT, but I think that's an oversight, since it's the same as the Minigun ammo
Inventory.PickupMessage "$I_CLIP";
Inventory.Amount 20;
Ammo.DropAmount 5;
}
@ -170,6 +170,7 @@ Class Enforcer : UTWeapon
int ClipCount, SlaveClipCount;
bool SlaveActive, SlaveDown, SlaveReload, SlaveAltFire;
int SlaveRefire;
transient ui Font usmf;
property ClipCount : ClipCount;
property SlaveClipCount : SlaveClipCount;
@ -177,15 +178,16 @@ Class Enforcer : UTWeapon
override void PostRender( double lbottom )
{
if ( !flak_enforcerreload ) return;
if ( Amount > 1 ) Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,lbottom-Screen.GetHeight()*0.01-confont.GetHeight()*2,String.Format("L Clip: %2d / 20\nR Clip: %2d / 20",slaveclipcount,clipcount));
else Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,lbottom-Screen.GetHeight()*0.01-confont.GetHeight(),String.Format("Clip: %2d / 20",clipcount));
if ( !usmf ) usmf = Font.GetFont('USMALLFONT');
if ( Amount > 1 ) Screen.DrawText(usmf,Font.FindFontColor('UGreen'),Screen.GetWidth()*0.01,lbottom-Screen.GetHeight()*0.01-usmf.GetHeight()*2,String.Format("%s: %2d / 20\n%s: %2d / 20",StringTable.Localize("$M_LCLIP"),slaveclipcount,StringTable.Localize("$M_RCLIP"),clipcount));
else Screen.DrawText(usmf,Font.FindFontColor('UGreen'),Screen.GetWidth()*0.01,lbottom-Screen.GetHeight()*0.01-usmf.GetHeight(),String.Format("%s: %2d / 20",StringTable.Localize("$M_CLIP"),clipcount));
}
override bool HandlePickup( Inventory item )
{
if ( item.GetClass() == GetClass() )
{
SetTag("Dual Enforcers");
SetTag(StringTable.Localize("$T_ENFORCER2"));
return Super.HandlePickup(item);
}
return false;
@ -196,8 +198,8 @@ Class Enforcer : UTWeapon
Inventory inv = Super.CreateTossable(amt);
if ( inv )
{
SetTag("Enforcer");
inv.SetTag("Enforcer");
SetTag(StringTable.Localize("$T_ENFORCER"));
inv.SetTag(StringTable.Localize("$T_ENFORCER"));
if ( Owner && (Owner.player.ReadyWeapon == self) )
{
// delete the slave overlay
@ -390,8 +392,8 @@ Class Enforcer : UTWeapon
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
{
if ( Amount > 1 ) return "%k riddled %o full of holes with the Dual Enforcers.";
return "%k riddled %o full of holes with the Enforcer.";
if ( Amount > 1 ) return StringTable.Localize("$O_ENFORCER2");
return StringTable.Localize("$O_ENFORCER");
}
override void Travelled()
@ -408,8 +410,8 @@ Class Enforcer : UTWeapon
Default
{
Tag "Enforcer";
Inventory.PickupMessage "You picked up another Enforcer!";
Tag "$T_ENFORCER";
Inventory.PickupMessage "$I_ENFORCER";
Inventory.MaxAmount 2;
Inventory.InterHubAmount 2;
Weapon.UpSound "enforcer/select";

View file

@ -2,8 +2,8 @@ Class FlakAmmo : Ammo
{
Default
{
Tag "Flak Shells";
Inventory.PickupMessage "You picked up %d Flak Shells.";
Tag "$T_FLAKAMMO";
Inventory.PickupMessage "";
Inventory.Amount 10;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 20;
@ -12,7 +12,7 @@ Class FlakAmmo : Ammo
}
override String PickupMessage()
{
return String.Format(pickupmsg,Amount);
return String.Format("%s%d%s",StringTable.Localize("$I_FLAKAMMOL"),Amount,StringTable.Localize("$I_FLAKAMMOR"));
}
States
{
@ -26,8 +26,8 @@ Class FlakAmmo2 : FlakAmmo
{
Default
{
Tag "Flak Shell";
Inventory.PickupMessage "You picked up a Flak Shell.";
Tag "$T_FLAKAMMO2";
Inventory.PickupMessage "$I_FLAKAMMO2";
Inventory.Amount 1;
Ammo.DropAmount 1;
+INVENTORY.IGNORESKILL;
@ -161,7 +161,7 @@ Class FlakChunk : Actor
Vector3 oldvel;
Default
{
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
Obituary "$O_FLAKCANNON";
Radius 2;
Height 2;
Speed 32;
@ -443,7 +443,7 @@ Class FlakSlug : Actor
{
Default
{
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
Obituary "$O_FLAKCANNON";
DamageType 'FlakDeath';
Radius 2;
Height 2;
@ -677,8 +677,8 @@ Class FlakCannon : UTWeapon
Default
{
Tag "Flak Cannon";
Inventory.PickupMessage "You got the Flak Cannon.";
Tag "$T_FLAKCANNON";
Inventory.PickupMessage "$I_FLAKCANNON";
Weapon.UpSound "flak/select";
Weapon.SlotNumber 8;
Weapon.SelectionOrder 2;

View file

@ -2,14 +2,14 @@ Class UTHealthPack : Health
{
Default
{
Tag "Big Keg O' Health";
Tag "$T_SUPERHEALTH";
+COUNTITEM;
+INVENTORY.AUTOACTIVATE;
+INVENTORY.ALWAYSPICKUP;
+INVENTORY.FANCYPICKUPSOUND;
Inventory.Amount 100;
Inventory.MaxAmount 200;
Inventory.PickupMessage "You picked up the Big Keg O' Health.";
Inventory.PickupMessage "$I_SUPERHEALTH";
Inventory.PickupSound "misc/ut_keg";
Inventory.RespawnTics 3500;
}
@ -25,9 +25,9 @@ Class UTHealthBox : Health
{
Default
{
Tag "Health Box";
Tag "$T_HEALTHBOX";
Inventory.Amount 50;
Inventory.PickupMessage "You picked up a Health Box.";
Inventory.PickupMessage "$I_HEALTHBOX";
Inventory.PickupSound "misc/ut_heal";
}
States
@ -42,9 +42,9 @@ Class UTMedBox : Health
{
Default
{
Tag "Health Pack";
Tag "$T_MEDBOX";
Inventory.Amount 20;
Inventory.PickupMessage "You picked up a Health Pack.";
Inventory.PickupMessage "$I_MEDBOX";
Inventory.PickupSound "misc/ut_heal";
Inventory.RespawnTics 700;
}
@ -60,12 +60,12 @@ Class UTHealthBonus : Health
{
Default
{
Tag "Health Vial";
Tag "$T_VIAL";
+COUNTITEM;
+INVENTORY.ALWAYSPICKUP;
Inventory.Amount 5;
Inventory.MaxAmount 200;
Inventory.PickupMessage "You picked up a Health Vial.";
Inventory.PickupMessage "$I_VIAL";
Inventory.PickupSound "misc/ut_heal";
RenderStyle "Add";
}

View file

@ -206,9 +206,9 @@ Class ImpactHammer : UTWeapon
Default
{
Tag "Impact Hammer";
Obituary "%o was smeared by %k's piston.";
Inventory.PickupMessage "You got the Impact Hammer.";
Tag "$T_IMPACTHAMMER";
Obituary "$O_IMPACTHAMMER";
Inventory.PickupMessage "$I_IMPACTHAMMER";
Weapon.UpSound "impact/select";
Weapon.SlotNumber 1;
Weapon.SelectionOrder 9;

View file

@ -2,8 +2,8 @@ Class MiniAmmo : Ammo
{
Default
{
Tag "Large Bullets";
Inventory.PickupMessage "You picked up %d bullets.";
Tag "$T_MINIAMMO";
Inventory.PickupMessage "";
Inventory.Amount 50;
Inventory.MaxAmount 200;
Ammo.BackpackAmount 100;
@ -12,7 +12,7 @@ Class MiniAmmo : Ammo
}
override String PickupMessage()
{
return String.Format(pickupmsg,Amount);
return String.Format("%s%d%s",StringTable.Localize("$I_MINIAMMOL"),Amount,StringTable.Localize("$I_MINIAMMOR"));
}
States
{
@ -203,9 +203,9 @@ Class Minigun : UTWeapon
Default
{
Tag "Minigun";
Obituary "%k's Minigun turned %o into a leaky piece of meat.";
Inventory.PickupMessage "You got the Minigun.";
Tag "$T_MINIGUN";
Obituary "$O_MINIGUN";
Inventory.PickupMessage "$I_MINIGUN";
Weapon.UpSound "minigun/select";
Weapon.SlotNumber 7;
Weapon.SelectionOrder 3;

View file

@ -2,8 +2,8 @@ Class UDamage : PowerupGiver
{
Default
{
Tag "Damage Amplifier";
Inventory.PickupMessage "You got the Damage Amplifier!";
Tag "$T_UDAMAGE";
Inventory.PickupMessage "$I_UDAMAGE";
+COUNTITEM;
+INVENTORY.AUTOACTIVATE;
+INVENTORY.ALWAYSPICKUP;
@ -78,7 +78,7 @@ Class DamageAmplifier : Powerup
override void EndEffect()
{
Super.EndEffect();
if ( EffectTics <= 0 ) PrintPickupMessage(true,"Damage Amplifier has worn off.");
if ( EffectTics <= 0 ) PrintPickupMessage(true,StringTable.Localize("$D_UDAMAGE"));
}
override bool isBlinking()
@ -188,8 +188,8 @@ Class UTBackpack : BackpackItem
}
Default
{
Tag "Backpack";
Inventory.PickupMessage "You got a Backpack.";
Tag "$T_BACKPACK";
Inventory.PickupMessage "$I_BACKPACK";
Inventory.RespawnTics 2100;
}
States
@ -217,7 +217,7 @@ Class PowerUTInvisibility : PowerInvisibility
override void EndEffect()
{
Super.EndEffect();
if ( EffectTics <= 0 ) PrintPickupMessage(true,"Invisibility has worn off.");
if ( EffectTics <= 0 ) PrintPickupMessage(true,StringTable.Localize("$D_INVISIBILITY"));
}
}
@ -225,14 +225,14 @@ Class UTInvisibility : PowerupGiver
{
Default
{
Tag "Invisibility";
Tag "$T_INVISIBILITY";
+COUNTITEM;
+INVENTORY.AUTOACTIVATE;
+INVENTORY.ALWAYSPICKUP;
+INVENTORY.BIGPOWERUP;
Inventory.MaxAmount 0;
Powerup.Type "PowerUTInvisibility";
Inventory.PickupMessage "You have Invisibility.";
Inventory.PickupMessage "$I_INVISIBILITY";
Inventory.PickupSound "invis/pickup";
Inventory.RespawnTics 4200;
}
@ -290,7 +290,7 @@ Class UTMapRevealer : MapRevealer
+INVENTORY.ALWAYSPICKUP;
Inventory.MaxAmount 0;
Inventory.PickupSound "trans/pickup";
Inventory.PickupMessage "You got the Computer Map.";
Inventory.PickupMessage "$I_MAPREVEALER";
}
States
{
@ -304,13 +304,13 @@ Class UTJumpBoots : Inventory
{
Default
{
Tag "AntiGrav Boots";
Tag "$T_JUMPBOOTS";
+INVENTORY.AUTOACTIVATE;
+INVENTORY.ALWAYSPICKUP;
Inventory.Amount 2100;
Inventory.MaxAmount 2100;
Inventory.InterHubAmount 2100;
Inventory.PickupMessage "You picked up the AntiGrav boots.";
Inventory.PickupMessage "$I_JUMPBOOTS";
Inventory.PickupSound "boot/pickup";
Inventory.RespawnTics 1050;
}
@ -337,7 +337,7 @@ Class UTJumpBoots : Inventory
}
else if ( (Amount <= 0) && owner.player.onground )
{
PrintPickupMessage(true,"The AntiGrav Boots have drained.");
PrintPickupMessage(true,StringTable.Localize("$D_JUMPBOOTS"));
DepleteOrDestroy();
}
}
@ -394,7 +394,7 @@ Class Searchlight : Inventory
int ticcnt;
Default
{
Tag "Searchligh";
Tag "$T_SEARCHLIGHT";
+COUNTITEM;
+INVENTORY.UNTOSSABLE;
+INVENTORY.FANCYPICKUPSOUND;
@ -403,7 +403,7 @@ Class Searchlight : Inventory
Inventory.Amount 200;
Inventory.MaxAmount 200;
Inventory.InterHubAmount 0;
Inventory.PickupMessage "You picked up the Searchlight.";
Inventory.PickupMessage "$I_SEARCHLIGHT";
}
override bool Use( bool pickup )
@ -434,7 +434,7 @@ Class Searchlight : Inventory
ticcnt = 0;
if ( --Amount <= 0 )
{
PrintPickupMessage(true,"Searchlight batteries have died.");
PrintPickupMessage(true,StringTable.Localize("$D_SEARCHLIGHT"));
DepleteOrDestroy();
}
}

View file

@ -2,8 +2,8 @@ Class PulseAmmo : Ammo
{
Default
{
Tag "Pulse Cell";
Inventory.PickupMessage "You picked up a Pulse Cell.";
Tag "$T_PULSEAMMO";
Inventory.PickupMessage "$I_PULSEAMMO";
Inventory.Amount 25;
Inventory.MaxAmount 200;
Ammo.BackpackAmount 40;
@ -161,7 +161,7 @@ Class PulseBall : Actor
{
Default
{
Obituary "%o ate %k's burning plasma death.";
Obituary "$O_PULSEGUN";
DamageType 'Pulsed';
RenderStyle "Add";
DamageFunction 20;
@ -491,7 +491,7 @@ Class PulseBolt : Actor
Default
{
RenderStyle "Add";
Obituary "%o ate %k's burning plasma death.";
Obituary "$O_PULSEGUN";
Radius 0.1;
Height 0;
+NOGRAVITY;
@ -543,13 +543,15 @@ Class PulseGun : UTWeapon
int clipcount;
double sangle;
Actor beam;
transient ui Font usmf;
Property ClipCount : clipcount;
override void PostRender( double lbottom )
{
if ( !flak_pulsereload ) return;
Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,lbottom-Screen.GetHeight()*0.01-confont.GetHeight(),String.Format("Clip: %2d / 50",clipcount));
if ( !usmf ) usmf = Font.GetFont('USMALLFONT');
Screen.DrawText(usmf,Font.FindFontColor('UGreen'),Screen.GetWidth()*0.01,lbottom-Screen.GetHeight()*0.01-usmf.GetHeight(),String.Format("%s: %2d / 50",StringTable.Localize("$M_CLIP"),clipcount));
}
action void A_Reloading()
@ -699,8 +701,8 @@ Class PulseGun : UTWeapon
}
Default
{
Tag "Pulse Gun";
Inventory.PickupMessage "You got a Pulse Gun";
Tag "$T_PULSEGUN";
Inventory.PickupMessage "$I_PULSEGUN";
Weapon.UpSound "pulse/select";
Weapon.SlotNumber 5;
Weapon.SelectionOrder 5;

View file

@ -2,8 +2,8 @@ Class RipperAmmo : Ammo
{
Default
{
Tag "Razor Blades";
Inventory.PickupMessage "You picked up Razor Blades.";
Tag "$T_RIPPERAMO";
Inventory.PickupMessage "$I_RIPPERAMMO";
Inventory.Amount 10;
Inventory.MaxAmount 40;
Ammo.BackpackAmount 20;
@ -59,7 +59,7 @@ Class Razor2 : Actor
Speed 25;
DamageFunction (int(30*((DamageType=='Decapitated')?3.5:1.0)));
DamageType 'Shredded';
Obituary "%k ripped a chunk of meat out of %o with the Ripper.";
Obituary "$O_RIPPER";
BounceType "Hexen";
ReactionTime 7;
BounceFactor 1.0;
@ -248,8 +248,8 @@ Class Ripper2 : UTWeapon
{
Default
{
Tag "Ripper";
Inventory.PickupMessage "You got the Ripper.";
Tag "$T_RIPPER";
Inventory.PickupMessage "$I_RIPPER";
Weapon.UpSound "ripper/select";
Weapon.SlotNumber 6;
Weapon.SelectionOrder 4;

View file

@ -2,8 +2,8 @@ Class ShockAmmo : Ammo
{
Default
{
Tag "Shock Core";
Inventory.PickupMessage "You picked up a Shock Core.";
Tag "$T_SHOCKAMMO";
Inventory.PickupMessage "$I_SHOCKAMMO";
Inventory.Amount 10;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 20;
@ -22,8 +22,8 @@ Class ShockAmmo2 : ShockAmmo
{
Default
{
Tag "Used Shock Core";
Inventory.PickupMessage "You picked up a used Shock Core.";
Tag "$T_SHOCKAMMO2";
Inventory.PickupMessage "$I_SHOCKAMMO2";
Inventory.Amount 3;
Ammo.DropAmount 3;
}
@ -271,7 +271,7 @@ Class ShockBeam : Actor
Default
{
Obituary "%k inflicted mortal damage upon %o with the Shock Rifle";
Obituary "$O_SHOCKRIFLE";
DamageType 'jolted';
RenderStyle "Add";
Radius 0.1;
@ -503,7 +503,7 @@ Class SuperShockBeam : Actor
Default
{
Obituary "%k electrified %o with the Enhanced Shock Rifle.";
Obituary "$O_SSHOCKRIFLE";
DamageType 'joltedX';
RenderStyle "Add";
Radius 0.1;
@ -878,7 +878,7 @@ Class ShockBall : Actor
}
Default
{
Obituary "%k inflicted mortal damage upon %o with the Shock Rifle";
Obituary "$O_SHOCKRIFLE";
RenderStyle "Add";
DamageType 'jolted';
Radius 2;
@ -943,7 +943,7 @@ Class SuperShockBall : Actor
}
Default
{
Obituary "%k electrified %o with the Enhanced Shock Rifle.";
Obituary "$O_SSHOCKRIFLE";
RenderStyle "Add";
DamageType 'joltedX';
Radius 2;
@ -1094,8 +1094,8 @@ Class ShockRifle : UTWeapon
Default
{
Tag "Shock Rifle";
Inventory.PickupMessage "You got the ASMD Shock Rifle.";
Tag "$T_SHOCKRIFLE";
Inventory.PickupMessage "$I_SHOCKRIFLE";
Weapon.UpSound "shock/select";
Weapon.SlotNumber 4;
Weapon.SelectionOrder 6;
@ -1164,8 +1164,8 @@ Class EnhancedShockAmmo : Ammo
}
Default
{
Tag "Enhanced Shock Core";
Inventory.PickupMessage "You picked up an Enhanced Shock Core.";
Tag "$T_SSHOCKAMMO";
Inventory.PickupMessage "$I_SSHOCKAMMO";
Inventory.Amount 5;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 0;
@ -1281,8 +1281,8 @@ Class EnhancedShockRifle : UTWeapon
}
Default
{
Tag "Enhanced Shock Rifle";
Inventory.PickupMessage "You got an Enhanced Shock Rifle!";
Tag "$T_SSHOCKRIFLE";
Inventory.PickupMessage "$I_SSHOCKRIFLE";
Weapon.UpSound "shock/select";
Weapon.SlotNumber 4;
Weapon.SelectionOrder 6;

View file

@ -2,8 +2,8 @@ Class RifleAmmo : Ammo
{
Default
{
Tag "Box of Rifle Rounds";
Inventory.PickupMessage "You picked up a Box of Rifle Rounds.";
Tag "$T_RIFLEAMMO";
Inventory.PickupMessage "$I_RIFLEAMMO";
Inventory.Amount 10;
Inventory.MaxAmount 50;
Ammo.BackpackAmount 20;
@ -22,8 +22,8 @@ Class RifleAmmo2 : RifleAmmo
{
Default
{
Tag "Rifle Round";
Inventory.PickupMessage "You got a Rifle Round.";
Tag "$T_RIFLEAMMO2";
Inventory.PickupMessage "$I_RIFLEAMMO2";
Inventory.Amount 1;
Ammo.DropAmount 1;
+INVENTORY.IGNORESKILL;
@ -48,6 +48,7 @@ Class SniperRifle : UTWeapon
{
double sniperzoom;
TextureID reticle;
transient ui Font zfont;
override void PostBeginPlay()
{
@ -57,8 +58,9 @@ Class SniperRifle : UTWeapon
override void PreRender( double lbottom )
{
if ( sniperzoom <= 1.0 ) return;
Screen.DrawTexture(reticle,false,320,240,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_RenderStyle,(1|2<<8|1<<16));
Screen.DrawText(confont,Font.CR_DARKGREEN,192,160,String.Format("X%.1f",sniperzoom),DTA_Clean,true);
Screen.DrawTexture(reticle,false,320,240,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_LegacyRenderStyle,STYLE_Add);
if ( !zfont ) zfont = Font.GetFont('UTFont40');
Screen.DrawText(zfont,Font.FindFontColor('UGreen'),960,960,String.Format("X%.1f",sniperzoom),DTA_VirtualWidth,1600,DTA_VirtualHeight,1200,DTA_LegacyRenderStyle,STYLE_Add);
}
override void Tick()
{
@ -166,14 +168,14 @@ Class SniperRifle : UTWeapon
}
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
{
if ( mod == 'Decapitated' ) return "%k put a bullet through %o's head.";
if ( mod == 'Decapitated' ) return StringTable.Localize("$O_SNIPERDECAP");
return Obituary;
}
Default
{
Tag "Sniper Rifle";
Obituary "%k put a bullet through %o.";
Inventory.PickupMessage "You got the Sniper Rifle.";
Tag "$T_SNIPER";
Obituary "$O_SNIPER";
Inventory.PickupMessage "$I_SNIPER";
Weapon.UpSound "sniper/select";
Weapon.SlotNumber 0;
Weapon.SelectionOrder 5;

View file

@ -287,7 +287,7 @@ Class TranslocatorAmmo : Ammo
{
Default
{
Tag "Translocator Ammo";
Tag "$T_TRANSLOCATORAMMO";
Inventory.Amount 6;
Inventory.MaxAmount 6;
Ammo.BackpackAmount 0;
@ -413,8 +413,8 @@ Class Translocator : UTWeapon
Default
{
Tag "Translocator";
Inventory.PickupMessage "You got the Translocator Source Module.";
Tag "$T_TRANSLOCATOR";
Inventory.PickupMessage "$I_TRANSLOCATOR";
Weapon.SlotNumber 1;
Weapon.SelectionOrder 10;
+WEAPON.NO_AUTO_SWITCH;

View file

@ -50,8 +50,6 @@ Class UTPlayer : DoomPlayer
// Have to modify the give cheat to handle UT armor
override void CheatGive( String name, int amount )
{
if ( PlayerNumber() != consoleplayer )
A_Log(String.Format("%s is a cheater: give %s\n",player.GetUserName(),name));
if ( !player.mo || (player.health <= 0) ) return;
int giveall = ALL_NO;
if ( name ~== "all" ) giveall = ALL_YES;
@ -590,7 +588,7 @@ Class UTPlayerTMale1 : UTPlayer
Default
{
Player.SoundClass "tmale1";
Player.DisplayName "M Commando";
Player.DisplayName "$N_TMALE1";
Player.Portrait "Blake";
-NOMENU;
}
@ -600,7 +598,7 @@ Class UTPlayerTMale2 : UTPlayer
Default
{
Player.SoundClass "tmale2";
Player.DisplayName "M Soldier";
Player.DisplayName "$N_TMALE2";
Player.Portrait "Brock";
-NOMENU;
}
@ -610,7 +608,7 @@ Class UTPlayerTFemale1 : UTPlayer
Default
{
Player.SoundClass "tfemale";
Player.DisplayName "F Commando";
Player.DisplayName "$N_TFEMALE1";
Player.Portrait "Ivana";
UTPlayer.DollType DOLL_Female;
-NOMENU;
@ -621,7 +619,7 @@ Class UTPlayerTFemale2 : UTPlayer
Default
{
Player.SoundClass "tfemale";
Player.DisplayName "F Soldier";
Player.DisplayName "$N_TFEMALE2";
Player.Portrait "Lauren";
UTPlayer.DollType DOLL_Female;
-NOMENU;
@ -633,7 +631,7 @@ Class UTPlayerTBoss : UTPlayer
Default
{
Player.SoundClass "tboss";
Player.DisplayName "Boss";
Player.DisplayName "$N_TBOSS";
Player.Portrait "Xan";
UTPlayer.DollType DOLL_Boss;
// should have NOBLOOD, but Xan did bleed in vanilla UT so...
@ -1227,9 +1225,9 @@ Class UTRedSkull : RedSkull
{
Default
{
Tag "Red Skull";
Tag "$T_REDSKULL";
Species "RedSkull";
Inventory.PickupMessage "You got the Red Skull.";
Inventory.PickupMessage "$I_REDSKULL";
}
States
{
@ -1243,9 +1241,9 @@ Class UTGoldSkull : YellowSkull
{
Default
{
Tag "Gold Skull";
Tag "$T_GOLDSKULL";
Species "YellowSkull";
Inventory.PickupMessage "You got the Gold Skull.";
Inventory.PickupMessage "$I_GOLDSKULL";
}
States
{
@ -1259,9 +1257,9 @@ Class UTBlueSkull : BlueSkull
{
Default
{
Tag "Blue Skull";
Tag "$T_BLUESKULL";
Species "BlueSkull";
Inventory.PickupMessage "You got the Blue Skull.";
Inventory.PickupMessage "$I_BLUESKULL";
}
States
{
@ -1275,9 +1273,9 @@ Class UTRedKey : RedCard
{
Default
{
Tag "Red Key";
Tag "%T_REDKEY";
Species "RedCard";
Inventory.PickupMessage "You got the Red Key.";
Inventory.PickupMessage "$I_REDKEY";
}
States
{
@ -1291,9 +1289,9 @@ Class UTGoldKey : YellowCard
{
Default
{
Tag "Gold Key";
Tag "$T_GOLDKEY";
Species "YellowCard";
Inventory.PickupMessage "You got the Gold Key.";
Inventory.PickupMessage "$I_GOLDKEY";
}
States
{
@ -1307,9 +1305,9 @@ Class UTBlueKey : BlueCard
{
Default
{
Tag "Blue Key";
Tag "$T_BLUEKEY";
Species "BlueCard";
Inventory.PickupMessage "You got the Blue Key.";
Inventory.PickupMessage "$I_BLUEKEY";
}
States
{
@ -1889,14 +1887,6 @@ Class UTMainHandler : EventHandler
if ( deathmatch && flak_instagib )
{
players[e.playernumber].mo.GiveInventory("EnhancedShockRifle",1);
if ( players[e.playernumber].bot )
{
// fix bots not having the weapon raised when changing map
let ess = Weapon(players[e.playernumber].mo.FindInventory("EnhancedShockRifle"));
players[e.playernumber].ReadyWeapon = ess;
players[e.playernumber].PendingWeapon = WP_NOCHANGE;
players[e.playernumber].mo.BringUpWeapon();
}
return;
}
if ( flak_translocator )
@ -1988,6 +1978,7 @@ Class UTMainHandler : EventHandler
qf.tic = gametic;
qf.cam = camera;
let hnd = UTMainHandler(EventHandler.Find("UTMainHandler"));
if ( !hnd ) return; // not supposed to happen
hnd.flashes.push(qf);
}
@ -2001,7 +1992,11 @@ Class UTMainHandler : EventHandler
if ( !a || !a.bSHOOTABLE || !Source.CheckSight(a,0xf) || (a == Source) || (Source.Distance3D(a) > ExplosionRadius) )
continue;
Vector3 midpoint = a.Vec3Offset(0,0,a.height*0.5);
a.vel += Level.Vec3Diff(Source.pos,midpoint).unit()*(MomentumTransfer/(Thinker.TICRATE*a.mass));
Vector3 dir = Level.Vec3Diff(Source.pos,midpoint);
double dist = max(1,dir.length());
double damagescale = 1-max(0,(dist-a.radius)/ExplosionRadius);
dir = dir/dist;
a.vel += dir*damagescale*(MomentumTransfer/(Thinker.TICRATE*a.mass));
}
}

View file

@ -35,7 +35,7 @@ Class UTHud : BaseStatusBar
bool showweapons, showfrags, showammo, showstatus, showinfo;
double hudsize, weaponsize, statussize;
HUDFont mConFont;
HUDFont mUTFont12;
// For easier UT Canvas drawing
Color DrawColor, WhiteColor, GoldColor;
@ -49,7 +49,7 @@ Class UTHud : BaseStatusBar
lastfrag = int.min;
lastfragcnt = 0;
vtracer = new("ViewTracer");
mConFont = HUDFont.Create("confont");
mUTFont12 = HUDFont.Create("UTFONT12");
// Set defaults
DrawColor = WhiteColor = "White";
GoldColor = "Gold";
@ -303,6 +303,7 @@ Class UTHud : BaseStatusBar
double alpha = clamp((opacity+7)/15.,0.0,1.0);
Screen.DrawTexture(AmmoBar,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_WindowRightF,ddw,DTA_Alpha,alpha);
}
// TODO try also drawing enforcer and pulsegun clips as bars
}
if ( ammotype2 && (ammotype2 != ammotype1) )
{
@ -541,21 +542,21 @@ Class UTHud : BaseStatusBar
{
double lalpha = 2.0-((level.time+fractic)-lastseentic)/Thinker.TICRATE;
if ( !lastseen || (lalpha <= 0) ) return;
String cl1 = "Teal", cl2 = "Cyan";
String cl1 = "UTHUDTextLight", cl2 = "UTHUDText";
if ( deathmatch && (lastseen.player.GetTeam() < teams.size()) )
{
cl2 = teams[lastseen.player.GetTeam()].mName;
cl1 = String.Format("Dark%s",cl2);
}
String tname = String.Format("\c[%s]Name:\c[%s] %s",cl1,cl2,lastseen.player.GetUserName());
CurX = (640-confont.StringWidth(tname))*0.5;
String tname = String.Format("\c[%s]%s:\c[%s] %s",cl1,StringTable.Localize("$M_NAME"),cl2,lastseen.player.GetUserName());
CurX = (640-mUTFont12.mFont.StringWidth(tname))*0.5;
CurY = 480*0.75;
Screen.DrawText(confont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_Alpha,lalpha/2.);
Screen.DrawText(mUTFont12.mFont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_Alpha,lalpha/2.);
if ( !deathmatch || (lastseen.IsTeammate(CPlayer.mo)) )
{
CurY += 1.2*confont.GetHeight();
tname = String.Format("\c[%s]Health:\c[%s] %d",cl1,cl2,lastseen.Health);
Screen.DrawText(confont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_Alpha,lalpha/2.);
CurY += 1.2*mUTFont12.mFont.GetHeight();
tname = String.Format("\c[%s]%s:\c[%s] %d",cl1,StringTable.Localize("$M_HEALTH"),cl2,lastseen.Health);
Screen.DrawText(mUTFont12.mFont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_Alpha,lalpha/2.);
}
}
@ -646,8 +647,8 @@ Class UTHud : BaseStatusBar
override void DrawAutomapHUD( double ticFrac )
{
int crdefault = Font.CR_TEAL;
int highlight = Font.CR_CYAN;
int crdefault = Font.FindFontColor('UTHUDTextLight');
int highlight = Font.FindFontColor('UTHUDText');
HScale = Screen.GetWidth()/1280.;
showweapons = CVar.GetCVar('flak_showweapons',players[consoleplayer]).GetBool();
showstatus = CVar.GetCVar('flak_showstatus',players[consoleplayer]).GetBool();
@ -656,12 +657,12 @@ Class UTHud : BaseStatusBar
double cbottom = Screen.GetHeight()*0.99;
let scale = GetHUDScale();
double textdist = 8./scale.Y;
int height = ConFont.GetHeight();
int height = mUTFont12.mFont.GetHeight();
String printtext;
int SCREENWIDTH = screen.GetWidth();
BeginHUD();
let y = textdist;
let width = ConFont.StringWidth("00:00:00");
let width = mUTFont12.mFont.StringWidth("00:00:00");
double tmp, hres;
[tmp,tmp,hres] = StatusbarToRealCoords(0,0,HorizontalResolution);
double swidth = 0;
@ -678,36 +679,36 @@ Class UTHud : BaseStatusBar
if ( am_showtime )
{
printtext = level.TimeFormatted();
DrawString(mConFont,level.TimeFormatted(),(-textdist-width,y),0,crdefault);
DrawString(mUTFont12,level.TimeFormatted(),(-textdist-width,y),0,crdefault);
y += height;
}
if ( am_showtotaltime ) DrawString(mConFont,level.TimeFormatted(true),(-textdist-width,y),0,crdefault);
if ( am_showtotaltime ) DrawString(mUTFont12,level.TimeFormatted(true),(-textdist-width,y),0,crdefault);
if ( !deathmatch )
{
y = textdist;
if ( am_showmonsters )
{
DrawString(mConFont,String.Format("%s\34%c %d/%d",Stringtable.Localize("$AM_MONSTERS"),crdefault+65,level.killed_monsters,level.total_monsters),(textdist,y),0,highlight);
DrawString(mUTFont12,String.Format("%s\34%c %d/%d",Stringtable.Localize("$AM_MONSTERS"),crdefault+65,level.killed_monsters,level.total_monsters),(textdist,y),0,highlight);
y += height;
}
if ( am_showsecrets )
{
DrawString(mConFont,String.Format("%s\34%c %d/%d",Stringtable.Localize("$AM_SECRETS"),crdefault+65,level.found_secrets,level.total_secrets),(textdist,y),0,highlight);
DrawString(mUTFont12,String.Format("%s\34%c %d/%d",Stringtable.Localize("$AM_SECRETS"),crdefault+65,level.found_secrets,level.total_secrets),(textdist,y),0,highlight);
y += height;
}
if ( am_showitems ) DrawString(mConFont,String.Format("%s\34%c %d/%d",Stringtable.Localize("$AM_ITEMS"),crdefault+65,level.found_items,level.total_items),(textdist,y),0,highlight);
if ( am_showitems ) DrawString(mUTFont12,String.Format("%s\34%c %d/%d",Stringtable.Localize("$AM_ITEMS"),crdefault+65,level.found_items,level.total_items),(textdist,y),0,highlight);
}
String mapname = level.FormatMapName(crdefault);
BrokenLines lines = ConFont.BreakLines(mapname,int(SCREENWIDTH/scale.X));
BrokenLines lines = mUTFont12.mFont.BreakLines(mapname,int(SCREENWIDTH/scale.X));
int numlines = lines.Count();
int finalwidth = int(ConFont.StringWidth(lines.StringAt(numlines-1))*scale.X);
int finalwidth = int(mUTFont12.mFont.StringWidth(lines.StringAt(numlines-1))*scale.X);
[tmp,tmp,hres] = StatusbarToRealCoords(0,0,HorizontalResolution);
protrusion = GetProtrusion(finalwidth/hres);
[tmp,tmp,tmp,hres] = StatusbarToRealCoords(0,0,0,protrusion);
y = (cbottom-hres)/scale.Y-height*numlines;
for ( int i = 0; i < numlines; i++ )
{
DrawString(mConFont,lines.StringAt(i),(0,y),DI_TEXT_ALIGN_CENTER|DI_SCREEN_HCENTER|DI_SCREEN_TOP,highlight);
DrawString(mUTFont12,lines.StringAt(i),(0,y),DI_TEXT_ALIGN_CENTER|DI_SCREEN_HCENTER|DI_SCREEN_TOP,highlight);
y += height;
}
}

View file

@ -3,8 +3,8 @@ Class WarheadAmmo : Ammo
{
Default
{
Tag "Redeemer Missile";
Inventory.PickupMessage "You picked up a Redeemer Missile.";
Tag "$T_WARHEADAMMO";
Inventory.PickupMessage "$I_WARHEADAMMO";
Inventory.Amount 1;
Inventory.MaxAmount 2;
Ammo.BackpackAmount 0;
@ -29,7 +29,7 @@ Class ShockWave : Actor
transient ThinkerIterator t;
Default
{
Obituary "%o was vaporized by %k's Redeemer!!";
Obituary "$O_REDEEMER";
RenderStyle "Add";
Radius 0.1;
Height 0;
@ -243,7 +243,7 @@ Class WarShell : Actor
Default
{
Obituary "%o was vaporized by %k's Redeemer!!";
Obituary "$O_REDEEMER";
Radius 2;
Height 2;
Speed 6;
@ -731,8 +731,8 @@ Class WarheadLauncher : UTWeapon
Default
{
Tag "Redeemer";
Inventory.PickupMessage "You got the Redeemer.";
Tag "$T_REDEEMER";
Inventory.PickupMessage "$I_REDEEMER";
Weapon.UpSound "warhead/select";
Weapon.SlotNumber 0;
Weapon.SelectionOrder 0;