private void DirectPlayerAttention(HexEntry hex, UIAlertType alertType) { Vector2 targetPos = HexVectorUtil.worldPositionOfHexCoord(hex.BoardPos); alertObject = Instantiate(leftClickAlert, new Vector2(targetPos.x + (alertType == UIAlertType.FlippedX ? -0.14f : 0.14f), targetPos.y - 0.14f), Quaternion.identity); if (alertType == UIAlertType.Hover) { alertObject.transform.GetChild(1).gameObject.SetActive(false); } if (alertType == UIAlertType.FlippedX) { alertObject.transform.localScale = new Vector3(-alertObject.transform.localScale.x, alertObject.transform.localScale.y, alertObject.transform.localScale.z); } }
/// <summary> /// Add the key value pair to the dictionary corresponding to this cell. /// This and other methods allow you to make the hex hold whatever variables you need. This is set to the position, not the specific object, and can be read by a new HexPosition with the same coordinates. /// </summary> /// <param name="key">The name of the variable.</param> /// <param name="value">The value of the varaible.</param> public void add(string key, object value) { HexEntry hexKey = new HexEntry(this, key); dictionary [hexKey] = value; }
private void EnterSection() { // Movement explanation page if (activeSection == 1) // Chapter 1 { tooltipPanel1.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = false; // Not necessary, uiHandler.inputEnabled.TurnEnd = false; // present for readability uiHandler.permittedHexes = null; uiHandler.permittedUnits = null; List <WeaponSelect.WSController.WSUnitDescriptor> startingUnits = new List <WeaponSelect.WSController.WSUnitDescriptor>(); startingUnits.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(3, -3), UnitBaseType.Simple, WeaponType.Spear, 1)); startingUnits.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(-3, 1), UnitBaseType.Simple, WeaponType.None, 2)); gameManager.ReloadUnits(startingUnits); unitOfInterest = selectionManager.UnitsByPlayer[1][0]; DirectPlayerAttention(unitOfInterest.Position, UIAlertType.LeftClick); } else if (activeSection == 2) { tooltipPanel1.gameObject.SetActive(false); tooltipPanel2.gameObject.SetActive(true); hexOfInterest = scenarioLoader.HexGrid[new Vector2(1, -1)]; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(hexOfInterest); Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.Hover); } else if (activeSection == 3) { tooltipPanel3.gameObject.SetActive(true); tooltipPanel2.color = Config.Palette.tooltipDark; Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.LeftClick); } else if (activeSection == 4) { hexOfInterest = scenarioLoader.HexGrid[new Vector2(0, 1)]; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(hexOfInterest); tooltipPanel3_1.gameObject.SetActive(true); tooltipPanel3.color = Config.Palette.tooltipDark; Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.LeftClick); } else if (activeSection == 5) { tooltipPanel4.gameObject.SetActive(true); tooltipPanel3_1.color = Config.Palette.tooltipDark; playerTurnButton.SetActive(true); uiHandler.inputEnabled.TurnEnd = true; Destroy(alertObject); DirectPlayerAttention(new Vector2(.78f, 4.75f), UIAlertType.LeftClick); // Over the player turn button } else if (activeSection == 6) { tooltipPanel2.gameObject.SetActive(false); tooltipPanel3.gameObject.SetActive(false); tooltipPanel3_1.gameObject.SetActive(false); tooltipPanel4.gameObject.SetActive(false); tooltipPanel5.gameObject.SetActive(true); uiHandler.inputEnabled.hexClick = false; uiHandler.inputEnabled.unitClick = false; uiHandler.inputEnabled.TurnEnd = false; selectionManager.turnsOfPlay = 0; Destroy(alertObject); } // Attack explanation page else if (activeSection == 7) // Chapter 2 { tooltipPanel5.gameObject.SetActive(false); attackExplanationPanel.gameObject.SetActive(true); uiHandler.DisableInputs(); uiHandler.permittedHexes = null; uiHandler.permittedUnits = null; List <WeaponSelect.WSController.WSUnitDescriptor> startingUnits = new List <WeaponSelect.WSController.WSUnitDescriptor>(); startingUnits.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 1), UnitBaseType.Simple, WeaponType.Spear, 1)); startingUnits.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -1), UnitBaseType.Simple, WeaponType.None, 2)); gameManager.ReloadUnits(startingUnits); unitOfInterest = selectionManager.UnitsByPlayer[1][0]; } else if (activeSection == 8) { attackExplanationPanel.gameObject.SetActive(false); tooltipPanel6.gameObject.SetActive(true); attackPatternPanel1.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; hexOfInterest = scenarioLoader.HexGrid[new Vector2(0, 0)]; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(hexOfInterest); DirectPlayerAttention(unitOfInterest.Position, UIAlertType.LeftClick); } else if (activeSection == 9) { Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.LeftClick); } else if (activeSection == 10) { tooltipPanel7.gameObject.SetActive(true); tooltipPanel6.color = Config.Palette.tooltipDark; Destroy(alertObject); } else if (activeSection == 11) { tooltipPanel8.gameObject.SetActive(true); tooltipPanel7.color = Config.Palette.tooltipDark; } else if (activeSection == 12) { attackPatternPanel2.gameObject.SetActive(true); tooltipPanel9.gameObject.SetActive(true); tooltipPanel8.color = Config.Palette.tooltipDark; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(scenarioLoader.HexGrid[new Vector2(-1, 0)]); uiHandler.permittedHexes.Add(scenarioLoader.HexGrid[new Vector2(1, -1)]); unitOfInterest.WeaponType = WeaponType.Sword; unitOfInterest.Weapon = new Sword(unitOfInterest, gameManager, scenarioLoader, selectionManager); selectionManager.UnitSelected = selectionManager.UnitSelected; } else if (activeSection == 13) { tooltipPanel6.gameObject.SetActive(false); tooltipPanel7.gameObject.SetActive(false); tooltipPanel8.gameObject.SetActive(false); tooltipPanel9.gameObject.SetActive(false); tooltipPanel10.gameObject.SetActive(true); uiHandler.permittedHexes = null; } else if (activeSection == 14) // Give enemy spear -- Chapter 3 { tooltipPanel10.gameObject.SetActive(false); tooltipPanel11.gameObject.SetActive(true); attackPatternPanel1.gameObject.SetActive(true); attackPatternPanel2.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = false; uiHandler.inputEnabled.TurnEnd = false; List <WeaponSelect.WSController.WSUnitDescriptor> spearvsSword = new List <WeaponSelect.WSController.WSUnitDescriptor>(); spearvsSword.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 1), UnitBaseType.Simple, WeaponType.Sword, 1)); spearvsSword.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -1), UnitBaseType.Simple, WeaponType.Spear, 2)); gameManager.ReloadUnits(spearvsSword); unitOfInterest = selectionManager.UnitsByPlayer[1][0]; //selectionManager.UnitSelected = unitOfInterest; -- Doesn't work: newly created units require a frame to set up hexOfInterest = scenarioLoader.HexGrid[new Vector2(0, 0)]; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(hexOfInterest); uiHandler.permittedUnits = null; DirectPlayerAttention(unitOfInterest.Position, UIAlertType.LeftClick); } else if (activeSection == 15) { Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.LeftClick); } else if (activeSection == 16) { tooltipPanel12.gameObject.SetActive(true); tooltipPanel11.color = Config.Palette.tooltipDark; Destroy(alertObject); } else if (activeSection == 17) { tooltipPanel11.gameObject.SetActive(false); tooltipPanel12.gameObject.SetActive(false); attackPatternPanel1.gameObject.SetActive(false); attackPatternPanel2.gameObject.SetActive(false); retalExplanationPanel.gameObject.SetActive(true); uiHandler.DisableInputs(); } else if (activeSection == 18) { retalExplanationPanel.gameObject.SetActive(false); attackPatternPanel1.gameObject.SetActive(true); attackPatternPanel2.gameObject.SetActive(true); tooltipPanel13.gameObject.SetActive(true); undoButton.SetActive(true); uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = true; // Show alert over undo button (resolution-agnostic) Rect undoButtonRect = undoButton.GetComponent <RectTransform>().rect; Vector2 positionOfUndoButton = undoButton.GetComponent <RectTransform>().TransformPoint(new Vector3(undoButtonRect.center.x - 30, undoButtonRect.center.y)); DirectPlayerAttention(positionOfUndoButton, UIAlertType.FlippedX); } else if (activeSection == 19) { tooltipPanel14.gameObject.SetActive(true); tooltipPanel13.color = Config.Palette.tooltipDark; uiHandler.permittedHexes = null; // All hexes now permitted uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; Destroy(alertObject); } else if (activeSection == 20) { tooltipPanel15.gameObject.SetActive(true); tooltipPanel14.color = Config.Palette.tooltipDark; } //Flail intro else if (activeSection == 21) // Chapter 4 { tooltipPanel13.gameObject.SetActive(false); tooltipPanel14.gameObject.SetActive(false); tooltipPanel15.gameObject.SetActive(false); tooltipPanel16.gameObject.SetActive(true); attackPatternPanel1.gameObject.SetActive(true); attackPatternPanel2.gameObject.SetActive(true); attackPatternPanel3.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = false; uiHandler.inputEnabled.TurnEnd = false; //uiHandler.inputEnabled.undoMove = false; List <WeaponSelect.WSController.WSUnitDescriptor> flailvsAlly = new List <WeaponSelect.WSController.WSUnitDescriptor>(); flailvsAlly.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 1), UnitBaseType.Simple, WeaponType.Flail, 1)); flailvsAlly.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(-2, 2), UnitBaseType.Simple, WeaponType.Spear, 1)); flailvsAlly.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(1, -1), UnitBaseType.Simple, WeaponType.None, 2)); gameManager.ReloadUnits(flailvsAlly); unitOfInterest = selectionManager.UnitsByPlayer[1][1]; uiHandler.permittedUnits = new List <IUnitController>(); uiHandler.permittedUnits.Add(unitOfInterest); hexOfInterest = scenarioLoader.HexGrid[new Vector2(0, -2)]; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(hexOfInterest); DirectPlayerAttention(unitOfInterest.Position, UIAlertType.LeftClick); } else if (activeSection == 22) { Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.LeftClick); } else if (activeSection == 23) { tooltipPanel17.gameObject.SetActive(true); tooltipPanel16.color = Config.Palette.tooltipDark; unitOfInterest = selectionManager.UnitsByPlayer[1][0]; uiHandler.permittedUnits = new List <IUnitController>(); uiHandler.permittedUnits.Add(unitOfInterest); selectionManager.UnitSelected = null; hexOfInterest = scenarioLoader.HexGrid[new Vector2(0, -1)]; uiHandler.permittedHexes = new List <HexEntry>(); uiHandler.permittedHexes.Add(hexOfInterest); Destroy(alertObject); DirectPlayerAttention(unitOfInterest.Position, UIAlertType.LeftClick); } else if (activeSection == 24) { Destroy(alertObject); DirectPlayerAttention(hexOfInterest, UIAlertType.FlippedX); } else if (activeSection == 25) { tooltipPanel18.gameObject.SetActive(true); tooltipPanel17.color = Config.Palette.tooltipDark; uiHandler.inputEnabled.hexHover = false; uiHandler.inputEnabled.hexClick = false; Destroy(alertObject); } //Flail challenge else if (activeSection == 26) { tooltipPanel19.gameObject.SetActive(true); tooltipPanel18.color = Config.Palette.tooltipDark; uiHandler.permittedHexes = null; uiHandler.permittedUnits = null; uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.undoMove = true; List <WeaponSelect.WSController.WSUnitDescriptor> flailChallenge = new List <WeaponSelect.WSController.WSUnitDescriptor>(); flailChallenge.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 1), UnitBaseType.Simple, WeaponType.Spear, 1)); flailChallenge.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(2, -1), UnitBaseType.Simple, WeaponType.Flail, 1)); flailChallenge.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -1), UnitBaseType.Simple, WeaponType.Sword, 2)); gameManager.ReloadUnits(flailChallenge); unitOfInterest = selectionManager.UnitsByPlayer[2][0]; } else if (activeSection == 27) { tooltipPanel20.gameObject.SetActive(true); tooltipPanel19.color = Config.Palette.tooltipDark; } // Support explanation else if (activeSection == 28) // Chapter 5 { attackPatternPanel1.gameObject.SetActive(false); attackPatternPanel2.gameObject.SetActive(false); attackPatternPanel3.gameObject.SetActive(false); tooltipPanel16.gameObject.SetActive(false); tooltipPanel17.gameObject.SetActive(false); tooltipPanel18.gameObject.SetActive(false); tooltipPanel19.gameObject.SetActive(false); tooltipPanel20.gameObject.SetActive(false); supportExplanationPanel.gameObject.SetActive(true); uiHandler.DisableInputs(); uiHandler.permittedHexes = null; uiHandler.permittedUnits = null; List <WeaponSelect.WSController.WSUnitDescriptor> longbowDemo = new List <WeaponSelect.WSController.WSUnitDescriptor>(); longbowDemo.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(2, -1), UnitBaseType.Simple, WeaponType.Spear, 1)); longbowDemo.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(-3, 2), UnitBaseType.Simple, WeaponType.Longbow, 1)); longbowDemo.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -1), UnitBaseType.Simple, WeaponType.Sword, 2)); gameManager.ReloadUnits(longbowDemo); unitOfInterest = selectionManager.UnitsByPlayer[2][0]; } else if (activeSection == 29) { supportExplanationPanel.gameObject.SetActive(false); attackPatternPanel1.gameObject.SetActive(true); attackPatternPanel2.gameObject.SetActive(true); attackPatternPanel3.gameObject.SetActive(true); tooltipPanel21.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = true; } else if (activeSection == 30) { tooltipPanel22.gameObject.SetActive(true); tooltipPanel21.color = Config.Palette.tooltipDark; } else if (activeSection == 31) { tooltipPanel23.gameObject.SetActive(true); tooltipPanel22.color = Config.Palette.tooltipDark; List <WeaponSelect.WSController.WSUnitDescriptor> flailFighters = new List <WeaponSelect.WSController.WSUnitDescriptor>(); flailFighters.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(2, -1), UnitBaseType.Simple, WeaponType.Spear, 1)); flailFighters.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 3), UnitBaseType.Simple, WeaponType.Longbow, 1)); flailFighters.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 1), UnitBaseType.Simple, WeaponType.Dagger, 1)); flailFighters.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -1), UnitBaseType.Simple, WeaponType.Flail, 2)); gameManager.ReloadUnits(flailFighters); unitOfInterest = selectionManager.UnitsByPlayer[2][0]; } else if (activeSection == 32) { tooltipPanel24.gameObject.SetActive(true); tooltipPanel23.color = Config.Palette.tooltipDark; } // Push explanation else if (activeSection == 33) // Chapter 6 { attackPatternPanel1.gameObject.SetActive(false); attackPatternPanel2.gameObject.SetActive(false); attackPatternPanel3.gameObject.SetActive(false); tooltipPanel21.gameObject.SetActive(false); tooltipPanel22.gameObject.SetActive(false); tooltipPanel23.gameObject.SetActive(false); tooltipPanel24.gameObject.SetActive(false); pushExplanationPanel.gameObject.SetActive(true); uiHandler.DisableInputs(); uiHandler.permittedHexes = null; uiHandler.permittedUnits = null; } else if (activeSection == 34) { pushExplanationPanel.gameObject.SetActive(false); attackPatternPanel1.gameObject.SetActive(true); attackPatternPanel2.gameObject.SetActive(true); attackPatternPanel3.gameObject.SetActive(true); attackPatternPanel4.gameObject.SetActive(true); tooltipPanel25.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = true; List <WeaponSelect.WSController.WSUnitDescriptor> shieldPushSimple = new List <WeaponSelect.WSController.WSUnitDescriptor>(); shieldPushSimple.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(-3, 3), UnitBaseType.Simple, WeaponType.Shield, 1)); shieldPushSimple.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -3), UnitBaseType.Simple, WeaponType.Spear, 2)); shieldPushSimple.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, -1), UnitBaseType.Simple, WeaponType.Flail, 2)); gameManager.ReloadUnits(shieldPushSimple); unitOfInterest = selectionManager.UnitsByPlayer[2][0]; } else if (activeSection == 35) { tooltipPanel26.gameObject.SetActive(true); tooltipPanel25.color = Config.Palette.tooltipDark; } else if (activeSection == 36) { tooltipPanel21.gameObject.SetActive(false); tooltipPanel22.gameObject.SetActive(false); tooltipPanel23.gameObject.SetActive(false); tooltipPanel24.gameObject.SetActive(false); tooltipPanel25.gameObject.SetActive(false); tooltipPanel26.gameObject.SetActive(false); terrainExplanationPanel.gameObject.SetActive(true); uiHandler.DisableInputs(); } else if (activeSection == 37) { terrainExplanationPanel.gameObject.SetActive(false); attackPatternPanel1.gameObject.SetActive(true); attackPatternPanel2.gameObject.SetActive(true); attackPatternPanel3.gameObject.SetActive(true); attackPatternPanel4.gameObject.SetActive(true); tooltipPanel27.gameObject.SetActive(true); uiHandler.inputEnabled.hexHover = true; uiHandler.inputEnabled.hexClick = true; uiHandler.inputEnabled.unitHover = true; uiHandler.inputEnabled.unitClick = true; uiHandler.inputEnabled.undoMove = true; List <WeaponSelect.WSController.WSUnitDescriptor> shieldPusher = new List <WeaponSelect.WSController.WSUnitDescriptor>(); shieldPusher.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(2, -2), UnitBaseType.Simple, WeaponType.Spear, 1)); shieldPusher.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 0), UnitBaseType.Simple, WeaponType.Shield, 2)); gameManager.ReloadUnits(shieldPusher); unitOfInterest = selectionManager.UnitsByPlayer[2][0]; scenarioLoader.HexGrid[new Vector2(-2, 2)].Terrain = Deft.Terrain.Forest; } else if (activeSection == 38) { tooltipPanel28.gameObject.SetActive(true); tooltipPanel27.color = Config.Palette.tooltipDark; } else if (activeSection == 39) { tooltipPanel27.gameObject.SetActive(false); tooltipPanel28.gameObject.SetActive(false); tooltipPanel29.gameObject.SetActive(true); List <WeaponSelect.WSController.WSUnitDescriptor> shieldPusherSupreme = new List <WeaponSelect.WSController.WSUnitDescriptor>(); shieldPusherSupreme.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 2), UnitBaseType.Simple, WeaponType.Shield, 1)); shieldPusherSupreme.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(0, 1), UnitBaseType.Simple, WeaponType.Sword, 1)); shieldPusherSupreme.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(1, -1), UnitBaseType.Simple, WeaponType.Shield, 2)); shieldPusherSupreme.Add(new WeaponSelect.WSController.WSUnitDescriptor(new Vector2(-1, 0), UnitBaseType.Simple, WeaponType.Spear, 2)); gameManager.ReloadUnits(shieldPusherSupreme); unitOfInterest = selectionManager.UnitsByPlayer[2][0]; scenarioLoader.HexGrid[new Vector2(-2, 2)].Terrain = Deft.Terrain.Normal; scenarioLoader.HexGrid[new Vector2(1, -2)].Terrain = Deft.Terrain.Forest; scenarioLoader.HexGrid[new Vector2(1, 0)].Terrain = Deft.Terrain.Pit; } else if (activeSection == 40) { if (Application.platform != RuntimePlatform.WebGLPlayer) { tooltipPanel30.gameObject.SetActive(true); } else { tooltipPanelWebGLTerminus.gameObject.SetActive(true); } tooltipPanel29.color = Config.Palette.tooltipDark; } }