extends EntityBase class_name Kernyr var attack1Angle = 0 var attack0State = 0 func register(): fields[FieldStore.Entity.MAX_HEALTH] = 2000 fields[FieldStore.Entity.OFFSET_SHOOT] = 20 attackCooldownMap[0] = 3000 attackCooldownMap[1] = 100 attackCooldownMap[2] = 1000 func ai(): tryAttack(0) tryAttack(1) tryAttack(2) # texture.position = Vector2.from_angle(deg_to_rad(timeLived() / 1000.0 * 360)) * 200 func attack(type: int): if type == 0: var states = [ Vector2(-1, 1), Vector2(1, 1), Vector2(1, -1), Vector2(-1, -1) ] await sprintTo(currentFocusedBoss.position + 400 * states[attack0State % len(states)], 0.1) attack0State += 1 BulletBase.generate(ComponentManager.getBullet("HeavyCrystal"), self , findWeaponAnchor("normal"), position.angle_to_point(currentFocusedBoss.position)) elif type == 1: BulletBase.generate( ComponentManager.getBullet("Yangyi"), self , position, attack1Angle ) attack1Angle += deg_to_rad(360.0 / 20) elif type == 2: for i in randi_range(7, 16): BulletBase.generate(ComponentManager.getBullet("Diamond"), self , position + MathTool.sampleInCircle(20), rotation + deg_to_rad(randf_range(-90, 90)))