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"); } }
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 окно сообщения }
private void CreateIcons(DiceSide diceSide, int count) { for (int i = 0; i < count; i++) { CreateIcon(diceSide); } }
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)]; } }
public void CalculateWaitedResults() { foreach (Dice dice in DiceList) { DiceSide face = dice.GetModelFace(); dice.SetSide(face); } }
public int GetValue() { DiceSide side = GetDiceSide(); if (isMoving() || side == null) { return(0); } return(side.Value); }
public void AddSide(DiceSide side) { if (sideDic.ContainsKey(side)) { sideDic[side]++; } else { sideDic.Add(side, 1); } }
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++; }
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); }
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; } } } }
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); }
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; } }
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); }
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; } }
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); } }
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); }
// 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; }
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)); }
public void ChangeAll(DiceSide oldSide, DiceSide newSide) { ChangeDice(oldSide, newSide, false); UpdateDiceCompareHelperPrediction(); }
public void ChangeOne(DiceSide oldSide, DiceSide newSide) { ChangeDice(oldSide, newSide, true); UpdateDiceCompareHelperPrediction(); }
public void ChangeOne(DiceSide oldSide, DiceSide newSide) { ChangeDice(oldSide, newSide, true); }
public void ChangeAll(DiceSide oldSide, DiceSide newSide) { ChangeDice(oldSide, newSide, false); }
public Sprite LoadSprite(DiceSide side) { return(diceSidesSprites[(int)side]); }
public void SetSide(DiceSide side) { Side = side; }
public void ThrowDice(DiceSide side) //Бросание кости(нажатие кнопки) { autoX.ControlClick(winTitle, "", this.GetButtonStringFor(side)); }