rowboat/ferry
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
widelands |
Won't Fix
|
Wishlist
|
Benedikt Straub |
Bug Description
Ships are nice, but they have a restricted set of destinations and are big and slow.
It might add some realism to have the shipyard able to also produce smaller boats capable of crossing short stretches of water (like across a river). The range limit could be hard-coded, set per map, or done by adding a chance of a boating accident per unit of distance traveled. Personally I'd lean toward that last one. Accidents could range from goods falling overboard to losing the entire boat and its contents. This would give an incentive to use land routes unless the water route is significantly shorter, and leave a use-case for adding bridges later.
A starting suggestion for capacity would be to make it half the speed of a carrier on land, but able to move three items at once. This puts it as slightly more efficient than a carrier, slightly less efficient than a carrier + animal, and the odds of a mishap can be adjusted (possibly per map, or even per terrain type if multiple types of water ever get implemented) to keep the practical distance relatively short for balance purposes.
This might require some adjustments to maps for balance purposes, but not as much as one might think since one would need to be able to build something on the far shore anyway for crossing a river to make much of a strategic difference. The only serious consideration would be whether troops could cross the river in boats and attack structures that would otherwise be out of reach, and whether troops on land should get a bonus against those disembarking.
I do recall there being rowboats in Settlers 2. In that case the maps were all carefully designed to only have a few places where they were useful.
Related branches
- Klaus Halfmann: Needs Fixing (testplay)
- kaputtnik (community): Approve (testing)
-
Diff: 14509 lines (+5809/-1922) (has conflicts)231 files modifieddata/campaigns/emp03.wmf/scripting/mission_thread.lua (+1/-1)
data/campaigns/emp04.wmf/scripting/starting_conditions.lua (+1/-1)
data/campaigns/tutorial01_basic_control.wmf/scripting/mission_thread.lua (+1/-2)
data/campaigns/tutorial04_economy.wmf/scripting/mission_thread.lua (+1/-1)
data/maps/Archipelago_Sea.wmf/elemental (+1/-1)
data/maps/Archipelago_Sea.wmf/port_spaces (+1/-0)
data/maps/Calvisson.wmf/elemental (+1/-1)
data/maps/Calvisson.wmf/port_spaces (+1/-0)
data/maps/Fellowships_v2.wmf/elemental (+1/-1)
data/maps/Fellowships_v2.wmf/port_spaces (+1/-0)
data/maps/Finnish_Lakes.wmf/port_spaces (+1/-0)
data/maps/Four_Castles.wmf/elemental (+1/-1)
data/maps/Four_Castles.wmf/port_spaces (+1/-0)
data/maps/Golden_Peninsula.wmf/elemental (+1/-1)
data/maps/Golden_Peninsula.wmf/port_spaces (+1/-0)
data/maps/Ice_wars.wmf/elemental (+1/-1)
data/maps/Ice_wars.wmf/port_spaces (+1/-0)
data/maps/Impact.wmf/elemental (+1/-1)
data/maps/Impact.wmf/port_spaces (+1/-0)
data/maps/Islands_at_War.wmf/elemental (+1/-1)
data/maps/Islands_at_War.wmf/port_spaces (+1/-0)
data/maps/Kings_and_Queens_v2.wmf/elemental (+1/-1)
data/maps/Kings_and_Queens_v2.wmf/port_spaces (+1/-0)
data/maps/Lake_of_Tranquility.wmf/elemental (+1/-1)
data/maps/Lake_of_Tranquility.wmf/port_spaces (+1/-0)
data/maps/Last_Bastion_v2.wmf/elemental (+1/-1)
data/maps/Last_Bastion_v2.wmf/port_spaces (+1/-0)
data/maps/Rendez-Vous.wmf/elemental (+1/-1)
data/maps/Rendez-Vous.wmf/port_spaces (+1/-0)
data/maps/River_Explorers.wmf/elemental (+1/-1)
data/maps/River_Explorers.wmf/port_spaces (+1/-0)
data/maps/Riverlands.wmf/elemental (+1/-1)
data/maps/Riverlands.wmf/port_spaces (+1/-0)
data/maps/Sun_of_Fire.wmf/elemental (+1/-1)
data/maps/Sun_of_Fire.wmf/port_spaces (+1/-0)
data/maps/The_Far_North.wmf/elemental (+1/-1)
data/maps/The_Far_North.wmf/port_spaces (+1/-0)
data/maps/The_Long_Way.wmf/elemental (+1/-1)
data/maps/The_Long_Way.wmf/port_spaces (+1/-0)
data/maps/The_Nile_v2.wmf/elemental (+1/-1)
data/maps/The_Nile_v2.wmf/port_spaces (+1/-0)
data/maps/The_Pass_Through_the_Mountains.wmf/elemental (+1/-1)
data/maps/The_Pass_Through_the_Mountains.wmf/port_spaces (+1/-0)
data/maps/Twin_Lagoons_v2.wmf/elemental (+1/-1)
data/maps/Twin_Lagoons_v2.wmf/port_spaces (+1/-0)
data/maps/Twinkling_Waves.wmf/elemental (+1/-1)
data/maps/Twinkling_Waves.wmf/port_spaces (+1/-0)
data/maps/Volcanic_Winter.wmf/elemental (+1/-1)
data/maps/Volcanic_Winter.wmf/port_spaces (+1/-0)
data/tribes/atlanteans.lua (+10/-2)
data/tribes/barbarians.lua (+7/-1)
data/tribes/buildings/productionsites/atlanteans/ferry_yard/helptexts.lua (+27/-0)
data/tribes/buildings/productionsites/atlanteans/ferry_yard/init.lua (+59/-0)
data/tribes/buildings/productionsites/atlanteans/shipyard/init.lua (+1/-1)
data/tribes/buildings/productionsites/barbarians/ferry_yard/helptexts.lua (+27/-0)
data/tribes/buildings/productionsites/barbarians/ferry_yard/init.lua (+58/-0)
data/tribes/buildings/productionsites/barbarians/shipyard/init.lua (+1/-1)
data/tribes/buildings/productionsites/barbarians/weaving_mill/init.lua (+1/-1)
data/tribes/buildings/productionsites/empire/ferry_yard/helptexts.lua (+27/-0)
data/tribes/buildings/productionsites/empire/ferry_yard/init.lua (+58/-0)
data/tribes/buildings/productionsites/empire/shipyard/init.lua (+1/-1)
data/tribes/buildings/productionsites/frisians/ferry_yard/helptexts.lua (+27/-0)
data/tribes/buildings/productionsites/frisians/ferry_yard/init.lua (+63/-0)
data/tribes/buildings/productionsites/frisians/shipyard/init.lua (+1/-1)
data/tribes/buildings/productionsites/frisians/weaving_mill/init.lua (+1/-1)
data/tribes/buildings/warehouses/atlanteans/port/init.lua (+1/-1)
data/tribes/buildings/warehouses/barbarians/port/init.lua (+1/-1)
data/tribes/buildings/warehouses/empire/port/init.lua (+1/-1)
data/tribes/buildings/warehouses/frisians/port/init.lua (+1/-1)
data/tribes/empire.lua (+7/-1)
data/tribes/frisians.lua (+7/-1)
data/tribes/init.lua (+8/-0)
data/tribes/workers/atlanteans/ferry/helptexts.lua (+4/-0)
data/tribes/workers/atlanteans/ferry/init.lua (+34/-0)
data/tribes/workers/atlanteans/shipwright/init.lua (+7/-1)
data/tribes/workers/barbarians/ferry/helptexts.lua (+4/-0)
data/tribes/workers/barbarians/ferry/init.lua (+34/-0)
data/tribes/workers/barbarians/shipwright/init.lua (+7/-1)
data/tribes/workers/empire/ferry/helptexts.lua (+4/-0)
data/tribes/workers/empire/ferry/init.lua (+34/-0)
data/tribes/workers/empire/shipwright/init.lua (+7/-1)
data/tribes/workers/frisians/ferry/helptexts.lua (+4/-0)
data/tribes/workers/frisians/ferry/init.lua (+34/-0)
data/tribes/workers/frisians/shipwright/init.lua (+7/-1)
src/ai/ai_help_structs.h (+1/-0)
src/ai/defaultai.cc (+33/-24)
src/ai/defaultai_seafaring.cc (+1/-1)
src/economy/CMakeLists.txt (+8/-2)
src/economy/cmd_call_economy_balance.cc (+23/-5)
src/economy/cmd_call_economy_balance.h (+1/-0)
src/economy/economy.cc (+217/-260)
src/economy/economy.h (+39/-48)
src/economy/economy_data_packet.cc (+97/-54)
src/economy/economy_data_packet.h (+4/-1)
src/economy/expedition_bootstrap.cc (+38/-27)
src/economy/expedition_bootstrap.h (+3/-2)
src/economy/ferry_fleet.cc (+502/-0)
src/economy/ferry_fleet.h (+123/-0)
src/economy/flag.cc (+120/-51)
src/economy/flag.h (+24/-9)
src/economy/idleworkersupply.cc (+1/-1)
src/economy/input_queue.cc (+12/-8)
src/economy/portdock.cc (+30/-22)
src/economy/portdock.h (+7/-7)
src/economy/request.cc (+29/-21)
src/economy/road.cc (+39/-237)
src/economy/road.h (+28/-84)
src/economy/roadbase.cc (+228/-0)
src/economy/roadbase.h (+120/-0)
src/economy/routeastar.cc (+5/-5)
src/economy/routeastar.h (+32/-12)
src/economy/router.cc (+3/-1)
src/economy/routing_node.h (+25/-15)
src/economy/ship_fleet.cc (+150/-112)
src/economy/ship_fleet.h (+15/-13)
src/economy/shippingitem.cc (+6/-4)
src/economy/shippingitem.h (+1/-1)
src/economy/test/test_routing.cc (+13/-7)
src/economy/transfer.cc (+16/-16)
src/economy/ware_instance.cc (+8/-7)
src/economy/warehousesupply.h (+4/-3)
src/economy/wares_queue.cc (+8/-7)
src/economy/waterway.cc (+236/-0)
src/economy/waterway.h (+95/-0)
src/editor/ui_menus/main_menu_map_options.cc (+17/-0)
src/editor/ui_menus/main_menu_map_options.h (+2/-0)
src/editor/ui_menus/main_menu_save_map.cc (+5/-0)
src/game_io/game_player_economies_packet.cc (+15/-11)
src/graphic/CMakeLists.txt (+1/-0)
src/graphic/gl/fields_to_draw.cc (+4/-1)
src/graphic/gl/fields_to_draw.h (+3/-1)
src/graphic/gl/road_program.cc (+9/-11)
src/graphic/minimap_renderer.cc (+2/-2)
src/logic/CMakeLists.txt (+1/-0)
src/logic/cookie_priority_queue.h (+29/-22)
src/logic/editor_game_base.cc (+26/-16)
src/logic/editor_game_base.h (+3/-1)
src/logic/field.h (+33/-12)
src/logic/game.cc (+17/-8)
src/logic/game.h (+1/-0)
src/logic/map.cc (+24/-8)
src/logic/map.h (+7/-1)
src/logic/map_objects/CMakeLists.txt (+2/-0)
src/logic/map_objects/checkstep.cc (+55/-0)
src/logic/map_objects/checkstep.h (+18/-0)
src/logic/map_objects/immovable.cc (+12/-9)
src/logic/map_objects/immovable.h (+7/-6)
src/logic/map_objects/map_object.cc (+10/-2)
src/logic/map_objects/map_object.h (+11/-5)
src/logic/map_objects/tribes/building.cc (+25/-1)
src/logic/map_objects/tribes/building.h (+6/-0)
src/logic/map_objects/tribes/carrier.cc (+50/-35)
src/logic/map_objects/tribes/carrier.h (+4/-1)
src/logic/map_objects/tribes/ferry.cc (+322/-0)
src/logic/map_objects/tribes/ferry.h (+109/-0)
src/logic/map_objects/tribes/militarysite.cc (+4/-4)
src/logic/map_objects/tribes/militarysite.h (+1/-1)
src/logic/map_objects/tribes/partially_finished_building.cc (+10/-7)
src/logic/map_objects/tribes/partially_finished_building.h (+1/-1)
src/logic/map_objects/tribes/production_program.cc (+8/-17)
src/logic/map_objects/tribes/productionsite.cc (+18/-9)
src/logic/map_objects/tribes/productionsite.h (+1/-1)
src/logic/map_objects/tribes/road_textures.cc (+8/-0)
src/logic/map_objects/tribes/road_textures.h (+3/-0)
src/logic/map_objects/tribes/ship.cc (+58/-32)
src/logic/map_objects/tribes/ship.h (+16/-12)
src/logic/map_objects/tribes/trainingsite.cc (+3/-3)
src/logic/map_objects/tribes/trainingsite.h (+1/-1)
src/logic/map_objects/tribes/tribe_descr.cc (+14/-0)
src/logic/map_objects/tribes/tribe_descr.h (+8/-3)
src/logic/map_objects/tribes/tribes.cc (+10/-0)
src/logic/map_objects/tribes/tribes.h (+4/-0)
src/logic/map_objects/tribes/warehouse.cc (+82/-47)
src/logic/map_objects/tribes/warehouse.h (+1/-1)
src/logic/map_objects/tribes/worker.cc (+87/-45)
src/logic/map_objects/tribes/worker.h (+10/-6)
src/logic/map_objects/tribes/worker_program.cc (+25/-0)
src/logic/map_objects/tribes/worker_program.h (+1/-0)
src/logic/mapastar.h (+5/-3)
src/logic/pathfield.h (+5/-4)
src/logic/player.cc (+92/-27)
src/logic/player.h (+23/-10)
src/logic/playercommand.cc (+99/-23)
src/logic/playercommand.h (+29/-4)
src/logic/queue_cmd_factory.cc (+2/-0)
src/logic/queue_cmd_ids.h (+2/-1)
src/logic/roadtype.h (+6/-15)
src/map_io/CMakeLists.txt (+4/-0)
src/map_io/map_buildingdata_packet.cc (+4/-2)
src/map_io/map_flag_packet.cc (+31/-9)
src/map_io/map_object_loader.cc (+27/-0)
src/map_io/map_object_loader.h (+6/-0)
src/map_io/map_object_packet.cc (+8/-3)
src/map_io/map_object_saver.cc (+12/-4)
src/map_io/map_object_saver.h (+6/-1)
src/map_io/map_players_view_packet.cc (+14/-19)
src/map_io/map_port_spaces_packet.cc (+4/-1)
src/map_io/map_roaddata_packet.cc (+10/-12)
src/map_io/map_saver.cc (+18/-0)
src/map_io/map_waterway_packet.cc (+96/-0)
src/map_io/map_waterway_packet.h (+27/-0)
src/map_io/map_waterwaydata_packet.cc (+198/-0)
src/map_io/map_waterwaydata_packet.h (+31/-0)
src/map_io/widelands_map_loader.cc (+16/-0)
src/scripting/lua_bases.cc (+6/-2)
src/scripting/lua_map.cc (+174/-148)
src/scripting/lua_map.h (+13/-9)
src/scripting/lua_root.cc (+24/-0)
src/scripting/lua_root.h (+1/-0)
src/ui_basic/spinbox.cc (+3/-0)
src/ui_basic/spinbox.h (+1/-1)
src/ui_fsmenu/internet_lobby.cc (+6/-6)
src/ui_fsmenu/mapselect.cc (+2/-1)
src/wui/building_statistics_menu.cc (+8/-5)
src/wui/building_statistics_menu.h (+2/-1)
src/wui/economy_options_window.cc (+48/-24)
src/wui/economy_options_window.h (+9/-4)
src/wui/fieldaction.cc (+166/-48)
src/wui/interactive_base.cc (+260/-20)
src/wui/interactive_base.h (+31/-16)
src/wui/interactive_player.cc (+60/-10)
src/wui/interactive_spectator.cc (+2/-0)
src/wui/map_tags.cc (+2/-0)
src/wui/seafaring_statistics_menu.cc (+1/-1)
src/wui/stock_menu.cc (+8/-5)
test/maps/lua_testsuite.wmf/scripting/flag.lua (+2/-1)
test/maps/lua_testsuite.wmf/scripting/geconomy.lua (+14/-14)
test/maps/lua_testsuite.wmf/scripting/tribes_descriptions.lua (+6/-6)
test/maps/ship_transportation.wmf/scripting/test_rip_portdock_with_worker_and_ware_in_transit.lua (+4/-2)
test/maps/ship_transportation.wmf/scripting/test_rip_ports_with_ware_in_transit.lua (+4/-2)
test/maps/ship_transportation.wmf/scripting/test_rip_ports_with_worker_in_transit.lua (+4/-2)
tags: | added: economy world |
Yes, this has been discussed some time ago, see https:/ /wl.widelands. org/forum/ topic/1648/ (Rivers and Bridges).
Implementing this is maybe a task for build 20 :-)