extends EntityBase class_name MTY func register(): fields[FieldStore.Entity.MAX_HEALTH] = 400 fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.9 attackCooldownMap[0] = 2000 attackCooldownMap[1] = 750 attackCooldownMap[2] = 450 sprintMultiplier = 5 func spawn(): texture.play("walk") func ai(): PresetEntityAI.follow(self , currentFocusedBoss) for i in 3: tryAttack(i) func attack(type: int): if type == 0: trySprint() elif type == 1: var track = getTrackingAnchor() var bullet = BulletTool.findClosetBulletCanDamage(track, get_tree(), self , 400) if is_instance_valid(bullet): BulletBase.generate(ComponentManager.getBullet("Parrier"), self , track, track.angle_to_point(bullet.position)) elif type == 2: if is_instance_valid(currentFocusedBoss): var track = getTrackingAnchor() if currentFocusedBoss.position.distance_to(track) <= 400: BulletBase.generate(ComponentManager.getBullet("Parrier"), self , track, track.angle_to_point(currentFocusedBoss.position)) return true func sprint(): var track = getTrackingAnchor() var target = BulletTool.findClosetBulletCanDamage(track, get_tree(), self , 300) if is_instance_valid(target): var dir = (target.position - track).rotated(MathTool.randomChoiceFrom([-1, 1]) * deg_to_rad(90)) move(dir.normalized() * sprintMultiplier, true)