diff --git a/Achievements.md b/Achievements.md index 779b79ce9..59ac665eb 100644 --- a/Achievements.md +++ b/Achievements.md @@ -3,6 +3,8 @@ ### Base achievements: - **A Little Sandwich, As A Treat**: Use 50 Grilled Cheese Sandwiches. +- **Ara Ara**: Load SWWM GZ and H-Doom together. +- **A Warning to the Others**: Finish a map with just one enemy left alive. - **Big Oopsie**: Erase yourself with the Ynykron. - **Cloak Engaged**: Use 50 Ghost Artifacts. - **CLONK**: Kill a boss with a Lead Ball crit. @@ -10,7 +12,7 @@ - **Conga Line Of Death**: Kill 20 enemies with a single XSB round. - **Decent Ascent**: Use 50 Gravity Suppressors. - **Demolitionist Space Program**: Send a single enemy flying over 1000 map units. -- **Errand Boy Bullshit**: Bust every locked door in a map. +- **Errand Boy Bullshit**: Finish a map without collecting any keys. - **Fast**: Beat the par time in 30 maps. - **Firestarter**: Kill 500 enemies with FYS shells. - **Fuck This Guy In Particular**: Use the Ynykron to kill a single non-boss enemy. @@ -20,14 +22,17 @@ - **Headstrong**: Kill 20 bosses by dashing into them. - **Humiliator**: Kill 100 enemies with the Deep Impact primary fire. - **Hydrogenated**: Consume a total of 1000L of fuel. +- **I Am Become Death**: Kill 50 enemies with a single Slayer Warhead. - **I Am Very Smart**: Load SWWM GZ and Brutal Doom together. - **Icarus Dimes**: Blow yourself up with your own explosives. +- **Italian Plumber Complex**: Kill 200 enemies by standing on them. - **It's Been Ten Years**: Use a cheat code from SWWM Platinum. - **Just A Replica**: Find something the Ynykron can't destroy. - **Knock Knock**: Kill 50 enemies through walls with the Silver Bullet. - **Layers Of White**: Summon the White Lady. -- **Lethal Love**: Kill 10 enemies with a blown kiss. +- **Lethal Love**: Kill 10 enemies with a blown kiss (not counting insta-kills). - **Let's Get To Bashing Butts**: Kill 100 enemies by dashing backwards. +- **Lovestruck**: Play with the Saya or Kirin plushies 10 times in the same session. - **Makes Me Feel Good**: Bust 100 walls. - **Mother**: Gather 100 moths. - **Mx. Worldwide**: Play on all supported IWADs. @@ -35,13 +40,12 @@ - **No Talk Me Angy**: Use 50 Ragekits. - **Oops I Broke It**: Cause a VM abort. - **Parry King**: Parry 100 projectiles. +- **Pest Control**: Obtain 100% kills in 30 maps. - **Premium Detective**: Obtain 100% secrets in 30 maps. - **Return to Sender**: Kill 50 enemies with parried projectiles. -- **RIP Headphone Users**: Fire 25 Saltshot rounds simultaneously at close range. -- **Robutts Die Twice**: Do exactly that. +- **Robutts Die Twice**: Reenact your favorite Souls-like. - **Salutations**: Greet another player. - **Sayonara, Scumbag**: Wave at a dying enemy 20 times. -- **Shameful Display**: Load SWWM GZ and H-Doom together. - **Shaped Like A Friend**: Befriend 50 Cacodemons with headpats. - **Sharing Is Caring**: Share items in multiplayer 50 times. - **Shockmaster**: Perform 50 Biospark combos. @@ -54,18 +58,18 @@ - **The Full Set**: Obtain all collectables in a single session. - **The Sledge Method**: Activate 100 switches by punching them. - **Unchecked Capitalism**: Have ¥1,000,000,000 in bank. -- **Under Pressure**: Kill 200 enemies by standing on them. - **Verticality**: Walljump 100 times. - **Well That Was Easy**: Kill 100 enemies with a single Ynykron shot. -- **Where Did Everyone Go?**: Obtain 100% kills in 30 maps. - **Who's Steve Jobs?**: Kill an endgame boss with the Ynykron. - **YEET**: Throw a Candygun right into the Icon of Sin's brains. - **You Can Pet The Dog**: Pet an MBF helper dog. ### DLC Weaponset achievements: -- **HAHA DAB**: Gib 100 enemies with the Itamex Hammer. -- **High Noon**: Land 6 killing shots in a single Puntzer Beta reload. +- **And The Dragons Were No More**: Kill the Death Wyvern using the Rail Carbine. - **Dakka**: Fire the Sheen HMG for 1 minute straight. - **Gravely Roast**: Perform 30 bayonet combos with the Quadravol. -- **And The Dragons Were No More**: Kill the Death Wyvern using the Rail Carbine. +- **HAHA DAB**: Gib 100 enemies with the Itamex Hammer. +- **High Noon**: Land 6 killing shots in a single Puntzer Beta reload. +- **The Most Silent Takedown**: Kill 50 enemies with the Ray-Khom primary without alerting anyone else. +- **You Gained Brouzouf**: Unload an entire mag in fuller auto with the Puntzer Gamma without missing a single shot. diff --git a/gldefs.shinemaps b/gldefs.shinemaps index c93aeafa9..937f1eba8 100644 --- a/gldefs.shinemaps +++ b/gldefs.shinemaps @@ -51,3 +51,7 @@ HardwareShader Texture "models/errormap.png" { Shader "shaders/glsl/Shinemap_error.fp" } +HardwareShader Texture "models/glassmap.png" +{ + Shader "shaders/glsl/Shinemap.fp" +} diff --git a/language.def_base b/language.def_base index d89c592d1..7a1d10128 100644 --- a/language.def_base +++ b/language.def_base @@ -910,7 +910,7 @@ SWWM_LASTMONSTER = "\cf%s\cf killed the last monster. +%d\c-"; SWWM_NEWLORE = "New entries have been added to the Library."; SWWM_SELLEXTRA = "\cf%s\cf sold an extra %s\cf. +%d\c-"; // intermission tips -SWWM_NINTERTIP = "60"; +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_INTERTIP2 = "The Explodium Gun's altfire has an explosive yield proportional to the bullets left in the mag."; diff --git a/language.version b/language.version index 532c1657c..4235b8d6f 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r586 \cu(Tue 27 Oct 20:01:47 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r586 \cu(Fri 30 Oct 13:21:11 CET 2020)"; diff --git a/models/glassmap.png b/models/glassmap.png new file mode 100644 index 000000000..fff4849c2 Binary files /dev/null and b/models/glassmap.png differ diff --git a/zscript/swwm_inter.zsc b/zscript/swwm_inter.zsc index 04e650538..4be901da9 100644 --- a/zscript/swwm_inter.zsc +++ b/zscript/swwm_inter.zsc @@ -115,7 +115,11 @@ Class SWWMStatScreen : StatusScreen abstract Array ents; ents.Clear(); for ( int i=1; i<=maxtip; i++ ) + { + // skip DLC tips for now + if ( (i >= 61) && (i <= 68) ) continue; ents.Push(i); + } if ( pdata.lasttip.Size() >= maxtip ) { // exclude last one, start over diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index e40159201..84436972c 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -3149,7 +3149,7 @@ Class SWWMGesture : SWWMWeapon } if ( pt.target.GiveBody(healamt,pt.target.GetSpawnHealth()) ) { - SWWMScoreObj.Spawn(healamt,pt.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+target.Height/2),Font.CR_BLUE); + SWWMScoreObj.Spawn(healamt,pt.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+pt.target.Height/2),Font.CR_BLUE); SWWMHandler.DoFlash(pt.target,Color(32,224,128,255),10); } } diff --git a/zscript/swwm_utility.zsc b/zscript/swwm_utility.zsc index 1a83f4140..729f82d57 100644 --- a/zscript/swwm_utility.zsc +++ b/zscript/swwm_utility.zsc @@ -750,7 +750,8 @@ Class SWWMUtility // complete spherical and more accurate replacement of A_Explode // 100% free of the buggery GZDoom's own splash damage has - static play void DoExplosion( Actor Source, double Damage, double MomentumTransfer, double ExplosionRadius, double FullDamageRadius = 0., int flags = 0, Name DamageType = '', Actor ignoreme = null ) + // returns the number of shootables hit/killed + static play int, int DoExplosion( Actor Source, double Damage, double MomentumTransfer, double ExplosionRadius, double FullDamageRadius = 0., int flags = 0, Name DamageType = '', Actor ignoreme = null ) { // debug, display radius sphere if ( swwm_debugblast ) @@ -769,6 +770,7 @@ Class SWWMUtility double brange = 1./(ExplosionRadius-FullDamageRadius); Actor Instigator = (flags&DE_NOTMISSILE)?Source:Source.target; BlockThingsIterator bi = BlockThingsIterator.Create(Source,ExplosionRadius*2); // test with doubled radius, just to be sure + int nhit = 0, nkill = 0; while ( bi.Next() ) { Actor a = bi.Thing; @@ -815,11 +817,14 @@ Class SWWMUtility if ( (flags&DE_BLAST) && a.bCANBLAST && !a.bDONTBLAST ) a.bBLASTED = true; } // hit it + nhit++; int dmg = int(Damage*damagescale); if ( dmg <= 0 ) continue; // no harm int ndmg = a.DamageMobj(Source,Instigator,dmg,(DamageType=='')?Source.DamageType:DamageType,DMG_EXPLOSION,atan2(-dir.y,-dir.x)); - if ( !(flags&DE_NOBLEED) ) a.TraceBleed((ndmg>0)?ndmg:dmg,Source); + if ( a && !(flags&DE_NOBLEED) ) a.TraceBleed((ndmg>0)?ndmg:dmg,Source); + if ( !a || (a.Health <= 0) ) nkill++; } + return nhit, nkill; } static play bool InPlayerFOV( PlayerInfo p, Actor a, double maxdist = 0. ) @@ -843,7 +848,7 @@ Class SWWMUtility { if ( (p != -1) && (p == consoleplayer) ) { - Console.Printf("\cfSORRY NOTHING\c-"); + Console.Printf("\cxSORRY NOTHING\c-"); S_StartSound("misc/trombone",CHAN_VOICE,CHANF_UI); } return true;