d2c91b513b
Drowned register Zombie's goals and then Drowned.addBehaviourGoals (go to water, trident and melee attacks with okTarget, go to beach, swim up, RandomStrollGoal) with DrownedMoveControl, Drowned.travelInWater and AmphibiousPathNavigation. Skeletons get their bow from finalizeSpawn and pick the bow goal or the AbstractSkeleton$1 melee goal from the held item, as reassessWeaponGoal does. Monster.aiStep adds 2 to noActionTime in bright light (raiders always), which stops RandomStrollGoal; LookAtPlayerGoal supports Mob.class targets and InteractGoal, used by the wandering trader (with vanilla's AvoidEntityGoal order), illagers, ravagers and vexes. Entities below the world take 4 damage a tick instead of vanishing, water travel uses the 0.8F/0.6F/0.3F float constants, and MobWorld carries the level's sea level. The oracle refreshes the player's water state after placing it (it is never ticked, so isInWater kept the previous scenario's value) and keeps its world under the harness build directory, deleting it before halting instead of leaving /tmp/horizon-mob-ai* behind. The probe reports KILLED removals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>