Êþº¾E\  Nnet/minecraft/world/entity/boss/enderdragon/phases/AbstractDragonPhaseInstance<(Lnet/minecraft/world/entity/boss/enderdragon/EnderDragon;)V   Jnet/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase attackTarget)Lnet/minecraft/world/entity/LivingEntity;  LOGGERLorg/slf4j/Logger;8Skipping player strafe phase because no player was found  org/slf4j/Loggerwarn(Ljava/lang/String;)V  dragon9Lnet/minecraft/world/entity/boss/enderdragon/EnderDragon;  !"7net/minecraft/world/entity/boss/enderdragon/EnderDragongetPhaseManagerN()Lnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhaseManager; $%& '(Cnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhaseHOLDING_PATTERNELnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhase; *+, -.Jnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhaseManagersetPhaseH(Lnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhase;)V 0 12 currentPath+Lnet/minecraft/world/level/pathfinder/Path; 456 78)net/minecraft/world/level/pathfinder/PathisDone()Z :;< =>'net/minecraft/world/entity/LivingEntitygetX()D :@ A>getZ ; @ EFG HIjava/lang/Mathsqrt(D)D?Ù™™ @T@$ EQ RSmin(DD)DUnet/minecraft/world/phys/Vec3 :W X>getY TZ [(DDD)V ] ^_targetLocationLnet/minecraft/world/phys/Vec3; W Tb cd distanceToSqr(DDD)D@Y@Õù j kl findNewTarget()V@P :p cq&(Lnet/minecraft/world/entity/Entity;)D@° u vwhasLineOfSight&(Lnet/minecraft/world/entity/Entity;)Z y z{fireballChargeI T} ~ normalize!()Lnet/minecraft/world/phys/Vec3; � ‚ƒgetYRot()F…net/minecraft/util/Mth<Žú5 „ˆ ‰Šsin(D)F „Œ �Šcos T� �‘dot"(Lnet/minecraft/world/phys/Vec3;)D E“ ”Iacos@L¥Ü?A š ›œ getViewVector"(F)Lnet/minecraft/world/phys/Vec3; ž Ÿ head=Lnet/minecraft/world/entity/boss/enderdragon/EnderDragonPart; ¢;£;net/minecraft/world/entity/boss/enderdragon/EnderDragonPart T¥ ¦§xD?à ¢« XI ¢@ T® ¯§z :« ² ³8isSilentµ*net/minecraft/world/level/block/LevelEvent · ¸¹ blockPosition()Lnet/minecraft/core/BlockPos; »¼½ ¾¿&net/minecraft/server/level/ServerLevel levelEventE(Lnet/minecraft/world/entity/Entity;ILnet/minecraft/core/BlockPos;I)VÁFnet/minecraft/world/entity/projectile/hurtingprojectile/DragonFireball Àà Äl(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/phys/Vec3;)V ÀÆ ÇÈsnapTo(DDDFF)V »Ê ËwaddFreshEntity 4Í Îladvance Ð ÑÒfindClosestNode()I Ô ÕÖ getRandom#()Lnet/minecraft/util/RandomSource; ØÙÚ ÛÜnet/minecraft/util/RandomSourcenextInt(I)I Þ ßàholdingPatternClockwiseZ â ãägetDragonFight<()Lnet/minecraft/world/level/dimension/end/EnderDragonFight; æçè éÒ8net/minecraft/world/level/dimension/end/EnderDragonFight aliveCrystals ë ìífindPathZ(IILnet/minecraft/world/level/pathfinder/Node;)Lnet/minecraft/world/level/pathfinder/Path; ï ðlnavigateToNextPathNode 4ò ó¹getNextNodePos õö÷ =Ònet/minecraft/core/Vec3i õù AÒ õû XÒ Øý þƒ nextFloatA   Ñ(DDD)I : Ò getBlockX : Ò getBlockZ „   floor(D)I)net/minecraft/world/level/pathfinder/Node   (III)V $ ( STRAFE_PLAYER  com/mojang/logging/LogUtils getLogger()Lorg/slf4j/Logger;FIREBALL_CHARGE_AMOUNT ConstantValueRuntimeVisibleTypeAnnotations#Lorg/jspecify/annotations/Nullable;CodeLineNumberTableLocalVariableTablethisLLnet/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase;MethodParameters doServerTick+(Lnet/minecraft/server/level/ServerLevel;)VxTargetzTarget xTargetDist zTargetDistdist heightOffsetd viewVector startingX startingY startingZxddyddzdd directionentityHLnet/minecraft/world/entity/projectile/hurtingprojectile/DragonFireball;aimdirF angleDegslevel(Lnet/minecraft/server/level/ServerLevel; distToTargetmaxDist StackMapTablecurrentNodeIndextargetNodeIndexcurrentLnet/minecraft/core/Vec3i;yTargetbegin setTarget,(Lnet/minecraft/world/entity/LivingEntity;)Vtarget finalXTarget finalZTargetxdzdsdho finalYTarget finalNode+Lnet/minecraft/world/level/pathfinder/Node;getFlyTargetLocationgetPhaseG()Lnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhase; Signature•()Lnet/minecraft/world/entity/boss/enderdragon/phases/EnderDragonPhase; SourceFileDragonStrafePlayerPhase.java!{z{12^_ ßà  >*+·±! "#$%&' Å  *´Ç² ¹*´¶²#¶)±*´/Æq*´/¶3™g*´¶9I*´¶?9(*´¶Bg9*´¶Cg9kkc¸D9 J LocgN¸P9 *»TY(*´¶V c·Yµ\*´\ǧ*´\*´¶B*´¶`*´¶C¶aI(e˜› (g—ž*¶im9*´*´¶or˜œª*´*´¶t™ˆ*Y´x`µx»TY*´¶9*´¶Bg*´¶?*´¶Cg·Y¶|:»TY*´¶€†j�¸‡�*´¶€†j�¸‹v�·Y¶|:¶Ž�8�¸’•k�8  —b8 *´x¡þ •›÷ ˜–œï9 *´ ¶™: *´´�¶¡ ´¤kg9 *´´�¨¶ª¨c9*´´�¶¬ ´­kg9*´¶9 g9*´¨¶°g9*´¶?g9»TY·Y:*´¶±š+ù*´¶¶¶º»ÀY+*´¶|·Â:  ¶Å+¶ÉW*µx*´/Æ*´/¶3š *´/¶Ì§ÿï*´¶²#¶)§(*´xž!*Y´xdµx§*´xž *Y´xdµx±!Ê2!"#$'0(8)A+L,X-h.|0”3¼4Ì5Ð8Õ9ç:õ;ÿ<*=V>`?m@tB‹CŽD˜E¬F¿GÓIßJîKúL NO#Q6RCSJTOVVW`Xj\w^z_�`Žd•eŸh"ò8\(§AS)§LH*§X<+§h,,§ |-§ Žé.§ ˜ß/_ ¬Ë0§ ¿¸1§Ó¤2§ߘ3§î‰4§ú}5§ n6_6A78*M9_V!:_`�;m <;  #$ =>¼ä?§ÕË@§AK ût [üÿR»TTTTü2Àÿ »%=kl `¡*´/Æ *´/¶3™Ž*´¶Ï<=*´¶Ó¹×š**´Ýš§µÝ„*´Ý™ „§„ÿ*´¶áÆ*´¶á¶å�„ô~=„ § p=œ„ **´¶êµ/*´/Æ *´/¶Ì*¶î±!Vklmo,p<q?tFuLwOzf|i}n~t�y‚}ƒ€‡Ž‰•ŠœŽ �" ƒB{�C{¡#$A+ ÿ&ÿ  ùðl ö a*´/Æ\*´/¶3šR*´/¶ñL*´/¶Ì+¶ô‡I+¶ø‡9+¶ú†*´¶Ó¹üÿjb�9+¶ú‡˜›ÿà*»TY(·Yµ\±!& ’“• –&˜-›EœPž` "4GDE&:(§EF§-3)§a#$Aÿ-õÿ2Gl O*µx*µ\*µ/*µ±!¤¥ ¦§¨" #$HI ¯º*+µ*´¶Ï=*´*´¶9*´¶V*´¶?¶>*´¶6*´¶6‡*´¶Bg9‡*´¶Cg9kkc¸D9 J LocgN¸P9 *´¶V c¸ 6» Y·:**´¶êµ/*´/Æ*´/¶Ì*¶î±!B«­ ®*°3±<³I´Vµf¶z·‰¹˜»§½®¾µÀ¹Â"z º#$ºJ  ­B{*�C{3‡K{<~L{IqM§VdN§fTO§ z@P§ ‰1Q{˜"RSAÿ¹ : %JT /*´\°!Æ" #$UV .²°!Ë" #$WXYl ¸³ ±!Z[