# ba_meta require api 7 import ba from bastd.actor.spaz import Spaz handlemessage_old = Spaz.handlemessage def handlemessage_new(spaz: Spaz, msg: any) -> None: handlemessage_old(spaz, msg) if isinstance(msg, ba.HitMessage) and msg.hit_type == 'punch': damage = int(0.22 * spaz.node.damage) if damage > 999: for p in ba.getactivity().players: if p.actor.node: p.actor.node.is_area_of_interest = False camera = ba.newnode('spaz') camera.area_of_interest_radius = 0 camera.style = 'agent' camera.handlemessage('stand', msg.pos[0], msg.pos[1], msg.pos[2], 0) if not ba.getactivity().globalsnode.slow_motion: def switch_motion() -> None: ba.getactivity().globalsnode.slow_motion ^= True switch_motion() ba.timer(2.0, switch_motion) def reset() -> None: for p in ba.getactivity().players: if p.actor.node: p.actor.node.is_area_of_interest = True camera.delete() ba.timer(2.0, reset) # ba_meta export plugin class Enable(ba.Plugin): def on_app_running(self) -> None: Spaz.handlemessage = handlemessage_new