using System;
using System.Windows.Forms;
using System.Threading;
using System.Collections.Generic;
using ArcheBuddy.Bot.Classes;
namespace ScarecrowAlternative {
public class ScarecrowAlternative : Core {
public void PluginRun() {
InitItemsList();
// SetPlantAlgoritm(PlantAlgoritm.Randomized;
SetPlantAlgoritm(PlantAlgoritm.MaxPerfomance);
// Activate an infinite loop (true: activate, false: desactivate)
bool UseLoop = false;
// How long to wait after each loop in MS (milliseconds)
int LoopTime = 3600000;
// Create one or multiple group of farm
// Just replace the "11111" with your Farm ID
// Use the Scarecrow plugin to quickly find your Farm ID
// Example:
List<uint> FarmGroup1 = new List<uint>();
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
FarmGroup1.Add(11111);
//FarmGroup1.Add(11111);
//List<uint> FarmGroup2 = new List<uint>();
//FarmGroup2.Add(11111);
//FarmGroup2.Add(11111);
// Create one or multiple group of item to collect/plant
// Just enter the name of the item that are added at the bottom of this file
// Take notice that you can't mix Plant/Tree with Animals so use seperate group.
// Also, the first item you add will be the first item that will get processed.
// Example:
List<object> ItemGroup1 = new List<object>();
ItemGroup1.Add(MaleCashmereYata);
ItemGroup1.Add(FemaleCashmereYata);
List<object> ItemGroup2 = new List<object>();
ItemGroup2.Add(CashmereYataCalf);
//ItemGroup2.Add(Hen);
bool StopLoop = false;
while (!StopLoop) {
// This is where you set which item to collect using which Farm Group and Item Group
// Use CollectItems for Plants/Tree and CollectAnimals for Animals
// Example:
// CollectItems(FarmGroup1, ItemGroup1);
// PlantItems(FarmGroup1, ItemGroup1);
// CollectItems(FarmGroup2, ItemGroup1);
CollectAnimals(FarmGroup1, ItemGroup1);
PlantAnimals(FarmGroup1, ItemGroup2);
PlantItems(FarmGroup1, ItemGroup2);
if (UseLoop) {
Thread.Sleep(LoopTime);
} else {
StopLoop = true;
}
}
}
public List<object> CashmereYataCalf = new List<object>();
public List<object> MaleCashmereYata = new List<object>();
public List<object> FemaleCashmereYata = new List<object>();
// public List<object> Hen = new List<object>();
// For animal it's a bit different but you should be able to figure it out by following how I did it for Sheep and Hen
public void InitItemsList() {
//Cashmere Yata Calf
List<string> PlantCashmereYataCalf = new List<string>();
PlantCashmereYataCalf.Add("Cashmere Yata Calf");
PlantCashmereYataCalf.Add("SnakeFromBorder");
CashmereYataCalf.Add(PlantCashmereYataCalf);
// Female Cashmere Yata
List<string> PregFemaleCashmereYata = new List<string>();
List<string> DiseasedFemaleCashmereYata = new List<string>();
List<string> HungryFemaleCashmereYata = new List<string>();
List<string> DyingFemaleCashmereYata = new List<string>();
List<string> NormalFemaleCashmereYata = new List<string>();
List<string> ThrivingFemaleCashmereYata = new List<string>();
PregFemaleCashmereYata.Add("Big-belly Female Cashmere Yata");
PregFemaleCashmereYata.Add("Husbandry: Spend up to 200 Labor to birth a livestock's calf.");
DiseasedFemaleCashmereYata.Add("Sick Female Cashmere Yata");
DiseasedFemaleCashmereYata.Add("Husbandry: Spend 3 Labor and 1 Livestock Supplement to treat sick livestock.");
HungryFemaleCashmereYata.Add("Hungry Female Cashmere Yata");
HungryFemaleCashmereYata.Add("Husbandry: Spend 3 Labor and 1 Combined Feed to help livestock grow.");
NormalFemaleCashmereYata.Add("Female Cashmere Yata");
NormalFemaleCashmereYata.Add("Husbandry: Spend 3 Labor and 1 Combined Feed to help livestock grow.");
ThrivingFemaleCashmereYata.Add("Thriving Female Cashmere Yata");
ThrivingFemaleCashmereYata.Add("Husbandry: Spend 15 Labor to shear large livestock.");
DyingFemaleCashmereYata.Add("Dying Female Cashmere Yata");
DyingFemaleCashmereYata.Add("Husbandry: Spend 15 Labor to shear large livestock.");
FemaleCashmereYata.Add(PregFemaleCashmereYata);
FemaleCashmereYata.Add(DiseasedFemaleCashmereYata);
FemaleCashmereYata.Add(HungryFemaleCashmereYata);
FemaleCashmereYata.Add(DyingFemaleCashmereYata);
FemaleCashmereYata.Add(NormalFemaleCashmereYata);
FemaleCashmereYata.Add(ThrivingFemaleCashmereYata);
// Male Cashmere Yata
List<string> StudMaleCashmereYata = new List<string>();
List<string> DiseasedMaleCashmereYata = new List<string>();
List<string> HungryMaleCashmereYata = new List<string>();
List<string> DyingMaleCashmereYata = new List<string>();
List<string> NormalMaleCashmereYata = new List<string>();
List<string> ThrivingMaleCashmereYata = new List<string>();
StudMaleCashmereYata.Add("Cashmere Yata Stud");
StudMaleCashmereYata.Add("Husbandry: Spend up to 10 Labor to encourage eager livestock.");
DiseasedMaleCashmereYata.Add("Sick Male Cashmere Yata");
DiseasedMaleCashmereYata.Add("Husbandry: Spend 3 Labor and 1 Livestock Supplement to treat sick livestock.");
HungryMaleCashmereYata.Add("Hungry Male Cashmere Yata");
HungryMaleCashmereYata.Add("Husbandry: Spend 3 Labor and 1 Combined Feed to help livestock grow.");
NormalMaleCashmereYata.Add("Male Cashmere Yata");
NormalMaleCashmereYata.Add("Husbandry: Spend 3 Labor and 1 Combined Feed to help livestock grow.");
ThrivingMaleCashmereYata.Add("Thriving Male Cashmere Yata");
ThrivingMaleCashmereYata.Add("Husbandry: Spend 15 Labor to shear large livestock.");
DyingMaleCashmereYata.Add("Dying Male Cashmere Yata");
DyingMaleCashmereYata.Add("Husbandry: Spend 15 Labor to shear large livestock.");
MaleCashmereYata.Add(StudMaleCashmereYata);
MaleCashmereYata.Add(DiseasedMaleCashmereYata);
MaleCashmereYata.Add(HungryMaleCashmereYata);
MaleCashmereYata.Add(DyingMaleCashmereYata);
MaleCashmereYata.Add(NormalMaleCashmereYata);
MaleCashmereYata.Add(ThrivingMaleCashmereYata);
// List<string> NormalHen = new List<string>();
// List<string> ThrivingHen = new List<string>();
// NormalHen.Add("Hen");
// NormalHen.Add("Husbandry: Spend 1 Labor and 1 Ground Grain to feed livestock.");
// ThrivingHen.Add("Thriving Hen");
// ThrivingHen.Add("Husbandry: Spend up to 5 Labor to gather eggs.");
// Hen.Add(NormalHen);
// Hen.Add(ThrivingHen);
}
public void CollectItems(List<uint> Scarecrow, List<object> Items) {
foreach (uint f in Scarecrow) {
Log("Farm ID: " + f);
foreach (List<string> s in Items) {
Log("-> Collect " + s[0]);
CollectItemsAtFarm(s[0], s[1], f);
}
}
}
public void CollectAnimals(List<uint> Scarecrow, List<object> Items) {
foreach (uint f in Scarecrow) {
Log("Farm ID: " + f);
foreach (List<object> o in Items) {
foreach(List<string> s in o) {
// Skip the "Plant" List<string>
if (s != o[0]) {
Log("-> Collect " + s[0]);
CollectItemsAtFarm(s[0], s[1], f);
}
}
}
}
}
public void PlantAnimals(List<uint> Scarecrow, List<object> Items) {
foreach (uint f in Scarecrow) {
Log("Farm ID: " + f);
foreach (List<object> o in Items) {
foreach(List<string> s in o) {
// It will only process the first List<string> in the List<object> and ignore the others hence why it's important to add the "Plant" List<string> first.
if (s == o[0]) {
if (s[1] == "SnakeFromBorder") {
SetPlantMotionType(PlantMotionType.SnakeFromBorder);
} else if (s[1] == "Standart") {
SetPlantMotionType(PlantMotionType.Standart);
} else if (s[1] == "SnakeFromCenter") {
SetPlantMotionType(PlantMotionType.SnakeFromCenter);
} else if (s[1] == "SecondStandart") {
SetPlantMotionType(PlantMotionType.SecondStandart);
}
Log("-> Plant " + s[0]);
PlantItemsAtFarm(s[0], f);
}
}
}
}
}
public void PlantItems(List<uint> Scarecrow, List<object> Items) {
foreach (uint f in Scarecrow) {
Log("Farm ID: " + f);
foreach (List<string> s in Items) {
if (s[3] == "SnakeFromBorder") {
SetPlantMotionType(PlantMotionType.SnakeFromBorder);
} else if (s[3] == "Standart"){
SetPlantMotionType(PlantMotionType.Standart);
}
Log("-> Plant " + s[2]);
PlantItemsAtFarm(s[2], f);
}
}
}
}
}