mixed on_miss( object actor, object weapon, mapping wc, object target, int speed, int flag ) { int check; if (flag & ATT_NO_COUNTER) return; target->add_endurance(-1); target->add_readiness(-query_readiness_cost()); target->set_stance( ST_LYING ); check = target->skill_check("combat.technique.counter", speed * 5); if( !check ) return ({"counter",(["blunt":0]),"~Targ ~vertfail ~post attempt at throwing ~name."});
void tick() { if (!vict->query_is_living()) destruct(this_object()); switch (type) { case "mana": vict->add_mana(speed); break; case "endurance": vict->add_endurance(speed); break; default: vict->add_hp(speed); } msg_object(vict,"You feel energy returning to your body."); size -= speed; if (speed >= size) speed = size; if (size <= 0) destruct(this_object()); call_out("tick",5); }