public void Awake() { if (mInstance == null) { mInstance = this; } }
void Start() { Camera[] allCam = Camera.allCameras; camera = allCam[0]; if (CurrentCamera == null) { CurrentCamera = camera; } selectionCircle = GameObject.Find("selectionCircle"); particleSelectionCircle = selectionCircle.GetComponent <ParticleSystem>(); particleSelectionCircle.Stop(); GameObject tempObject = GameObject.Find("Canvas"); endGameCanvas = tempObject.GetComponent <Canvas>(); if (endGameCanvas == null) { Debug.Log("CANVAS NULL"); } //initialisation du graveyard (toutes cases libres) et des positions des pièces BoardManagment.startPosition(); VictoryConditions.initializeCheck(); //Color sert a déterminer quel joueur à le focus color = "Black"; vscolor = "White"; camPosition = "Black"; }
public static bool moveAuthorized(int iPiece, int jPiece, int iTarget, int jTarget, string pieceName, GameObject Target) { string playerColor = (pieceName.Substring(0, 1)); //Traitement spécial des mouvements autorisés en cas d'échec au roi if (VictoryConditions.whiteKingInCheck == true || VictoryConditions.blackKingInCheck == true) { Debug.Log("VictoryConditions.moveAuthorizedWhenKingInCheck" + playerColor); if (VictoryConditions.moveAuthorizedWhenKingInCheck(pieceName, Target)) { VictoryConditions.kingNoLongerInCheck(); return(true); } else { return(false); } } //traitement "normal" des déplacements switch (pieceName.Substring(1, 3)) { case "paw": if (playerColor == "B") { return(pawnMoveAuthorized(iPiece, jPiece, iTarget, jTarget, Target, "W")); } else { return(pawnMoveAuthorized(iPiece, jPiece, iTarget, jTarget, Target, "B")); } case "bis": return(bishopMoveAuthorized(iPiece, jPiece, iTarget, jTarget)); case "roo": return(rookMoveAuthorized(iPiece, jPiece, iTarget, jTarget)); case "kni": return(knightMoveAuthorized(iPiece, jPiece, iTarget, jTarget)); case "kin": return(kingMoveAuthorized(iPiece, jPiece, iTarget, jTarget, playerColor)); case "que": return(queenMoveAuthorized(iPiece, jPiece, iTarget, jTarget)); default: Debug.Log("Piece non valide"); return(false); } }
public Scenario Clone() { return(new Scenario { Name = Name, City = City.Clone(), StartDateString = StartDate.ToString(), EndDateString = EndDate.ToString(), VictoryConditions = VictoryConditions.Select(g => g.Clone()).ToList(), DefeatConditions = DefeatConditions.Select(g => g.Clone()).ToList(), RequireAchievementNames = RequireAchievementNames.ToList(), VictoryAchievement = VictoryAchievement }); }
public BasicMapParams(byte players_value, byte width_size, byte height_size, string scenario_name, VictoryConditions victory_conditions, DefeatConditions defeat_conditions) { this.players_value = players_value; this.width_size = width_size; this.height_size = height_size; this.scenario_name = scenario_name; this.victory_conditions = victory_conditions; this.defeat_conditions = defeat_conditions; }
/// <summary> /// Begins to capture point to new contesting party after calculating which player type has overwhelming numbers /// </summary> /// <returns></returns> public IEnumerator CapturePoint() { while (true) { SetCapturePointOwner(); if (mCapturingPlayerType == Enums.PlayerType.Ghost) { // Decrease counter every second if (mCurrentProgress != 0) { mCurrentProgress--; } else { // Ghosts capture it or hunters didn't fully capture and light goes out mLit = false; mCapturing = false; VictoryConditions.GetInstance().CheckGhostVictoryConditions(); StopCoroutine("CapturePoint"); } } if (mCapturingPlayerType == Enums.PlayerType.Hunter) { // Increase if (mCurrentProgress != 100) { mCurrentProgress++; } else { // Hunter captures it mLit = true; mCapturing = false; VictoryConditions.GetInstance().CheckHunterVictoryCondition(); StopCoroutine("CapturePoint"); } } UpdateUI(); UpdateVisuals(); yield return(new WaitForSeconds(0.5f)); // If ghosts or nobody is capturing it, reduce to 0 // If hunter is capturing it and it isn't 100 already, increase // If stalemate, keep the same } }
void Update() { VictoryConditions cond = GetComponent <VictoryConditions>(); bool won = cond.checkVictoryConditions(); if (won) { Debug.Log("WE WON"); // MOVE TO ANOTHER LEVEL if (cond.levelName.Equals("TutorialScene")) { SceneManager.LoadScene("BossScene"); } if (cond.levelName.Equals("BossScene")) { SceneManager.LoadScene("Menu"); } } }
/// <summary> /// Begins to reset point back to original capture state /// </summary> /// <returns></returns> public IEnumerator ResetPoint() { while (true) { if (mLit == true) { mCurrentProgress++; if (mCurrentProgress >= 100) { StopCoroutine("ResetPoint"); mResetting = false; mCurrentProgress = 100; } if (mCurrentProgress == 100) { VictoryConditions.GetInstance().CheckHunterVictoryCondition(); } } else { mCurrentProgress--; if (mCurrentProgress <= 0) { StopCoroutine("ResetPoint"); mResetting = false; mCurrentProgress = 0; } if (mCurrentProgress == 0) { VictoryConditions.GetInstance().CheckGhostVictoryConditions(); } } UpdateUI(); UpdateVisuals(); yield return(new WaitForSeconds(0.5f)); } }
public void CheckGoals(City city) { // TODO priority:bug this whole method doesn't seems to work if (VictoryConditions.All(g => g.IsMet(city))) { OnVictory(); } if (DefeatConditions.Any(g => g.IsMet(city))) { OnDefeat(); } foreach (var achievement in PrototypeManager.Instance.Achievements) { if (achievement.IsGoalRelated) { if (achievement.Goals.All(g => g.IsMet(city))) { OnAchievement(achievement); } } } }
private void Awake() { conditions = FindObjectOfType <VictoryConditions>(); }
//Test si le déplacement est autorisé, si oui met à jour TabPosition public static bool majTabPosition(GameObject piece, GameObject target) { String playerColor = (piece.name.Substring(0, 1) == "W")? "White" : "Black"; int iTarget, jTarget, iPiece, jPiece; bool moveAuthorized; iPiece = searchIndexIOfPiece(piece); jPiece = searchIndexJOfPiece(piece); //Si target est un tile if (target.transform.tag == "Tile") { //Récupération des coordonnées du tile dans le nom caseTarget iTarget = Convert.ToInt32(target.name.Substring(4, 1)); jTarget = Convert.ToInt32(target.name.Substring(5, 1)); moveAuthorized = Move.moveAuthorized(iPiece, jPiece, iTarget, jTarget, piece.name, target); if (moveAuthorized) { tabPosition[iTarget, jTarget] = piece; Debug.Log(piece.name + " case" + iTarget + jTarget); //Suppression de piece à son ancien emplacement dans tabposition tabPosition[iPiece, jPiece] = null; BoardStateManagment.eraseControlAreaOf(piece); BoardStateManagment.majBoard(iPiece, jPiece, iTarget, jTarget, piece, target); //Si le joueur se met lui même en échec annulation du déplacement if (VictoryConditions.kingInCheck(playerColor)) { tabPosition[iPiece, jPiece] = piece; tabPosition[iTarget, jTarget] = null; BoardStateManagment.eraseControlAreaOf(piece); BoardStateManagment.majBoard(iPiece, jPiece, iTarget, jTarget, piece, target); return(false); } return(true); } else { return(false); } } //Si target est une piece else { iTarget = searchIndexIOfPiece(target); jTarget = searchIndexJOfPiece(target); moveAuthorized = Move.moveAuthorized(iPiece, jPiece, iTarget, jTarget, piece.name, target); if (moveAuthorized) { //Supression de piece à son ancien emplacement dans tabposition tabPosition[iPiece, jPiece] = null; //Remplacement dans tabPosition de target par piece tabPosition[iTarget, jTarget] = piece; Debug.Log(piece.name + " case" + iTarget + jTarget); BoardStateManagment.eraseControlAreaOf(piece); BoardStateManagment.majBoard(iPiece, jPiece, iTarget, jTarget, piece, target); if (VictoryConditions.kingInCheck(playerColor)) { tabPosition[iPiece, jPiece] = piece; tabPosition[iTarget, jTarget] = target; BoardStateManagment.eraseControlAreaOf(piece); BoardStateManagment.majBoard(iPiece, jPiece, iTarget, jTarget, piece, target); return(false); } return(true); } else { return(false); } } }
void Update() { //Gestion de la camera if (color != camPosition && color == "White") { StartCoroutine(rotatCam(BlackRotation, WhiteRotation, camBlackPosition, camWhitePosition)); print("change camPosition"); camPosition = color; } if (color != camPosition && color == "Black") { StartCoroutine(rotatCam(WhiteRotation, BlackRotation, camWhitePosition, camBlackPosition)); print("change camPosition"); camPosition = color; } //Si clique gauche if (Input.GetMouseButtonDown(0) && CurrentCamera != null) { RaycastHit hit; //Lance un rayon de la caméra vers le curseur souris Ray ray = CurrentCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 500)) { MeshRenderer meshRenderer = hit.transform.GetComponent <MeshRenderer>(); //Si l'objet touché possède un Box collider et le tag "WhitePiece" ou "BlackPiece if (meshRenderer != null && hit.collider.transform.tag == color + "Piece") { //Si une piece a déjà été sélectionnée elle est désélectionné if (pieceSelected != null) { BoardStateManagment.eraseControlAreaOf(pieceSelected); } //La nouvelle pièce ciblé devient sélectionnée pieceSelected = GameObject.Find(hit.collider.transform.name); BoardManagment.moveSelectionCircle(pieceSelected, selectionCircle); particleSelectionCircle.Play(); /*BoardStateManagment.displayControlAreaOf(pieceSelected); */ } } } //Si clique gauche if (Input.GetMouseButtonDown(1)) { RaycastHit hit; Ray ray = CurrentCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 500) && pieceSelected != null) { MeshRenderer meshRenderer = hit.transform.GetComponent <MeshRenderer>(); target = GameObject.Find(hit.transform.name); if (meshRenderer != null && (hit.transform.tag == "Tile") || (hit.transform.tag == vscolor + "Piece")) { moveOK = BoardManagment.movePiece(target, pieceSelected); } else { moveOK = -1; } } if (moveOK == 0) { particleSelectionCircle.Stop(); Debug.Log("GameLoop: verif echec"); if (VictoryConditions.kingInCheck(vscolor)) { if (vscolor == "White") { VictoryConditions.whiteKingInCheck = true; } else { VictoryConditions.blackKingInCheck = true; } Debug.Log("VictoryConditions.searchMovementAuthorized"); VictoryConditions.searchMovementAuthorized(vscolor); if (VictoryConditions.kingIsCheckMate()) { GameObject victoryText = GameObject.Find("VictoryMessage"); Text myText = victoryText.GetComponent <Text>(); myText.text = vscolor + "player win the game, click to return menu"; endGameCanvas.enabled = true; } } temp = vscolor; vscolor = color; color = temp; pieceSelected = null; moveOK = 1; } } }