Beispiel #1
0
    // || HasFlag(CellFlags.EnemyPac)
    // || HasFlag(CellFlags.MyPac);

    public bool SetPellet(int count)
    {
        if (PelletCount.HasValue && PelletCount == count)
        {
            if (count > 0)
            {
                SetFlag(CellFlags.Pellet);
            }
            return(false);
        }

        if (count > 0)
        {
            SetFlag(CellFlags.Pellet | CellFlags.HadPellet);

            if (count >= 10)
            {
                SetFlag(CellFlags.GemPellet);
            }
        }
        else
        {
            if (PelletCount >= 10)
            {
                ResetFlag(CellFlags.GemPellet);
            }
            if (Flags.CHasFlag(CellFlags.HadPellet))
            {
                ResetFlag(CellFlags.HadPellet);
            }
        }

        PelletCount = count;
        return(true);
    }
Beispiel #2
0
    public static float GetCellValue(CellFlags mapFlags)
    {
        var adjValue = -0.2f;

        if (mapFlags.CHasFlag(CellFlags.Wall))
        {
            adjValue = 0;
        }
        else if (mapFlags.CHasFlag(CellFlags.GemPellet))
        {
            adjValue = 10;
        }
        else if (mapFlags.CHasFlag(CellFlags.HadPellet))
        {
            adjValue = 2;
        }
        else if (!mapFlags.CHasFlag(CellFlags.Seen))
        {
            adjValue = 1;
        }
        else if (mapFlags.CHasFlag(CellFlags.EnemyPac))
        {
            adjValue = -5;
        }
        else if (mapFlags.CHasFlag(CellFlags.MyPac))
        {
            adjValue = -2;
        }
        else
        {
            return(-0.2f);
        }

        return(adjValue);
    }