//Position player sprite over relevant town at scene load private Vector3 ReturnTownPosition(Travel.Towns town) { Vector3 newPosition; switch (town) { case Travel.Towns.WickedGrove: newPosition = town1.transform.position; newPosition.z = -9.072264f; return(newPosition); case Travel.Towns.FlamingPeak: newPosition = town2.transform.position; newPosition.z = -9.072264f; return(newPosition); case Travel.Towns.GiantsPass: newPosition = town3.transform.position; newPosition.z = -9.072264f; return(newPosition); case Travel.Towns.SkyCity: newPosition = town4.transform.position; newPosition.z = -9.072257f; return(newPosition); default: return(player.transform.position); } }
//Used when the player clicks on a gameobject that represents a town the first time private void FirstClick(RaycastHit hit) { //If the town clicked is not currently unlocked if (!Travel.unlockedTowns.Contains(CurrentTownObject(hit.transform.gameObject))) { //SFX.Play("sound"); SFX.Play("Location_query_purchase", 1f, 1f, 0f, false, 0f); lastTownClicked = hit.transform.gameObject; Travel.Towns selectedTown = CurrentTownObject(lastTownClicked); helperText.enabled = true; helperText.text = "Click " + selectedTown + " again if you wish to purchase it for " + Travel.NextPurchaseCost() + " gold"; DetermineTownIndexAndOpen(selectedTown); } //If the town is unlocked and not the current town else //if (currentTown != CurrentTownObject(hit.transform.gameObject)) { { //SFX.Play("sound"); SFX.Play("Map_location_select", 1f, 1f, 0f, false, 0f); lastTownClicked = hit.transform.gameObject; Travel.Towns selectedTown = CurrentTownObject(lastTownClicked); helperText.enabled = true; helperText.text = "Click " + selectedTown + " again if you wish to travel to it"; DetermineTownIndexAndOpen(selectedTown); } }
private void SetTownMusic(Travel.Towns currentTown) { switch (currentTown) { case Travel.Towns.WickedGrove: SFX.Play("WickedGroveTrack", 1f, 1f, 0f, true, 0f); break; case Travel.Towns.FlamingPeak: SFX.Play("FlamingPeakTrack", 1f, 1f, 0f, true, 0f); break; case Travel.Towns.GiantsPass: SFX.Play("GiantsPassTrack", 1f, 1f, 0f, true, 0f); break; case Travel.Towns.SkyCity: SFX.Play("SkyCityTrack", 1f, 1f, 0f, true, 0f); break; default: SFX.Play("WickedGroveTrack", 1f, 1f, 0f, true, 0f); break; } }
//Set all backgrounds as inactive then activate select one private void SetTownBackground(Travel.Towns currentTown) { foreach (GameObject townBG in animatedTowns) { townBG.SetActive(false); } switch (currentTown) { case Travel.Towns.WickedGrove: animatedTowns[0].SetActive(true); break; case Travel.Towns.FlamingPeak: animatedTowns[1].SetActive(true); break; case Travel.Towns.GiantsPass: animatedTowns[2].SetActive(true); break; case Travel.Towns.SkyCity: animatedTowns[3].SetActive(true); break; default: animatedTowns[0].SetActive(true); break; } }
//When the player clicks on a town bubble, this handles the related actions such as moving the camera, scaling and //sprite ordering private void ChooseTown(RaycastHit hit) { mapInteraction = true; canMoveAround = false; townHit = hit; //Get rid of back button (which moves camera to starting position) MoveCameraBackButton.SetActive(false); //Sound effect SFX.Play("Map_location_select", 1f, 1f, 0f, false, 0f); //Move all townObjs to globe by first killing current tweens and then sending them back to the initial pos ReturnToGlobe(); //Change layer of chosen town to be above others hit.transform.gameObject.GetComponent <SpriteRenderer>().sortingLayerName = "Default"; //Finish all previous tweens foreach (GameObject town in townObjects) { town.transform.DOComplete(); } //Move camera to inspect pos and make chosen town larger Camera.main.transform.DOMove(inspectPos, 1f, false).OnComplete(() => hit.transform.DOMove(townInspectPosition.transform.position, 0.1f, false).OnComplete(() => hit.transform.DOScale(new Vector3(0.0014f, 0.0014f, 0.0014f), 1f))); //Load Relevant canvas elements Travel.Towns currentTown = CurrentTownObject(hit.transform.gameObject); ShowRelevantTownUI(currentTown, true); }
//Method used to send user back to shop by 'travelling' public void TravelButton() { Travel.Towns currentTownSelected = CurrentTownObject(townHit.transform.gameObject); SFX.Play("Traveling_chimes", 1f, 1f, 0f, false, 0f); Travel.ChangeCurrentTown(currentTownSelected); SaveManager.SaveInventory(); Initiate.Fade("Shop", Color.black, 2f); }
public void UnlockTown(Travel.Towns town) { CheckInitialisation(); if (unlockedTowns.Contains(town)) { Debug.Log("UnlockTown(): " + town.ToString() + " is already unlocked."); return; } unlockedTowns.Add(town); Save(); }
// Use this for initialization void Start() { Travel.Towns town = Inventory.Instance.GetCurrentTown(); Color col; if (TownColorDict.TryGetValue(town, out col)) { lightObj.color = col; } else { Debug.LogWarning("Did not find specified town, please add it to the dictionary."); } }
//Method used when attempting to buy a new town. Also handles UI at same time private void AttemptToBuyTown(Travel.Towns selectedTown) { bool completeTransaction = Travel.UnlockNewTown(selectedTown); //If this was the first town unlocked, make it the current Debug.Log(Inventory.Instance.GetUnlockedTowns().Count + " unlocked towns"); Debug.Log("Complete transaction " + completeTransaction); if (Inventory.Instance.GetUnlockedTowns().Count == 1 && completeTransaction) { //SFX.Play("sound"); player.SetActive(false); player.transform.position = ReturnTownPosition(selectedTown); helperText.text = "Welcome to " + selectedTown; Travel.ChangeCurrentTown(selectedTown); SaveManager.SaveInventory(); PlayerPrefs.SetInt("FirstStart", 1); if (GameManager.Instance.InMap) { GameManager.Instance.InMap = false; GameManager.Instance.BarterTutorial = true; } Initiate.Fade("Shop", Color.black, 2f); } //Else if it was a subsequent town, check the purchase was successful else { if (completeTransaction) { //SFX.Play("sound"); SFX.Play("location_purchase", 1f, 1f, 0f, false, 0f); if (GameManager.Instance.InMap) { GameManager.Instance.InMap = false; GameManager.Instance.BarterTutorial = true; } helperText.text = selectedTown + " can now be travelled to"; Initiate.Fade("Shop", Color.black, 2f); SaveManager.SaveInventory(); } else { helperText.text = "Insufficent gold to travel to next town"; //SFX.Play("sound"); SFX.Play("Fail_Tap", 1f, 1f, 0f, false, 0f); } } lastTownClicked = null; //CheckUnlockedTowns(); }
private void ShowRelevantTownUI(Travel.Towns town, bool enable) { //Disable all elements foreach (GameObject element in townCanvasElements) { element.SetActive(false); } //Enable selected town element switch (town) { case Travel.Towns.FlamingPeak: townCanvasElements[0].SetActive(true); break; case Travel.Towns.GiantsPass: townCanvasElements[1].SetActive(true); break; case Travel.Towns.SkyCity: townCanvasElements[2].SetActive(true); break; case Travel.Towns.WickedGrove: townCanvasElements[3].SetActive(true); break; default: townCanvasElements[0].SetActive(true); break; } //Enable respective Buttons and gold text if (Inventory.Instance.unlockedTowns.Contains(town)) { travelButton.gameObject.SetActive(true); } else { purchaseButton.gameObject.SetActive(true); } backButton.gameObject.SetActive(true); if (!GameManager.Instance.InMap) { goldText.gameObject.SetActive(true); goldText.text = "<sprite=0>" + Inventory.Instance.goldCount; } }
private void ShowTown(int townIndex, Travel.Towns clickedTown) { backButton.gameObject.SetActive(true); townGraphics[townIndex].SetActive(true); currentTownSelected = clickedTown; player.SetActive(false); if (!Travel.unlockedTowns.Contains(clickedTown)) { purchaseButton.gameObject.SetActive(true); } else { travelButton.gameObject.SetActive(true); } }
//Method used when attempting to buy a new town through button. Also handles UI at same time public void PurchaseTown() { Travel.Towns currentTownSelected = CurrentTownObject(townHit.transform.gameObject); bool completeTransaction = Travel.UnlockNewTown(currentTownSelected); //If this was the first town unlocked, make it the current Debug.Log(Inventory.Instance.GetUnlockedTowns().Count + " unlocked towns"); Debug.Log("Complete transaction " + completeTransaction); if (Inventory.Instance.GetUnlockedTowns().Count == 1 && completeTransaction) { Travel.ChangeCurrentTown(currentTownSelected); SFX.Play("Location_query_purchase", 1f, 1f, 0f, false, 0f); SaveManager.SaveInventory(); PlayerPrefs.SetInt("ExistingSave", 1); if (GameManager.Instance.InMap) { GameManager.Instance.InMap = false; GameManager.Instance.BarterTutorial = true; } Travel.ChangeCurrentTown(currentTownSelected); SaveManager.SaveInventory(); GameManager.Instance.firstTownSelect = false; Initiate.Fade("Shop", Color.black, 2f); } //Else if it was a subsequent town, check the purchase was successful else { if (completeTransaction) { PlayerPrefs.SetInt("ExistingSave", 1); SFX.Play("location_purchase", 1f, 1f, 0f, false, 0f); if (GameManager.Instance.InMap) { GameManager.Instance.InMap = false; GameManager.Instance.BarterTutorial = true; } Travel.ChangeCurrentTown(currentTownSelected); SaveManager.SaveInventory(); GameManager.Instance.firstTownSelect = false; Initiate.Fade("Shop", Color.black, 2f); } else { SFX.Play("Fail_Tap", 1f, 1f, 0f, false, 0f); } } }
private void DetermineTownIndexAndOpen(Travel.Towns selectedTown) { switch (selectedTown) { case Travel.Towns.WickedGrove: ShowTown(0, Travel.Towns.WickedGrove); break; case Travel.Towns.SkyCity: ShowTown(1, Travel.Towns.SkyCity); break; case Travel.Towns.FlamingPeak: ShowTown(2, Travel.Towns.FlamingPeak); break; case Travel.Towns.GiantsPass: ShowTown(3, Travel.Towns.GiantsPass); break; } }
public int GetMaxRetries(Travel.Towns town) { int index = unlockedTowns.IndexOf(town); if (index == 0 || index == 1) { return(3); } else if (index == 2) { return(2); } else if (index == 3) { return(1); } else { return(2); } }
//Used when the player clicks on the same town object a second time private void SecondClick(RaycastHit hit) { Travel.Towns selectedTown = CurrentTownObject(lastTownClicked); //If not unlocked, attempt to buy if (!Travel.unlockedTowns.Contains(selectedTown)) { AttemptToBuyTown(selectedTown); } //If the town has been unlocked, move to selected town else { //SFX.Play("sound"); //movementFinished = false; //StartCoroutine(MovePlayerToNewTown(selectedTown)); Travel.ChangeCurrentTown(selectedTown); helperText.enabled = false; lastTownClicked = null; SaveManager.SaveInventory(); Initiate.Fade("Shop", Color.black, 2f); } }
public int GetMaxRetries(Item.GemType gem) { Travel.Towns townOfGem = TownOfGem(gem); int index = unlockedTowns.IndexOf(townOfGem); switch (index) { case 0: return(3); case 1: return(3); case 2: return(2); case 3: return(1); default: return(3); } }
public void SetCurrentTown(Travel.Towns town) { currentTown = town; Save(); }
/* * private void Update() * { * goldAmount.text = string.Format("<sprite=0> {0}",Inventory.Instance.goldCount); * if (!EnableGlobe && Input.GetMouseButtonDown(0)) * { * Debug.Log("Shooting ray"); * RaycastHit hit; * Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); * Debug.DrawRay(ray.origin,ray.direction); * if (Physics.Raycast(ray, out hit, 1, Mask)) * { * Debug.Log(hit.transform.gameObject.name); * if (lastTownClicked == null && hit.transform.gameObject.tag == "Town") { * FirstClick(hit); * //SFX.Play("Map_location_select", 1f, 1f, 0f, false, 0f); * } * //If the player has double clicked on a town * else if (hit.transform.gameObject == lastTownClicked && lastTownClicked.tag == "Town") * { * SecondClick(hit); * } * else if (hit.transform.gameObject.tag == "Town" && hit.transform.gameObject != lastTownClicked) * { * //Reset clicked object * FirstClick(hit); * } * } * } * } */ public void ClickTownButton(int townID) { SFX.Play("Map_location_select", 1f, 1f, 0f, false, 0f); Travel.Towns selectedTown = CurrentTownObject(townID); DetermineTownIndexAndOpen(selectedTown); }