Inheritance: MonoBehaviour
示例#1
0
        /// <summary>
        /// Vytvori a zobrazi okno se statistikami za posledni hru a nastavi akci, ktera se ma provest po zavreni statistik
        /// </summary>
        /// <param name="endType">typ konce hry</param>
        private void ShowEndGameStats(GameEnd endType)
        {
            //zrusime static mouse a zabranime dalsimu update - hrac pozna ze je konec
            StaticMouse.Enable(false);
            stopUpdating = true;

            Invoke(new Action(() =>
            {
                // vytvorime okno se statistikami za posledni hru
                EndGameStats s = GuiObjectFactory.CreateAndAddPlayerStatsUc(this, currentPlayer, currentPlayer.IsActivePlayer(), new Vector((SharedDef.VIEW_PORT_SIZE.Width - 800) / 2, (SharedDef.VIEW_PORT_SIZE.Height - 500) / 2));
                // a vytvorime akci, ktera se zavola pri zavreni statistik
                s.CloseAction = new Action(() =>
                {
                    // zavreni vyvola bud uzivatel (vlakno gui) nebo GameState (vlakno sceny), proto je potreba synchronizovat
                    Enqueue(new Action(() =>
                    {
                        if (endType != GameEnd.TOURNAMENT_FINISHED)
                        {
                            CloseGameWindowAndCleanup(endType);
                        }
                        else
                        {
                            TournamentFinished();
                        }
                    }));
                });
            }));
        }
示例#2
0
 // Use this for initialization
 void Start()
 {
     ball       = GameObject.FindObjectOfType <Ball>();
     animator   = GetComponent <Animator>();
     pinCounter = GameObject.FindObjectOfType <PinCounter>();
     gameEnd    = GameObject.FindObjectOfType <GameEnd>();
 }
示例#3
0
    // Start is called before the first frame update
    void Start()
    {
        hex     = GameObject.Find("Hex").GetComponent <SetAllHexagonsToDefault>();
        gamEnd  = GameObject.Find("Enemies").GetComponent <GameEnd>();
        respawn = GameObject.Find("Player Respawn");
        blackOut.SetActive(false);
        rend          = GetComponent <Renderer>();
        player        = GetComponent <Player>().data;
        respawnScript = GetComponent <Respwan>();
        playerLight   = GetComponent <PlayerLightManager>();
        rb            = GetComponent <Rigidbody>();
        cam           = Camera.main;
        UnityEngine.Rendering.VolumeProfile volumeProfile = cam.GetComponent <UnityEngine.Rendering.Volume>()?.profile;
        if (!volumeProfile)
        {
            throw new System.NullReferenceException(nameof(UnityEngine.Rendering.VolumeProfile));
        }
        if (!volumeProfile.TryGet(out vignette))
        {
            throw new System.NullReferenceException(nameof(vignette));
        }

        vignette.intensity.Override(0f);

        if (!volumeProfile.TryGet(out colorAdj))
        {
            throw new System.NullReferenceException(nameof(colorAdj));
        }

        colorAdj.saturation.Override(0f);

        fadeOut.SetActive(false);
    }
示例#4
0
        public async Task ConnectAsync()
        {
            connection = new HubConnection(url);
            hubProxy   = connection.CreateHubProxy("ChatHub");
            hubProxy.On <User>("ParticipantLogin", (u) => ParticipantLoggedIn?.Invoke(u));
            hubProxy.On <string>("ParticipantLogout", (n) => ParticipantLoggedOut?.Invoke(n));
            hubProxy.On <string>("ParticipantDisconnection", (n) => ParticipantDisconnected?.Invoke(n));
            hubProxy.On <string>("ParticipantReconnection", (n) => ParticipantReconnected?.Invoke(n));
            hubProxy.On <string>("BroadcastGameStart", (n) => GameStart?.Invoke(n, MessageType.Broadcast));
            hubProxy.On <string>("BroadcastGameEnd", (n) => GameEnd?.Invoke(n, MessageType.Broadcast));
            hubProxy.On <string, string>("BroadcastSetHost", (n, m) => SetNewHost?.Invoke(n, m, MessageType.Broadcast));
            hubProxy.On <string, string>("BroadcastTextMessage", (n, m) => NewTextMessage?.Invoke(n, m, MessageType.Broadcast));
            hubProxy.On <string, byte[]>("BroadcastPictureMessage", (n, m) => NewImageMessage?.Invoke(n, m, MessageType.Broadcast));
            hubProxy.On <string, byte[]>("BroadcastStrokes", (n, m) => NewStrokesCollected?.Invoke(n, m, MessageType.Broadcast));
            hubProxy.On <string, string>("BraodcastAnswerIsRight", (n, m) => Correct?.Invoke(n, m));
            hubProxy.On <string, string>("UnicastTextMessage", (n, m) => NewTextMessage?.Invoke(n, m, MessageType.Unicast));
            hubProxy.On <string, byte[]>("UnicastPictureMessage", (n, m) => NewImageMessage?.Invoke(n, m, MessageType.Unicast));
            hubProxy.On <string>("ParticipantTyping", (p) => ParticipantTyping?.Invoke(p));

            connection.Reconnecting += Reconnecting;
            connection.Reconnected  += Reconnected;
            connection.Closed       += Disconnected;

            ServicePointManager.DefaultConnectionLimit = 10;
            await connection.Start();
        }
示例#5
0
        public void NotifyGameEnd(Nexus nexus)
        {
            var losingTeam = nexus.Team;

            foreach (var p in _playerManager.GetPlayers())
            {
                var coords = _game.Map.GetEndGameCameraPosition(losingTeam);
                var cam    = new MoveCamera(p.Item2.Champion, coords[0], coords[1], coords[2], 2);
                _game.PacketHandlerManager.sendPacket(p.Item2.Peer, cam, Channel.CHL_S2C);
                _game.PacketHandlerManager.sendPacket(p.Item2.Peer, new HideUi(), Channel.CHL_S2C);
            }
            _game.PacketHandlerManager.broadcastPacket(new ExplodeNexus(nexus), Channel.CHL_S2C);

            var timer = new System.Timers.Timer(5000);

            timer.AutoReset = false;
            timer.Elapsed  += (a, b) =>
            {
                var win = new GameEnd(true);
                _game.PacketHandlerManager.broadcastPacketTeam(CustomConvert.getEnemyTeam(losingTeam), win, Channel.CHL_S2C);
                var lose = new GameEnd(false);
                _game.PacketHandlerManager.broadcastPacketTeam(losingTeam, lose, Channel.CHL_S2C);
            };
            timer.Start();
        }
示例#6
0
        private void CheckGameStatus()
        {
            int reqNumOfOpnedCells = this.BoardSize.Height * this.BoardSize.Width - this.Parameters.NumOfMines;

            // Counting how many cells are opened.
            int numOfOpenedCells = 0;

            for (int i = 0; i < this.BoardSize.Height; i++)
            {
                for (int j = 0; j < this.BoardSize.Width; j++)
                {
                    if (this.Board[i, j].State == Cell.CellState.Opened)
                    {
                        numOfOpenedCells++;
                    }
                }
            }

            if ((reqNumOfOpnedCells + this.Parameters.NumOfMines) == (numOfOpenedCells + NumFlags))
            {
                GameEndEventArgs args = new GameEndEventArgs();
                args.Message = "Game Is End!, You Win!";
                args.Score   = ComputeScore();

                GameEnd?.Invoke(this, args);
            }
        }
示例#7
0
        public void NotifyGameEnd(Nexus nexus)
        {
            var losingTeam = nexus.Team;

            foreach (var p in _playerManager.GetPlayers())
            {
                var coords = _game.Map.GetEndGameCameraPosition(losingTeam);
                var cam    = new MoveCamera(p.Item2.Champion, coords[0], coords[1], coords[2], 2);
                _game.PacketHandlerManager.sendPacket(p.Item2.Peer, cam, Channel.CHL_S2C);
                _game.PacketHandlerManager.sendPacket(p.Item2.Peer, new HideUi(), Channel.CHL_S2C);
            }

            _game.PacketHandlerManager.broadcastPacket(new ExplodeNexus(nexus), Channel.CHL_S2C);

            var timer = new System.Timers.Timer(5000)
            {
                AutoReset = false
            };

            timer.Elapsed += (a, b) =>
            {
                var gameEndPacket = new GameEnd(losingTeam != TeamId.TEAM_BLUE);
                _game.PacketHandlerManager.broadcastPacket(gameEndPacket, Channel.CHL_S2C);
            };
            timer.Start();
            Program.SetToExit();
        }
示例#8
0
 private void OnGameEnd()
 {
     if (GameEnd != null)
     {
         GameEnd.Invoke();
     }
 }
示例#9
0
        public void NotifyGameEnd(Vector3 cameraPosition, INexus nexus, List <Pair <uint, ClientInfo> > players)
        {
            var losingTeam = nexus.Team;

            foreach (var p in players)
            {
                var cam = new MoveCamera(p.Item2.Champion, cameraPosition.X, cameraPosition.Y, cameraPosition.Z, 2);
                _packetHandlerManager.SendPacket((int)p.Item2.UserId, cam, Channel.CHL_S2C);
                _packetHandlerManager.SendPacket((int)p.Item2.UserId, new HideUi(), Channel.CHL_S2C);
            }

            _packetHandlerManager.BroadcastPacket(new ExplodeNexus(nexus), Channel.CHL_S2C);

            var timer = new Timer(5000)
            {
                AutoReset = false
            };

            timer.Elapsed += (a, b) =>
            {
                var gameEndPacket = new GameEnd(losingTeam != TeamId.TEAM_BLUE);
                _packetHandlerManager.BroadcastPacket(gameEndPacket, Channel.CHL_S2C);
            };
            timer.Start();
        }
示例#10
0
        private void EndGame(Player plr, GameEnd endType)
        {
            if (gameEnded)
            {
                return;
            }

            gameSession.IsRunning = false;
            gameSession.GameEnded(plr, endType);

            foreach (Player p in players)
            {
                NetOutgoingMessage msg = CreateNetMessage();
                msg.Write((int)PacketType.PLAYER_SCORE_AND_GOLD);
                msg.Write(p.GetId());
                msg.Write(p.Data.MatchPoints);
                msg.Write(p.Data.Gold);
                BroadcastMessage(msg, p);
            }

            gameEnded = true;
            if (endType == GameEnd.WIN_GAME)
            {
                PlayerWon(plr);
            }

            if (GameType != Gametype.TOURNAMENT_GAME)
            {
                RequestStop();
            }
            else
            {
                TournamentGameEnded(plr, endType);
            }
        }
示例#11
0
 // Use this for initialization
 void Start()
 {
     ball         = GameObject.FindObjectOfType <Ball>();
     pinSetter    = GameObject.FindObjectOfType <PinSetter>();
     scoreDisplay = GameObject.FindObjectOfType <ScoreDisplay>();
     gameEnd      = GameObject.FindObjectOfType <GameEnd>();
 }
示例#12
0
 private void setGameEnd()
 {
     gameEnd         = new GameEnd(names, dialogs, playerName);
     names           = gameEnd.getNames();
     dialogs         = gameEnd.getDialogs();
     backdrop.sprite = (Sprite)Resources.Load("Tutorial/street", typeof(Sprite));
     newStory        = "DoneTutorial";
 }
示例#13
0
        void OnApplicationQuit()
        {
            Broker.Global.Publish(GameEnd.Get());

            foreach (var savable in this.Savables)
            {
                savable.Save();
            }
        }
示例#14
0
 public static void FinishEndGame()
 {
     GameEnd?.Invoke();
     CurrentGameState = GameState.End;
     if (Instance.debug)
     {
         Debug.Log("End Game");
     }
 }
示例#15
0
        public void GameEnded(Player plr, GameEnd endType)
        {
            IsRunning    = false;
            matchCreated = false;

            if (serverMgr.GameType == Gametype.TOURNAMENT_GAME)
            {
                matchManager.OnMatchEnd(plr, endType, totalTime, serverMgr);
            }
        }
示例#16
0
        public GameEnd EndGame()
        {
            GameEnd result = Referee.EndGame(OtherPlayer, CurrentPlayer);

            if (result != GameEnd.NoEnd)
            {
                Winner = CurrentPlayer;
            }
            return(result);
        }
示例#17
0
    void Awake()
    {
        InitPlayer();
        instance = this;
        tempX    = gateleft.position.x;
        CreateGateDate();
        ai_end_pos  = gates[0].Destination;
        currentgate = gates[0].Destination;
        endcall     = GameEnd;

        //  Debug.Log(LayerMask.GetMask("Floor"));
    }
 public void CallGameEndMenu()
 {
     if (!SceneManager.GetSceneByName("GameEndScene").isLoaded)
     {
         GameEnd.SetClearFlag(!GameEnd.Cleared);
         SceneManager.LoadScene("GameEndScene", LoadSceneMode.Additive);
     }
     else
     {
         SceneManager.UnloadSceneAsync("GameEndScene");
     }
 }
        public virtual void OnMatchEnd(Player plr, GameEnd endType, float time, ServerMgr server)
        {
            if (endType != GameEnd.WIN_GAME)
            {
                return;
            }

            Player looser = players.Find(p => p.IsActivePlayer() && p.Data.HashId != plr.Data.HashId);

            SetPlayedTogether(plr, looser);
            RewardPlayers(plr, looser, server);
        }
    void Start()
    {
        nowHP = totalHP;

        uiControl = GameObject.Find("/Canvas").GetComponent <UIControl>();
        gameEnd   = GameObject.Find("Canvas/Dialog").GetComponent <GameEnd>();

        healthCircle     = transform.Find("Canvas2").Find("healthCircleImage").GetComponent <Image>();
        behaviourControl = transform.GetComponent <Player2BehaviourControl>();

        healthCircle.color = color2;
    }
示例#21
0
    // Update is called once per frame
    void Update()
    {
        if (GameyManager.gameState != GameyManager.GameState.Menu)
        {
            HP.fillAmount = health / maxHealth;

            if (health <= 0)
            {
                GameyManager.gameState = GameyManager.GameState.End;
                //UI.SetActive(false);

                Transform child = GameEnd.GetComponentsInChildren <Transform>(true)[1];
                child.gameObject.SetActive(true);
                Text winText = GameEnd.GetComponentInChildren <Text>(true);

                switch (Random.Range(1, 5))
                {
                case 1:
                    winText.text = "Nothing but rubble, a shame really";
                    break;

                case 2:
                    winText.text = "My beautiful creations cannot be stopped!";
                    break;

                case 3:
                    winText.text = "Cower before my might!";
                    break;

                case 4:
                    winText.text = "First we take over Jeffs' house...\n\nthen we take over the world!!";
                    break;

                default:
                    winText.text = "Mwahahahaha";
                    break;
                }

                //stop repeated completions
                string levelname = SceneManager.GetActiveScene().name;
                int    add       = levelname.Contains("Tutorial") ? 0 : 4;

                if (GameyManager.levelsCompleted < int.Parse(levelname.Substring(levelname.Length - 1)) + add)
                {
                    GameyManager.levelsCompleted += 1;
                }

                //enable fire effect... or some animation of a house burning down
                Destroy(this.gameObject);
            }
        }
    }
示例#22
0
    void Start()
    {
        instance = this;

        hintTextControl        = transform.Find("HintText").GetComponent <HintTextControl>();
        startShowTextControl   = transform.Find("开始动画").GetComponent <StartShowTextControl>();
        healthBarEnemyControl  = transform.Find("HealthBarEnemy").GetComponent <HealthBarEnemyControl>();
        healthBarPlayerControl = transform.Find("HealthBarPlayer").GetComponent <HealthBarPlayerControl>();
        injuredMaskControl     = transform.Find("InjuredMask").GetComponent <InjuredMaskControl>();
        pausepanelControl      = transform.Find("PausePanel").GetComponent <PausePanelControl>();
        countPanelControl      = transform.Find("CountPanel").GetComponent <CountPanelControl>();
        gameEnd = transform.Find("Dialog").GetComponent <GameEnd>();
    }
示例#23
0
    private void Start()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(this);
        }

        audioSource = GetComponent <AudioSource>();
    }
示例#24
0
    private void Awake()
    {
        playerEnergy = FindObjectOfType <PlayerEnergyLvl>();
        playerData   = FindObjectOfType <Player>().data;
        playerENnemy = FindObjectOfType <PlayerEnemyInteraction>();

        enemy       = GetComponent <Enemy>().data;
        enemyPlayer = GetComponent <EnemyPlayerInteraction>();
        if (GameObject.Find("Enemies"))
        {
            gameEnd = GameObject.Find("Enemies").GetComponent <GameEnd>();
        }
    }
示例#25
0
        private void TournamentGameEnded(Player plr, GameEnd endType)
        {
            isInitialized = false;

            if (gameSession.CheckTournamentFinished(true))
            {
                RequestStop();
                return;
            }

            gameEnded = false;

            players.ForEach(p => p.Data.Reset());
        }
示例#26
0
 private void BT_New_game_Click(object sender, EventArgs e)
 {
     if (Program.GameChoice == true)
     {
         Reversi NewGame = new Reversi(GameBack, return_back);
         NewGame.Show();
     }
     else
     {
         Snake_and_ladders NewGame = new Snake_and_ladders(GameBack, return_back);
         NewGame.Show();
     }
     GameEnd.Close();
     this.Close();
 }
示例#27
0
 public void restart()
 {
     Debug.Log("Button Clicked");
     if (CurrentLevel.currentLevel < 8)
     {
         GameEnd.clearLevelElement();
         CurrentLevel.currentLevel += 1;
         Application.LoadLevel(CurrentLevel.currentLevel);
     }
     else
     {
         GameEnd.clearLevelElement();
         Application.LoadLevel("Begin");
     }
 }
示例#28
0
        /// <summary>
        /// Opens all cells when the game is over.
        /// </summary>
        /// <param name="grp"> Graphics object for drawing.</param>
        public void OpenAllCells(Graphics grp)
        {
            Size sizecell = this.GetParameters().CellSize;

            for (int i = 0; i < this.BoardSize.Height; i++)
            {
                for (int j = 0; j < this.BoardSize.Width; j++)
                {
                    if (this.Board[i, j].State == Cell.CellState.Opened)
                    {
                        continue;
                    }

                    var pen   = Pens.Black;
                    var brush = Brushes.Silver;
                    this.Board[i, j].CellBody.Location = new Point(3 + j * sizecell.Height, 3 + i * sizecell.Width);

                    if (this.Board[i, j].Content == Cell.CellContent.Mine)
                    {
                        brush = Brushes.Red;
                        grp.FillRectangle(brush, this.Board[i, j].CellBody);
                        grp.DrawIcon(new Icon(@"..\..\Icons\Be-Os-Be-Box-BeBox-Minesweeper.ico"), this.Board[i, j].CellBody);
                    }
                    else
                    {
                        grp.FillRectangle(brush, this.Board[i, j].CellBody);
                        grp.DrawString(this.Board[i, j].Number.ToString(), new Font(FontFamily.GenericSerif, 12), Brushes.Black, this.Board[i, j].CellBody);
                    }

                    if (this.Board[i, j].State == Cell.CellState.Flag)
                    {
                        grp.DrawIcon(new Icon(@"..\..\Icons\Everaldo-Crystal-Clear-App-kmines-minesweeper.ico"), this.Board[i, j].CellBody);
                    }

                    this.Board[i, j].State = Cell.CellState.Opened;
                    grp.DrawRectangle(pen, this.Board[i, j].CellBody);
                }
            }

            GameEndEventArgs args = new GameEndEventArgs();

            args.Message = "Game Is End! You Dead!";
            args.Score   = ComputeScore();

            GameEnd?.Invoke(this, args);
        }
示例#29
0
 // Start is called before the first frame update
 void Start()
 {
     maxHealth = health;
     if (GameyManager.gameState != GameyManager.GameState.Menu)
     {
         maxHealth = health;
         //UI = GameObject.FindWithTag("MainUI");
         //PauseEnd = GameObject.FindWithTag("PauseUI");
         //GameEnd = GameObject.FindWithTag("EndUI");
         Transform child = GameEnd.GetComponentsInChildren <Transform>(true)[1];
         child.gameObject.SetActive(false);
     }
     if (UI == null)
     {
         Debug.Log("no UI found");
     }
 }
示例#30
0
 public void DecideWinner()
 {
     if (_Players.Count != 1)
     {
         foreach (Player player in _Players)
         {
             if (player.Hand.Count < 5)
             {
                 throw new ConstraintException("Game is in process.");
             }
         }
     }
     _Winner = GetTopRanking();
     _Winner.WinMoney(_Pot);
     _Pot = 0;
     GameEnd?.Invoke(this, EventArgs.Empty);
 }
示例#31
0
    void Start()
    {
        _createfood.enabled = false;
        _createitems.enabled = false;
        _createweather.enabled = false;

        //初始化狀態機
        Prepare _p = new Prepare();
        Gaming _g = new Gaming();
        EndingPrepare _ep = new EndingPrepare();
        GameEnd _e = new GameEnd();

        _p.AddTransition(_g, "GoGaming");
        _g.AddTransition(_ep, "GoPrepareEnd");
        _ep.AddTransition(_e, "GoEnd");

        AddState(_p, "PrepareGame");
        AddState(_g, "Gaming");
        AddState(_ep, "PrepareEnd");
        AddState(_e, "TheEnd");

        InitFSM();
    }
示例#32
0
 private void setGameEnd()
 {
     gameEnd = new GameEnd (names, dialogs, playerName);
     names = gameEnd.getNames ();
     dialogs = gameEnd.getDialogs ();
     backdrop.sprite = (Sprite)Resources.Load("Tutorial/street", typeof(Sprite));
     newStory = "DoneTutorial";
 }
    public override void ShowGui(RuleData ruleData)
    {
        GUILayout.BeginHorizontal();

        GUILayout.Label("The game ends as a", RuleGUI.ruleLabelStyle);

        // ending dropdown
        int index = endingDropDown.Draw();
        if (index > -1)
        {
            string result = endingDropDown.Content[index].text;
            Ending = (GameEnd)System.Enum.Parse(typeof(GameEnd), result);
        }

        switch(Ending)
        {
            case GameEnd.WIN:
                GUILayout.Label("for", RuleGUI.ruleLabelStyle);

                // winnerdropdown
                int resultIndex = winningDropDown.Draw();
                if (resultIndex > -1)
                {
                    int resultId = Reactor.RuleGenerator.Gui.GetActorDataByLabel(winningDropDown.Content[resultIndex].text).id;

                    WinningActor = Reactor.RuleGenerator.GetActor(resultId);
                    ChangeParameter("WinningActor", ruleData.parameters, resultId);
                }

                break;

            case GameEnd.LOSE:
                GUILayout.Label("for", RuleGUI.ruleLabelStyle);

                // loserdropdown
                resultIndex = losingDropDown.Draw();
                if (resultIndex > -1)
                {
                    int resultId = Reactor.RuleGenerator.Gui.GetActorDataByLabel(losingDropDown.Content[resultIndex].text).id;

                    LosingActor = Reactor.RuleGenerator.GetActor(resultId);
                    ChangeParameter("LosingActor", ruleData.parameters, resultId);
                }
                break;
        }
        GUILayout.EndHorizontal();
    }