extends BulletBase class_name MagicMissleBullet var powerScale: int = 3 var speedV2: Vector2 = Vector2.ZERO var accelerating: bool = true var roundBullets: Array[MagicMissleBullet] func ai(): if accelerating: rotation = lerp_angle(rotation, position.angle_to_point(get_global_mouse_position()), 0.1) speedV2 += (get_global_mouse_position() - position).normalized() * 1 elif speed < 1: tryDestroy() speedV2 *= 0.995 speed = speedV2.length() PresetBulletAI.forward(self , speedV2.angle()) func succeedToHit(_dmg: float, entity: EntityBase): if powerScale > 0 && accelerating && roundBullets.count(self ) > 0: for i in randi_range(1, powerScale): for bullet in BulletBase.generate( ComponentManager.getBullet("MagicMissle"), launcher, position, entity.position.angle_to_point(position) + PI + randf_range(-1, 1) * deg_to_rad(60) ): if bullet is MagicMissleBullet: bullet.position += Vector2.from_angle(bullet.rotation) * 100 bullet.speedV2 += Vector2.from_angle(bullet.rotation) * 30 bullet.roundBullets = roundBullets bullet.powerScale = powerScale - 1 roundBullets.append(bullet) powerScale = 0