// || 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); }
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); }