Exemple #1
0
  public static void Show(Unit newUnit){
    display.enabled = true;

    int i = 0;

    foreach(Transform actionTransform in display.transform.Find("Panel").Find("Actions")){
      if(i < newUnit.Actions().Count){
        string actionName = "????";
        if(newUnit.Actions()[i].GetComponent<UnitAction>().used){
          actionName = newUnit.Actions()[i].GetComponent<UnitAction>().Name();
        }
        actionTransform.GetComponent<Text>().text = actionName;
      }else{
        actionTransform.GetComponent<Text>().text = "";
      }
      i++;
    }

    i = 0;

    foreach(Transform stanceTransform in display.transform.Find("Panel").Find("Stances")){
      Unit unit = newUnit.GetComponent<Unit>();

      if(i < unit.Stances().Count){
        string stanceName = "????";
        if(newUnit.Stances()[i].GetComponent<Stance>().used){
          stanceName = newUnit.Stances()[i].GetComponent<Stance>().Name();
        }
        stanceTransform.GetComponent<Text>().text = stanceName;
      }else{
        stanceTransform.GetComponent<Text>().text = "";
      }
      i++;
    }
  }
Exemple #2
0
    public void OnMouseEnter()
    {
        Unit       unit       = Unit.current;
        UnitAction unitAction = unit.Actions()[actionIndex].GetComponent <UnitAction>();

        StanceInformation.Show(unitAction.Name(), unitAction.MpCost().ToString(), unitAction.actionType().ToString() + " -- " + unitAction.Description());
    }
    public static void ShowActionCursors(Unit unit, int actionIndex)
    {
        showingActionCursors = true;
        UnitAction action = unit.Actions()[actionIndex].GetComponent <UnitAction>();

        ActionInformation.Show(action.Name(), action.MpCost().ToString(), action.actionType().ToString() + " -- " + action.Description());

        Unit.Coordinate projectedCoordinate = unit.ProjectedCoordinate();

        int xPos = projectedCoordinate.xPos;
        int zPos = projectedCoordinate.zPos;

        List <Cursor> tiles = Helpers.GetRadialTiles(xPos, zPos, action.MaxDistance(), action.MaxHeightDifference(), action.CanTargetOthers(), action.MinDistance(), action.HeightAssisted());

        foreach (Cursor tile in tiles)
        {
            if (IsValidTarget(Unit.Subject(), action, tile, xPos, zPos))
            {
                tile.SetAttack();
            }
        }
    }
    public static void ShowActionRangeCursors(Cursor cursor, int actionIndex)
    {
        Unit unit = Unit.Subject();

        Unit.Coordinate projectedCoordinate = unit.ProjectedCoordinate();

        int unitxPos = projectedCoordinate.xPos;
        int unitzPos = projectedCoordinate.zPos;

        UnitAction    action = unit.Actions()[actionIndex].GetComponent <UnitAction>();
        List <Cursor> tiles  = new List <Cursor>();

        int xPos = cursor.xPos;
        int zPos = cursor.zPos;

        {
            if (action.CursorMode() == UnitAction.CursorModes.Radial)
            {
                if (action.RadialDistance() > 0)
                {
                    tiles = Helpers.GetRadialTiles(xPos, zPos, action.RadialDistance(), 1, true);
                }
            }
            else
            {
                tiles = Helpers.GetLineTiles(unitxPos, unitzPos, xPos, zPos, action.LineDistance());
            }
        }

        foreach (Cursor tile in tiles)
        {
            if (IsValidTarget(Unit.Subject(), action, tile, xPos, zPos))
            {
                tile.SetAttackInRange();
            }
        }
    }
Exemple #5
0
    public static void Refresh()
    {
        Hide();

        if (GameController.inputsFrozen)
        {
            return;
        }

        Unit unit = Unit.Subject();

        display.transform.Find("Panel").Find("End Turn").gameObject.SetActive(!ModelController.inModelMode);

        display.enabled = ModelController.inModelMode || Player.player && Unit.current && Unit.current.playerIndex == Player.player.playerIndex && !Unit.current.dead && (!Unit.current.hasActed || !Unit.current.hasMoved);

        float yStart = 25;
        int   i      = 0;

        if (unit && (ModelController.inModelMode || !unit.hasActed && !unit.dead))
        {
            foreach (GameObject actionObject in unit.Actions())
            {
                int        localIndex   = i;
                GameObject buttonObject = Instantiate(menu.actionButtonPrefab, Vector3.zero, Quaternion.identity);
                buttonObject.transform.parent = menu.transform.Find("Panel").Find("Actions");

                //buttonObject.transform.position = Vector3.zero;
                UnitAction action = unit.Actions()[i].GetComponent <UnitAction>();
                buttonObject.transform.Find("Text").GetComponent <Text>().text = action.Name();
                buttonObject.transform.position   = menu.transform.Find("Panel").transform.position;
                buttonObject.transform.localScale = new Vector3(1, 1, 1);
                buttonObject.GetComponent <RectTransform>().anchoredPosition = new Vector2(-88, yStart - (i * 50));
                buttonObject.GetComponent <Button>().onClick.AddListener(() => Menu.menu.PickAction(unit, localIndex));
                buttonObject.GetComponent <ActionButton>().actionIndex = localIndex;
                buttonObject.SetActive(unit.Actions()[i].GetComponent <UnitAction>().used || unit.playerIndex == Player.player.playerIndex);

                if (unit.currentMp < action.MpCost())
                {
                    buttonObject.SetActive(false);
                }

                i++;
            }
        }

        int x = 0;

        if (unit && (ModelController.inModelMode || !unit.hasActed && !unit.hasMoved))
        {
            foreach (GameObject actionObject in unit.Stances())
            {
                int        localIndex   = x;
                GameObject buttonObject = Instantiate(menu.stanceButtonPrefab, Vector3.zero, Quaternion.identity);
                buttonObject.transform.parent = menu.transform.Find("Panel").Find("Stances");
                Stance stance     = unit.Stances()[x].GetComponent <Stance>();
                string newName    = stance.Name();
                Stance unitStance = ModelController.inModelMode ? unit.GetComponent <ModelBehavior>().Stance() : unit.Stance();
                if (stance == unitStance)
                {
                    newName = newName + " *";
                }
                buttonObject.transform.position   = menu.transform.Find("Panel").transform.position;
                buttonObject.transform.localScale = new Vector3(1, 1, 1);
                buttonObject.transform.Find("Text").GetComponent <Text>().text = newName;
                buttonObject.GetComponent <RectTransform>().anchoredPosition   = new Vector2(80, yStart - (x * 50));
                buttonObject.GetComponent <Button>().onClick.AddListener(() => Menu.menu.PickStance(unit, localIndex));
                buttonObject.GetComponent <StanceButton>().stanceIndex = localIndex;
                buttonObject.SetActive(unit.Stances()[x].GetComponent <Stance>().used || unit.playerIndex == Player.player.playerIndex);
                x++;
            }
        }
    }