From 8833db95914ec9d0228f4019e83a5726092fd9ec Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Sat, 24 Sep 2022 01:21:03 +0200 Subject: [PATCH] Voodoo dolls are annoying. --- language.version | 4 ++-- textures/DefaultTexture.png | Bin 0 -> 12250 bytes zscript/handler/swwm_handler_damage.zsc | 3 ++- zscript/hud/swwm_hud.zsc | 15 ++++++++------- zscript/swwm_common.zsc | 16 ++++++++++++++++ zscript/swwm_player.zsc | 2 ++ zscript/swwm_player_items.zsc | 2 +- 7 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 textures/DefaultTexture.png diff --git a/language.version b/language.version index a695252c6..1cae2e841 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r496 \cu(Fri 23 Sep 22:27:45 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r496 \cu(2022-09-23 22:27:45)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r497 \cu(Sat 24 Sep 01:21:03 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r497 \cu(2022-09-24 01:21:03)\c-"; diff --git a/textures/DefaultTexture.png b/textures/DefaultTexture.png new file mode 100644 index 0000000000000000000000000000000000000000..1442f7ce20a14897b868ec26756efe963481d8f2 GIT binary patch literal 12250 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 literal 0 HcmV?d00001 diff --git a/zscript/handler/swwm_handler_damage.zsc b/zscript/handler/swwm_handler_damage.zsc index 788fde7d1..760f46743 100644 --- a/zscript/handler/swwm_handler_damage.zsc +++ b/zscript/handler/swwm_handler_damage.zsc @@ -117,6 +117,7 @@ extend Class SWWMHandler // combat hit chatter private void DoCombatHit( WorldEvent e ) { + if ( (e.DamageSource is 'SWWMVoodooDoll') || (e.Thing is 'SWWMVoodooDoll') ) return; if ( (e.DamageSource.bISMONSTER || e.DamageSource.player || (e.DamageSource is 'ScriptedMarine')) && (e.Thing == players[consoleplayer].mo) && (e.Thing.Health > 0) ) { if ( !lastcombat || (gametic > lastcombat+20) ) @@ -160,7 +161,7 @@ extend Class SWWMHandler s.kills++; s.AddWeaponKill(inflictor,e.Thing,e.DamageType); } - if ( src == players[consoleplayer].mo ) + if ( (src == players[consoleplayer].mo) && !(e.Thing is 'SWWMVoodooDoll') ) { highesttic = gametic; if ( !lastcombat || (gametic > lastcombat+20) ) diff --git a/zscript/hud/swwm_hud.zsc b/zscript/hud/swwm_hud.zsc index d4ffb79c2..52d842d29 100644 --- a/zscript/hud/swwm_hud.zsc +++ b/zscript/hud/swwm_hud.zsc @@ -1491,10 +1491,10 @@ Class SWWMStatusBar : BaseStatusBar } // ignore unowned (can happen?) if ( !ct.Owner ) continue; - // ignore player trackers - if ( ct.Owner.player ) continue; + // ignore player trackers unless voodoo dolls + if ( ct.Owner.player && (ct.Owner.player.mo == ct.Owner) ) continue; // ignore local player or camera - if ( (ct.Owner.player == CPlayer) || (ct.Owner == cam) ) continue; + if ( (ct.Owner == CPlayer.mo) || (ct.Owner == cam) ) continue; // ignore trackers not of this player if ( ct.myplayer != CPlayer ) continue; // ignore trackers clearly outside of player view @@ -1523,7 +1523,8 @@ Class SWWMStatusBar : BaseStatusBar if ( swwm_bigtags ) tag = "\cx★\c- "..tag.." \cx★\c-"; else tag = "\cx*\c- "..tag.." \cx*\c-"; // miniwi has no stars } - if ( ct.Owner.IsFriend(CPlayer.mo) ) tag = "\cg♥\c- "..tag.." \cg♥\c-"; + // voodoo dolls aren't friends + if ( ct.Owner.IsFriend(CPlayer.mo) && !ct.Owner.player ) tag = "\cg♥\c- "..tag.." \cg♥\c-"; Screen.DrawText(fnt,Font.CR_WHITE,vpos.x-fnt.StringWidth(tag)/2,barpos.y-(fnt.GetHeight()+2),tag,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph); } Screen.DrawTexture(EnemyBTex,false,barpos.x,barpos.y,DTA_VirtualWidthF,ss1.x,DTA_VirtualHeightF,ss1.y,DTA_KeepRatio,true,DTA_Alpha,alph); @@ -1554,10 +1555,10 @@ Class SWWMStatusBar : BaseStatusBar } // ignore unowned (can happen?) if ( !ct.Owner ) continue; - // ignore non-player trackers - if ( !ct.Owner.player ) continue; + // ignore non-player trackers and voodoo dolls + if ( !ct.Owner.player || (ct.Owner.player.mo != ct.Owner) ) continue; // ignore local player or camera - if ( (ct.Owner.player == CPlayer) || (ct.Owner == cam) ) continue; + if ( (ct.Owner == CPlayer.mo) || (ct.Owner == cam) ) continue; // ignore trackers not of this player if ( ct.myplayer != CPlayer ) continue; // ignore trackers clearly outside of player view diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index f14403871..498f3a57c 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -231,6 +231,22 @@ Class SWWMQuickCombatTracker : Inventory else mytag = ""; } + override void AttachToOwner( Actor other ) + { + // GROSS HACK TO ATTACH TO VOODOO DOLLS + if ( other.player && (other.player.mo != other) ) + { + BecomeItem(); + Owner = other; + inv = Owner.inv; + Owner.inv = self; + // we unfortunately can't access this, but hopefully it shouldn't be necessary + //InventoryID = Owner.InventoryID++; + return; + } + Super.AttachToOwner(other); + } + static SWWMQuickCombatTracker Update( SWWMHandler hnd, PlayerInfo p, Actor target, int damage = 0 ) { // no-damage entities get no healthbars diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index a2442652d..6bae67955 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -151,6 +151,7 @@ Class Demolitionist : PlayerPawn +NOBLOOD; +DONTGIB; +NOICEDEATH; + +NOSKIN; +DONTMORPH; +DONTDRAIN; +DONTCORPSE; @@ -4005,6 +4006,7 @@ Class SWWMVoodooDoll : PlayerPawn +DONTGIB; +NOICEDEATH; +DONTCORPSE; + +NOSKIN; -FRIENDLY; } States diff --git a/zscript/swwm_player_items.zsc b/zscript/swwm_player_items.zsc index 4ab32db1f..eb0e87a3f 100644 --- a/zscript/swwm_player_items.zsc +++ b/zscript/swwm_player_items.zsc @@ -53,7 +53,7 @@ Class SayaCollar : SWWMArmor override void ModifyDamage( int damage, Name damageType, out int newdamage, bool passive, Actor inflictor, Actor source, int flags ) { int ff = swwm_friendlyfire; - if ( !source || (source == Owner) || !source.IsFriend(Owner) || !ff ) return; + if ( !source || (source == Owner) || (source.player == Owner.player) || !source.IsFriend(Owner) || !ff ) return; // 1: block incoming friendly damage // 2: also block outgoing friendly damage if ( (passive && ff) || (!passive && (ff == 2)) )