extends BulletBase class_name BlueCrystalBullet var tracer: EntityBase = null var canTrace: bool = true var speedBoost: float = 0 var splitRate: float = 0 @onready var trail: GPUParticles2D = $%trail func ai(): if is_instance_valid(tracer): var tracker = tracer.getTrackingAnchor() var targetAngle = position.angle_to_point(tracker) trail.rotation = - Vector2.from_angle(rotation).angle_to(Vector2.from_angle(targetAngle)) / (speed / initialSpeed) if canTrace: PresetBulletAI.trace(self , tracker, 0.07) else: trail.rotation = 0 speed += 0.1 * (1 + speedBoost) PresetBulletAI.forward(self , rotation) func destroy(_beacuseMap: bool): var eff = EffectController.create(ComponentManager.getEffect("BlueCrystalExplosion"), global_position) eff.rotation = rotation eff.shot() func succeedToHit(_dmg: float, entity: EntityBase): if entity == tracer: canTrace = false if MathTool.rate(splitRate): for diamond in BulletBase.generate(ComponentManager.getBullet("Diamond2"), entity, position, deg_to_rad(randf_range(0, 360))): if diamond is Diamond2Bullet: diamond.baseDamage = baseDamage * 0.8 diamond.parent = self diamond.penerate += penerate