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);
        }
Exemple #2
0
    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);
        }
    }
Exemple #3
0
    private void Awake()
    {
        if (instance != null)
        {
            Destroy(this);
        }

        instance = this;
    }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        //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);
        }
Exemple #8
0
 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);
        }