Bump zscript ver to 4.14.1, plus a whole lot of stuff.

- Try to get rid of all implicit casts from string to name, color or class.
 - Use FindClass where needed.
 - Used a map in a case where a dictionary was unneeded.
 - Use new bounce flags where needed.
 - Replace Legacy of Rust weapons/ammo.
This commit is contained in:
Mari the Deer 2025-03-13 14:45:01 +01:00
commit 80db58b0d0
128 changed files with 3074 additions and 3088 deletions

View file

@ -75,7 +75,7 @@ extend Class Demolitionist
break;
}
if ( !addme ) continue;
let nmi = new("SWWMMagItem");
let nmi = new('SWWMMagItem');
nmi.target = self;
nmi.item = i;
nmi.next = magitem;
@ -207,7 +207,7 @@ extend Class Demolitionist
isAnalogMoving = CVar.GetCVar('swwm_analogmove',player).GetBool();
UpdateFace();
UpdateTags();
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
if ( !hnd ) hnd = SWWMHandler(EventHandler.Find('SWWMHandler'));
if ( hnd )
{
if ( hasteleported ) hnd.SendInterfaceEvent(PlayerNumber(),"swwmsendplayertele");
@ -221,21 +221,21 @@ extend Class Demolitionist
}
if ( !selflight )
{
selflight = new("DemolitionistSelfLight");
selflight = new('DemolitionistSelfLight');
selflight.ChangeStatNum(STAT_USER);
selflight.target = self;
selflight.Tick();
}
if ( !myshadow ) myshadow = SWWMShadow.Track(self);
// double-check that we have these
if ( !FindInventory("AlmasteelPlating") )
if ( !FindInventory('AlmasteelPlating') )
{
let ap = Inventory(Spawn("AlmasteelPlating"));
let ap = Inventory(Spawn('AlmasteelPlating'));
if ( !ap.CallTryPickup(self) ) ap.Destroy();
}
if ( !FindInventory("SayaCollar") )
if ( !FindInventory('SayaCollar') )
{
let sc = Inventory(Spawn("SayaCollar"));
let sc = Inventory(Spawn('SayaCollar'));
if ( !sc.CallTryPickup(self) ) sc.Destroy();
}
// this is why we need mod cvar callbacks
@ -257,20 +257,20 @@ extend Class Demolitionist
{
if ( health > 1000 )
{
let spr = DivineSpriteEffect(FindInventory("DivineSpriteEffect"));
let spr = DivineSpriteEffect(FindInventory('DivineSpriteEffect'));
if ( !spr || spr.bHealDone )
A_SetHealth(max(1000,health-10));
if ( health <= 1000 ) healcooldown = 40;
}
else if ( health > 500 )
{
if ( !FindInventory("GrilledCheeseSafeguard") && !(healtimer%3) )
if ( !FindInventory('GrilledCheeseSafeguard') && !(healtimer%3) )
A_SetHealth(health-1);
if ( health <= 500 ) healcooldown = 20;
}
else if ( health > 200 )
{
if ( !FindInventory("RefresherRegen") && !(healtimer%12) )
if ( !FindInventory('RefresherRegen') && !(healtimer%12) )
A_SetHealth(health-1);
}
healtimer++;
@ -317,7 +317,7 @@ extend Class Demolitionist
int numpt = Random[ExploS](-2,2);
for ( int i=0; i<numpt; i++ )
{
let p = Spawn("SWWMBubble",Vec3Offset(FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](height*.1,height*.9)));
let p = Spawn('SWWMBubble',Vec3Offset(FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](-radius,radius)*.8,FRandom[ExploS](height*.1,height*.9)));
p.scale *= FRandom[ExploS](.02,.2);
p.vel += vel*.2;
}
@ -335,7 +335,7 @@ extend Class Demolitionist
if ( spd > mystats.topspeed ) mystats.topspeed = spd;
if ( spd > ((3600*GameTicRate)/32000.) )
SWWMUtility.AchievementProgress("sanic",int((spd*3600*GameTicRate)/32000.),player);
bool isdashing = InStateSequence(CurState,FindState("Dash"));
bool isdashing = InStateSequence(CurState,FindState('Dash'));
if ( player.onground && !bNoGravity && !lastground )
{
// bump down weapon
@ -343,13 +343,13 @@ extend Class Demolitionist
BumpView(min(-lastvelz/10.,20));
if ( lastvelz < -25 )
{
let s = Spawn("DemolitionistShockwave",pos);
let s = Spawn('DemolitionistShockwave',pos);
s.target = self;
s.special1 = int(-lastvelz);
A_AlertMonsters(swwm_uncapalert?0:2500);
BumpView(15.);
lastbump *= 1.1;
if ( FindInventory("RagekitPower") )
if ( FindInventory('RagekitPower') )
{
// stop for just a split second UNLESS bunnyhopping
if ( !IsRunning() || (level.maptime >= (lastairtic+10)) )
@ -444,9 +444,9 @@ extend Class Demolitionist
if ( (lastvelz < -5) || !(level.maptime%5) )
{
int realdmg = encroached.DamageMobj(self,self,int((2+max(0,-lastvelz*3))*max(1.,mass/encroached.mass)),'Jump',DMG_THRUSTLESS);
if ( FindInventory("RagekitPower") )
if ( FindInventory('RagekitPower') )
{
let ps = Spawn("BigPunchSplash",pos);
let ps = Spawn('BigPunchSplash',pos);
ps.damagetype = 'Jump';
ps.target = self;
ps.special1 = realdmg;
@ -506,7 +506,7 @@ extend Class Demolitionist
lastground = player.onground;
lastvelz = prevvelz;
prevvelz = vel.z;
bool isboosting = InStateSequence(CurState,FindState("Boost"));
bool isboosting = InStateSequence(CurState,FindState('Boost'));
bNOFRICTION = ((bFly&&!bFlyCheat&&!(player.cheats&CF_NOCLIP2))||isdashing);
if ( fuelcooldown == 1 ) A_StartSound("demolitionist/fuelregen",CHAN_FUELREGEN,CHANF_LOOP,.35,4.,.5);
else if ( fuelcooldown > 1 ) A_StopSound(CHAN_FUELREGEN);
@ -562,7 +562,7 @@ extend Class Demolitionist
{
for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ )
{
a = Spawn("DashTrail",Vec3Angle(15,angle+i*140,35));
a = Spawn('DashTrail',Vec3Angle(15,angle+i*140,35));
a.master = self;
a.vel = (RotateVector((j,0),angle+i*160),0)-(0,0,1)*j;
a.vel -= vel*.5;
@ -574,7 +574,7 @@ extend Class Demolitionist
Vector3 viewdir = SWWMUtility.Vec3FromAngles(angle,pitch);
// look for things we could potentially bump into
bool bumped = false;
let raging = RagekitPower(FindInventory("RagekitPower"));
let raging = RagekitPower(FindInventory('RagekitPower'));
double maxmass = max(mass*spd/40.,200);
if ( raging ) maxmass *= 2;
let bt = BlockThingsIterator.Create(self,spd+radius+1024);
@ -651,7 +651,7 @@ extend Class Demolitionist
{
A_StartSound("demolitionist/buttslam",CHAN_DAMAGE,CHANF_OVERLAP,1.,.4);
if ( swwm_buttsfx ) A_StartSound("demolitionist/buttslamx",CHAN_DAMAGE,CHAN_OVERLAP,1.,.2);
Spawn("SWWMItemFog",level.Vec3Offset(pos,diff/2));
Spawn('SWWMItemFog',level.Vec3Offset(pos,diff/2));
A_QuakeEx(8.,8.,8.,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:1.);
mystats.buttslams++;
lastbump *= .8;
@ -659,7 +659,7 @@ extend Class Demolitionist
}
if ( raging )
{
let ps = Spawn("BigPunchSplash",level.Vec3Offset(pos,diff/2));
let ps = Spawn('BigPunchSplash',level.Vec3Offset(pos,diff/2));
ps.damagetype = buttslam?'Buttslam':'Dash';
ps.target = self;
ps.special1 = dmg;
@ -687,7 +687,7 @@ extend Class Demolitionist
if ( raging || swwm_omnibust )
{
// see if we can bust it
let tempme = new("LineTracer"); // gross hack to pass needed data
let tempme = new('LineTracer'); // gross hack to pass needed data
int dmg = int(10+spd*3.);
if ( raging ) dmg *= 8;
bool buttslam = false;
@ -705,7 +705,7 @@ extend Class Demolitionist
// busted through
if ( raging )
{
let ps = Spawn("BigPunchSplash",Vec3Offset(0,0,Height));
let ps = Spawn('BigPunchSplash',Vec3Offset(0,0,Height));
ps.damagetype = buttslam?'Buttslam':'Dash';
ps.target = self;
ps.special1 = int(10+spd*3.);
@ -717,7 +717,7 @@ extend Class Demolitionist
{
A_StartSound("demolitionist/buttslam",CHAN_DAMAGE,CHANF_OVERLAP,1.,.4);
if ( swwm_buttsfx ) A_StartSound("demolitionist/buttslamx",CHAN_DAMAGE,CHAN_OVERLAP,1.,.2);
Spawn("SWWMItemFog",Vec3Offset(0,0,Height));
Spawn('SWWMItemFog',Vec3Offset(0,0,Height));
A_QuakeEx(8.,8.,8.,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:1.);
mystats.buttslams++;
lastbump *= .8;
@ -741,7 +741,7 @@ extend Class Demolitionist
dashboost *= 0.;
if ( raging )
{
let ps = Spawn("BigPunchSplash",Vec3Offset(0,0,Height));
let ps = Spawn('BigPunchSplash',Vec3Offset(0,0,Height));
ps.damagetype = (dir dot viewdir < -3.)?'Buttslam':'Dash';
ps.target = self;
ps.special1 = int(10+spd*3.);
@ -783,7 +783,7 @@ extend Class Demolitionist
if ( raging || swwm_omnibust )
{
// see if we can bust it
let tempme = new("LineTracer"); // gross hack to pass needed data
let tempme = new('LineTracer'); // gross hack to pass needed data
int dmg = int(10+spd*3.);
if ( raging ) dmg *= 8;
if ( buttslam ) dmg *= 3;
@ -805,7 +805,7 @@ extend Class Demolitionist
// busted through
if ( raging )
{
let ps = Spawn("BigPunchSplash",Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
let ps = Spawn('BigPunchSplash',Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
ps.damagetype = buttslam?'Buttslam':'Dash';
ps.target = self;
ps.special1 = int(10+spd*3.);
@ -816,7 +816,7 @@ extend Class Demolitionist
{
A_StartSound("demolitionist/buttslam",CHAN_DAMAGE,CHANF_OVERLAP,1.,.4);
if ( swwm_buttsfx ) A_StartSound("demolitionist/buttslamx",CHAN_DAMAGE,CHAN_OVERLAP,1.,.2);
Spawn("SWWMItemFog",Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
Spawn('SWWMItemFog',Vec3Offset(dir.x*radius,dir.y*radius,(tempme.Results.Tier==TIER_UPPER)?Height:(tempme.Results.Tier==TIER_LOWER)?0:(Height/2)));
A_QuakeEx(8.,8.,8.,8,0,3000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:300,rollIntensity:1.);
mystats.buttslams++;
lastbump *= .8;
@ -839,7 +839,7 @@ extend Class Demolitionist
dashboost *= 0.;
if ( raging )
{
let ps = Spawn("BigPunchSplash",Vec3Offset(dir.x*radius,dir.y*radius,Height/2.));
let ps = Spawn('BigPunchSplash',Vec3Offset(dir.x*radius,dir.y*radius,Height/2.));
ps.damagetype = (dir dot viewdir < -3.)?'Buttslam':'Dash';
ps.target = self;
ps.special1 = int(10+spd*3.);
@ -887,7 +887,7 @@ extend Class Demolitionist
Actor a;
for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ )
{
a = Spawn("DashTrail",Vec3Angle(10,angle+i*140,40));
a = Spawn('DashTrail',Vec3Angle(10,angle+i*140,40));
a.master = self;
a.vel = .5*(RotateVector((j,0),angle+i*160),0)-(0,0,1)*j;
a.vel -= vel*.5;