mixin class VhtPlayer { bool m_touchShatter; override bool canCollideWith(Actor other, bool passive) { if(m_touchShatter && other.bIceCorpse && other.distance3D(other) <= other.radius + 4) { other.damageMobj(self, self, 1, 'Melee'); } return true; } override void tick() { m_touchShatter = vht_player_touchshatter; super.tick(); } } class VhtFighterPlayer : FighterPlayer { mixin VhtPlayer; default { Player.WeaponSlot 1, "FWeapFist"; Player.WeaponSlot 2, "VhtFWeapAxe"; Player.WeaponSlot 3, "FWeapHammer"; Player.WeaponSlot 4, "FWeapQuietus"; } } class VhtClericPlayer : ClericPlayer { mixin VhtPlayer; } class VhtMagePlayer : MagePlayer { mixin VhtPlayer; default { Player.StartItem "VhtMWeapWand"; Player.WeaponSlot 1, "VhtMWeapWand"; Player.WeaponSlot 2, "MWeapFrost"; Player.WeaponSlot 3, "MWeapLightning"; Player.WeaponSlot 4, "MWeapBloodscourge"; } }