From ad2a65a78b6a6bccc6b82df9bcf65439420e559e Mon Sep 17 00:00:00 2001 From: Louis Moureaux Date: Sun, 11 Dec 2022 19:46:59 +0100 Subject: [PATCH 1/3] Fix generating resources in the tutorial See #1570. --- server/generator/mapgen.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/server/generator/mapgen.cpp b/server/generator/mapgen.cpp index e3b480aef6..82ef55a28d 100644 --- a/server/generator/mapgen.cpp +++ b/server/generator/mapgen.cpp @@ -1317,6 +1317,7 @@ bool map_fractal_generate(bool autosize, struct unit_type *initial_unit) Also, don't delete (the handcrafted!) tiny islands in a scenario */ if (wld.map.server.generator != MAPGEN_SCENARIO) { wld.map.server.have_huts = false; + wld.map.server.have_resources = false; river_types_init(); generator_init_topology(autosize); From 4a2d7abbaf6d83d1685a19bee43d917089e53933 Mon Sep 17 00:00:00 2001 From: Louis Moureaux Date: Sun, 11 Dec 2022 19:51:21 +0100 Subject: [PATCH 2/3] Remove diplomats from the tutorial start units The AI uses them to bribe cities, it's not fun. Give a second worker instead (two is not enough!). See #1570. --- data/scenarios/tutorial.sav | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/scenarios/tutorial.sav b/data/scenarios/tutorial.sav index 7caf94bd53..e78a03c0de 100644 --- a/data/scenarios/tutorial.sav +++ b/data/scenarios/tutorial.sav @@ -102,10 +102,10 @@ function tutorial_turn_callback(turn, year) _("Welcome to Freeciv21. You are the vaunted leader of a civilization. Your task is to take your nation down the path of power and glory! If this is your very first time playing Freeciv21, it would be good to take some time to read the in-game help. There is a lot of good content in there to help get you started, especially the Help -> Strategy and Tactics section. When ready, click the \"Turn Done\" button on the bottom-right and we will walk you through some more introduction items before you really get going.")) elseif turn == 2 then notify.event(nil, nil, E.SCRIPT, -_("Turn 2: You start this tutorial scenario with five units: Explorer, Settlers, Diplomat, Workers, and Warriors. You should see each of them arrayed on the map. Some units may be stacked on top of each other. You will see a yellow plus (+) sign if this is the case. Clicking on a unit will cause it to be selected and information about the unit and the terrain it is on will show up in a controls bar at the bottom of the game window. To move a unit you can use the number pad keys if you have a full size keyboard or you can left-click and drag units with your mouse. If you want to move some units now, move any of them except the Settlers. The Settlers is special as we will discuss shortly. You might consider placing two units on top of each other in a stack. There is something important there to learn. When ready, click the \"Turn Done\" button again so we can talk more about your initial units and get you started.")) +_("Turn 2: You start this tutorial scenario with five units: Explorer, Settlers, two Workers, and Warriors. You should see each of them arrayed on the map. Some units may be stacked on top of each other. You will see a yellow plus (+) sign if this is the case. Clicking on a unit will cause it to be selected and information about the unit and the terrain it is on will show up in a controls bar at the bottom of the game window. To move a unit you can use the number pad keys if you have a full size keyboard or you can left-click and drag units with your mouse. If you want to move some units now, move any of them except the Settlers. The Settlers is special as we will discuss shortly. You might consider placing two units on top of each other in a stack. There is something important there to learn. When ready, click the \"Turn Done\" button again so we can talk more about your initial units and get you started.")) elseif turn == 3 then notify.event(nil, nil, E.SCRIPT, -_("Turn 3: Explorers are used to explore the map and open it up from the \"Unknown\". With more than one move point each turn, they do the job really well. Settlers are used to build cities, which is a major component of Freeciv21. Diplomats are used to establish embassies with other nations to aid in diplomacy. Diplomacy is a more advanced feature of the game and will not be discussed in detail in this tutorial, but you can find out more in the Help -> Diplomacy topic. Workers are used to improve the land with tile improvements such as irrigation. Refer to the Help -> Terrain topic. Lastly, Warriors are a really cheap early military unit that can be used for basic defense of your cities as well as attacking your enemies. Refer to the Help -> Units topic. First, start by moving your Settlers to a grassland or plains tile and move your Explorer around the map to open it up some. Pro tip: Middle-click on a tile to get a pop up window providing more information. When ready, click the \"Turn Done\" button again so we can talk about the various user interface elements of the game.")) +_("Turn 3: Explorers are used to explore the map and open it up from the \"Unknown\". With more than one move point each turn, they do the job really well. Settlers are used to build cities, which is a major component of Freeciv21. Workers are used to improve the land with tile improvements such as irrigation. Refer to the Help -> Terrain topic. Lastly, Warriors are a really cheap early military unit that can be used for basic defense of your cities as well as attacking your enemies. Refer to the Help -> Units topic. First, start by moving your Settlers to a grassland or plains tile and move your Explorer around the map to open it up some. Pro tip: Middle-click on a tile to get a pop up window providing more information. When ready, click the \"Turn Done\" button again so we can talk about the various user interface elements of the game.")) elseif turn == 4 then notify.event(nil, nil, E.SCRIPT, _("Turn 4: Freeciv21 has a collection of views to help you as you play. The Map View (F1) is where you see the map and all your beautiful cities and units arrayed. The Units Widget (F2) shows you all the units you have and also which are being constructed. The Nations View (F3) shows you information about your enemies. This is where diplomacy comes in. The Cities View (F4) gives details on your cities. More about this later. The Economy View (F5) gives information about all the buildings (also known as city improvements) in your civilization and how much it costs in gold per turn in upkeep. Lastly, your civilization grows and operates with gold, science (bulbs) and luxury goods. Clicking the button on the top bar showing these icons brings up a dialog allowing you to change the allocation of these important resources. When ready, click the \"Turn Done\" button again so we can talk more about user interface elements.")) @@ -117,7 +117,7 @@ _("Turn 5: You may have noticed a widget on the main map view that shows these m _("Turn 6: You may have noticed another widget on the main map wiew that shows other information. This is called the chatline/server messages window. As varying events occur during the game, messages may appear in this window. You may resize it by dragging any of the edges. You may minimize it and also move it by left-clicking the plus (+) symbol and draging it to another spot. Refer to the Help -> Chatline topic.")) elseif turn == 20 then notify.event(nil, nil, E.SCRIPT, -_("Turn 20: At this point you have probably used your Explorer to find out a lot more about the map around you. You may have even found a neighbor who initiated an initial diplomatic agreement of \"Cease-fire\". The Artificial Intelligence in Freeciv21 will go straght to cease-fire at contact. If this is the case, now would be a good time for you to send your Diplomat over and have him walk into the other nation's nearest city. The game will bring up a menu of choices and you will pick establish embassy. If you go to the Nations View (F3) you will now see a lot more information about that nation. Things such as where his capital is, what he is researching and what technologies he already knows compared to what you know.")) +_("Turn 20: At this point you have probably used your Explorer to find out a lot more about the map around you. You may have even found a neighbor who initiated an initial diplomatic agreement of \"Cease-fire\". The Artificial Intelligence in Freeciv21 will go straght to cease-fire at contact.")) elseif turn == 40 then notify.event(nil, nil, E.SCRIPT, _("Turn 40: At this point you probably have a few cities to work with. Hopefully you have explored all of the views and other screens of information available to you. The map should be opened up even more with your Explorer so you can see all the prime spots to place future cities. One user interface item we have not talked about yet is the minimap. If you do not see a small map on the lower right of your screen you can activate it from the View Menu and then select Minimap. The minimap can be used to quickly get around the main map by right-clicking in the window with your mouse and the main map will quickly scroll to that spot. Something similar can be used for units. When a unit is active it will show in a controls bar at the bottom of the screen, but you may not see it in the map. Left-click on the unit image in the controls bar and the main map will quickly scroll to the unit and center him in the screen. Do not stop playing! More tips to come.")) @@ -383,7 +383,7 @@ $ set={"name","value","gamestart" "aifill",2,2 "dispersion",4,4 -"startunits","cwsxd","cwsxd" +"startunits","cwwxd","cwwxd" "mapsize","FULLSIZE","FULLSIZE" "revolentype","RANDOM","RANDOM" "topology","WRAPX|WRAPY|ISO|HEX","WRAPX|WRAPY|ISO|HEX" From e82af62577bab9463648e33ea4a1c43ffba2751c Mon Sep 17 00:00:00 2001 From: Louis Moureaux Date: Sun, 11 Dec 2022 19:52:39 +0100 Subject: [PATCH 3/3] Make the tutorial faster * Smaller map * Landmass 50 (no need for ships) * More AIs (=> more rich diplomacy, earlier war) * Lots of specials * Foodbox, sciencebox, shieldbox at 70% (faster game) * More standard topology so we use amplio2 --- data/scenarios/tutorial.sav | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/data/scenarios/tutorial.sav b/data/scenarios/tutorial.sav index e78a03c0de..c200dd2c09 100644 --- a/data/scenarios/tutorial.sav +++ b/data/scenarios/tutorial.sav @@ -381,17 +381,23 @@ $ [settings] set={"name","value","gamestart" -"aifill",2,2 +"aifill",4,4 "dispersion",4,4 "startunits","cwwxd","cwwxd" "mapsize","FULLSIZE","FULLSIZE" +"size",2,2 +"landmass",50,50 +"specials",300,300 +"foodbox",70,70 +"shieldbox",70,70 +"sciencebox",70,70 "revolentype","RANDOM","RANDOM" -"topology","WRAPX|WRAPY|ISO|HEX","WRAPX|WRAPY|ISO|HEX" +"topology","WRAPX|WRAPY|ISO","WRAPX|WRAPY|ISO" "victories","","" "start",1,1 "startpos",4,4 } -set_count=6 +set_count=15 gamestart_valid=TRUE [ruledata]