Added Jump Boots and removed Shielding Suit.

Recalculated all the model transforms in preparation for coelckers/gzdoom#495.
Corrected some small mistakes in Dual Enforcers code.
This commit is contained in:
Marisa the Magician 2018-05-28 13:55:05 +02:00
commit def0e317f3
26 changed files with 312 additions and 318 deletions

View file

@ -257,7 +257,7 @@ Class BioGel : Actor
}
angle = atan2(normal.y,normal.x);
pitch = 0;
roll = 0;
roll = 180; // otherwise it slides upwards (UT changes roll like this too)
LineTrace(angle+180,172,0,TRF_THRUACTORS,data:d);
SetOrigin(d.HitLocation+normal*0.5,false);
if ( waterlevel > 0 ) hittype = HIT_FLOOR;

View file

@ -157,15 +157,11 @@ Class Enforcer : UTWeapon replaces Pistol
else Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("Clip: % 2d / 20",clipcount));
}
override bool HandlePickup (Inventory item)
override bool HandlePickup( Inventory item )
{
if ( item.GetClass() == GetClass() )
{
if ( item.Amount == 1 )
{
item.bPickupGood = true;
item.SetTag("Dual Enforcers");
}
SetTag("Dual Enforcers");
return Super.HandlePickup(item);
}
return false;
@ -199,7 +195,7 @@ Class Enforcer : UTWeapon replaces Pistol
if ( !weap || !player ) return;
if ( slave )
{
if ( invoker.slaveclipcount < 5 ) A_PlaySound("enforcer/click",CHAN_7);
if ( CVar.GetCVar('flak_enforcerreload').GetBool() && (invoker.slaveclipcount < 5) ) A_PlaySound("enforcer/click",CHAN_7);
if ( (invoker.slaveclipcount <= 0) || (weap.Ammo1.Amount <= 0) )
{
invoker.slaverefire = 0;
@ -226,7 +222,7 @@ Class Enforcer : UTWeapon replaces Pistol
}
else
{
if ( invoker.clipcount < 5 ) A_PlaySound("enforcer/click",CHAN_WEAPON);
if ( CVar.GetCVar('flak_enforcerreload').GetBool() && (invoker.clipcount < 5) ) A_PlaySound("enforcer/click",CHAN_WEAPON);
if ( (invoker.clipcount <= 0) || (weap.Ammo1.Amount <= 0) )
{
A_ClearRefire();

View file

@ -145,8 +145,8 @@ Class FlakChunk : Actor
Default
{
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
Radius 4;
Height 4;
Radius 2;
Height 2;
Speed 50;
DamageFunction Random[Flak](12,18);
DamageType 'Shredded';

View file

@ -294,43 +294,78 @@ Class UTMapRevealer : MapRevealer replaces Allmap
}
}
Class ShieldingSuit : PowerupGiver replaces RadSuit
Class UTJumpBoots : Inventory replaces RadSuit
{
Default
{
Tag "Shielding Suit";
Tag "AntiGrav Boots";
+INVENTORY.AUTOACTIVATE;
+INVENTORY.ALWAYSPICKUP;
Inventory.MaxAmount 0;
Powerup.Type "PowerShieldingSuit";
Inventory.PickupMessage "You got the Shielding Suit.";
Inventory.PickupSound "suit/pickup";
Inventory.RespawnTics 2100;
Inventory.Amount 3;
Inventory.MaxAmount 3;
Inventory.PickupMessage "You picked up the AntiGrav boots.";
Inventory.PickupSound "boot/pickup";
Inventory.RespawnTics 1050;
}
override bool Use( bool pickup )
{
if ( pickup )
{
Owner.GiveInventory("PowerJumpBoots_HighJump",1);
Owner.GiveInventory("PowerJumpBoots_IronFeet",1);
}
return false;
}
override void Tick()
{
Super.Tick();
if ( !Owner || !Owner.player ) return;
if ( owner.player.jumptics == -1 )
{
Amount--;
Owner.A_PlaySound("boot/jump",CHAN_BODY);
if ( Amount <= 0 )
{
PrintPickupMessage(true,"The AntiGrav Boots have drained.");
DepleteOrDestroy();
}
}
}
override void DetachFromOwner()
{
Super.DetachFromOwner();
Owner.TakeInventory("PowerJumpBoots_HighJump",1);
Owner.TakeInventory("PowerJumpBoots_IronFeet",1);
}
States
{
Spawn:
SSUT A -1;
JBUT A -1;
Stop;
}
}
Class PowerShieldingSuit : PowerIronFeet
Class PowerJumpBoots_HighJump : PowerHighJump
{
Default
{
Powerup.Duration -60;
Powerup.Color "C0FFEE", 0.35;
Powerup.Strength 3;
Powerup.Duration int.max;
}
}
Class PowerJumpBoots_IronFeet : PowerIronFeet
{
Default
{
Powerup.Duration int.max;
Powerup.Color "00 00 00", 0.0;
}
override void AbsorbDamage( int damage, Name damageType, out int newdamage )
{
if ( (damageType == 'Slime') || (damageType == 'Fire') || (damageType == 'Ice') || (damageType == 'Poison') )
newdamage = 0;
}
override void EndEffect()
override void DoEffect()
{
PrintPickupMessage(true,"Air supply in the Shielding Suit has expired.");
Powerup.DoEffect();
}
}

View file

@ -242,12 +242,12 @@ Class UTHud : BaseStatusBar
Color dollcolor = tintcolor;
DamageAmplifier d;
UTArmor b, a, t, s;
//UTJumpBoots j;
UTJumpBoots j;
d = DamageAmplifier(CPlayer.mo.FindInventory("DamageAmplifier"));
b = UTArmor(CPlayer.mo.FindInventory("UTArmorBonus"));
a = UTArmor(CPlayer.mo.FindInventory("UTBodyArmor"));
t = UTArmor(CPlayer.mo.FindInventory("UTThighPads"));
//b = CPlayer.mo.FindInventory("UTJumpBoots"));
j = UTJumpBoots(CPlayer.mo.FindInventory("UTJumpBoots"));
s = UTArmor(CPlayer.mo.FindInventory("UTShieldBelt"));
if ( d && !d.isBlinking() ) dollcolor = d.BlendColor;
if ( CPlayer.GetGender() == 1 )
@ -256,7 +256,7 @@ Class UTHud : BaseStatusBar
DrawColor = dollcolor;
if ( a ) UTDrawColorTex(Woman[1],1.0,a.Amount/double(a.MaxAmount));
if ( t ) UTDrawColorTex(Woman[2],1.0,t.Amount/double(t.MaxAmount));
//if ( j ) UTDrawColorTex(Woman[3],1.0,b.Amount/double(b.MaxAmount));
if ( j ) UTDrawColorTex(Woman[3],1.0,j.Amount/double(j.MaxAmount));
DrawColor = GoldColor;
if ( s ) UTDrawColorTex(Woman[4],1.0,s.Amount/double(s.MaxAmount));
}
@ -266,7 +266,7 @@ Class UTHud : BaseStatusBar
DrawColor = dollcolor;
if ( a ) UTDrawColorTex(Man[1],1.0,a.Amount/double(a.MaxAmount));
if ( t ) UTDrawColorTex(Man[2],1.0,t.Amount/double(t.MaxAmount));
//if ( j ) UTDrawColorTex(Man[3],1.0,b.Amount/double(b.MaxAmount));
if ( j ) UTDrawColorTex(Man[3],1.0,j.Amount/double(j.MaxAmount));
DrawColor = GoldColor;
if ( s ) UTDrawColorTex(Man[4],1.0,s.Amount/double(s.MaxAmount));
}