A couple tweaks.

This commit is contained in:
Mari the Deer 2021-04-08 15:56:18 +02:00
commit 98012daf26
8 changed files with 118 additions and 88 deletions

View file

@ -19,6 +19,15 @@ This is just a bit of *"future planning"* for stuff that I ***might*** add after
- [Heretic] Manarock *("A delicacy for gods, but instantly deadly for mortals")*
- [Heretic] Lithium - Volume One *(A work of art, one of the finest graphic novels)*
- [Hexen] Rubber Duck *("Is this some kind of convoluted joke from those two?")*
* **More achievements:**
- [Doom] Heck No *(Instakill 10 Archviles)*
- Kaboom *(Kill 30 enemies with planted Explodium Mags)*
- OH YEAH *(Bust through 20 doors)*
- [Doom] Goodbye Franchise *(Rescue Commander Keen)*
- Pacifist *(Finish a map without killing anything)*
- Untouchable *(Finish a map without taking damage)*
- Under Pressure *(Break a crusher)*
- The Longest Journey *(Walk a total of 1000km)*
* ***(Maybe)* Fake livestream chat overlay, with dynamic reactions to all sorts of stuff**
* **Replace all hitscan with *"light projectiles"***
* **Leaning and a lot of other stuff involving ViewAngles and ViewPos**

View file

@ -5,78 +5,79 @@
# handling in zscript (usually for cases where this is dynamic, like
# the "all collectibles" achievement)
# hasformat: the TXT string has a %d in it to substitute for maxval
abort,0,no
acid,200,yes
allcoll,-1,no
allitems,30,yes
allkills,30,yes
allsecrets,30,yes
anom,25,yes
anone,0,no
balls,10,yes
barrier,25,yes
bonk,300,yes
bossdash,10,yes
brake,30,yes
bune,200,yes
bustin,40,yes
butts,100,yes
cheat,0,no
cliffyb,0,no
clonk,0,no
conga,15,yes
#dab,100,yes
#dakka,60,no
dime,0,no
dosh,1000000000,no
everything,0,no
ezkill,100,yes
flight,2000,yes
friend,30,yes
fuel,400,yes
#fuller,0,no
gcsandwich,25,yes
#gepgun,30,yes
ghost,25,yes
gib,1000,yes
golden,24,yes
gravity,25,yes
#hnd,6,yes
jump,100,yes
lead,1500,yes
#lightning,0,no
ligma,0,no
love,20,yes
#mashiro,0,no
mbf,0,no
mega,1000000,no
moth,50,yes
nice,0,no
oneguy,0,no
onestanding,0,no
oopsie,0,no
par,30,yes
parry,100,yes
#pene,20,yes
plush,20,yes
rage,25,yes
reflect,20,yes
refresh,25,yes
#roast,30,yes
salt,0,no
sanic,800,yes
sekiro,0,no
shame,0,no
shock,30,yes
slayer,40,yes
slemg,50,yes
sneeze,20,yes
step,60,yes
stomp,50,yes
sunny,25,yes
tele,0,no
thicc,100,yes
thruwall,25,yes
wantdie,0,no
wave,0,no
yeet,0,no
# gametype: the game this belongs to (any, doom, heretic, hexen, raven, etc.)
abort,0,no,any
acid,200,yes,any
allcoll,-1,no,any
allitems,30,yes,any
allkills,30,yes,any
allsecrets,30,yes,nothexen
anom,25,yes,any
anone,0,no,any
balls,10,yes,any
barrier,25,yes,doom
bonk,300,yes,any
bossdash,10,yes,any
brake,30,yes,any
bune,200,yes,any
bustin,40,yes,any
butts,100,yes,any
cheat,0,no,any
cliffyb,0,no,nothexen
clonk,0,no,any
conga,15,yes,any
#dab,100,yes,any
#dakka,60,no,any
dime,0,no,any
dosh,1000000000,no,any
everything,0,no,any
ezkill,100,yes,any
flight,2000,yes,any
friend,30,yes,any
fuel,400,yes,any
#fuller,0,no,any
gcsandwich,25,yes,any
#gepgun,30,yes,any
ghost,25,yes,any
gib,1000,yes,any
golden,24,yes,any
gravity,25,yes,raven
#hnd,6,yes,any
jump,100,yes,any
lead,1500,yes,any
#lightning,0,no,any
ligma,0,no,any
love,20,yes,any
#mashiro,0,no,any
mbf,0,no,doom
mega,1000000,no,any
moth,50,yes,any
nice,0,no,any
oneguy,0,no,any
onestanding,0,no,any
oopsie,0,no,any
par,30,yes,nothexen
parry,100,yes,any
#pene,20,yes,any
plush,20,yes,any
rage,25,yes,any
reflect,20,yes,any
refresh,25,yes,any
#roast,30,yes,any
salt,0,no,any
sanic,800,yes,any
sekiro,0,no,any
shame,0,no,any
shock,30,yes,any
slayer,40,yes,any
slemg,50,yes,any
sneeze,20,yes,any
step,60,yes,any
stomp,50,yes,any
sunny,25,yes,any
tele,0,no,any
thicc,100,yes,any
thruwall,25,yes,any
wantdie,0,no,any
wave,0,no,any
yeet,0,no,doom

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r433 \cu(Wed 7 Apr 11:17:04 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r433 \cu(2021-04-07 11:17:04)\c-";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r435 \cu(Thu 8 Apr 15:57:28 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r435 \cu(2021-04-08 15:57:28)\c-";

View file

@ -49,7 +49,7 @@ extend Class SWWMHandler
return false;
}
private static bool ShouldSpawnGold()
static bool ShouldSpawnGold()
{
int totalneeded = 0;
// check "free space" in player inventories

View file

@ -18,6 +18,10 @@ Class FroggyChair : Actor
+NOBLOOD;
+INTERPOLATEANGLES;
+FORCEPAIN;
+CANPASS;
+NOBLOCKMONST;
+MOVEWITHSECTOR;
+SLIDESONWALLS;
}
private void BeginCarry( Actor carrier )
{
@ -728,12 +732,12 @@ Class Chancebox : Actor
// no candidates? just burst into treats
if ( Random[Chancebox](0,1) )
{
let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":Random[Chancebox](0,1)?"GrilledCheeseSandwich":"YnykronAmmo",pos);
let a = Spawn((!Random[Chancebox](0,2)&&SWWMUtility.ItemExists("Spreadgun"))?"GoldShell":(Random[Chancebox](0,1)&&SWWMUtility.ItemExists("Ynykron"))?"YnykronAmmo":"GrilledCheeseSandwich",pos);
a.bDROPPED = false;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,4);
}
else if ( !Random[Chancebox](0,2) )
else if ( !Random[Chancebox](0,2) && SWWMUtility.ItemExists("CandyGun") )
{
for ( int i=0; i<=6; i++ )
{
@ -744,7 +748,7 @@ Class Chancebox : Actor
if ( i > 0 ) a.vel.xy = (cos(i*60),sin(i*60))*FRandom[Chancebox](1,2);
}
}
else if ( !Random[Chancebox](0,2) )
else if ( !Random[Chancebox](0,2) && SWWMUtility.ItemExists("SilverBullet") )
{
for ( int i=0; i<3; i++ )
{
@ -763,7 +767,7 @@ Class Chancebox : Actor
a.vel.xy = (cos(i*60),sin(i*60))*FRandom[Chancebox](3,4);
}
}
else if ( Random[Chancebox](0,1) )
else if ( Random[Chancebox](0,1) && SWWMUtility.ItemExists("Hellblazer") )
{
let a = Spawn("HellblazerWarheads",pos);
a.bDROPPED = false;
@ -794,7 +798,7 @@ Class Chancebox : Actor
a.vel.xy = (cos(i*45),sin(i*45))*FRandom[Chancebox](5,6);
}
}
else if ( Random[Chancebox](0,1) )
else if ( Random[Chancebox](0,1) && SWWMUtility.ItemExists("Spreadgun") )
{
let a = Spawn("BlackShell",pos);
a.bDROPPED = false;
@ -802,7 +806,7 @@ Class Chancebox : Actor
a.vel.z = FRandom[Chancebox](2,4);
for ( int i=0; i<3; i++ )
{
a = Spawn("BlueShell",pos);
a = Spawn("WhiteShell",pos);
a.bDROPPED = false;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,4);
@ -810,7 +814,7 @@ Class Chancebox : Actor
}
for ( int i=0; i<8; i++ )
{
a = Spawn((i%2)?"WhiteShell":"PurpleShell",pos);
a = Spawn((i%2)?"PurpleShell":"BlueShell",pos);
a.bDROPPED = false;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,4);
@ -827,13 +831,14 @@ Class Chancebox : Actor
}
else if ( Random[Chancebox](0,1) )
{
Class<Actor> which = Random[Chancebox](1,0)?"HealthNuggetItem":"ArmorNuggetItem";
for ( int i=0; i<20; i++ )
{
let a = Spawn("HealthNuggetItem",pos);
let a = Spawn(which,pos);
a.bDROPPED = false;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,8);
a.vel.xy = (cos(i*3.6),sin(i*3.6))*FRandom[Chancebox](1,8);
a.vel.xy = (cos(i*18),sin(i*18))*FRandom[Chancebox](1,8);
}
}
else

View file

@ -2308,6 +2308,10 @@ Class DemolitionistMenu : GenericMenu
if ( !type ) continue;
// no collectibles
if ( type is 'SWWMCollectible' ) continue;
// no barriers outside doom
if ( !(gameinfo.gametype&GAME_DOOM) && (type is 'EBarrier') ) continue;
// no gravity outside raven
if ( !(gameinfo.gametype&GAME_RAVEN) && (type is 'GravitySuppressor') ) continue;
// can't sell candygun spares
if ( sub && (type is 'CandyGunSpares') ) continue;
let cur = players[consoleplayer].mo.FindInventory(type);

View file

@ -335,7 +335,12 @@ Class Demolitionist : PlayerPawn
{
let type = (class<Inventory>)(AllActorClasses[i]);
if ( !type ) continue;
if ( !(gameinfo.gametype&GAME_Hexen) && (type is 'AmmoFabricator') ) continue; // no fabricators before hexen
// no fabricators before hexen
if ( !(gameinfo.gametype&GAME_Hexen) && (type is 'AmmoFabricator') ) continue;
// no barriers outside doom
if ( !(gameinfo.gametype&GAME_DOOM) && (type is 'EBarrier') ) continue;
// no gravity outside raven
if ( !(gameinfo.gametype&GAME_RAVEN) && (type is 'GravitySuppressor') ) continue;
// Don't give maxed items
let owned = FindInventory(type);
if ( owned && (owned.Amount >= owned.MaxAmount) ) continue;

View file

@ -48,6 +48,12 @@ Class SWWMUtility
continue;
Array<String> ln;
list[i].Split(ln,",",0);
// game filtering
if ( !(gameinfo.gametype&GAME_DOOM) && (ln[3] ~== "doom") ) continue;
else if ( !(gameinfo.gametype&GAME_HERETIC) && (ln[3] ~== "heretic") ) continue;
else if ( !(gameinfo.gametype&GAME_HEXEN) && (ln[3] ~== "hexen") ) continue;
else if ( !(gameinfo.gametype&GAME_RAVEN) && (ln[3] ~== "raven") ) continue;
else if ( !(gameinfo.gametype&(GAME_DOOM|GAME_HERETIC)) && (ln[3] ~== "nothexen") ) continue;
let ac = new("SWWMAchievement");
ac.basename = ln[0];
ac.maxval = ln[1].ToInt();