[ ThrowAtSub; if (ObjectIsUntouchable(noun)) return; if (second>1) { action=##ThrownAt; if (RunRoutines(second,before)~=0) { action=##ThrowAt; rtrue; } action=##ThrowAt; } if (noun has worn) { L__M(##Drop,3,noun); ; if (noun has worn && noun in player) rtrue; } if (second hasnt animate) return L__M(##ThrowAt,1); if (RunLife(second,##ThrowAt)~=0) rfalse; L__M(##ThrowAt,2,noun); ];