예제 #1
0
        public void Go(GameTypeFlag flags)
        {
            StartNewReplay();

            _indexInBlock += 2;

            _stream.WriteByte((byte)Node.Go);
            _stream.WriteByte((byte)flags);

            Debug.Assert(_indexInBlock == _stream.Length % 1024);
        }
        public void Go(GameTypeFlag flags)
        {
            if ((flags & GameTypeFlag.Sanma) != 0)
            {
                _current = _sanma;
            }
            else
            {
                _current = _yonma;
            }

            _current.Go(flags);
        }
예제 #3
0
 public void GameType(GameTypeFlag flags)
 {
     _sb.AppendLine($"GameType {flags}");
 }
예제 #4
0
        void InitGameHole(GameModeFlag gameMode, GameTypeFlag gameType, bool IsRepeted = false, GameMapFlag Map = GameMapFlag.Blue_Lagoon)
        {
            byte WP;
            byte WD;
            byte P;
            int  x;

            int[] H;
            int[] M;

            if (Map == GameMapFlag.Unknown)
            {
                Map = (GameMapFlag)GameTools.GetMap();
            }

            if (gameType == GameTypeFlag.HOLE_REPEAT && IsRepeted)
            {
                for (x = 0; x <= 17; x++)
                {
                    WP = (byte)rnd.Next(0, 8);
                    WD = (byte)rnd.Next(255);
                    P  = (byte)rnd.Next(1, 3);

                    this[x].Hole          = (byte)(x + 1);
                    this[x].Weather       = (byte)rnd.Next(0, 3);
                    this[x].WindPower     = WP;
                    this[x].WindDirection = WD;
                    this[x].Map           = Map;
                    this[x].Pos           = P;
                }
                // leave
                return;
            }
            switch (gameMode)
            {
            case GameModeFlag.GAME_MODE_FRONT:
                for (x = 0; x <= 17; x++)
                {
                    this[x].Hole          = (byte)(x + 1);
                    this[x].Weather       = (byte)rnd.Next(0, 3);
                    this[x].WindPower     = (byte)rnd.Next(0, 8);
                    this[x].WindDirection = (byte)rnd.Next(255);
                    this[x].Map           = Map;
                    this[x].Pos           = (byte)rnd.Next(1, 3);
                }
                break;

            case GameModeFlag.GAME_MODE_BACK:
                for (x = 0; x <= 17; x++)
                {
                    this[x].Hole          = (byte)(18 - x);
                    this[x].Weather       = (byte)rnd.Next(0, 3);
                    this[x].WindPower     = (byte)rnd.Next(0, 8);
                    this[x].WindDirection = (byte)rnd.Next(255);
                    this[x].Pos           = (byte)rnd.Next(1, 3);
                }
                break;

            case GameModeFlag.GAME_MODE_SHUFFLE:
            case GameModeFlag.GAME_MODE_RANDOM:
                H = GameTools.RandomHole();
                for (x = 0; x <= 17; x++)
                {
                    this[x].Hole          = (byte)H[x];
                    this[x].Weather       = (byte)rnd.Next(0, 3);
                    this[x].WindPower     = (byte)rnd.Next(0, 8);
                    this[x].WindDirection = (byte)rnd.Next(255);
                    this[x].Map           = Map;
                    this[x].Pos           = (byte)rnd.Next(1, 3);
                }
                break;

            case GameModeFlag.GAME_MODE_SSC:
                H = GameTools.RandomHole();
                M = GameTools.RandomMap();
                for (x = 0; x <= 17; x++)
                {
                    this[x].Hole          = (byte)H[x];
                    this[x].Weather       = (byte)rnd.Next(0, 3);
                    this[x].WindPower     = (byte)rnd.Next(0, 8);
                    this[x].WindDirection = (byte)rnd.Next(255);
                    this[x].Map           = (GameMapFlag)M[x];
                    this[x].Pos           = (byte)rnd.Next(1, 3);
                }
                this.Last().Hole = (byte)(rnd.Next(0, 2) + 1);
                this.Last().Map  = GameMapFlag.Special_Flag;
                break;

            default:
                for (x = 0; x <= 17; x++)
                {
                    this[x].Hole          = (byte)(x + 1);
                    this[x].Weather       = (byte)rnd.Next(0, 3);
                    this[x].WindPower     = (byte)rnd.Next(0, 8);
                    this[x].WindDirection = (byte)rnd.Next(255);
                    this[x].Map           = Map;
                    this[x].Pos           = (byte)rnd.Next(1, 3);
                }
                break;
            }
        }
예제 #5
0
 public void Init(GameModeFlag Mode, GameTypeFlag Type, bool Repeted, GameMapFlag Map, byte holeCount)
 {
     m_holeCount = holeCount;
     InitGameHole(Mode, Type, Repeted, Map);
 }
예제 #6
0
        public static byte GetEXP(GameTypeFlag GameType, byte Map, byte Rank, byte SumPlayer, byte SumHole)
        {
            byte[] exp_3h;
            byte[] exp_6h;
            byte[] exp_9h;
            byte[] exp_18h;
            switch (GameType)
            {
            case GameTypeFlag.VERSUS_STROKE:
                // Default
                exp_3h  = new byte[] { 0, 0, 0, 0 };
                exp_6h  = new byte[] { 0, 0, 0, 0 };
                exp_9h  = new byte[] { 0, 0, 0, 0 };
                exp_18h = new byte[] { 0, 0, 0, 0 };
                switch (GetDifficulty(Map))
                {
                case 1:
                    // Declare Versus Mode Exp Table
                    switch (SumPlayer)
                    {
                    case 2:
                        exp_3h  = new byte[] { 7, 6, 0, 0 };
                        exp_6h  = new byte[] { 14, 10, 0, 0 };
                        exp_9h  = new byte[] { 20, 15, 0, 0 };
                        exp_18h = new byte[] { 40, 29, 0, 0 };
                        break;

                    case 3:
                        exp_3h  = new byte[] { 9, 8, 7, 0 };
                        exp_6h  = new byte[] { 17, 15, 13, 0 };
                        exp_9h  = new byte[] { 25, 22, 18, 0 };
                        exp_18h = new byte[] { 50, 43, 36, 0 };
                        break;

                    case 4:
                        exp_3h  = new byte[] { 11, 10, 9, 8 };
                        exp_6h  = new byte[] { 21, 19, 17, 15 };
                        exp_9h  = new byte[] { 31, 29, 25, 22 };
                        exp_18h = new byte[] { 62, 56, 49, 42 };
                        break;
                    }
                    break;

                case 2:
                    switch (SumPlayer)
                    {
                    case 2:
                        exp_3h  = new byte[] { 8, 6, 0, 0 };
                        exp_6h  = new byte[] { 14, 11, 0, 0 };
                        exp_9h  = new byte[] { 21, 16, 0, 0 };
                        exp_18h = new byte[] { 41, 30, 0, 0 };
                        break;

                    case 3:
                        exp_3h  = new byte[] { 9, 8, 7, 0 };
                        exp_6h  = new byte[] { 18, 16, 13, 0 };
                        exp_9h  = new byte[] { 26, 23, 19, 0 };
                        exp_18h = new byte[] { 52, 45, 38, 0 };
                        break;

                    case 4:
                        exp_3h  = new byte[] { 12, 11, 9, 8 };
                        exp_6h  = new byte[] { 22, 20, 18, 16 };
                        exp_9h  = new byte[] { 33, 30, 26, 23 };
                        exp_18h = new byte[] { 65, 59, 52, 45 };
                        break;
                    }
                    break;

                case 3:
                    switch (SumPlayer)
                    {
                    case 2:
                        exp_3h  = new byte[] { 8, 6, 0, 0 };
                        exp_6h  = new byte[] { 15, 11, 0, 0 };
                        exp_9h  = new byte[] { 22, 16, 0, 0 };
                        exp_18h = new byte[] { 43, 32, 0, 0 };
                        break;

                    case 3:
                        exp_3h  = new byte[] { 10, 9, 7, 0 };
                        exp_6h  = new byte[] { 19, 16, 14, 0 };
                        exp_9h  = new byte[] { 27, 24, 20, 0 };
                        exp_18h = new byte[] { 54, 47, 40, 0 };
                        break;

                    case 4:
                        exp_3h  = new byte[] { 12, 11, 10, 9 };
                        exp_6h  = new byte[] { 23, 21, 19, 16 };
                        exp_9h  = new byte[] { 34, 31, 28, 24 };
                        exp_18h = new byte[] { 67, 62, 55, 47 };
                        break;
                    }
                    break;

                case 4:
                    switch (SumPlayer)
                    {
                    case 2:
                        exp_3h  = new byte[] { 8, 7, 0, 0 };
                        exp_6h  = new byte[] { 16, 12, 0, 0 };
                        exp_9h  = new byte[] { 23, 18, 0, 0 };
                        exp_18h = new byte[] { 45, 35, 0, 0 };
                        break;

                    case 3:
                        exp_3h  = new byte[] { 11, 9, 8, 0 };
                        exp_6h  = new byte[] { 20, 18, 15, 0 };
                        exp_9h  = new byte[] { 30, 26, 22, 0 };
                        exp_18h = new byte[] { 58, 51, 44, 0 };
                        break;

                    case 4:
                        exp_3h  = new byte[] { 13, 12, 11, 10 };
                        exp_6h  = new byte[] { 25, 23, 21, 18 };
                        exp_9h  = new byte[] { 37, 34, 30, 27 };
                        exp_18h = new byte[] { 72, 67, 60, 53 };
                        break;
                    }
                    break;

                case 5:
                    switch (SumPlayer)
                    {
                    case 2:
                        exp_3h  = new byte[] { 9, 7, 0, 0 };
                        exp_6h  = new byte[] { 17, 14, 0, 0 };
                        exp_9h  = new byte[] { 25, 20, 0, 0 };
                        exp_18h = new byte[] { 49, 39, 0, 0 };
                        break;

                    case 3:
                        exp_3h  = new byte[] { 12, 10, 9, 0 };
                        exp_6h  = new byte[] { 22, 20, 17, 0 };
                        exp_9h  = new byte[] { 33, 29, 25, 0 };
                        exp_18h = new byte[] { 64, 57, 50, 0 };
                        break;

                    case 4:
                        exp_3h  = new byte[] { 14, 13, 12, 11 };
                        exp_6h  = new byte[] { 27, 26, 23, 21 };
                        exp_9h  = new byte[] { 41, 38, 34, 31 };
                        exp_18h = new byte[] { 80, 75, 68, 61 };
                        break;
                    }
                    break;
                }
                switch (SumHole)
                {
                case 3:
                {
                    return(exp_3h[Rank - 1]);
                }

                case 6:
                {
                    return(exp_6h[Rank - 1]);
                }

                case 9:
                {
                    return(exp_9h[Rank - 1]);
                }

                case 18:
                {
                    return(exp_18h[Rank - 1]);
                }

                default:
                {
                    return(0);
                }
                }

            case GameTypeFlag.VERSUS_MATCH:
                break;

            case GameTypeFlag.CHAT_ROOM:
                break;

            case GameTypeFlag.TOURNEY:
                break;

            case GameTypeFlag.TOURNEY_TEAM:
                break;

            case GameTypeFlag.TOURNEY_GUILD:
                break;

            case GameTypeFlag.PANG_BATTLE:
                break;

            case GameTypeFlag.CHIP_IN_PRACTICE:
                break;

            case GameTypeFlag.SSC:
                break;

            case GameTypeFlag.HOLE_REPEAT:
            {
                if (SumHole > 18)
                {
                    return(0);
                }
                return(SumHole);
            }

            case GameTypeFlag.GRANDPRIX:
                break;
            }

            return(0);
        }