Exemplo n.º 1
0
    public Dice AddDice(DiceSide side = DiceSide.Unknown)
    {
        Dice newDice = new Dice(this, Type, side);

        DiceList.Add(newDice);
        return(newDice);
    }
        private string GetButtonStringFor(DiceSide side) //Кнопки
        {
            switch (side)
            {
            case DiceSide.D2:
                return("Button1");

            case DiceSide.D3:
                return("Button2");

            case DiceSide.D4:
                return("Button3");

            case DiceSide.D6:
                return("Button4");

            case DiceSide.D8:
                return("Button5");

            case DiceSide.D10:
                return("Button6");

            case DiceSide.D12:
                return("Button7");

            case DiceSide.D20:
                return("Button8");

            case DiceSide.D100:
                return("Button9");

            default:
                return("Button1");
            }
        }
Exemplo n.º 3
0
    public Dice(DiceRoll diceRoll, DiceKind type, DiceSide side = DiceSide.Unknown)
    {
        ParentDiceRoll = diceRoll;
        Type           = type;

        Sides = new List <DiceSide>
        {
            DiceSide.Blank,
            DiceSide.Blank,
            DiceSide.Focus,
            DiceSide.Focus,
            DiceSide.Success,
            DiceSide.Success,
            DiceSide.Success
        };

        if (type == DiceKind.Attack)
        {
            Sides.Add(DiceSide.Crit);
        }
        if (type == DiceKind.Defence)
        {
            Sides.Add(DiceSide.Blank);
        }

        if (side != DiceSide.Unknown)
        {
            Side = side;
        }
        else
        {
            Side = Sides[Random.Range(0, 8)];
        }
    }
        public void ThrowDice() //Тест на кинуть кость
        {
            DiceSide side = DiceSide.D20;

            manager.Dice.ThrowDice(side);
            Assert.IsTrue(manager.Dice.CheckResultForDiceSide(side)); //Assert окно сообщения
        }
Exemplo n.º 5
0
 private void CreateIcons(DiceSide diceSide, int count)
 {
     for (int i = 0; i < count; i++)
     {
         CreateIcon(diceSide);
     }
 }
Exemplo n.º 6
0
    public Dice(DiceKind type, DiceSide side = DiceSide.Unknown)
    {
        Model = SpawnDice(type);

        Sides = new List <DiceSide>();

        Sides.Add(DiceSide.Blank);
        Sides.Add(DiceSide.Blank);
        Sides.Add(DiceSide.Focus);
        Sides.Add(DiceSide.Focus);
        Sides.Add(DiceSide.Success);
        Sides.Add(DiceSide.Success);
        Sides.Add(DiceSide.Success);

        if (type == DiceKind.Attack)
        {
            Sides.Add(DiceSide.Crit);
        }
        if (type == DiceKind.Defence)
        {
            Sides.Add(DiceSide.Blank);
        }

        if (side != DiceSide.Unknown)
        {
            Side = side;
            //TODO: Not only success
            Model.transform.Find("Dice").localEulerAngles = rotationSuccess;
        }
        else
        {
            Side = Sides[Random.Range(0, 8)];
        }
    }
Exemplo n.º 7
0
 public void CalculateWaitedResults()
 {
     foreach (Dice dice in DiceList)
     {
         DiceSide face = dice.GetModelFace();
         dice.SetSide(face);
     }
 }
Exemplo n.º 8
0
        public int GetValue()
        {
            DiceSide side = GetDiceSide();

            if (isMoving() || side == null)
            {
                return(0);
            }
            return(side.Value);
        }
Exemplo n.º 9
0
 public void AddSide(DiceSide side)
 {
     if (sideDic.ContainsKey(side))
     {
         sideDic[side]++;
     }
     else
     {
         sideDic.Add(side, 1);
     }
 }
Exemplo n.º 10
0
    private void CreateIcon(DiceSide diceSide)
    {
        GameObject iconPrefab = (diceSide == DiceSide.Success) ? iconPrefabHit : iconPrefabCrit;
        GameObject newIcon    = MonoBehaviour.Instantiate(iconPrefab, helperPanel.transform.Find("DiceImages"));

        newIcon.transform.localPosition = new Vector3(iconsCount * 100, 0, 0);
        newIcon.name = (diceSide == DiceSide.Success) ? "Hit" : "Crit";
        newIcon.SetActive(true);

        diceIcons.Add(newIcon);

        iconsCount++;
    }
Exemplo n.º 11
0
    private bool CancelType(DiceSide type)
    {
        bool found = false;

        foreach (Dice dice in DiceList)
        {
            if (dice.Side == type)
            {
                dice.Cancel();
                found = true;
                return(found);
            }
        }
        return(found);
    }
Exemplo n.º 12
0
 private void ChangeDice(DiceSide oldSide, DiceSide newSide, bool onlyOne)
 {
     OrganizeDicePositions();
     foreach (Dice dice in DiceList)
     {
         if (dice.Side == oldSide)
         {
             dice.SetSide(newSide);
             dice.SetModelSide(newSide);
             if (onlyOne)
             {
                 return;
             }
         }
     }
 }
Exemplo n.º 13
0
    public bool IsDiceBroken()
    {
        DiceSide bestSide    = sides[0];
        float    bestSideDot = -1;

        foreach (DiceSide side in sides)
        {
            float dot = Vector3.Dot(Vector3.up, (side.transform.position - _transform.position).normalized);
            if (bestSideDot < dot)
            {
                bestSideDot = dot;
                bestSide    = side;
            }
        }
        return(bestSideDot < 0.99f);
    }
Exemplo n.º 14
0
    public void SetModelSide(DiceSide newSide)
    {
        switch (newSide)
        {
        case DiceSide.Success:
            Model.transform.Find("Dice").localEulerAngles = rotationSuccess;
            break;

        case DiceSide.Crit:
            Model.transform.Find("Dice").localEulerAngles = rotationCrit;
            break;

        default:
            Debug.Log("NOT IMPLEMENTED");
            break;
        }
    }
Exemplo n.º 15
0
    public int GetTopFace()
    {
        DiceSide bestSide    = sides[0];
        float    bestSideDot = -1;

        foreach (DiceSide side in sides)
        {
            float dot = Vector3.Dot(Vector3.up, side.transform.position - _transform.position);
            if (bestSideDot < dot)
            {
                bestSideDot = dot;
                bestSide    = side;
            }
        }

        return(bestSide.number);
    }
Exemplo n.º 16
0
    public void SetModelSide(DiceSide newSide)
    {
        switch (newSide)
        {
        case DiceSide.Success:
            Model.transform.Find("Dice").localEulerAngles = rotationSuccess;
            break;

        case DiceSide.Crit:
            Model.transform.Find("Dice").localEulerAngles = rotationCrit;
            break;

        case DiceSide.Focus:
            Model.transform.Find("Dice").localEulerAngles = rotationFocus;
            break;

        case DiceSide.Blank:
            Model.transform.Find("Dice").localEulerAngles = rotationBlank;
            break;
        }
    }
Exemplo n.º 17
0
    private void CalculateWaitedResults()
    {
        if (isRolling)
        {
            isRolling = false;

            foreach (Dice dice in DiceList)
            {
                DiceSide face = dice.GetModelFace();
                dice.SetSide(face);
            }

            if (IsDiceFacesVisibilityWrong())
            {
                OrganizeDicePositions();
            }

            UpdateDiceCompareHelperPrediction();

            callBack(this);
        }
    }
Exemplo n.º 18
0
    public DiceSide GetModelFace()
    {
        string   resultName    = "";
        DiceSide resultSide    = DiceSide.Unknown;
        float    resultHighest = float.MinValue;

        //TODO: Bug??? (TargetLock using)
        foreach (Transform face in Model.transform.Find("Dice"))
        {
            float currentHeight = face.TransformPoint(face.position).y;
            if (currentHeight > resultHighest)
            {
                resultName    = face.name;
                resultHighest = currentHeight;
            }
        }

        switch (resultName)
        {
        case "empty":
            resultSide = DiceSide.Blank;
            break;

        case "focus":
            resultSide = DiceSide.Focus;
            break;

        case "success":
            resultSide = DiceSide.Success;
            break;

        case "crit":
            resultSide = DiceSide.Crit;
            break;
        }

        return(resultSide);
    }
Exemplo n.º 19
0
    // Update is called once per frame
    void Update()
    {
        timeAliveTimer += Time.deltaTime;
        if (timeAliveTimer > totalTimeAlive)
        {
            Explode();
        }

        if (this.gameObject.transform.localScale.x < endScale)
        {
            this.gameObject.transform.localScale = new Vector3(this.gameObject.transform.localScale.x + scaleSpeed * Time.deltaTime,
                                                               this.gameObject.transform.localScale.y + scaleSpeed * Time.deltaTime, this.gameObject.transform.localScale.z + scaleSpeed * Time.deltaTime);
        }


        if (CheckGroundedSide(side1))
        {
            faceUpSide = DiceSide.One;
        }
        else if (CheckGroundedSide(side2))
        {
            faceUpSide = DiceSide.Two;
        }
        else if (CheckGroundedSide(side3))
        {
            faceUpSide = DiceSide.Three;
        }
        else if (CheckGroundedSide(side4))
        {
            faceUpSide = DiceSide.Four;
        }
        else if (CheckGroundedSide(side5))
        {
            faceUpSide = DiceSide.Five;
        }
        else if (CheckGroundedSide(side6))
        {
            faceUpSide = DiceSide.Six;
        }
        else
        {
            faceUpSide = DiceSide.None;
        }

        if (faceUpSide == faceUpSideLastUpdate && faceUpSide != DiceSide.None)
        {
            explosionTimer += Time.deltaTime;
        }
        else
        {
            explosionTimer = 0f;
        }

        if (willExplode && explosionTimer >= timeTilExplosion)
        {
            Explode();
        }



        faceUpSideLastUpdate = faceUpSide;
    }
Exemplo n.º 20
0
 private void AddDice(DiceSide side = DiceSide.Unknown)
 {
     DiceList.Add(new Dice(Type, side));
 }
        public bool CheckResultForDiceSide(DiceSide side) //Проверка кости
        {
            Int32 result = Convert.ToInt32(autoX.ControlGetText(winTitle, "", "Static1"));

            return(result <= Convert.ToInt32(side));
        }
Exemplo n.º 22
0
 public void ChangeAll(DiceSide oldSide, DiceSide newSide)
 {
     ChangeDice(oldSide, newSide, false);
     UpdateDiceCompareHelperPrediction();
 }
Exemplo n.º 23
0
 public void ChangeOne(DiceSide oldSide, DiceSide newSide)
 {
     ChangeDice(oldSide, newSide, true);
     UpdateDiceCompareHelperPrediction();
 }
Exemplo n.º 24
0
 public void ChangeOne(DiceSide oldSide, DiceSide newSide)
 {
     ChangeDice(oldSide, newSide, true);
 }
Exemplo n.º 25
0
 public void ChangeAll(DiceSide oldSide, DiceSide newSide)
 {
     ChangeDice(oldSide, newSide, false);
 }
Exemplo n.º 26
0
 public Sprite LoadSprite(DiceSide side)
 {
     return(diceSidesSprites[(int)side]);
 }
Exemplo n.º 27
0
 public void SetSide(DiceSide side)
 {
     Side = side;
 }
 public void ThrowDice(DiceSide side) //Бросание кости(нажатие кнопки)
 {
     autoX.ControlClick(winTitle, "", this.GetButtonStringFor(side));
 }