Minor fixes.
This commit is contained in:
parent
bb061ee98a
commit
43f616b17b
9 changed files with 54 additions and 74 deletions
|
|
@ -912,7 +912,7 @@ SWWM_SELLEXTRA = "\cf%s\cf sold an extra %s\cf. +%d\c-";
|
|||
// intermission tips
|
||||
SWWM_NINTERTIP = "69";
|
||||
SWWM_INTERTIP = "Tip #%d:";
|
||||
SWWM_INTERTIP1 = "The Demolitionist is immune to drowning, poison and even fall damage (excluding instant kill pits, e.g. in Hexen).";
|
||||
SWWM_INTERTIP1 = "The Demolitionist is immune to drowning, poison and even fall damage (excluding instant kill pits).";
|
||||
SWWM_INTERTIP2 = "The Explodium Gun's altfire has an explosive yield proportional to the bullets left in the mag.";
|
||||
SWWM_INTERTIP3 = "Your fuel regenerates over time, but the more you use the impulsor, the longer this will take.";
|
||||
SWWM_INTERTIP4 = "The Pusher has a chance to slip off your hands on altfire if it doesn't land a hit, however as a ranged attack it may still be effective.";
|
||||
|
|
|
|||
|
|
@ -848,7 +848,7 @@ SWWM_NEWLORE = "Hay nuevas entradas disponibles en la Biblioteca.";
|
|||
SWWM_SELLEXTRA = "\cf%s\cf vendió un %s\cf extra. +%d\c-";
|
||||
// intermission tips
|
||||
SWWM_INTERTIP = "Consejo #%d:";
|
||||
SWWM_INTERTIP1 = "La Demolicionista es inmune al ahogamiento, veneno e incluso daño por caída (excluyendo hoyos de muerte instantánea, por ejemplo en Hexen).";
|
||||
SWWM_INTERTIP1 = "La Demolicionista es inmune al ahogamiento, veneno e incluso daño por caída (excluyendo hoyos de muerte instantánea).";
|
||||
SWWM_INTERTIP2 = "El fuego secundario de la Pistola de Explodium tiene una carga explosiva proporcional al número de balas restantes en el cargador.";
|
||||
SWWM_INTERTIP3 = "Tu combustible se regenera con el tiempo, pero cuanto más uses el propulsor, más tardará.";
|
||||
SWWM_INTERTIP4 = "El Pusher puede resbalarse de tus manos con el fuego secundario si no le da a nada, sin embargo esto puede ser efectivo como ataque a distancia.";
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r586 \cu(Fri 30 Oct 13:21:11 CET 2020)";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r587 \cu(Sat 31 Oct 01:44:05 CET 2020)";
|
||||
|
|
|
|||
|
|
@ -1293,6 +1293,7 @@ Class CandyGunSpares : Ammo
|
|||
Inventory.Icon "graphics/HUD/Icons/W_CandyGun.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 4;
|
||||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 4;
|
||||
}
|
||||
}
|
||||
|
|
@ -1495,8 +1496,8 @@ Class FabricatorTier1 : AmmoFabricator
|
|||
Inventory.Icon "graphics/HUD/Icons/I_Fabricator1.png";
|
||||
Inventory.PickupMessage "$T_FABRICATOR1";
|
||||
Inventory.MaxAmount 20;
|
||||
AmmoFabricator.Budget 5000;
|
||||
AmmoFabricator.PerType 2;
|
||||
AmmoFabricator.Budget 3000;
|
||||
AmmoFabricator.PerType 1;
|
||||
AmmoFabricator.MaxUnitPrice 2500;
|
||||
}
|
||||
}
|
||||
|
|
@ -1511,8 +1512,8 @@ Class FabricatorTier2 : AmmoFabricator
|
|||
Inventory.PickupMessage "$T_FABRICATOR2";
|
||||
Inventory.MaxAmount 15;
|
||||
AmmoFabricator.Budget 15000;
|
||||
AmmoFabricator.PerType 4;
|
||||
AmmoFabricator.MaxUnitPrice 10000;
|
||||
AmmoFabricator.PerType 2;
|
||||
AmmoFabricator.MaxUnitPrice 12000;
|
||||
}
|
||||
}
|
||||
Class FabricatorTier3 : AmmoFabricator
|
||||
|
|
@ -1525,8 +1526,8 @@ Class FabricatorTier3 : AmmoFabricator
|
|||
Inventory.Icon "graphics/HUD/Icons/I_Fabricator3.png";
|
||||
Inventory.PickupMessage "$T_FABRICATOR3";
|
||||
Inventory.MaxAmount 10;
|
||||
AmmoFabricator.Budget 150000;
|
||||
AmmoFabricator.PerType 8;
|
||||
AmmoFabricator.Budget 80000;
|
||||
AmmoFabricator.PerType 4;
|
||||
AmmoFabricator.MaxUnitPrice 80000;
|
||||
}
|
||||
}
|
||||
|
|
@ -1540,7 +1541,7 @@ Class FabricatorTier4 : AmmoFabricator
|
|||
Inventory.MaxAmount 5;
|
||||
AmmoFabricator.Budget int.max;
|
||||
AmmoFabricator.PerType int.max;
|
||||
AmmoFabricator.MaxUnitPrice int.max;
|
||||
AmmoFabricator.MaxUnitPrice 1000000;
|
||||
-INVENTORY.AUTOACTIVATE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1341,6 +1341,19 @@ Class SWWMHandler : EventHandler
|
|||
e.Replacee = 'Sorcerer2';
|
||||
}
|
||||
|
||||
// do any players not own dual guns yet
|
||||
private bool ShouldSpawnDualExpl()
|
||||
{
|
||||
int np = 0, ng = 0;
|
||||
for ( int i=0; i<MAXPLAYERS; i++ )
|
||||
{
|
||||
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||
np++;
|
||||
if ( players[i].mo.CountInv("ExplodiumGun") > 1 ) ng++;
|
||||
}
|
||||
return (ng < np);
|
||||
}
|
||||
|
||||
override void CheckReplacement( ReplaceEvent e )
|
||||
{
|
||||
// respect final replacements
|
||||
|
|
@ -1385,30 +1398,22 @@ Class SWWMHandler : EventHandler
|
|||
else if ( e.Replacee is 'KeyBlue' ) e.Replacement = 'SWWMKeyBlue';
|
||||
else if ( e.Replacee is 'KeyYellow' ) e.Replacement = 'SWWMKeyYellow';
|
||||
else if ( e.Replacee.GetClassName() == 'KeyRed' ) e.Replacement = 'SWWMKeyRed';
|
||||
else if ( (e.Replacee is 'Chainsaw') || (e.Replacee is 'Gauntlets') || (e.Replacee is 'FWeapAxe') ) e.Replacement = 'PusherWeapon';
|
||||
else if ( (e.Replacee is 'Chainsaw') || (e.Replacee is 'Gauntlets') || (e.Replacee is 'FWeapAxe') )
|
||||
{
|
||||
if ( ShouldSpawnDualExpl() ) e.Replacement = Random[Replacements](0,1)?'ExplodiumGun':'PusherWeapon';
|
||||
else e.Replacement = 'PusherWeapon';
|
||||
}
|
||||
else if ( (e.Replacee is 'Fist') || (e.Replacee is 'Staff') ) e.Replacement = 'DeepImpact';
|
||||
else if ( (e.Replacee is 'Pistol') || (e.Replacee is 'GoldWand') || (e.Replacee is 'FWeapFist') || (e.Replacee is 'CWeapMace') || (e.Replacee is 'MWeapWand') ) e.Replacement = 'ExplodiumGun';
|
||||
else if ( (e.Replacee is 'Shotgun') || (e.Replacee is 'CWeapStaff') ) e.Replacement = 'Spreadgun';
|
||||
else if ( (e.Replacee is 'SuperShotgun') || (e.Replacee is 'MWeapFrost') ) e.Replacement = 'Wallbuster';
|
||||
else if ( e.Replacee is 'Crossbow' )
|
||||
{
|
||||
if ( Random[Replacements](0,2) ) e.Replacement = 'Spreadgun';
|
||||
else e.Replacement = 'Wallbuster';
|
||||
}
|
||||
else if ( (e.Replacee is 'Chaingun') || (e.Replacee is 'Blaster') || (e.Replacee is 'FWeapHammer') ) e.Replacement = 'Eviscerator';
|
||||
else if ( (e.Replacee is 'RocketLauncher') || (e.Replacee is 'PhoenixRod') || (e.Replacee is 'FWeaponPiece3') ) e.Replacement = 'Hellblazer';
|
||||
else if ( (e.Replacee is 'PlasmaRifle') || (e.Replacee is 'SkullRod') )
|
||||
{
|
||||
if ( Random[Replacements](0,2) ) e.Replacement = 'Sparkster';
|
||||
else e.Replacement = 'SilverBullet';
|
||||
}
|
||||
else if ( e.Replacee is 'Crossbow' ) e.Replacement = Random[Replacements](0,2)?'Spreadgun':'Wallbuster';
|
||||
else if ( (e.Replacee is 'Chaingun') || (e.Replacee is 'Blaster') || (e.Replacee is 'FWeapHammer') ) e.Replacement = 'Hellblazer';
|
||||
else if ( (e.Replacee is 'RocketLauncher') || (e.Replacee is 'PhoenixRod') || (e.Replacee is 'FWeaponPiece3') ) e.Replacement = 'Eviscerator';
|
||||
else if ( (e.Replacee is 'PlasmaRifle') || (e.Replacee is 'SkullRod') ) e.Replacement = Random[Replacements](0,2)?'Sparkster':'SilverBullet';
|
||||
else if ( e.Replacee is 'CWeapFlame' ) e.Replacement = 'Sparkster';
|
||||
else if ( e.Replacee is 'MWeapLightning' ) e.Replacement = 'SilverBullet';
|
||||
else if ( (e.Replacee is 'BFG9000') || (e.Replacee is 'Mace') )
|
||||
{
|
||||
if ( Random[Replacements](0,2) ) e.Replacement = 'CandyGun';
|
||||
else e.Replacement = 'Ynykron';
|
||||
}
|
||||
else if ( (e.Replacee is 'BFG9000') || (e.Replacee is 'Mace') ) e.Replacement = Random[Replacements](0,2)?'CandyGun':'Ynykron';
|
||||
else if ( e.Replacee is 'CWeaponPiece2' ) e.Replacement = 'CandyGun';
|
||||
else if ( e.Replacee is 'MWeaponPiece1' ) e.Replacement = 'Ynykron';
|
||||
else if ( (e.Replacee == 'Clip') || (e.Replacee == 'GoldWandAmmo') || (e.Replacee == 'GoldWandHefty') )
|
||||
|
|
@ -1499,35 +1504,10 @@ Class SWWMHandler : EventHandler
|
|||
break;
|
||||
}
|
||||
}
|
||||
else if ( e.Replacee == 'ClipBox' )
|
||||
{
|
||||
if ( Random[Replacements](0,3) ) e.Replacement = 'EvisceratorShell';
|
||||
else if ( Random[Replacements](0,4) ) e.Replacement = 'EvisceratorTrioSpawn';
|
||||
else e.Replacement = 'EvisceratorSixPack';
|
||||
}
|
||||
else if ( e.Replacee == 'ClipBox' ) e.Replacement = Random[Replacements](0,3)?'EvisceratorShell':Random[Replacements](0,4)?'EvisceratorTrioSpawn':'EvisceratorSixPack';
|
||||
else if ( e.Replacee == 'BlasterAmmo' ) e.Replacement = 'EvisceratorShell';
|
||||
else if ( e.Replacee == 'BlasterHefty' )
|
||||
{
|
||||
if ( Random[Replacements](0,4) ) e.Replacement = 'EvisceratorTrioSpawn';
|
||||
else e.Replacement = 'EvisceratorSixPack';
|
||||
}
|
||||
else if ( (e.Replacee == 'RocketAmmo') || (e.Replacee == 'PhoenixRodAmmo') || (e.Replacee == 'MaceAmmo') )
|
||||
{
|
||||
switch ( Random[Replacements](0,6) )
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
e.Replacement = 'HellblazerMissiles';
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
e.Replacement = 'HellblazerCrackshots';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( e.Replacee == 'BlasterHefty' ) e.Replacement = Random[Replacements](0,4)?'EvisceratorTrioSpawn':'EvisceratorSixPack';
|
||||
else if ( (e.Replacee == 'RocketAmmo') || (e.Replacee == 'PhoenixRodAmmo') || (e.Replacee == 'MaceAmmo') ) e.Replacement = Random[Replacements](0,2)?'HellblazerMissiles':'HellblazerCrackshots';
|
||||
else if ( (e.Replacee == 'RocketBox') || (e.Replacee == 'PhoenixRodHefty') || (e.Replacee == 'MaceHefty') )
|
||||
{
|
||||
switch ( Random[Replacements](0,11) )
|
||||
|
|
@ -1561,7 +1541,8 @@ Class SWWMHandler : EventHandler
|
|||
}
|
||||
else if ( (e.Replacee == 'Cell') || (e.Replacee == 'SkullRodAmmo') )
|
||||
{
|
||||
if ( Random[Replacements](0,3) ) e.Replacement = 'SparkUnit';
|
||||
if ( Random[Replacements](0,2) ) e.Replacement = Random[Replacements](0,2)?'HellblazerRavagers':'HellblazerWarheads';
|
||||
else if ( Random[Replacements](0,3) ) e.Replacement = 'SparkUnit';
|
||||
else if ( !Random[Replacements](0,3) ) e.Replacement = 'CandyGunBullets';
|
||||
else e.Replacement = Random[Replacements](0,2)?'SilverBullets':'SilverBullets2';
|
||||
}
|
||||
|
|
@ -1592,17 +1573,9 @@ Class SWWMHandler : EventHandler
|
|||
else if ( (e.Replacee == 'HealthBonus') || (e.Replacee == 'CrystalVial') ) e.Replacement = 'HealthNuggetItem';
|
||||
else if ( e.Replacee == 'Stimpack' ) e.Replacement = 'TetraHealthItem';
|
||||
else if ( e.Replacee == 'Medikit' ) e.Replacement = 'CubeHealthItem';
|
||||
else if ( e.Replacee == 'ArtiHealth' )
|
||||
{
|
||||
if ( gameinfo.gametype&GAME_Heretic && Random[Replacements](0,1) ) e.Replacement = 'CubeHealthItem';
|
||||
else e.Replacement = 'TetraHealthItem';
|
||||
}
|
||||
else if ( (e.Replacee == 'Soulsphere') || (e.Replacee == 'ArtiSuperHealth') )
|
||||
{
|
||||
if ( gameinfo.gametype&GAME_Hexen ) e.Replacement = 'CubeHealthItem';
|
||||
else e.Replacement = 'RefresherItem';
|
||||
}
|
||||
else if ( e.Replacee == 'ArtiHealingRadius' ) e.Replacement = 'RefresherItem';
|
||||
else if ( e.Replacee == 'ArtiHealth' ) e.Replacement = Random[Replacements](0,1)?'CubeHealthItem':'TetraHealthItem';
|
||||
else if ( (e.Replacee == 'Soulsphere') || (e.Replacee == 'ArtiSuperHealth') ) e.Replacement = 'RefresherItem';
|
||||
else if ( e.Replacee == 'ArtiHealingRadius' ) e.Replacement = 'SWWMNothing';
|
||||
else if ( (e.Replacee == 'Megasphere') || (e.Replacee == 'ArtiEgg') || (e.Replacee == 'PlatinumHelm') ) e.Replacement = 'GrilledCheeseSandwich';
|
||||
else if ( (e.Replacee == 'Blursphere') || (e.Replacee == 'ArtiInvisibility') || (e.Replacee == 'AmuletOfWarding') ) e.Replacement = 'GhostArtifact';
|
||||
else if ( e.Replacee == 'Radsuit' ) e.Replacement = 'EBarrier';
|
||||
|
|
|
|||
|
|
@ -1144,7 +1144,7 @@ Class SWWMWeapon : Weapon abstract
|
|||
if ( ch_hp.GetInt() >= 2 )
|
||||
{
|
||||
int hp = Clamp(Owner.Health,0,200);
|
||||
double sat = (hp<150)?1.:(1.-(health-150)/100.);
|
||||
double sat = (hp<150)?1.:(1.-(hp-150)/100.);
|
||||
Vector3 rgb = SWWMUtility.HSVtoRGB((hp/300.,sat,1.));
|
||||
col = Color(int(rgb.x*255),int(rgb.y*255),int(rgb.z*255));
|
||||
}
|
||||
|
|
@ -1165,7 +1165,8 @@ Class SWWMWeapon : Weapon abstract
|
|||
else if ( hp < .85 ) col = Color(int((.6-hp)*255/.3),255,0);
|
||||
else col = Color(0,255,0);
|
||||
}
|
||||
return ctr.Results.HitPos, col;
|
||||
if ( ctr.Results.HitType == TRACE_HitNone ) return level.Vec3Offset(origin,x*10000.), col;
|
||||
else return ctr.Results.HitPos, col;
|
||||
}
|
||||
// where the trace is coming from relative to eyes
|
||||
virtual clearscope Vector3 GetTraceOffset() const
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ Class Demolitionist : PlayerPawn
|
|||
DamageFactor "Drowning", 0.;
|
||||
DamageFactor "Poison", 0.;
|
||||
DamageFactor "PoisonCloud", 0.;
|
||||
DamageFactor "Falling", 0.;
|
||||
Demolitionist.DashFuel 240.;
|
||||
+NOBLOOD;
|
||||
+DONTGIB;
|
||||
|
|
@ -541,6 +542,10 @@ Class Demolitionist : PlayerPawn
|
|||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
// can't be poisoned
|
||||
PoisonDurationReceived = 0;
|
||||
PoisonPeriodReceived = 0;
|
||||
PoisonDamageReceived = 0;
|
||||
if ( !player ) return;
|
||||
if ( !selflight )
|
||||
{
|
||||
|
|
@ -990,9 +995,6 @@ Class Demolitionist : PlayerPawn
|
|||
// no damage whatsoever
|
||||
if ( scriptedinvul )
|
||||
return 0;
|
||||
// completely nullify non-lethal fall damage
|
||||
if ( (mod == 'Falling') && (damage < TELEFRAG_DAMAGE) )
|
||||
damage = 0;
|
||||
if ( damage <= 0 )
|
||||
{
|
||||
lastdamage = 0;
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ Class GrilledCheeseSandwich : Inventory
|
|||
}
|
||||
if ( (Owner.Health-damage <= 0) && (Amount > 0) )
|
||||
{
|
||||
if ( (damageType == 'Falling') || (damageType == 'InstantDeath') )
|
||||
if ( damageType == 'InstantDeath' )
|
||||
SafeTeleport(); // get out of pits
|
||||
newdamage = 0;
|
||||
if ( (Owner.player == players[consoleplayer]) || bBigPowerup ) Owner.A_StartSound(UseSound,CHAN_ITEMEXTRA);
|
||||
|
|
|
|||
|
|
@ -358,6 +358,9 @@ Class ExplodiumGun : SWWMWeapon
|
|||
DualExplodiumGun(SisterWeapon).chambered = eg.chambered;
|
||||
DualExplodiumGun(SisterWeapon).clipcount = eg.clipcount;
|
||||
}
|
||||
// autoswitch if enabled
|
||||
if ( !Owner.player.GetNeverSwitch() )
|
||||
Owner.player.PendingWeapon = SisterWeapon;
|
||||
item.bPickupGood = true;
|
||||
}
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue