diff --git a/language.version b/language.version index 8e1bc8b78..eb2ce7b48 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r575 \cu(Thu 20 Oct 19:51:25 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r575 \cu(2022-10-20 19:51:25)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r576 \cu(Thu 20 Oct 20:27:20 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r576 \cu(2022-10-20 20:27:20)\c-"; diff --git a/zscript/dlc1/swwm_blastin.zsc b/zscript/dlc1/swwm_blastin.zsc index 81c99d703..8e7ea69ab 100644 --- a/zscript/dlc1/swwm_blastin.zsc +++ b/zscript/dlc1/swwm_blastin.zsc @@ -23,6 +23,8 @@ Class PlasmaBlast : SWWMWeapon PlasmaBlast.ClipCount 8; +WEAPON.EXPLOSIVE; +SWWMWEAPON.HASSCRTEX; + Radius 10; + Height 24; } States { diff --git a/zscript/handler/swwm_handler_process.zsc b/zscript/handler/swwm_handler_process.zsc index 9841b7be4..fc9279838 100644 --- a/zscript/handler/swwm_handler_process.zsc +++ b/zscript/handler/swwm_handler_process.zsc @@ -67,6 +67,38 @@ extend Class SWWMHandler if ( mo ) mo.bWalking = e.Args[0]; return; } + else if ( e.Name ~== "swwmsetradius" ) + { + if ( multiplayer && (e.player != Net_Arbitrator) ) + { + if ( e.player == consoleplayer ) + Console.Printf("Only the net arbitrator can call this event."); + return; + } + let mo = players[e.player].mo; + if ( !mo ) return; + FLineTraceData d; + mo.LineTrace(mo.angle,10000.,mo.pitch,TRF_ABSPOSITION|TRF_THRUBLOCK|TRF_THRUHITSCAN|TRF_ALLACTORS,mo.player.viewz,mo.pos.x,mo.pos.y,d); + if ( d.HitType != TRACE_HitActor ) return; + Console.Printf("Change %s radius from %g to %g.",d.HitActor.GetTag(),d.HitActor.radius,e.Args[0]); + d.HitActor.A_SetSize(e.Args[0],-1); + } + else if ( e.Name ~== "swwmsetheight" ) + { + if ( multiplayer && (e.player != Net_Arbitrator) ) + { + if ( e.player == consoleplayer ) + Console.Printf("Only the net arbitrator can call this event."); + return; + } + let mo = players[e.player].mo; + if ( !mo ) return; + FLineTraceData d; + mo.LineTrace(mo.angle,10000.,mo.pitch,TRF_ABSPOSITION|TRF_THRUBLOCK|TRF_THRUHITSCAN|TRF_ALLACTORS,mo.player.viewz,mo.pos.x,mo.pos.y,d); + if ( d.HitType != TRACE_HitActor ) return; + Console.Printf("Change %s height from %g to %g.",d.HitActor.GetTag(),d.HitActor.height,e.Args[0]); + d.HitActor.A_SetSize(-1,e.Args[0]); + } else if ( e.Name ~== "swwmfixitemcaps" ) { // this command is only really needed when I update item max amounts mid-playthrough