Ejemplo n.º 1
0
        private static bool AttemptToSpawnProduce(ref Decorators.FarmAnimal moddedAnimal, Farmer who)
        {
            var translatedVector2 =
                StardewValley.Utility.getTranslatedVector2(moddedAnimal.GetTileLocation(), moddedAnimal.GetFacingDirection(),
                                                           1f);
            var currentProduce = moddedAnimal.GetCurrentProduce();

            if (!Paritee.StardewValley.Core.Characters.FarmAnimal.IsProduceAnItem(currentProduce))
            {
                return(false);
            }
            var @object = new StardewValley.Object(Vector2.Zero, currentProduce, null, false, true, false, true)
            {
                Quality = moddedAnimal.GetProduceQuality()
            };

            Location.SpawnObject(Game.GetFarm(), translatedVector2, @object);
            return(true);
        }
Ejemplo n.º 2
0
        private static bool HandleOnFarm(
            ref Decorators.PurchaseAnimalsMenu moddedMenu,
            int x,
            int y,
            Farmer moddedPlayer)
        {
            if (moddedMenu.IsNamingAnimal())
            {
                return(true);
            }
            var viewport   = Game.GetViewport();
            var buildingAt = Game.GetFarm().getBuildingAt(new Vector2((x + viewport.X) / 64, (y + viewport.Y) / 64));

            if (buildingAt == null)
            {
                return(true);
            }
            var animalBeingPurchased = moddedMenu.GetAnimalBeingPurchased();
            var moddedAnimal         = new Decorators.FarmAnimal(animalBeingPurchased);

            if (!moddedAnimal.CanLiveIn(buildingAt) || new Building(buildingAt).IsFull() || !moddedAnimal.CanBeNamed())
            {
                return(true);
            }
            var priceOfAnimal = moddedMenu.GetPriceOfAnimal();

            if (!moddedPlayer.CanAfford(priceOfAnimal))
            {
                return(true);
            }
            moddedAnimal.AddToBuilding(buildingAt);
            moddedMenu.SetAnimalBeingPurchased(animalBeingPurchased);
            moddedMenu.SetNewAnimalHome(null);
            moddedMenu.SetNamingAnimal(false);
            moddedPlayer.SpendMoney(priceOfAnimal);
            PurchasedAnimalBellsAndWhistles(moddedAnimal);
            return(false);
        }