Ejemplo n.º 1
0
    //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);
        }
    }
Ejemplo n.º 2
0
 //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);
     }
 }
Ejemplo n.º 3
0
    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;
        }
    }
Ejemplo n.º 4
0
    //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;
        }
    }
Ejemplo n.º 5
0
    //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);
    }
Ejemplo n.º 6
0
 //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();
    }
Ejemplo n.º 8
0
    // 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.");
        }
    }
Ejemplo n.º 9
0
    //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();
    }
Ejemplo n.º 10
0
    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;
        }
    }
Ejemplo n.º 11
0
 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);
     }
 }
Ejemplo n.º 12
0
    //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);
            }
        }
    }
Ejemplo n.º 13
0
    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;
        }
    }
Ejemplo n.º 14
0
    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);
        }
    }
Ejemplo n.º 15
0
    //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);
        }
    }
Ejemplo n.º 16
0
    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);
        }
    }
Ejemplo n.º 17
0
 public void SetCurrentTown(Travel.Towns town)
 {
     currentTown = town;
     Save();
 }
Ejemplo n.º 18
0
    /*
     * 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);
    }