class Lake : AbstractRole { override fun tick() { val ship = Play.instance.ship if ( ship != null) { if (ship.rodState == Ship.CARRYING ) { val cargo = ship.cargo if (cargo is WaterCargo) { val waterCargo = cargo as WaterCargo if ( !waterCargo.isFull ) { val cargoRect = waterCargo.actor.appearance.worldRect() val myRect = actor.appearance.worldRect() if (myRect.contains( cargoRect ) ) { waterCargo.fill() } } } } } } }