private static string DetermineGemToDrop(Slot slot) { //Get slot index var index = slot.index; //Get resource pouch gemType ItemInstance inst; if (Inventory.Instance.GetItem(index, out inst)) { Item.GemType bagType = inst.pouchType; Debug.Log("Current Town is " + Inventory.Instance.GetCurrentTown()); switch (bagType) { case Item.GemType.Ruby: return("ruby"); case Item.GemType.Sapphire: return("sapphire"); case Item.GemType.Emerald: return("emerald"); case Item.GemType.Amethyst: return("amethyst"); default: return("ruby"); } } return("ruby"); }
private Travel.Towns TownOfGem(Item.GemType gem) { switch (gem) { case Item.GemType.Ruby: return(Travel.Towns.FlamingPeak); case Item.GemType.Emerald: return(Travel.Towns.WickedGrove); case Item.GemType.Sapphire: return(Travel.Towns.GiantsPass); case Item.GemType.Amethyst: return(Travel.Towns.SkyCity); default: return(Travel.Towns.FlamingPeak); } }
/* * private void Update() { * Debug.Log("Zap pos: " + Zap.GetComponent<RectTransform>().position); * if (winner != null) { * Debug.Log("Winner pos: " + winner.Avatar.transform.position); * } * } */ private Sprite FindSpriteRepresentation(string gameSceneName, Item.GemType playerGemType) { switch (gameSceneName) { case "Smelting": // Player /played/ smelting, so /got/ brick. return(ItemDB.GetActual("brick").spriteRepresentation); case "Tracing": return(ItemDB.GetActual("shell").spriteRepresentation); case "Cutting": return(ItemDB.GetActual("cut " + playerGemType).spriteRepresentation); case "Polishing": return(ItemDB.GetActual("charged " + playerGemType).spriteRepresentation); default: return(ItemDB.GetActual("ore").spriteRepresentation); } }
public void UpdateCurrentColor(Item.GemType type) { Debug.Log("Changing colour now"); switch (type) { case Item.GemType.Ruby: CurrentSack.GetComponent <Renderer>().material.color = Ruby; break; case Item.GemType.Amethyst: CurrentSack.GetComponent <Renderer>().material.color = Amethyst; break; case Item.GemType.Emerald: CurrentSack.GetComponent <Renderer>().material.color = Emerald; break; case Item.GemType.Sapphire: CurrentSack.GetComponent <Renderer>().material.color = Sapphire; break; } Debug.Log("Color is changed"); }
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); } }
private void GolemGrab() { //Debug.Log("Casting Ray"); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //Do an accuracy check before hand to ensure one isn't picked up and floating away holding = CheckAccuracy(); if (!holding) { ResetGolem(); } if (Physics.Raycast(ray, out hit, 20)) { //If a golem if (hit.transform.gameObject.tag == "Golem") { //Check we don't currently have another golem held, if so reset it if (pickedupGolem != null && pickedupGolem != hit.transform.gameObject) { Debug.Log("Reseting golem"); ResetGolem(); } else { //If not holding a pouch if (!hit.transform.gameObject.GetComponent <ShonkyWander>().IsHoldingPouch()) { GameManager.pickedUpGolem = true; pickedupGolem = hit.transform.gameObject; HoldGolem(hit); } else { //If room in the inventory, add the pouch int pouchSlot = Inventory.Instance.InsertItem(pouch); pickedupGolem = hit.transform.gameObject; int golemIndex = GetGolemSlot(); if (pouchSlot > -1) { //Reset golem and set pouch to inventory //SFX.Play("sound"); hit.transform.gameObject.GetComponent <ShonkyWander>().RemovePouch(); Slot insertedSlot = inv.GetSlotAtIndex(pouchSlot); insertedSlot.SetItem(pouch); //Get gemtype from golem and apply to pouch ItemInstance instance; if (ShonkyInventory.Instance.GetItem(golemIndex, out instance)) { Item.GemType bagType = instance.pouchType; ItemInstance inst; if (Inventory.Instance.GetItem(pouchSlot, out inst)) { inst.pouchType = bagType; } } //Change pouch colour according to Gem GameObject obj; if (insertedSlot.GetPrefabInstance(out obj)) { obj.GetComponent <SackHueChange>().UpdateCurrentColor(instance.pouchType); } ResetGolem(); } else { //SFX.Play("sound"); } } } } else if (Mine.Instance.ReadyToCollect() && hit.transform.gameObject.CompareTag("PortalEntry") && pickedupGolem == null) { golems = null; golems = Mine.Instance.ReturnReadyGolems(); foreach (int golem in golems) { ReturnGolem(golem); } } else { ResetGolem(); } } }
private void GolemGrab() { //Debug.Log("Casting Ray"); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.DrawLine(ray.origin, ray.direction, Color.green); RaycastHit hit; if (Physics.Raycast(ray, out hit, 40)) { //If a golem if (hit.transform.gameObject.CompareTag("Golem") && pickedupGolem == null) { //If not holding a pouch if (!hit.transform.gameObject.GetComponent <ShonkyWander>().IsHoldingPouch()) { GameManager.pickedUpGolem = true; pickedupGolem = hit.transform.gameObject; HoldGolem(hit); } else { //If room in the inventory, add the pouch int pouchSlot = Inventory.Instance.InsertItem(pouch); pickedupGolem = hit.transform.gameObject; int golemIndex = GetGolemSlot(); if (pouchSlot > -1) { //Reset golem and set pouch to inventory SFX.Play("Golem Exclaim Voices", 1f, 1f, 0f, false, 0f); hit.transform.gameObject.GetComponent <ShonkyWander>().RemovePouch(); Slot insertedSlot; if (!GameManager.Instance.InTutorial) { insertedSlot = inv.GetSlotAtIndex(pouchSlot); } else { insertedSlot = tutInv.GetSlotAtIndex(pouchSlot); } insertedSlot.SetItem(pouch); //Get gemtype from golem and apply to pouch ItemInstance instance; if (ShonkyInventory.Instance.GetItem(golemIndex, out instance)) { Item.GemType bagType = instance.pouchType; ItemInstance inst; if (Inventory.Instance.GetItem(pouchSlot, out inst)) { inst.pouchType = bagType; } } //Change pouch colour according to Gem GameObject obj; if (insertedSlot.GetPrefabInstance(out obj)) { obj.GetComponent <SackHueChange>().UpdateCurrentColor(instance.pouchType); } if (GameManager.Instance.InTutorial && !GameManager.Instance.MineGoleminteractGolem) { if (GameManager.Instance.ReturnPouch) { tutManager.NextInstruction(); tutShonkyInv.RemoveSpecificRune(pickedupGolem); GameManager.Instance.ReturnPouch = false; GameManager.Instance.MineGoleminteractGolem = true; RemovePortalRune(); Camera.main.GetComponent <CameraTap>().HighlightButton(); } } //Move pouch to slot from golem position GameObject newPouch = insertedSlot.prefabInstance; newPouch.transform.position = pickedupGolem.transform.position; Vector3 midwayPos = (Camera.main.transform.position + newPouch.transform.position) / 2; newPouch.transform.DOMove(midwayPos, 1f, false).SetEase(Ease.OutBack).OnComplete(() => newPouch.transform.DOMove(insertedSlot.transform.position, 2f, false) .SetEase(Ease.OutBack)); pickedupGolem = null; } else { HoldGolem(hit); } } } else if (pickedupGolem != null) { //Debug.Log("Calling hold golem"); HoldGolem(); } else if (Mine.Instance.ReadyToCollect() && hit.transform.gameObject.CompareTag("PortalEntry") && pickedupGolem == null) { //Stop Sound SFX.StopSpecific("Mine_portal_fini"); golems = null; golems = Mine.Instance.ReturnReadyGolems(); foreach (int golem in golems) { ReturnGolem(golem); } } } else if (pickedupGolem != null) { HoldGolem(); } }