diff --git a/language.version b/language.version index 3dbe8be56..a70c71ac4 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r405 \cu(Sun 4 Sep 21:27:48 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r405 \cu(2022-09-04 21:27:48)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r406 \cu(Mon 5 Sep 00:29:08 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r406 \cu(2022-09-05 00:29:08)\c-"; diff --git a/zscript/dlc1/swwm_notashotgun_fx.zsc b/zscript/dlc1/swwm_notashotgun_fx.zsc index 50fdce85d..ee88c8942 100644 --- a/zscript/dlc1/swwm_notashotgun_fx.zsc +++ b/zscript/dlc1/swwm_notashotgun_fx.zsc @@ -986,14 +986,18 @@ Class OnFire : Inventory { if ( target == Owner ) return Damage; // spread ourselves - let t = OnFire(target.FindInventory("OnFire")); - if ( !t ) + // note: cannot spread to Demolitionist + if ( !(target is 'Demolitionist') ) { - t = Apply(target,instigator,min(Damage,int(Amount*.6))); // prevent "escalating" spread - t.cnt = 15; // long delay + let t = OnFire(target.FindInventory("OnFire")); + if ( !t ) + { + t = Apply(target,instigator,min(Damage,int(Amount*.6))); // prevent "escalating" spread + t.cnt = 15; // long delay + } + else if ( t.Amount < int(Amount*.6) ) t.Amount = min(t.Amount+Damage,int(Amount*.6)); // prevent "escalating" spread + t.instigator = instigator; } - else if ( t.Amount < int(Amount*.6) ) t.Amount = min(t.Amount+Damage,int(Amount*.6)); // prevent "escalating" spread - t.instigator = instigator; return clamp(int(Damage*.15),1,50); // reduced direct damage } @@ -1005,7 +1009,7 @@ Class OnFire : Inventory Destroy(); return; } - if ( Owner is 'Demolitionist' ) amount = min(amount-1,200); // Demo's body puts out fire faster + if ( Owner is 'Demolitionist' ) amount = min(amount-1,100); // Demo's body puts out fire faster if ( !(level.maptime%3) ) amount--; if ( Owner.player ) amount -= int(abs(actor.deltaangle(Owner.angle,oangle))/30);