Code
##tickloc:runsub ticked; ##ticked: $cnt = $actor's counter; $fromhit = $actor's slot1; $tohit = $actor's slot2; $weapon = $actor's slot3; case $cnt do doinit,dodamage,dodamage,dodamage,dodamage,alldone; ##doinit: say 'msg',"[$weapon] casts [$actor] towards [$tohit]!"; say 'msg',"[$tohit] is enveloped in freezing mists!"; multiset $actor to "counter=1,host='$tohit',hosthow='around'"; ##dodamage: $hlth = $tohit's health; take 2 from $hlth; if $hlth < 0 then zeroit; set $tohit's health to $hlth; $t = $target; $target = $tohit; $verb = (chokes,coughs,gags,gasps for breath,shivers,convulses); say 'freeze',"[$tohit] $verb within [$actor]!"; $target = $t; add 1 to $cnt; set $actor's counter to $cnt; if $hlth > 0 then continue else saydead; ##zeroit: $hlth = 0; ##saydead: say 'msg',"[$tohit] is frozen to death."; set $actor's counter to 5; ##alldone: say 'msg',"[$actor] vanishes."; unhost $actor; multiset $actor to "host=0,hosthow='',counter=0,health='$charge',loc='$weapon'"; relook $loc; switch $actor off;