From 6796c1868b738d07fe1c9ccc4e155a85f74cc145 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 1 Apr 2019 00:05:11 +0300 Subject: [PATCH] Added a much better initial tutorial, so people new to the 4X genre can find their arms and legs around the game --- android/assets/jsons/Tutorials_English.json | 87 ++++++++++++++++++++- core/src/com/unciv/ui/utils/Tutorials.kt | 6 +- 2 files changed, 88 insertions(+), 5 deletions(-) diff --git a/android/assets/jsons/Tutorials_English.json b/android/assets/jsons/Tutorials_English.json index 362146b696..6a5d5a95ae 100644 --- a/android/assets/jsons/Tutorials_English.json +++ b/android/assets/jsons/Tutorials_English.json @@ -42,7 +42,7 @@ ScienceVictoryScreenEntered : [ [ - "This is the science victory screen, filter you", + "This is the science victory screen, here you", " can see your progress towards constructing a ", " spaceship to propel you towards the stars." ], @@ -89,10 +89,91 @@ "Before we begin, let's review some basic game concepts." ], [ + "Running a civilization is difficult. Everyone wants something.", + "Your citizens are constantly begging for more – more luxury goods, more food, and wealth.", + "And then there are the other powers that, more often than not, treat you as nothing more than a means to an end." + ], + [ + "All games of Unciv start the exact same way.", "You start out with a few units -", " a Settler - who can found a city,", - " and a scout, for exploring the area.", - "Click on a tile to assign orders the unit!" + " a Warrior - a basic military unit,", + " and a Scout, for exploring the area." + ], + [ + "It is up to you to found your capital city.", + "This is actually an important task because your capital city will probably be your most prosperous.", + "Many game bonuses apply only to your capital city and it will probably be the center of your empire." + ], + [ + "Once you have your first city up and running you’ll be able to start production of a new unit", + " and you’ll be able to begin your research.", + "I’m not going to delve too deeply into the research element of the game yet – that will be handled later in the guide –", + " so let’s just talk about production." + ], + [ + "The first thing coming out of your city should be either a Scout or Warrior." + "I generally prefer the Warrior because it can be used for defense and because it can be upgraded", + " to the Swordsman unit later in the game for a relatively modest sum of gold.", + "Scouts can be effective, however, if you seem to be located in an area of dense forest and hills.", + "Scouts don’t suffer a movement penalty in this terrain." + ], + [ + "If you’re a veteran of the 4x strategy genre your first Warrior or Scout will be followed by a Settler.", + "Fast expanding is absolutely critical in most games of this type.", + "But not so fast! Before you start expanding, let’s explore why large empires are hard to manage in Unciv." + ], + [ + "As cities grow in size and influence they also are able to work more territory.", + "You also have to deal with a happiness mechanic that is no longer tied to each individual city.", + "Instead, your entire empire shares the same level of satisfaction.", + "As your cities grow in population you’ll find that it is more and more difficult to keep your empire happy." + ], + [ + "In addition, you can’t even build any city improvements that increase happiness until you’ve done the appropriate research.", + "If your empire’s happiness ever goes below zero the growth rate of your cities will be hurt.", + "If your empire becomes severely unhappy (as indicated by the smiley-face icon at the top of the interface)", + " your armies will have a big penalty slapped on to their overall combat effectiveness." + ], + [ + "This means that it is very difficult to expand quickly in Unciv." + "It isn’t impossible, but as a new player you probably shouldn’t do it." + ], + [ + "So what should you do? Chill out, scout, and improve the land that you do have by building Workers.", + "Only build new cities once you have found a spot that you believe is appropriate." + ], + [ + "When do you know a spot is appropriate?", + "That’s not an easy question to answer, but looking for and building next to luxury resources is a good rule of thumb.", + "Luxury resources are tiles that have things like gems, cotton, or silk (indicated by a smiley next to the resource icon)", + "These resources make your civilization happy. You should also keep an eye out for resources needed to build units, such as iron." + ], + [ + "However, cities don’t have a set area that they can work - more on that later!" + "This means you don’t have to settle cities right next to resources.", + "Let’s say, for example, that you want access to some iron – but the resource is right next to a desert." + "You don’t have to settle your city next to the desert. You can settle a few tiles away in more prosperous lands.", + "Your city will grow and eventually gain access to the resource.", + "You only need to settle right next to resources if you need them immediately – ", + " which might be the case now and then, but you’ll usually have the luxury of time." + ], + [ + "Once you’ve settled your first two or three cities you’re probably 100 to 150 turns into the game.", + "Now is a good time to start thinking about how, exactly, you want to win – if you haven’t already." + ], + [ + "There are three ways to win in Unciv. They are:", + "Cultural Victory: Complete 4 Social Policy Trees", + "Domination Victory: Survive as the last civilization", + "Science Victory: Be the first to construct a spaceship to Alpha Centauri" + ], + [ + "These are the basics of Unciv – found a prosperous first city, expand slowly to manage happiness,", + " and set yourself up for the victory condition you wish to pursue." + "Obviously, there is much more to it than that, but it is important not to jump into the deep end before you know how to swim.", + "If you’re new to games like Unciv you should simply focus on executing what was covered in this tutorial.", + "Later tutorials will focus on more advanced topics, like combat and research." ] ], diff --git a/core/src/com/unciv/ui/utils/Tutorials.kt b/core/src/com/unciv/ui/utils/Tutorials.kt index 12ea959e6b..6f54f2be85 100644 --- a/core/src/com/unciv/ui/utils/Tutorials.kt +++ b/core/src/com/unciv/ui/utils/Tutorials.kt @@ -27,8 +27,6 @@ class Tutorials{ fun displayTutorials(name: String, stage: Stage) { if (UnCivGame.Current.settings.tutorialsShown.contains(name)) return - UnCivGame.Current.settings.tutorialsShown.add(name) - UnCivGame.Current.settings.save() val texts = getTutorials(name, UnCivGame.Current.settings.language) tutorialTexts.add(Tutorial(name,texts)) if (!isTutorialShowing) displayTutorial(stage) @@ -74,6 +72,10 @@ class Tutorials{ button.onClick { tutorialTable.remove() + if(!UnCivGame.Current.settings.tutorialsShown.contains(currentTutorial.name)) { + UnCivGame.Current.settings.tutorialsShown.add(currentTutorial.name) + UnCivGame.Current.settings.save() + } if (!tutorialTexts.isEmpty()) displayTutorial(stage) else