public void CheckWhoWonTest2() { TurnSystem.InitializeData(); for (int i = 0; i < CheckerManager.BrownCheckers.Length; i++) { GameObject gameObj = CheckerManager.BrownCheckers[i].GameObj; Vector3 finalPos = gameObj.transform.position; finalPos.y = 100; gameObj.transform.position = Vector3.Lerp(gameObj.transform.position, finalPos, 100); } string result = GameMechanics.CheckWhoWon(); GameMechanics.ResetGame(); Assert.AreEqual("Blue", result); }
public void SelectCheckerTest2() { TurnSystem.InitializeData(); CheckerManager.DeselectCheckers(); Checker testObj = CheckerManager.BrownCheckers[0]; CheckerManager.SelectChecker(testObj.GameObj); CheckerManager.SelectChecker(testObj.GameObj); float yPosition = testObj.GameObj.transform.position.y; GameMechanics.ResetGame(); Assert.AreEqual(0.3f, yPosition); }
public void SomeoneWinTest3() { TurnSystem.InitializeData(); for (int i = 0; i < CheckerManager.BlueCheckers.Length; i++) { GameObject gameObj = CheckerManager.BlueCheckers[i].GameObj; Vector3 finalPos = gameObj.transform.position; finalPos.y = 100; gameObj.transform.position = Vector3.Lerp(gameObj.transform.position, finalPos, 100); } bool result = GameMechanics.SomeoneWin(); GameMechanics.ResetGame(); Assert.AreEqual(true, result); }
public void Test_HandleInput_WhenUpIsPressed() { Mock <IBlock> currentBlock = new Mock <IBlock>(); Mock <IBlockFactory> factory = new Mock <IBlockFactory>(); factory.Setup(f => f.MakeBlock()).Returns(currentBlock.Object); Mock <IField> field = new Mock <IField>(); GameMechanics currentSubject = new GameMechanics(field.Object, factory.Object); currentSubject.NextBlock(); List <Keys> input = new List <Keys> { Keys.Up }; currentSubject.HandleInput(input); currentBlock.Verify(b => b.RotateRight()); }
public void IsAnyMovePossibleTest6() { TurnSystem.InitializeData(); GameMechanics.Move(CheckerManager.BrownCheckers[0].GameObj, new Vector3(1, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[1].GameObj, new Vector3(3, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[2].GameObj, new Vector3(5, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[3].GameObj, new Vector3(7, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[4].GameObj, new Vector3(9, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[5].GameObj, new Vector3(2, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[6].GameObj, new Vector3(4, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[7].GameObj, new Vector3(6, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[8].GameObj, new Vector3(8, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[9].GameObj, new Vector3(10, 0, 6)); bool result = GameMechanics.IsAnyMovePossible("Blue"); GameMechanics.ResetGame(); Assert.AreEqual(false, result); }
public void EndTurnTest2() { TurnSystem.InitializeData(); GameMechanics.Move(CheckerManager.BrownCheckers[0].GameObj, new Vector3(1, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[1].GameObj, new Vector3(3, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[2].GameObj, new Vector3(5, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[3].GameObj, new Vector3(7, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[4].GameObj, new Vector3(9, 0, 7)); GameMechanics.Move(CheckerManager.BrownCheckers[5].GameObj, new Vector3(2, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[6].GameObj, new Vector3(4, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[7].GameObj, new Vector3(6, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[8].GameObj, new Vector3(8, 0, 6)); GameMechanics.Move(CheckerManager.BrownCheckers[9].GameObj, new Vector3(10, 0, 6)); TurnSystem.EndTurn(); string result = GameObject.Find("PlayerWinsText").GetComponent <TMPro.TextMeshPro>().text; GameMechanics.ResetGame(); Assert.AreEqual("Brown player wins", result); }
public void Awake() { Instance = this; }
void Awake() { GM = Camera.main.GetComponent <GameManager> (); GMX = Camera.main.GetComponent <GameMechanics> (); }
public static void InitializeGame() { Console.Clear(); IDifficulty difficulty; if (GameData.Difficulty == "Hard") { difficulty = new HardDifficulty(); } else if (GameData.Difficulty == "Medium") { difficulty = new MediumDifficulty(); } else { GameData.Difficulty = "Easy"; difficulty = new EasyDifficulty(); } IInterfaceBuilder interfaceBuilder; if (GameData.InterfaceBuilder == "Mathemathics") { interfaceBuilder = new MathemathicsInterfaceBuilder(); } else if (GameData.InterfaceBuilder == "Rainbow") { interfaceBuilder = new RainbowInterfaceBuilder(); } else { interfaceBuilder = new DefaultInterfaceBuilder(); } GameData.pause = new Pause(); GameData.GameMechanics = new Mechanics(GameData.pause); PlayerStatusTracker playerStatusTracker = new PlayerStatusTracker(GameData.pause); GameData.SetGraphics(interfaceBuilder); Console.SetCursorPosition(105, 22); Console.Write("Difficulty: " + difficulty.ToString()); Console.CursorVisible = false; GameData.gameMap = new char[50, 130]; for (int i = 0; i < 50; i++) { for (int j = 0; j < 130; j++) { GameData.gameMap[i, j] = ' '; } } GameData.TankZombieModel = new TankZombieModel(new char[4] { '¥', '¥', '¥', '¥' }, ConsoleColor.Green, GameData.BackgroundColor); GameData.NormalZombieModel = new NormalZombieModel(new char[4] { '@', '@', '@', '@' }, ConsoleColor.Green, GameData.BackgroundColor); GameData.HunterZombieModel = new HunterZombieModel(new char[4] { 'x', 'x', 'x', 'x' }, ConsoleColor.Green, GameData.BackgroundColor); GameData.HealthPackModel = new HealthPackModel(new char[4] { '+', '+', '+', '+' }, ConsoleColor.Red, GameData.BackgroundColor); GameData.AmmoPackModel = new AmmoPackModel(new char[4] { '#', '#', '#', '#' }, ConsoleColor.Red, GameData.BackgroundColor); GameData.Ak47Model = new AK47Model(new char[4] { 'A', 'A', 'A', 'A' }, ConsoleColor.Red, GameData.BackgroundColor); GameData.SniperRifleModel = new SniperRifleModel(new char[4] { 'S', 'S', 'S', 'S' }, ConsoleColor.Red, GameData.BackgroundColor); GameData.PistolBulletModel = new PistolBulletModel(new char[4] { '.', '.', '.', '.' }, ConsoleColor.White, GameData.BackgroundColor); GameData.AK47BulletModel = new AK47BulletModel(new char[4] { '°', '°', '°', '°' }, ConsoleColor.White, GameData.BackgroundColor); GameData.SniperRifleBulletModel = new SniperRifleBulletModel(new char[4] { '│', '─', '│', '─' }, ConsoleColor.White, GameData.BackgroundColor); GameData.PlayerModel = new PlayerModel(new char[4] { '^', '>', 'v', '<' }, ConsoleColor.Green, GameData.BackgroundColor); GameData.ZombieAtPosition = new Dictionary <Position, Zombie>(); GameData.DropAtPosition = new Dictionary <Position, Drop>(); GameData.Player = Player.GetPlayer(); Player.Name = GameData.PlayerName; Player.PlayerModel = new PlayerModel(new char[4] { '^', '>', 'v', '<' }, ConsoleColor.Green, GameData.BackgroundColor); Player.Score = 0; Player.Position = new Position(65, 25); Player.Health = 100; Player.Direction = Direction.DOWN; Player.Weapons = new List <Weapon>() { new Pistol() }; Player.CurrentWeapon = Player.Weapons.ElementAt(0); GameData.DisplayModelAtPosition(Player.Position, Player.Position, Player.PlayerModel, Direction.DOWN, true); GameData.ReloadEvent = new ManualResetEvent(false); GameData.JumpWait = new ManualResetEvent(false); GameData.PauseGameEvent = new ManualResetEvent(false); GameData.PlayerHealthStatusEvent = new ManualResetEvent(false); GameData.KeyInfoWaitEvent = new ManualResetEvent(false); GameData.PlayerAmmoStatusEvent = new ManualResetEvent(false); GameData.PlayerCurrentWeaponStatusEvent = new ManualResetEvent(false); GameData.PlayerScoreStatusEvent = new ManualResetEvent(false); Player.IsReloaded = true; GameData.threadList = new List <Thread>(); Thread playerScoreStatusThread = new Thread(() => playerStatusTracker.TrackPlayerScoreStatus()); Thread playerCurrentWeaponStatusThread = new Thread(() => playerStatusTracker.TrackPlayerCurrentWeaponStatus()); Thread playerAmmoStatusThread = new Thread(() => playerStatusTracker.TrackPlayerAmmoStatus()); Thread playerHealthStatusThread = new Thread(() => playerStatusTracker.TrackPlayerHealthStatus()); Thread reloadWeaponThread = new Thread(() => GameMechanics.ReloadWeapon()); Thread zombieMaker = new Thread(() => new ZombieMaker(difficulty, GameData.pause).MakeZombies()); Thread start = new Thread(() => GameData.GameMechanics.StartGame()); GameData.AddThread(playerScoreStatusThread); GameData.AddThread(playerCurrentWeaponStatusThread); GameData.AddThread(playerAmmoStatusThread); GameData.AddThread(playerHealthStatusThread); GameData.AddThread(reloadWeaponThread); GameData.AddThread(zombieMaker); playerScoreStatusThread.Start(); playerCurrentWeaponStatusThread.Start(); playerAmmoStatusThread.Start(); playerHealthStatusThread.Start(); reloadWeaponThread.Start(); zombieMaker.Start(); start.Start(); }
private async Task SendNewTagPositionToAllClients() { PersistingValues.TagItem = GameMechanics.GetNewTagItem(); await _hub.Clients.All.SendAsync("newTag", PersistingValues.TagItem); }
public async Task BroadcastDigMessage(int positionX, int positionY) => await Clients.All.SendAsync("broadcastDigMessage", GameMechanics.GetDigResponse(positionX, positionY));
private void SelectTarget() { target = GameMechanics.SelectPlayerAsTarget(); }
//Update is called once per frame void Update() { //Set checkers color depending on their state MaterialsManager.SetMaterialsToDefault(this); //If player cursor points on clickable object RaycastHit hit; if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100, clickableLayer.value)) { //Assign pointed object to variable GameObject selectedObject = hit.collider.gameObject; //Change cursor texture to "clickable" and change pointed checker color to white CursorManager.SetCursorToClickablePointer(this); MaterialsManager.ChangeObjectMaterialTo(this, selectedObject, 4); //If left mouse button was clicked if (Input.GetMouseButtonDown(0)) { if (selectedObject.tag == "Exit") { GameMechanics.Exit(); } if (selectedObject.tag == "Restart") { TurnSystem.StartGame(); } //If player tries to move or jump if (selectedObject.tag == "Field" && GameMechanics.AnyCheckerIsSelected()) { //Distance variable measures distance between selected checker, and field on which player wants to move //Basing on that distance, you can check if player tries to move or jump double distance = Vector3.Distance(CheckerManager.SelectedChecker().GameObj.transform.position, selectedObject.transform.position); //If player tries to move if (distance < 1.65f) { //If its players first move allow to move, otherwise if player already jumped, allow only next jumps(if they are possible) if (TurnSystem.FirstMove) { //Player have to always jump if its possible if (GameMechanics.IsAnyJumpPossible(CheckerManager.SelectedChecker().PlayerColor)) { Debug.Log("You have to jump."); } //If its first move and move is allowed, move player else if (GameMechanics.IsMovePossible(CheckerManager.SelectedChecker().GameObj, selectedObject)) { GameMechanics.Move(CheckerManager.SelectedChecker().GameObj, selectedObject.transform.position); TurnSystem.EndTurn(); } } //If player already jumped and tries to move instead of jumping else { Debug.Log("You have to jump."); } } //If player tries to jump if (distance > 1.65f && distance < 2.95f) { if (GameMechanics.IsJumpPossible(CheckerManager.SelectedChecker().GameObj, selectedObject)) { CheckerManager.RemoveEnemyBetween(CheckerManager.SelectedChecker().GameObj, selectedObject); GameMechanics.Move(CheckerManager.SelectedChecker().GameObj, selectedObject.transform.position); TurnSystem.FirstMove = false; //If selected checker after previous jump can do another jump, dont end turn and let user know that next move is possible if (GameMechanics.CanCheckerJump(CheckerManager.SelectedChecker())) { Debug.Log("Next move is possible"); } else { TurnSystem.EndTurn(); } } } } //If player didn't click on selected checker, deselect previous selected checker if (GameMechanics.AnyCheckerIsSelected() && CheckerManager.SelectedChecker().GameObj != selectedObject) { CheckerManager.DeselectCheckers(); } CheckerManager.SelectChecker(selectedObject); } } //If cursor doesn't point on anything clickable else { CursorManager.SetCursorToNormalPointer(this); if (Input.GetMouseButtonDown(0)) { CheckerManager.DeselectCheckers(); } } }
void Start() { GameMechanics.generateLevel(maxSize, spherePrefab); }
public async Task BroadcastMapInfo(bool generateNewMap, int?mapSizeX = null, int?mapSizeY = null, int?obstacleAmountMin = null, int?obstacleAmountMax = null, int?soilAmountMin = null, int?soilAmountMax = null) => await Clients.All.SendAsync("broadcastMapInfo", GameMechanics.GetMapInfo(generateNewMap, mapSizeX, mapSizeY, obstacleAmountMin, obstacleAmountMax, soilAmountMin, soilAmountMax));
// Use this for initialization void Start() { gm = GameObject.FindWithTag ("Mechanics").GetComponent<GameMechanics> (); }
private void Awake() { Mechanics = this; }
void OnDisable() { instance = null; }
public void GetObstaclesShouldGenerateNewObstacles() { GameMechanics.GetObstacles(true); PersistingValues.Obstacles.Count.Should().BeGreaterOrEqualTo(Constants.OBSTACLE_AMOUNT_MIN); }
private void ChooseATarget() { playerShip = GameMechanics.SelectPlayerAsTarget(); }
public async Task BroadcastGetObstacles(bool generateNewObstacles) => await Clients.All.SendAsync("broadcastGetObstacles", GameMechanics.GetObstacles(generateNewObstacles));
private async Task SendFruitInfoToAllClients() { var tilesWithNewFruits = GameMechanics.GenerateNewFruits(); await _hub.Clients.All.SendAsync("fruitInfo", tilesWithNewFruits); }
// Use this for initialization void Start() { gm = GameObject.FindWithTag("Mechanics").GetComponent <GameMechanics> (); }