diff --git a/client/climisc.cpp b/client/climisc.cpp index 40f0d3136d..8e8f2daa28 100644 --- a/client/climisc.cpp +++ b/client/climisc.cpp @@ -913,7 +913,7 @@ void handle_event(const char *featured_text, struct tile *ptile, * Server operator messages are shown always. */ if (nullptr == client.conn.playing || is_human(client.conn.playing) || event == E_MESSAGE_WALL) { - popup_notify_goto_dialog(_("Popup Request"), plain_text, tags, ptile); + popup_notify_goto_dialog(_("Message"), plain_text, tags, ptile); shown = true; } else { /* Force to chatline so it will be visible somewhere at least. diff --git a/data/scenarios/tutorial.sav b/data/scenarios/tutorial.sav index a99acd9e22..7caf94bd53 100644 --- a/data/scenarios/tutorial.sav +++ b/data/scenarios/tutorial.sav @@ -99,34 +99,34 @@ end function tutorial_turn_callback(turn, year) if turn == 1 then notify.event(nil, nil, E.SCRIPT, -_("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.")) +_("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, Settler, Diplomat, Worker, and Warrior. 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, move any of them except the Settler. The Settler 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, 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.")) 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 Help -> Diplomacy. Workers are used to improve the land with Tile Improvements such as irrigation. Refer to Help -> Terrain. 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 Help -> Units. First start by moving your Settler 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. 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.")) 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 Cities View (F4) gives details on your Cities. More about this later. The Nations View (F3) shows you information about your enemies. This is where Diplomacy comes in. 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.")) +_("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.")) elseif turn == 5 then notify.event(nil, nil, E.SCRIPT, -_("Turn 5: You may have noticed a widget on the main Map View that shows these messages. This is called the Messages window. If you do not see the Messages window, then click the button for it on the Top Bar. As varying events occur during the game, messages will appear in this window. These messages are stored there as well as other events such as the building of a City, City growth or the construction of something inside of a City. You may resize it by dragging the left side out and the bottom down.")) +_("Turn 5: You may have noticed a widget on the main map view that shows these messages. This is called the messages window. If you do not see the messages window, then click the button for it on the top bar. As varying events occur during the game, messages will appear in this window. These messages are stored there as well as other events such as the building of a city, city growth or the construction of something inside of a city. You may resize it by dragging the left side out and the bottom down.")) elseif turn == 6 then notify.event(nil, nil, E.SCRIPT, -_("Turn 6: You may have noticed another widget on the main Map View 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 Help -> Chatline.")) +_("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. 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.")) 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. Don't stop playing! More tips to come.")) +_("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.")) elseif turn == 60 then notify.event(nil, nil, E.SCRIPT, -_("Turn 60: Congratulations. At this point in this scenario you should have seen just about everything. You should now effectively understand all the major game concepts. Freeciv21 is a game of managing scarce resources; building and managing Cities; learning new Technologies; keeping your Citizens Happy and Content; governing with more and ever stronger forms of government; keeping your Cities safe from invaders; and eventually conquering other nations. In most AI based games [a human player against many computer run players], the goal is to conquer all of your enemy Cities and rule the entire World. Good Luck. There is one more message at turn 100.")) +_("Turn 60: Congratulations. At this point in this scenario you should have seen just about everything. You should now effectively understand all the major game concepts. Freeciv21 is a game of managing scarce resources; building and managing cities; learning new technologies; keeping your citizens happy and content; governing with more and ever stronger forms of government; keeping your cities safe from invaders; and eventually conquering other nations. In most AI based games (a human player against many computer run players), the goal is to conquer all of your enemy cities and rule the entire world. Good luck. There is one more message at turn 100.")) elseif turn == 100 then notify.event(nil, nil, E.SCRIPT, -_("Turn 100: One hundred turns! This should be the last turtorial message. We've discussed 5 Cities worth of growth, all of the user interface elements. There have been notes about military Units, veterancy, as well as a bit of Diplomacy. Lastly you should have seen messages for City sizes 1, 2, 3, 5, 8, 13, and 16. Hopefully, you were also able to build a waterborne Unit such as a Trireme to see the message about that. We hope you enjoyed the tutorial and will come back for many more games of Freeciv21.")) +_("Turn 100: One hundred turns! This should be the last turtorial message. We have discussed 5 cities worth of growth and all of the user interface elements. There have been notes about military units, veterancy, as well as a bit of diplomacy. Lastly you should have seen messages for city sizes 1, 2, 3, 5, 8, 13, and 16. Hopefully, you were also able to build a waterborne unit such as a Trireme to see the message about that. We hope you enjoyed the tutorial and will come back for many more games of Freeciv21.")) end end @@ -146,9 +146,9 @@ function tutorial_check_stacks(tile, player) end -- Do not complain about 2 units, as that is a common defensive -- formation: civilian plus bodyguard - if n_our_units >= 3 then + if n_our_units >= 2 then notify.event(player, tile, E.SCRIPT, -_("Stack Kill: Outside of a City, if a 'stack' of Units on a single Tile is attacked, the strongest Unit defends; and if that Unit is defeated, ALL of the Units on the Tile are killed (ouch!). Therefore, it's often a good idea to spread Units out, avoiding large 'stacks' of Units like this, particularly on land.")) +_("Stack kill: Outside of a city, if a \"stack\" of units on a single tile is attacked, the strongest unit defends. If that unit is defeated, ALL of the units on the tile are killed (ouch!). Therefore, it is often a good idea to spread units out, avoiding large \"stacks\" of units like this, particularly on land.")) vuln_stack_warning = true end end @@ -163,7 +163,7 @@ function tutorial_unit_moved_callback(unit, src_tile, dst_tile) and (has_tile_terrain_name(dst_tile, 'Grassland') or has_tile_terrain_name(dst_tile, 'Plains')) then notify.event(unit.owner, dst_tile, E.SCRIPT, -_("Settler finds Grassland or Plains: This looks like a good place to build a City. The next time this Unit gets a chance to move, press (b) to build a City. In general you want to build Cities on open ground near water. Food is the most important resource for any City's growth. Grassland and Plains provide plenty of food. Other good places for a City is on or adjacent to a source of fresh water such as a River or Lake. You will be able to construct a cheap aqueduct that way to help grow your City larger than size 8 before researching Construction.")) +_("Settlers find grassland or plains: This looks like a good place to build a city. The next time this unit gets a chance to move, press (b) to build a city. In general you want to build cities on open ground near water. Food is the most important resource for any city's growth. Grassland and plains tiles provide plenty of food. Other good places for a city is on or adjacent to a source of fresh water such as a river or lake. You will be able to construct a cheap Aqueduct that way to help grow your city larger than size 8 before researching Construction.")) end end end @@ -176,7 +176,7 @@ function tutorial_first_city_pulse() citypulses = citypulses + 1 else notify.event(city_builder, city_tile, E.SCRIPT, -_("First City: Now you have built your first City. The City Dialog window should have opened automatically; if not click on the City to open it. Cities are a fundamental concept in Freeciv21, so you should familiarize yourself with them by playing around in the window. See the Help -> Cities for more information. You probably want to build a military Unit for defense first and then a Settler, so as to expand your Civilization further. Click on the Production tab. You should notice a Warrior Unit is already started. That is a good early defender. Now click the plus (+) icon to select a Settler Unit from the list of possible options. When you are done, close the City Dialog. If all goes well, the City should display the Warrior Production on the Map View. Note: Settlers cost 2 population to complete. Keep an eye on the City's growth rate. Pro Tip: Now that you have built a City, you need to figure out what Technology to learn first. Press F6 to bring up the Research View [or click on the button on the Top Bar]. The Technology tree is an extrememly important aspect of a Freeciv21 game. Have a look at Help -> Technology for more information.")) +_("First city: Now you have built your first city. The city dialog window should have opened automatically. If not click on the city to open it. Cities are a fundamental concept in Freeciv21, so you should familiarize yourself with them by playing around in the dialog. See the the Help -> Cities topic for more information. You probably want to build a military unit for defense first and then a Settlers, so as to expand your civilization further. Click on the production tab. You should notice a Warriors unit is already started. That is a good early defender. Now click the plus (+) icon to select a Settlers unit from the list of possible options. When you are done, close the city dialog. If all goes well, the city should display the Warriors production on the map view in the city bar. Note: Settlers cost 2 population to complete. Keep an eye on the city's growth rate. Pro Tip: Now that you have built a city, you need to figure out what technology to learn first. Press F6 to bring up the Research View (or click on the button on the top bar). The technology tree is an extrememly important aspect of a Freeciv21 game. Have a look at the Help -> Technology topic for more information.")) signal.remove('pulse', 'tutorial_first_city_pulse') end end @@ -186,7 +186,7 @@ function tutorial_second_city_pulse() citypulses = citypulses + 1 else notify.event(city_builder, city_tile, E.SCRIPT, -_("Second City: Congratulations, you have built your second City. This City will behave almost exactly like the first one. It will be slightly different because of the terrain around it, but otherwise the same. You probably want to build Warriors and Settlers here too. One of your best ways to win in Freeciv21 is to get as many Cities as your form of government can support and get those Cities as large as you can get them. Big Cities have large Production capacity, which is very important when you need to wage War against your enemies. Pro tip: Another good Unit to build early is Worker so you can have them improve the terrain around the City.")) +_("Second city: Congratulations, you have built your second city. This city will behave almost exactly like the first one. It will be slightly different because of the terrain around it, but otherwise the same. You probably want to build Warriors and Settlers here too. One of your best ways to win in Freeciv21 is to get as many cities as your form of government can support and get those cities as large as you can get them. Big cities have large production capacity, which is very important when you need to wage war against your enemies. Pro tip: Another good unit to build early is Workers so you can have them improve the terrain around the City.")) signal.remove('pulse', 'tutorial_second_city_pulse') end end @@ -196,7 +196,7 @@ function tutorial_third_city_pulse() citypulses = citypulses + 1 else notify.event(city_builder, city_tile, E.SCRIPT, -_("Third City: You have built your third City! Your Civilization seems to be thriving. It might be time to think about a military. Pick one of the Cities that has a high Production rate, and turn it into a military center. Build a Barracks there first, then start work on a military Unit. Pick the best Unit you have available. At the beginning of the game, Warriors will be the only choice, but soon you will have plenty of options. This might also be a good time to use the worklist feature of the City Dialog. Select Barracks and select military Units one at a time to queue them up in a row to create a work list. As soon as the Barracks is complete the City will automatically switch over to Producing the Unit. As was prescribed for the first two Cities you will have built Warriors right away. In this step start thinking about better defenders for your Cities. Phalanx are a good start. Read more about Units in the game help under Help -> Units. Pro tip: This is where the Technology tree is very important, as you need to learn newer Technologies in order to build better and more powerful Units.")) +_("Third city: You have built your third city! Your civilization seems to be thriving. It might be time to think about a military. Pick one of the cities that has a high production rate, and turn it into a military center. Build a barracks there first, then start work on a military unit. Pick the best unit you have available. At the beginning of the game, Warriors will be the only choice, but soon you will have plenty of options. This might also be a good time to use the worklist feature of the city dialog. Select barracks and select military units one at a time to queue them up in a row to create a work list. As soon as the barracks is complete the city will automatically switch over to producing the unit. As was prescribed for the first two cities you will have built Warriors right away. In this step start thinking about better defenders for your cities. Phalanx are a good start. Read more about units in the game help under Help -> Units. Pro tip: This is where the technology tree is very important, as you need to learn newer technologies in order to build better and more powerful units.")) signal.remove('pulse', 'tutorial_third_city_pulse') end end @@ -206,7 +206,7 @@ function tutorial_fourth_city_pulse() citypulses = citypulses + 1 else notify.event(city_builder, city_tile, E.SCRIPT, -_("Fourth City: Another City! You are really getting the hang of this. You probably have a pretty good idea what to do with new Cities by now. Take a moment to look at the bar below the City on the Map View. This display shows some useful information about the City. The flag and background color indicate what Civilization the City belongs to [this will be useful when you meet other Civilizations]. The top segment of the bar also shows the name and size of the City, and will show one or more stars to indicate if there are Units in the City. The bottom row shows what the City is building, and how long it will take; it also shows how long the City will take to grow to the next largest size. If you don't see all of this information; from the View Menu select Citybar Style -> Traditional.")) +_("Fourth city: Another city! You are really getting the hang of this. You probably have a pretty good idea what to do with new cities by now. Take a moment to look at the bar below the city on the map view. This display shows some useful information about the city. The flag and background color indicate what nation the city belongs to (this will be useful when you meet other nations). The top segment of the bar also shows the name and size of the city, and will show one or more stars to indicate if there are units in the city. The bottom row shows what the city is building, and how long it will take; it also shows how long the city will take to grow to the next largest size. If you do not see all of this information; from the View Menu select Citybar Style -> Traditional.")) signal.remove('pulse', 'tutorial_fourth_city_pulse') end end @@ -216,7 +216,7 @@ function tutorial_fifth_city_pulse() citypulses = citypulses + 1 else notify.event(city_builder, city_tile, E.SCRIPT, -_("Fifth City: You should now have 5 Cities! Congratulations. As the number of Cities in your empire grows, it becomes harder to manage individual Cities. This is where the Cities View becomes useful. Press F4 to bring it up [you can also click the Cities Button on the Top Bar]. This View shows a list of Cities with various statistics about each. Play around with it a bit if you like [return to the Map View by pressing F1 or clicking on the View Button in the Top Bar]. With a bit of practice it is possible to control almost every aspect of the Cities from this View. Pro tip: Right-click in the Cities View to get a menu to help with filtering. You can also right-click on the table heading to bring up a list of other fields to see in the View and those column headers can be clicked for quick sorting.")) +_("Fifth city: You should now have 5 cities! Congratulations. As the number of cities in your empire grows, it becomes harder to manage individual cities. This is where the Cities View becomes useful. Press F4 to bring it up (you can also click the cities button on the top bar). This view shows a list of cities with various statistics about each. Play around with it a bit if you like (return to the map view by pressing F1 or clicking on the view button in the top bar). With a bit of practice it is possible to control almost every aspect of the cities from this view. Pro tip: Right-click in the cities view to get a menu to help with filtering. You can also right-click on the table heading to bring up a list of other fields to see in the view and those column headers can be clicked for quick sorting.")) signal.remove('pulse', 'tutorial_fifth_city_pulse') end end @@ -247,27 +247,27 @@ function tutorial_city_growth_callback(city, change, reason) if city.owner:is_human() then if size == 2 and not growth2msg then notify.event(city.owner, city.tile, E.SCRIPT, -_("First size 2 City: Your City has grown! As a City grows, more Citizens become available that can be put to work in the fields or dedicated as Citizen specialists. A City with two Citizens can manage two different Tiles in the City's Vision Radius, in addition to its center Tile which is managed for free. In the City Dialog, the Map shows which Tiles are being managed and how much food, Shields, and Trade each provides. Food is used to grow your City, Shields are used for production of City Improvements and Units, while Trade provides Taxable revenue that can be turned into Science research, Gold, or Luxury Goods. Click on a managed Tile to remove the Citizen from that Tile. Then click on an unmanaged Tile to place a Citizen there. You can only place up to two Citizens on Tiles, of course. If you remove a Citizen it becomes a specialist. By default they are Entertainers which provide only luxuries, which will not be useful until later. Pro tip: You can click on the right-most specialist [Entertainer] to change it to a Taxman or Scientist.")) +_("First size 2 city: Your city has grown! As a city grows, more citizens become available that can be put to work in the fields or dedicated as citizen specialists. A city with two citizens can manage two different tiles in the city's working radius, in addition to its city-center tile, which is managed for free. In the city dialog, the map shows which tiles are being managed and how much food, shields, and trade each provides. Food is used to grow your city, shields are used for production of city improvements and units, while trade provides taxable revenue that can be turned into scientific research, gold, or luxury goods. Click on a managed tile to remove the citizen from that tile. Then click on an unmanaged tile to place the citizen there. You can only place up to two citizens on tiles, of course. If you remove a citizen it becomes a specialist. By default they are Entertainers which provide only luxuries, which will not be useful until later. Pro tip: You can click on the right-most specialist (Entertainer) to change it to a Taxman or Scientist.")) growth2msg = true elseif size == 3 and not growth3msg then notify.event(city.owner, city.tile, E.SCRIPT, -_("First size 3 City: Your City has grown again! Now with three Citizens you have a fair amount of choice over where the City should focus its resources. A City of size three or more may also build Settlers, which costs two units of population. If your City is building Settlers, you should consider buying them now. Open the City Dialog and click on the Buy Button. This trades in Gold [if you have enough of it] to instantly complete the production.")) +_("First size 3 city: Your city has grown again! Now with three citizens you have a fair amount of choice over where the city should focus its resources. A city of size three or more may also build Settlers, which costs two units of population. If your city is building Settlers, you should consider buying them now. Open the city dialog and click on the \"Buy\" button. This trades in gold (if you have enough of it) to instantly complete the production.")) growth3msg = true elseif size == 5 and not growth5msg then notify.event(city.owner, city.tile, E.SCRIPT, -_("First size 5 City: Now your City has grown to size five. As Cities get larger, unrest becomes a problem. A City of this size will usually have one Unhappy Citizen unless pacifying effects are used; meaning one Entertainer specialist is required to keep your Citizens Content. This is basically a wasted Citizen. There are several things that can be done about this. One quick fix is to build a Temple [or other cultural building] that will make an Unhappy Citizen Content. See the help on City Improvements for specs on each building type. As you get more large Cities, it may pay off to change your National Budget [by pressing ctrl-T or clicking the button on the Top Bar] to dedicate some of your Taxes directly to Luxury Goods. Every two Luxury Goods will pacify one Citizen. Building a Marketplace enhances the benefit from this by providing +50 percent luxuries to the City. Pro tip: In the City Dialog, you can click on the City center and the game will automatically arrange the Citizens to manage the land with max Food in mind. It will also keep an Entertainer if needed.")) +_("First size 5 city: Now your city has grown to size five. As cities get larger, unrest becomes a problem. A city of this size will usually have one unhappy citizen unless pacifying effects are used; meaning one Entertainer specialist is required to keep your citizens content. This is basically a wasted citizen. There are several things that can be done about this. One quick fix is to build a Temple (or other cultural building) that will make an unhappy citizen content. See the help on City Improvements for specifics on each building type. As you get more large cities, it may pay off to change your National Budget (by clicking the button on the top bar) to dedicate some of your taxes directly to luxury goods. Every two luxury goods will pacify one citizen in all of your cities. Building a Marketplace enhances the benefit from this by providing +50 percent luxuries bonus to the city. Pro tip: In the city dialog, you can click on the city center tile and the game will automatically arrange the citizens to manage the land with max food in mind. It will also keep an Entertainer if needed.")) growth5msg = true elseif size == 8 and not growth8msg then notify.event(city.owner, city.tile, E.SCRIPT, -_("First size 8 City: Finally you have grown a City to size eight. A size eight City can provide substantial output provided you have enough Luxury Goods to keep your population Content. To grow a City beyond size eight requires an Aqueduct. If your City is going to continue to grow you should start building one soon. Building an Aqueduct requires the Construction Technology, unless your City is next to a Lake or a River. Pro tip: You should have a look at the Small and Great Wonders. Small Wonders are large buildings that give a bigger effect than a regular building and often work across all of your Cities and Citizens. Every player can build Small Wonders. Great Wonders are game unique City Improvements that offer one player to have a big possitive effect across his nation. Great Wonders can be expensive to build, but are often worth the effort.")) +_("First size 8 city: Finally you have grown a city to size eight. A size eight city can provide substantial output provided you have enough luxury goods to keep your population content. To grow a city beyond size eight requires an Aqueduct. If your city is going to continue to grow you should start building one soon. Building an Aqueduct requires the Construction technology, unless your city is next to a lake or a river. Pro tip: You should have a look at the Small and Great Wonders. Small Wonders are large buildings that give a bigger effect than a regular building and often work across all of your cities and citizens. Every player can build Small Wonders. Great Wonders are game unique city improvements that offer one player to have a big possitive effect across his nation. Great Wonders can be expensive to build, but are often worth the effort.")) growth8msg = true elseif size == 13 and not growth13msg then notify.event(city.owner, city.tile, E.SCRIPT, -_("First size 13 City: Congratulations, you have grown a City to size 13. A City this large can provide a tremendous amount of output if properly upgraded and managed. Make sure you have enough Taxes and cultural buildings to keep your Citizens Content. You should also make sure the City is upgraded with buildings that provide bonuses to its output. Library, Marketplace, Factory, and Offshore Platform are four good buildings that provide a large bonus to big Cities. Consider how much benefit each building will provide and weigh this against its cost. For very large Cities almost all buildings are worthwhile. Such large Cities will also provide enough Taxable revenue (Gold) to allow you to purchase some buildings to accelerate their productions.")) +_("First size 13 city: Congratulations, you have grown a city to size 13. A city this large can provide a tremendous amount of output if properly upgraded and managed. Make sure you have enough taxes and cultural buildings to keep your citizens content. You should also make sure the city is upgraded with buildings that provide bonuses to its output. Library, Marketplace, Factory, and Offshore Platform are four good buildings that provide a large bonus to big cities. Consider how much benefit each building will provide and weigh this against its cost. For very large cities almost all buildings are worthwhile. Such large cities will also provide enough taxable revenue (gold) to allow you to purchase some buildings to accelerate their production.")) growth13msg = true elseif size == 16 and not growth16msg then notify.event(city.owner, city.tile, E.SCRIPT, -_("First size 16 City: You have grown a City to size 16. To grow it larger, however, you will need to build a Sewer System. This requires the Sanitation Technology.")) +_("First size 16 city: You have grown a city to size 16. To grow it larger, however, you will need to build a Sewer System. This requires the Sanitation technology.")) growth16msg = true end end @@ -287,15 +287,15 @@ function tutorial_unit_built_callback(unit) if has_unit_type_name(unit, 'Settlers') then if settlersbuilt == 0 then notify.event(unit.owner, unit.tile, E.SCRIPT, -_("First Settler: You have built a Settler Unit. Settlers are best used to build new Cities, so as to expand your Civilization. Move your Settler away from your existing Cities to find a spot for a new City. When you have picked a spot press (b) to build the City. Again, Cities are best built on open ground near water. Grassland and Plains provide Food for the City. Forests and Hills provide the resources (Shields) needed for constructing things. Rivers and Ocean give Trade bonuses that provide Civilization-wide benefits. Desert, Tundra, and Mountains generally provide little output and are not of much use to small Cities. See the help on Terrain for more information about terrain specs.")) +_("First Settlers: You have built a Settlers unit. Settlers are best used to build new cities, so as to expand your civilization. Move your Settlers away from your existing cities to find a spot for a new city. When you have picked a spot press (b) to build the city. Again, cities are best built on open ground near water. Grassland and plains tiles provide food for the city. Forests and hills tiles provide the resources (shields) needed for constructing things. Rivers and ocean tiles give trade bonuses that provide civilization-wide benefits. Desert, tundra, and mountains tiles generally provide little output and are not of much use to small cities. See the help on Terrain for more information about terrain specifics.")) elseif settlersbuilt == 1 then notify.event(unit.owner, unit.tile, E.SCRIPT, -_("Second Settler: Your second Settler should also be used to build a new City. Notice how when you move the Settlers away from your existing Cities an outline is drawn around them? This shows the area that would be covered by a City [also known as the City Vision Radius] built at this location; it fits in with the outline already on the Map View that shows which Tiles are covered by your existing Cities. Generally when building new Cities you want to make sure that all Tiles are covered by at least one City, but after that it is best that your Cities overlap as little as possible. Spreading out Cities properly gives each City access to more resources, allowing them to grow to larger sizes.")) +_("Second Settlers: Your second Settlers should also be used to build a new city. Notice how when you move the Settlers away from your existing cities an outline is drawn around them? This outline shows the area that would be covered by a city (also known as the city working radius) built at this location. It fits in with the outline already on the map view that shows which tiles are covered by your existing cities. Generally when building new cities you want to make sure that all tiles are covered by at least one city, but after that it is best that your cities overlap as little as possible. Spreading out cities properly gives each city access to more resources, allowing them to grow to larger sizes.")) end settlersbuilt = settlersbuilt + 1 elseif not unit.utype:has_flag('NonMil') and milbuilt == 0 then notify.event(unit.owner, unit.tile, E.SCRIPT, -_("First military Unit: You have built your first military Unit! Military Units have two basic purposes: attack and defense. Each Unit has an attack strength and a defense strength. While a Warrior is a measly 1 attack and 1 defense [noted as 1/1], a Phalanx is a much stronger defender with 2 defense (1/2). A Catapult is a good attacking Unit because it has 6 attack (6/1). Usually it is a good idea to keep one or two defenders in each City. Important Cities like your capital may deserve extra protection. Units built in one City may be sent to another City to defend [press the (g) key to enter goto mode to move Units easily over distances]. If you are at War, however, you may wish to move your Unit toward an enemy City to attack. Be careful not to lose it though! To increase the capabilities of your Units, you can construct a Barracks building. At some point you should consider learning Map Making to make your first waterborne Unit - the Trireme.")) +_("First military unit: You have built your first military unit! Military units have two basic purposes: attack and defense. Each unit has an attack strength and a defense strength. While a Warrior is a measly 1 attack and 1 defense (noted as 1/1), a Phalanx is a much stronger defender with 2 defense (1/2). A Catapult is a good attacking unit because it has 6 attack (6/1). Usually it is a good idea to keep one or two defenders in each city. Important cities like your capital may deserve extra protection. Units built in one city may be sent to another city to defend (press the (g) key to enter goto mode to move units easily over distances). If you are at war, however, you may wish to move your unit toward an enemy city to attack. Be careful not to lose it though! To increase the capabilities of your units, you can construct a Barracks building. At some point you should consider learning Map Making to make your first waterborne unit - the Trireme.")) milbuilt = milbuilt + 1 end -- The first military unit _could_ also be a boat... @@ -308,7 +308,7 @@ _("First military Unit: You have built your first military Unit! Military Units -- will not survive long enough to reach Submarine/Carrier if boatsbuilt == 0 then notify.event(unit.owner, unit.tile, E.SCRIPT, -_("First boat Unit: You have built your first waterborne Unit. These can transport other Units across water, allowing you to explore and settle new lands. You can load land Units onto your boat in one of two ways. When your boat and the Unit you want to transport are in the same City, right-click the Unit and select Load from the menu; or if the boat is adjacent to a land Tile, you can move the Unit from there onto the boat. When you want to disembark, select the transported Unit and press U, or move it onto a land Tile.")) +_("First boat unit: You have built your first waterborne unit. These can transport other units across water, allowing you to explore and settle new lands. You can load land units onto your boat in one of two ways. When your boat and the unit you want to transport are in the same city, right-click the unit and select load from the menu, or if the boat is adjacent to a land tile, you can move the unit from there onto the boat. When you want to disembark, select the transported unit and press (u), or move it onto a land tile.")) end boatsbuilt = boatsbuilt + 1 end @@ -324,7 +324,7 @@ function tutorial_building_built_callback(building, city) end if building.id == find.building_type('Barracks').id and not barracksmsg then notify.event(city.owner, city.tile, E.SCRIPT, -_("Barracks constructed: You have built a Barracks. This building will make any military Units you build in the City to start out as veterans. Veteran Units are stronger than inexperienced (green) troops, and will survive longer in combat. See the help on City Improvements for more information about this and other buildings. You probably want to start building a military Unit in the City that built the Barracks. A Barracks are a significant investment and have a small upkeep as well, so it is not a good idea to let them go to waste. Pro tip: You can see what the upkeep is for your buildings by going to the Economy View by pressing F5 or clicking on the Economy View Button on the Top Bar.")) +_("Barracks constructed: You have built a Barracks. This building will make any military units you build in the city to start out as veterans. Veteran units are stronger than inexperienced (green) troops, and will survive longer in combat. See the help on City Improvements for more information about this and other buildings. You probably want to start building a military unit in the city that built the Barracks. A Barracks are a significant investment and have a small upkeep as well, so it is not a good idea to let them go to waste. Pro tip: You can see what the upkeep is for your buildings by going to the Economy View by pressing F5 or clicking on the Economy View button on the top bar.")) barracksmsg = true end end @@ -337,7 +337,7 @@ function tutorial_unit_cant_be_built_callback(unittype, city, reason) end if unittype.id == find.unit_type('Settlers').id and not nosettlermsg then notify.event(city.owner, city.tile, E.SCRIPT, -_("No Settler at size 2 City: Your City cannot build a Settler at this time. Settlers take two units of population to build, so a City of size one or two cannot build one without disbanding the City. To remedy this, you need to adjust the Citizens in the City to provide more Food so as to grow the City faster. Cities that do not have much Food should not try to build Settlers right away. When founding a new City, make sure it is built on terrain that provides enough Food. Grassland is best; Plains or Hills are almost as good especially if they have resources on them such as Buffalo or Coal.")) +_("No Settlers at size 2 city: Your city cannot build a Settlers at this time. Settlers take two units of population to build, so a city of size one or two cannot build one without disbanding the city. To remedy this, you need to adjust the citizens in the city to provide more food so as to grow the city faster. Cities that do not have much food should not try to build Settlers right away. When founding a new city, make sure it is built on terrain that provides enough food. Grassland is best; Plains or Hills are almost as good especially if they have resources on them such as Buffalo or Coal.")) nosettlermsg = true end end @@ -350,13 +350,13 @@ function tutorial_tech_researched_callback(tech, player, reason) end if numtechs == 0 then notify.event(player, nil, E.SCRIPT, -_("First tech researched: You have gained your first Technology! Technological Advances are an integral concept in Freeciv21. As you increase your Technology level, new Units, buildings, governments, and various free bonuses will become available to you. For now, go over into the Research View and play around a little. Press F6 to open the Research View [or click on the Research Button on the Top Bar]. Find the Technology called Republic and click on it. Now Republic has been set as your Technology goal. This means the next Advance on the path toward this Technology will automatically be chosen to research. In the top of the window it shows how much scientific research you are accomplishing each turn. Research (Bulbs) comes from the Taxable Trade in your Cities. In the bottom of the window is the tech tree. Here you may left-click to set the research target or research goal. You can also hover your mouse to get help about a particular Technology. When you are done playing around click on the Map View Button (F1) to return to the Map View.")) +_("First tech researched: You have gained your first technology! Technological advances are an integral concept in Freeciv21. As you increase your technology level, new units, buildings, governments, and various free bonuses will become available to you. For now, go over into the Research View and play around a little. Press F6 to open the Research View (or click on the Research button on the top bar). Find the technology called Republic and click on it. Now Republic has been set as your technology goal. This means the next advance on the path toward this technology will automatically be chosen to research. In the top of the window it shows how much scientific research you are accomplishing each turn. Research (bulbs) comes from the taxable trade in your cities. In the bottom of the window is the tech tree. Here you may left-click to set the research target or research goal. You can also hover your mouse to get help about a particular technology. When you are done playing around click on the Map View button (F1) to return to the Map View.")) elseif numtechs == 1 then notify.event(player, nil, E.SCRIPT, -_("Second tech researched: Now you have gained your second Technology. Go back into the Research View (F6) and take a quick look at your progress. If you set Republic as your Technology goal earlier, a new research target should have been chosen for you automatically. If you do not have any goal set, however, there will not be any new target chosen until the end of the turn. In the turn when you complete your research, you can pick a new tech to research. However, switching targets midway through researching a particular Technology costs you all of the research done on it so far. Setting your Technology goal wisely means you do not have to worry about picking a new research target each time you finish researching a Technology.")) +_("Second tech researched: Now you have gained your second technology. Go back into the Research View (F6) and take a quick look at your progress. If you set Republic as your technology goal earlier, a new research target should have been chosen for you automatically. If you do not have any goal set, however, there will not be any new target chosen until the end of the turn. In the turn when you complete your research, you can pick a new tech to research. However, switching targets midway through researching a particular technology costs you all of the research done on it so far. Setting your technology goal wisely means you do not have to worry about picking a new research target each time you finish researching a technology.")) elseif tech.name == 'Republic' then notify.event(player, nil, E.SCRIPT, -_("Republic: You have successfully completed research to The Republic. This Technology is particularly useful because it allows a new form of government. The government your Civilization follows is very important in determining your development. In the beginning you started in Despotism, a very inefficient form of government. Later government options will give you some choice of whether your Civilization is to be a peaceful trading nation or a conquering juggernaut. Each has advantages and disadvantages. For now, you probably want to switch straight into Republic. In the Civilization Menu, go to the Government submenu and choose Republic. Yes you want a revolution! Changing governments means going through a few turns of Anarchy, so it is not without cost. However, Republic is a substantially better form of government than Despotism so the investment will soon pay off.")) +_("Republic: You have successfully completed research to The Republic. This technology is particularly useful because it allows a new form of government. The government your civilization follows is very important in determining your development. In the beginning you started in despotism, a very inefficient form of government. Later government options will give you some choice of whether your civilization is to be a peaceful trading nation or a conquering juggernaut. Each has advantages and disadvantages. For now, you probably want to switch straight into Republic. In the Civilization Menu, go to the Government submenu and choose Republic. Yes you want a revolution! Changing governments means going through a few turns of Anarchy, so it is not without cost. However, Republic is a substantially better form of government than Despotism so the investment will soon pay off.")) end numtechs = numtechs + 1 end @@ -369,7 +369,7 @@ function tutorial_hut_entered_callback(unit) end if not hutmsg then notify.event(unit.owner, unit.tile, E.SCRIPT, -_("The Hut: Your Unit has found a Hut. These are small villages scattered across the landscape by the Map generator. When a Unit enters one, several things may happen. The most likely outcome is that you will find resources worth a small amount of Gold. However, it is also possible to find Technologies or Mercenary Units to join your cause inside a hut. Some huts contain native settlers that will join your Civilization and bring a new City into your empire. Finally, some huts contain Barbarians which will kill your Unit instantly. On average, it is beneficial to search out and enter any huts you find as soon as possible.")) +_("The Hut: Your unit has found a Hut. These are small villages scattered across the landscape by the map generator. When a unit enters one, several things may happen. The most likely outcome is that you will find resources worth a small amount of gold. However, it is also possible to find technologies or mercenary units to join your cause inside a hut. Some huts contain native settlers that will join your civilization and bring a new city into your empire. Finally, some huts contain Barbarians which will kill your unit instantly. On average, it is beneficial to search out and enter any huts you find as soon as possible.")) hutmsg = true end end