Ejemplo n.º 1
0
 /// <summary>
 /// Init this instance.
 /// </summary>
 private void Init()
 {
     controller.ShowCursor(true);
     controller.ShowTileSelector(false);
     _radialMenuController = RadialMenuController.InstantiateInstance(controller.HighlightedUnit.GetCanvas());
     _radialMenuController.transform.localPosition = new Vector3(0.0f, 22.0f, 0.0f);
 }
Ejemplo n.º 2
0
 void Start()
 {
     bagPackLid           = gameObject.transform.GetComponentInChildren <BackPackLid>();
     myText               = gameObject.transform.GetComponentInChildren <TextMeshPro>();
     rightHandRadialMenu  = FindObjectOfType <RightHandRadialMenuPanel>().gameObject.GetComponent <VRTK_RadialMenu>();
     radialMenuController = FindObjectOfType <RadialMenuController>();
     radialMenuButton     = new VRTK_RadialMenu.RadialMenuButton();
 }
Ejemplo n.º 3
0
    /// <summary>
    /// Instantiate the specified canvas.
    /// </summary>
    /// <param name="canvas">Canvas.</param>
    public static RadialMenuController InstantiateInstance(Canvas canvas)
    {
        // Create radial menu if doesn't exist already
        RadialMenuController radialMenuController = canvas.GetComponentInChildren <RadialMenuController>(true);

        if (radialMenuController == null)
        {
            GameObject instance = Instantiate(Resources.Load <GameObject> (RESOURCE_PATH));
            radialMenuController = instance.GetComponent <RadialMenuController> ();
            radialMenuController.transform.SetParent(canvas.transform, false);
        }
        else
        {
            radialMenuController.gameObject.SetActive(true);
        }

        return(radialMenuController);
    }
 /// <summary>
 /// Initialize the specified RadialButtonToolTipController.
 /// </summary>
 /// <param name="radialMenuController">Radial menu controller.</param>
 public void Initialize(RadialMenuController radialMenuController)
 {
     transform.SetParent(radialMenuController.transform, false);
     transform.localPosition = new Vector3(32.0f, -240.0f, 0.0f);
 }
Ejemplo n.º 5
0
    /// <summary>
    /// Init this instance.
    /// </summary>
    private IEnumerator Init()
    {
        yield return(null);

        // Clear all highlighted turn order images
        controller.TurnOrderController.DeHighlightUnitImage();

        // If there is no highlighted unit, it means no actual unit performed an actual action the past turn
        if (controller.HighlightedUnit != null)
        {
            if (controller.HighlightedUnit.IsPlayerControlled)
            {
                controller.ConfirmationSource.PlayOneShot(controller.ConfirmationSource.clip);
            }

            _tileMap = controller.TileMap;
            TurnOrderController turnOrderController = controller.TurnOrderController;

            // Clear out radial button container list
            controller.RadialButtonContainers.Clear();

            // Clear existing action targets and reset them
            controller.ClearActionTargets();

            // Destroy Radial Menu on unit that just finished turn if they have it
            Unit finishedUnit = turnOrderController.GetNextUp();
            if (finishedUnit.IsPlayerControlled)
            {
                RadialMenuController radialMenuController = finishedUnit.GetCanvas().GetComponentInChildren <RadialMenuController> (true);
                if (radialMenuController != null)
                {
                    Destroy(radialMenuController.gameObject);
                }
            }
        }

        // If all objectives are complete, end combat
        if (_tileMap.AreAllEnemiesDefeated())
        {
            controller.MusicController.TransitionMusic(true);
            controller.TurnOrderController.DeHighlightUnitImage();
            controller.ChangeState <DisplayPostCombatStatsState> ();
        }
        else
        {
            // If there is no highlighted unit, it means no actual unit performed an actual action the past turn
            if (controller.HighlightedUnit != null)
            {
                Unit unit = controller.HighlightedUnit;
                unit.DeactivateCombatMenu();
                unit.TileHighlighter.RemoveHighlightedTiles();

                // Determine where the unit will be placed in the turn order
                int orderIndex = -1;
                if (!unit.HasExecutedDeferredAbility)
                {
                    Action action = unit.Action;
                    if (action != null && action.Ability != null && action.Ability.Turns > 0)
                    {
                        orderIndex = action.Ability.Turns;
                    }
                }
                else
                {
                    unit.HasExecutedDeferredAbility = false;
                }
                controller.TurnOrderController.FinishTurn(unit, orderIndex);

                controller.HighlightedUnit.Unselect();
                controller.HighlightedUnit = null;
            }

            controller.ChangeState <InitTurnState> ();
        }
    }
Ejemplo n.º 6
0
 public void Start()
 {
     controller = FindObjectOfType <RadialMenuController>();
 }