public ActionResult CreateGarden(GardenCreationViewModel model) { ActionResult result = View(model); if (ModelState.IsValid) { UserManager userManager = new UserManager(); Garden garden = new Garden(); ///using Trent's helper method to get a userID garden.UserID = RetrieveUserId(); garden.GardenDescription = model.GardenDescription; garden.GardenName = model.GardenName; garden.GroupID = model.GroupID; garden.GardenRegion = model.RegionID.ToString(); GardenManager gardenManager = new GardenManager(); if (gardenManager.AddGarden(garden)) { ViewBag.StatusMessage = "Your garden was created!"; } result = RedirectToAction("Details", "Group", new { id = garden.GroupID }); } return(result); }
public override void OnStartServer() { UnlockSeedSlot(); if (seedInventory[0] < 1) { seedInventory[0] = 1; } gardenManager = GameObject.FindObjectOfType <GardenManager>(); if (gardenManager == null) { Debug.LogError("Couldn't find GardenManager object."); } else { // TODO: Check when playerName is initialized. var myGarden = gardenManager.LookupPlayerGarden(playerName); if (myGarden == null) { myGarden = gardenManager.CreatePlayerGarden(playerName); } var myGardenId = myGarden.gameObject.GetComponent <NetworkIdentity>(); AssignGarden(myGardenId); EnterGarden(myGardenId); } }
private void Awake() { if (instance != null) { Destroy(this); } instance = this; }
public void AreaReporterTest() { GardenManager target = new GardenManager(); Garden currentGarden = new Garden(10, 20, "Bob"); string expected = "Bob : 200.00"; string actual; actual = target.AreaReporter(currentGarden); Assert.AreEqual(expected, actual); }
public void ChargesReporterTest() { GardenManager target = new GardenManager(); // TODO: Initialize to an appropriate value Garden currentGarden = new Garden(10, 20, "Bob"); currentGarden.AddCharge(123.45); currentGarden.AddCharge(678.90); string expected = "Bob : $802.35"; string actual; actual = target.ChargesReporter(currentGarden); Assert.AreEqual(expected, actual); }
protected async Task <bool> Gardening() { var watering = GardenManager.Plants.Where(r => !Blacklist.Contains(r) && r.Distance2D(Core.Player) < 5).ToArray(); foreach (var plant in watering) { //Water it if it needs it or if we have fertilized it 5 or more times. if (AlwaysWater || GardenManager.NeedsWatering(plant)) { var result = GardenManager.GetCrop(plant); if (result != null) { Log("Watering {0} {1:X}", result, plant.ObjectId); plant.Interact(); if (await Coroutine.Wait(5000, () => Talk.DialogOpen)) { Talk.Next(); if (await Coroutine.Wait(5000, () => SelectString.IsOpen)) { if (await Coroutine.Wait(5000, () => SelectString.LineCount > 0)) { //Harvest drops it down to two if (SelectString.LineCount == 4) { SelectString.ClickSlot(1); await Coroutine.Sleep(PostInteractDelay); } else { Log("Plant is ready to be harvested"); SelectString.ClickSlot(1); } } } } } else { Log("GardenManager.GetCrop returned null {0:X}", plant.ObjectId); } } } var plants = GardenManager.Plants.Where(r => r.Distance2D(Core.Player) < 5).ToArray(); foreach (var plant in plants) { var result = GardenManager.GetCrop(plant); if (result != null) { Log("Fertilizing {0} {1:X}", GardenManager.GetCrop(plant), plant.ObjectId); plant.Interact(); if (await Coroutine.Wait(5000, () => Talk.DialogOpen)) { Talk.Next(); if (await Coroutine.Wait(5000, () => SelectString.IsOpen)) { if (await Coroutine.Wait(5000, () => SelectString.LineCount > 0)) { //Harvest drops it down to two if (SelectString.LineCount == 4) { SelectString.ClickSlot(0); if (await Coroutine.Wait(2000, () => GardenManager.ReadyToFertilize)) { if (GardenManager.Fertilize() == FertilizeResult.Success) { LogVerbose("Plant with objectId {0:X} was fertilized", plant.ObjectId); await Coroutine.Sleep(PostInteractDelay); } } else { LogVerbose("Plant with objectId {0:X} not able to be fertilized, trying again later", plant.ObjectId); } } else { LogVerbose("Plant is ready to be harvested"); SelectString.ClickSlot(1); } } } } } } return(_done = true); }
//public static void Log(string text, params object[] args) { Logger.Info(text, args); } public static async Task <bool> Main(Vector3 gardenLoc) { var watering = GardenManager.Plants.Where(r => !Blacklist.Contains(r) && r.Distance2D(gardenLoc) < 10).ToArray(); foreach (var plant in watering) { //Water it if it needs it or if we have fertilized it 5 or more times. if (AlwaysWater || GardenManager.NeedsWatering(plant)) { var result = GardenManager.GetCrop(plant); if (result != null) { Log($"Watering {result} {plant.ObjectId:X}"); await Navigation.FlightorMove(plant.Location); plant.Interact(); if (!await Coroutine.Wait(5000, () => Talk.DialogOpen)) { continue; } Talk.Next(); if (!await Coroutine.Wait(5000, () => SelectString.IsOpen)) { continue; } if (!await Coroutine.Wait(5000, () => SelectString.LineCount > 0)) { continue; } if (SelectString.LineCount == 4) { SelectString.ClickSlot(1); await Coroutine.Sleep(2300); } else { Log("Plant is ready to be harvested"); SelectString.ClickSlot(1); await Coroutine.Sleep(1000); } } else { Log($"GardenManager.GetCrop returned null {plant.ObjectId:X}"); } } } var plants = GardenManager.Plants.Where(r => r.Distance2D(gardenLoc) < 10).ToArray(); foreach (var plant in plants) { var result = GardenManager.GetCrop(plant); if (result == null) { continue; } Log($"Fertilizing {GardenManager.GetCrop(plant)} {plant.ObjectId:X}"); await Navigation.FlightorMove(plant.Location); plant.Interact(); if (!await Coroutine.Wait(5000, () => Talk.DialogOpen)) { continue; } Talk.Next(); if (!await Coroutine.Wait(5000, () => SelectString.IsOpen)) { continue; } if (!await Coroutine.Wait(5000, () => SelectString.LineCount > 0)) { continue; } if (SelectString.LineCount == 4) { SelectString.ClickSlot(0); if (await Coroutine.Wait(2000, () => GardenManager.ReadyToFertilize)) { if (GardenManager.Fertilize() != FertilizeResult.Success) { continue; } Log($"Plant with objectId {plant.ObjectId:X} was fertilized"); await Coroutine.Sleep(2300); } else { Log($"Plant with objectId {plant.ObjectId:X} not able to be fertilized, trying again later"); } } else { Log("Plant is ready to be harvested"); SelectString.ClickSlot(1); await Coroutine.Sleep(1000); } } return(true); }
private void Form1_Load(object sender, EventArgs e) { gardenManager = new GardenManager(); populateDummyData(); }
/// <summary> /// Logged in user will view group details /// /// Created by: Trent Cullinan 04/05/2016 /// Modified by: Nicholas King /// Last word by: Trent Cullinan 05/05/2016 /// </summary> /// <param name="id">Group Id</param> /// <returns></returns> public ActionResult Details(int?id) { ActionResult view = RedirectToAction("Index", "Group"); if (id.HasValue) { GroupManager groupManager = new GroupManager(); var group = groupManager.GetGroup(id.Value); var gardens = new GardenManager().GetGroupGardens(id.Value); var viewModel = new GroupDetailViewModel() { GroupID = group.GroupID, GroupName = group.Name, GroupLeader = ConvertGroupMember(group.GroupLeader), GroupMembers = ConvertGroupMemberCollection(group.UserList), Gardens = ConvertGardenCollection(gardens) }; //Added by Nicholas King if (ViewBag.GroupLeader = groupManager.GetLeaderStatus(RetrieveUserId(), id.Value))//do check for if user is group leader { viewModel.Requests = new List <GroupMemberRequestModel>(); List <GroupRequest> requests = groupManager.GetGroupRequests(id.Value); foreach (GroupRequest request in requests) { GroupMemberRequestModel requestModel = new GroupMemberRequestModel(); requestModel.Request = request; requestModel.Requestor = new UserManager().GetUser(request.UserID); viewModel.Requests.Add(requestModel); } } if (WebConfigurationManager.AppSettings["ExpertGroup"] == group.Name) { int userId = RetrieveUserId(); // I am mimicking what ever happens on the tasks side of things. IEnumerable <Group> groups = new GardenManager().GetGardenByUser(userId) .Where(g => g.Name == WebConfigurationManager.AppSettings["ExpertGroup"]); ExpertGroupDetailViewModel model = new ExpertGroupDetailViewModel() { GroupDetail = viewModel, ExpertTaskDetail = new GardenTaskViewModel() { GroupsList = groups, } }; ViewBag.UserID = userId; view = View("ExpertDetails", model); } else { view = View(viewModel); } } return(view); }