public bool IsRockMineAble(MiningObject rock) => IsRockMineAbleAt(rock.X, rock.Y);
public bool MineRock(MiningObject rock, string axe) { _minedRocks.Add(rock); return(MineRockAt(rock.X, rock.Y, axe)); }
public bool MineMultipleColoredRocks(string axe, string[] colors, bool waitForRocks = false) { try { if (IsAnyMineAbleRock()) { var tempRocks = Rocks.ToList().FindAll(r => !_minedRocks.Contains(r)); var coloredRocks = new List <MiningObject>(); foreach (var rock in tempRocks) { if (rock.IsGoldMember == Bot.Game.IsGoldMember && IsRockMineAble(rock) && colors.ToList().Contains(rock.Color)) { coloredRocks.Add(rock); } else if (IsRockMineAble(rock) && colors.ToList().Contains(rock.Color)) { coloredRocks.Add(rock); } } if (coloredRocks.Count > 0) { _lastRock = FindClosestRock(coloredRocks); if (_lastRock != null) { MineRock(_lastRock, axe); return(true); } } _minedRocks.Clear(); if (!IsColoredRocksMineable(colors)) { int delay = 0; if (colors.Contains("Red")) { _delayIfNoRockMineable.Set(30000); delay = 30000; } else if (colors.Contains("Blue")) { _delayIfNoRockMineable.Set(30000); delay = 30000; } else if (colors.Contains("Green")) { _delayIfNoRockMineable.Set(30000); delay = 30000; } else if (colors.Contains("Prism")) { _delayIfNoRockMineable.Set(60000); delay = 60000; } else if (colors.Contains("Pale")) { _delayIfNoRockMineable.Set(60000); delay = 60000; } else if (colors.Contains("Dark")) { _delayIfNoRockMineable.Set(180000); delay = 180000; } else if (colors.Contains("Rainbow")) { _delayIfNoRockMineable.Set(180000); delay = 180000; } Bot.PrintLogMessage($"There is no specific colored mine able rocks. Waiting for {TimeSpan.FromMilliseconds(delay).FormatTimeString()}"); } #if DEBUG Rocks.ToList().FindAll(r => colors.Contains(r.Color)).ForEach(r => Console.WriteLine($"Is Mineable {r.Color}({r.X}, {r.Y}): {IsRockMineAble(r)}")); Rocks.ToList().ForEach(r => Console.WriteLine($"Is Mineable {r.Color}({r.X}, {r.Y}): {IsRockMineAble(r)}")); #endif } if (Bot.Game.HasItemName(axe) && waitForRocks) { return(true); } } catch (Exception e) { Console.WriteLine(e); throw; } return(false); }