@Override public void execute() { if (!ctx.objects.select().id(Constants.ropeSwingID).isEmpty()) { mainScript.updateStatus("Swinging rope"); rope = ctx.objects.shuffle().first().poll(); rope.bounds(ropeBounds); ctx.camera.turnTo(rope); if (rope.inViewport()) { rope.interact("Swing-on"); } else if (!rope.inViewport()) { ctx.camera.turnTo(rope); ctx.movement.step(startTile); } } else if (!ctx.objects.select().id(Constants.ropeLadderID).isEmpty()) { mainScript.updateStatus("Climbing up ladder"); rope = ctx.objects.nearest().poll(); rope.bounds(ladderBounds); ctx.camera.turnTo(rope); if (rope.inViewport()) { rope.interact("Climb-up", "Ladder"); } else if (!rope.inViewport()) { ctx.camera.turnTo(rope); ctx.movement.step(rope); } } else { mainScript.log.info("Object not found"); } }
@Override public void repaint(Graphics g) { if (startTile != null && rope != null) { startTile.matrix(ctx).draw(g); rope.draw(g); } }