class VhtMageWandMissile : MageWandMissile replaces MageWandMissile { default { DamageFunction vhtDamageFunc(); } override void beginPlay() { super.beginPlay(); spriteOffset = (0, 8); } int vhtDamageFunc() { switch(vht_mwand_damagefunc) { case 0: return 2 * random(1, 8); /* vanilla (2d8) */ case 1: return 4 * random(1, 4); /* modified (4d4) */ case 2: return 16; /* constant */ } return 0; } } class VhtFrostMissile : FrostMissile replaces FrostMissile { default { DamageFunction vhtDamageFunc(); } int vhtDamageFunc() { switch(vht_mfrost_damagefunc) { case 0: return 1 * random(1, 8); /* vanilla (1d8) */ case 1: return 4 * random(1, 3); /* modified (4d3) */ case 2: return 8; /* constant */ } return 0; } } class VhtBloodscourgeShot : MageStaffFx2 replaces MageStaffFx2 { override void beginPlay() { super.beginPlay(); if(vht_mbloodscourge_foilinvul) { bFoilInvul = true; } } } class VhtAxeMissile : Actor { default { Speed 25; Radius 13; Height 8; Damage 2; DamageType "Melee"; Projectile; DeathSound "MageLightningZap"; Obituary "$OB_VHTFWEAPAXE"; Translation "146:163=146:160", "217:223=155:163"; } states { Spawn: SHRD A 2 bright; SHRD ABC 3 bright; loop; Death: MWND E 4 bright; MWND F 3 bright; MWND G 4 bright; MWND H 3 bright; MWND I 4 bright; stop; } }