Exemplo n.º 1
0
        public static void OneSecondUpdate()
        {
            if (CJBCheatsMenu.config.noFriendshipDecay)
            {
                if (prevFriends == null)
                {
                    prevFriends = Game1.player.friendships.ToDictionary(p => p.Key.ToString(), p => p.Value[0]);
                }
                foreach (KeyValuePair <string, int[]> n in Game1.player.friendships)
                {
                    foreach (KeyValuePair <string, int> o in prevFriends)
                    {
                        if (n.Key.Equals(o.Key) && n.Value[0] < o.Value)
                        {
                            n.Value[0] = o.Value;
                        }
                    }
                }
                prevFriends = Game1.player.friendships.ToDictionary(p => p.Key.ToString(), p => p.Value[0]);
            }


            if (CJBCheatsMenu.config.instantBuild)
            {
                foreach (GameLocation loc in Game1.locations)
                {
                    if (loc is BuildableGameLocation)
                    {
                        BuildableGameLocation bloc = (BuildableGameLocation)loc;
                        foreach (Building bu in bloc.buildings)
                        {
                            if (bu.daysOfConstructionLeft > 0 || bu.daysUntilUpgrade > 0)
                            {
                                bu.dayUpdate(1);
                            }
                        }
                    }
                }
            }

            List <GameLocation> locations = new List <GameLocation>();

            foreach (GameLocation loc in Game1.locations)
            {
                if (!loc.isFarm && !loc.name.Contains("Greenhouse"))
                {
                    continue;
                }
                locations.Add(loc);
                if (loc is BuildableGameLocation)
                {
                    BuildableGameLocation bLoc = (BuildableGameLocation)loc;
                    foreach (Building build in bLoc.buildings)
                    {
                        if (build.indoors != null)
                        {
                            locations.Add(build.indoors);
                        }
                    }
                }
            }

            foreach (GameLocation loc in locations)
            {
                foreach (KeyValuePair <Vector2, StardewValley.Object> kp in loc.objects)
                {
                    if (kp.Value == null)
                    {
                        continue;
                    }

                    if (CJBCheatsMenu.config.durableFences && kp.Value is Fence)
                    {
                        ((Fence)kp.Value).repair();
                        continue;
                    }

                    if (CJBCheatsMenu.config.fastFurnace && kp.Value.name.Equals("Furnace"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastRecyclingMachine && kp.Value.name.Equals("Recycling Machine"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastCrystalarium && kp.Value.name.Equals("Crystalarium"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastIncubator && kp.Value.name.Equals("Incubator"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastSlimeIncubator && kp.Value.name.Equals("Slime Incubator"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastKeg && kp.Value.name.Equals("Keg"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastPreservesJar && kp.Value.name.Equals("Preserves Jar"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastCheesePress && kp.Value.name.Equals("Cheese Press"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastMayonnaiseMachine && kp.Value.name.Equals("Mayonnaise Machine"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastLoom && kp.Value.name.Equals("Loom"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastOilMaker && kp.Value.name.Equals("Oil Maker"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastSeedMaker && kp.Value.name.Equals("Seed Maker"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastCharcoalKiln && kp.Value.name.Equals("Charcoal Kiln"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastSlimeEggPress && kp.Value.name.Equals("Slime Egg-Press"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastBeeHouse && kp.Value.name.Equals("Bee House"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastMushroomBox && kp.Value.name.Equals("Mushroom Box"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastTapper && kp.Value.name.Equals("Tapper"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                    if (CJBCheatsMenu.config.fastLightningRod && kp.Value.name.Equals("Lightning Rod"))
                    {
                        kp.Value.minutesUntilReady = 0;
                        continue;
                    }
                }
            }
            locations.Clear();

            if (CJBCheatsMenu.config.autoFeed)
            {
                foreach (GameLocation loc in Game1.locations)
                {
                    if (!loc.isFarm && !loc.name.Contains("Greenhouse"))
                    {
                        continue;
                    }
                    if (loc is BuildableGameLocation)
                    {
                        BuildableGameLocation bLoc = (BuildableGameLocation)loc;
                        foreach (Building build in bLoc.buildings)
                        {
                            if (build.indoors is AnimalHouse)
                            {
                                AnimalHouse indoor = (AnimalHouse)build.indoors;

                                int animalcount = indoor.animals.Count();
                                build.currentOccupants = animalcount;
                                int hayobjects = indoor.numberOfObjectsWithName("Hay");
                                int hayUsed    = Math.Min(animalcount - hayobjects, (Game1.getLocationFromName("Farm") as Farm).piecesOfHay);
                                (Game1.getLocationFromName("Farm") as Farm).piecesOfHay -= hayUsed;

                                int pos = 6;
                                if (indoor.name.Contains("Barn"))
                                {
                                    pos = 8;
                                }

                                for (int i = 0; i < indoor.animalLimit; i++)
                                {
                                    if (hayUsed <= 0)
                                    {
                                        break;
                                    }

                                    Vector2 key = new Vector2((float)(pos + i), 3f);
                                    if (!indoor.objects.ContainsKey(key))
                                    {
                                        indoor.objects.Add(key, new StardewValley.Object(178, 1, false, -1, 0));
                                    }
                                    hayUsed--;
                                }
                            }
                        }
                    }
                }
            }

            if (CJBCheatsMenu.config.harvestSickle)
            {
                foreach (GameLocation loc in Game1.locations)
                {
                    if (!loc.isFarm && !loc.name.Contains("Greenhouse"))
                    {
                        continue;
                    }
                    foreach (KeyValuePair <Vector2, TerrainFeature> kp in loc.terrainFeatures)
                    {
                        if (kp.Value == null)
                        {
                            continue;
                        }
                        if (kp.Value is HoeDirt)
                        {
                            if (((HoeDirt)kp.Value).crop != null)
                            {
                                ((HoeDirt)kp.Value).crop.harvestMethod = 1;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public override bool checkForAction(StardewValley.Farmer who, bool justCheckingForActivity = false)
        {
            if (justCheckingForActivity)
            {
                return(true);
            }

            if (who != null && (who.currentLocation.isObjectAt(who.getTileX(), who.getTileY() - 1) && who.currentLocation.isObjectAt(who.getTileX(), who.getTileY() + 1)) && (who.currentLocation.isObjectAt(who.getTileX() + 1, who.getTileY()) && who.currentLocation.isObjectAt(who.getTileX() - 1, who.getTileY())))
            {
                this.performToolAction((Tool)null, who.currentLocation);
            }


            if (this.name.Contains("Hopper") && who.ActiveObject == null)
            {
                if (who.freeSpotsInInventory() > 0)
                {
                    int piecesOfHay = (Game1.getLocationFromName("Farm") as Farm).piecesOfHay;
                    if (piecesOfHay > 0)
                    {
                        if (Game1.currentLocation is AnimalHouse)
                        {
                            int         val1            = Math.Max(1, Math.Min((Game1.currentLocation as AnimalHouse).animalsThatLiveHere.Count, piecesOfHay));
                            AnimalHouse currentLocation = Game1.currentLocation as AnimalHouse;
                            int         num1            = currentLocation.numberOfObjectsWithName("Hay");
                            int         num2            = Math.Min(val1, currentLocation.animalLimit - num1);
                            //##CHANGES
                            if (num2 == 0)
                            {
                                num2 = 1;
                            }
                            if (Game1.player.couldInventoryAcceptThisObject(178, num2, 0))
                            {
                                (Game1.getLocationFromName("Farm") as Farm).piecesOfHay.Value -= Math.Max(1, num2);
                                who.addItemToInventoryBool((Item) new SObject(178, num2, false, -1, 0), false);
                                Game1.playSound("shwip");
                            }
                        }
                        else if (Game1.player.couldInventoryAcceptThisObject(178, 1, 0))
                        {
                            --(Game1.getLocationFromName("Farm") as Farm).piecesOfHay.Value;
                            who.addItemToInventoryBool((Item) new SObject(178, 1, false, -1, 0), false);
                            Game1.playSound("shwip");
                        }
                        if ((Game1.getLocationFromName("Farm") as Farm).piecesOfHay.Value <= 0)
                        {
                            this.showNextIndex.Value = false;
                        }
                    }
                    else
                    {
                        Game1.drawObjectDialogue(Game1.content.LoadString("Strings\\StringsFromCSFiles:Object.cs.12942"));
                    }
                }
                else
                {
                    Game1.showRedMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Crop.cs.588"));
                }
            }


            return(false);
        }