public void FieldWithGameObjectTest() { TurnSystem.InitializeData(); GameMechanics.Move(CheckerManager.BrownCheckers[10].GameObj, new Vector3(2, 0, 4)); Field field = FieldManager.FieldUnderChecker(CheckerManager.BrownCheckers[10].GameObj); Field field2 = FieldManager.FieldWithGameObject(field.GameObject); CheckerManager.ResetCheckersPosition(); FieldManager.ResetFieldStates(); GameMechanics.ResetGame(); Assert.AreEqual(FieldManager.BlackFieldsBoard[15], field2); }
public static bool IsFieldFree(GameObject obj) { //Find field with selected GameObject Field field = FieldManager.FieldWithGameObject(obj); //Check field state (1 - field isnt occupied) if (field.State == 1) { return(true); } else { return(false); } }
public static bool IsJumpPossible(GameObject gameObjChecker, GameObject gameObjField) { //Search checker and fields array for variable with same GameObject as given as argument Checker checker = CheckerManager.CheckerWithGameobject(gameObjChecker); Field field = FieldManager.FieldWithGameObject(gameObjField); //Check if field is free if (!IsFieldFree(field.GameObject)) { return(false); } //Check if jumping distance is correct double distance = Vector3.Distance(checker.GameObj.transform.position, field.GameObject.transform.position); if (distance > 2.95f || distance < 2.8f) { return(false); } //Check if move isnt backwards && checker isnt a king if (!checker.IsKing) { if (checker.PlayerColor == "Brown" && (checker.GameObj.gameObject.transform.position.z - field.GameObject.transform.position.z) > 0) { return(false); } if (checker.PlayerColor == "Blue" && (checker.GameObj.transform.position.z - field.GameObject.transform.position.z) < 0) { return(false); } } //Check if enemy is between checker and field Vector3 enemyPos = checker.GameObj.transform.position; enemyPos.x = (checker.GameObj.transform.position.x + field.GameObject.transform.position.x) / 2; enemyPos.z = (checker.GameObj.transform.position.z + field.GameObject.transform.position.z) / 2; enemyPos.y = 0.3f; //Check if player wants to jump over enemy or over free field if (!IsAnyCheckerOnPosition(enemyPos)) { return(false); } //If player wants to jump over another checker, check if that checker is an enemy else { if (CheckerManager.CheckerOnPosition(enemyPos).PlayerColor == "Blue" && checker.PlayerColor == "Blue") { return(false); } if (CheckerManager.CheckerOnPosition(enemyPos).PlayerColor == "Brown" && checker.PlayerColor == "Brown") { return(false); } } return(true); }