int makeAttackValue() { if (plateType == 0) { if (FunctionHelperScript.random0To100() > critChance) { return(attackValue); } else { Debug.Log("crit"); return(attackValue * 2); } } else { if (plateType == 1) { if (FunctionHelperScript.random0To100() > critChance * 2.5) { return(attackValue); } else { Debug.Log("crit"); return(attackValue * 2); } } else { attackCounter--; return(attackValue); } } }
void fillInRangeList() { enemyInRange.Clear(); enemysPlateInRange.Clear(); platesInRange.Clear(); float range = attackRange(); foreach (GameObject elem in enemyCounterList) { if (FunctionHelperScript.vectorLength(transform.position, elem.transform.position) <= range) { enemyInRange.Add(elem); enemysPlateInRange.Add(elem.GetComponent <CounterMovementScript>().getPlate()); } } foreach (GameObject elem in platesList) { if (FunctionHelperScript.vectorLength(transform.position, elem.transform.position) <= range) { platesInRange.Add(elem); } } }
void Start() { playerTurn = true; allCounterList = FunctionHelperScript.mergeList(playerSiteCounter, otherSiteCounter); activeCounter = null; thisTurnCounter = new List <GameObject>(); aiControler = GameObject.Find("AIControler"); }
void setPlateToGo(GameObject plateToGo) { if (isUp) { isUp = false; transform.position = new Vector3(transform.position.x, 0.2f, transform.position.z); } movesCounter++; plate.SendMessage("freePlate"); plate.SendMessage("makeNeighbourNotViableToGo"); isGoing = true; vectorToGo = FunctionHelperScript.makeVersor(new Vector3(transform.position.x, 0, transform.position.z), new Vector3(plateToGo.transform.position.x, 0, plateToGo.transform.position.z)); plate = null; }
float fireArrow(GameObject plateToAttack) { Vector3 forceVersor = FunctionHelperScript.makeVersor(transform.position, plateToAttack.transform.position); forceVersor = new Vector3(forceVersor.x, forceVersor.y + 1, forceVersor.z); forceVersor = forceVersor / FunctionHelperScript.vectorLength(forceVersor); float forceToAdd; if (onBuilding) { float bHeight; if (plateType == 2) { bHeight = 0.8f; } else { bHeight = 0.53f; } float length = FunctionHelperScript.vectorLength(new Vector3(transform.position.x, 0, transform.position.z), plateToAttack.transform.position); forceToAdd = (9.81f * Mathf.Pow(length, 2)) / (length + bHeight); forceToAdd = Mathf.Sqrt(forceToAdd); } else { forceToAdd = 3.132f * Mathf.Sqrt(FunctionHelperScript.vectorLength(transform.position, plateToAttack.transform.position)); } GameObject arrowCopy = Instantiate(arrow, transform.position, Quaternion.identity); Rigidbody arrowRb = arrowCopy.GetComponent <Rigidbody>(); arrowRb.AddForce(forceVersor * forceToAdd * 10); float timeToDestroyArrow = (2 * forceToAdd) / 9.81f; Destroy(arrowCopy, timeToDestroyArrow - 0.1f); return(timeToDestroyArrow); }