protected override void _OnCutWeed(Vector2 tile_location, GameLocation location, Farmer who)
 {
     base._OnCutWeed(tile_location, location, who);
     if (Game1.random.NextDouble() < 0.5)
     {
         Game1.createItemDebris(new Object(771, 1), new Vector2(tile_location.X * 64f + 32f, tile_location.Y * 64f + 32f), -1);
     }
     if (Game1.random.NextDouble() < 0.33)
     {
         if ((Game1.getLocationFromName("Farm") as Farm).tryToAddHay(1) == 0)
         {
             TemporaryAnimatedSprite tmpSprite = new TemporaryAnimatedSprite("Maps\\springobjects", Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, 178, 16, 16), 750f, 1, 0, who.Position - new Vector2(0f, 128f), flicker: false, flipped: false, who.Position.Y / 10000f, 0.005f, Color.White, 4f, -0.005f, 0f, 0f);
             tmpSprite.motion.Y   = -1f;
             tmpSprite.layerDepth = 1f - (float)Game1.random.Next(100) / 10000f;
             tmpSprite.delayBeforeAnimationStart = Game1.random.Next(350);
             Game1.multiplayer.broadcastSprites(location, tmpSprite);
             Game1.addHUDMessage(new HUDMessage("Hay", 1, add: true, Color.LightGoldenrodYellow, new Object(178, 1)));
         }
         else
         {
             Game1.createItemDebris(new Object(178, 1).getOne(), new Vector2(tile_location.X * 64f + 32f, tile_location.Y * 64f + 32f), -1);
         }
     }
 }
        public static void receiveBuildingChange(byte whatChange, short tileX, short tileY, string name, long who, long id)
        {
            if (Game1.IsClient)
            {
                MultiplayerUtility.recentMultiplayerEntityID = id;
            }
            else
            {
                MultiplayerUtility.recentMultiplayerEntityID = MultiplayerUtility.getNewID();
            }
            if (Game1.currentLocation is Farm || Game1.IsServer)
            {
                Farm farm = (Farm)Game1.currentLocation;
                if (!(Game1.currentLocation is Farm))
                {
                    farm = (Farm)Game1.otherFarmers[id].currentLocation;
                }
                Farmer farmer = Game1.getFarmer(who);
                switch (whatChange)
                {
                case 0:
                {
                    BluePrint bluePrint = new BluePrint(name);
                    if (bluePrint.blueprintType.Equals("Animals") && farm.placeAnimal(bluePrint, new Vector2((float)tileX, (float)tileY), true, who) && farmer.IsMainPlayer)
                    {
                        bluePrint.consumeResources();
                    }
                    else if (!bluePrint.blueprintType.Equals("Animals") && farm.buildStructure(bluePrint, new Vector2((float)tileX, (float)tileY), true, farmer, false) && farmer.IsMainPlayer)
                    {
                        bluePrint.consumeResources();
                    }
                    else if (farmer.IsMainPlayer)
                    {
                        Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:BlueprintsMenu.cs.10016", new object[0]), Color.Red, 3500f));
                        return;
                    }
                    if (!bluePrint.blueprintType.Equals("Animals"))
                    {
                        Game1.playSound("axe");
                        return;
                    }
                    break;
                }

                case 1:
                {
                    Building buildingAt = farm.getBuildingAt(new Vector2((float)tileX, (float)tileY));
                    if (farm.destroyStructure(new Vector2((float)tileX, (float)tileY)))
                    {
                        int groundLevelTile = buildingAt.tileY + buildingAt.tilesHigh;
                        for (int i = 0; i < buildingAt.texture.Bounds.Height / Game1.tileSize; i++)
                        {
                            Game1.createRadialDebris(farm, buildingAt.texture, new Microsoft.Xna.Framework.Rectangle(buildingAt.texture.Bounds.Center.X, buildingAt.texture.Bounds.Center.Y, Game1.tileSize / 16, Game1.tileSize / 16), buildingAt.tileX + Game1.random.Next(buildingAt.tilesWide), buildingAt.tileY + buildingAt.tilesHigh - i, Game1.random.Next(20, 45), groundLevelTile);
                        }
                        Game1.playSound("explosion");
                        Utility.spreadAnimalsAround(buildingAt, farm);
                        return;
                    }
                    break;
                }

                case 2:
                {
                    BluePrint bluePrint   = new BluePrint(name);
                    Building  buildingAt2 = farm.getBuildingAt(new Vector2((float)tileX, (float)tileY));
                    farm.tryToUpgrade(buildingAt2, bluePrint);
                    break;
                }

                default:
                    return;
                }
            }
        }
Beispiel #3
0
        public static bool getDebris(int which, int howMuch)
        {
            switch (which)
            {
            case 0:
                Game1.player.CopperPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.621"), howMuch, true, Color.Sienna, (Item)null));
                if (howMuch > 0)
                {
                    Game1.stats.CopperFound += (uint)howMuch;
                    break;
                }
                break;

            case 2:
                Game1.player.IronPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.622"), howMuch, true, Color.LightSlateGray, (Item)null));
                if (howMuch > 0)
                {
                    Game1.stats.IronFound += (uint)howMuch;
                    break;
                }
                break;

            case 4:
                Game1.player.CoalPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.623"), howMuch, true, Color.DimGray, (Item)null));
                if (howMuch > 0)
                {
                    Game1.stats.CoalFound += (uint)howMuch;
                    break;
                }
                break;

            case 6:
                Game1.player.GoldPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.624"), howMuch, true, Color.Gold, (Item)null));
                if (howMuch > 0)
                {
                    Game1.stats.GoldFound += (uint)howMuch;
                    break;
                }
                break;

            case 8:
                int num = Game1.random.Next(10, 50) * howMuch;
                Game1.player.Money += num - num % 5;
                if (howMuch > 0)
                {
                    Game1.stats.CoinsFound += (uint)howMuch;
                    break;
                }
                break;

            case 10:
                Game1.player.IridiumPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.626"), howMuch, true, Color.Purple, (Item)null));
                if (howMuch > 0)
                {
                    Game1.stats.IridiumFound += (uint)howMuch;
                    break;
                }
                break;

            case 12:
                Game1.player.WoodPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.627"), howMuch, true, Color.Tan, (Item)null));
                if (howMuch > 0)
                {
                    Game1.stats.SticksChopped += (uint)howMuch;
                    break;
                }
                break;

            case 28:
                Game1.player.fuelLantern(howMuch * 2);
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.629"), howMuch * 2, true, Color.Goldenrod, (Item)null));
                break;

            default:
                return(false);
            }
            if (Game1.questOfTheDay != null && Game1.questOfTheDay.accepted && (!Game1.questOfTheDay.completed && Game1.questOfTheDay.GetType().Name.Equals("ResourceCollectionQuest")))
            {
                Game1.questOfTheDay.checkIfComplete((NPC)null, which, howMuch, (Item)null, (string)null);
            }
            return(true);
        }
Beispiel #4
0
        public static bool getDebris(int which, int howMuch)
        {
            switch (which)
            {
            case 0:
                Game1.player.CopperPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.621"), howMuch, add: true, Color.Sienna));
                if (howMuch > 0)
                {
                    Game1.stats.CopperFound += (uint)howMuch;
                }
                break;

            case 2:
                Game1.player.IronPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.622"), howMuch, add: true, Color.LightSlateGray));
                if (howMuch > 0)
                {
                    Game1.stats.IronFound += (uint)howMuch;
                }
                break;

            case 4:
                Game1.player.CoalPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.623"), howMuch, add: true, Color.DimGray));
                if (howMuch > 0)
                {
                    Game1.stats.CoalFound += (uint)howMuch;
                }
                break;

            case 6:
                Game1.player.GoldPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.624"), howMuch, add: true, Color.Gold));
                if (howMuch > 0)
                {
                    Game1.stats.GoldFound += (uint)howMuch;
                }
                break;

            case 10:
                Game1.player.IridiumPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.626"), howMuch, add: true, Color.Purple));
                if (howMuch > 0)
                {
                    Game1.stats.IridiumFound += (uint)howMuch;
                }
                break;

            case 12:
                Game1.player.WoodPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.627"), howMuch, add: true, Color.Tan));
                if (howMuch > 0)
                {
                    Game1.stats.SticksChopped += (uint)howMuch;
                }
                break;

            case 28:
                Game1.player.fuelLantern(howMuch * 2);
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.629"), howMuch * 2, add: true, Color.Goldenrod));
                break;

            case 8:
            {
                int j = Game1.random.Next(10, 50) * howMuch;
                j -= j % 5;
                Game1.player.Money += j;
                if (howMuch > 0)
                {
                    Game1.stats.CoinsFound += (uint)howMuch;
                }
                break;
            }

            default:
                return(false);
            }
            if (Game1.questOfTheDay != null && (bool)Game1.questOfTheDay.accepted && !Game1.questOfTheDay.completed && Game1.questOfTheDay is ResourceCollectionQuest)
            {
                ((ResourceCollectionQuest)Game1.questOfTheDay).checkIfComplete(null, which, howMuch);
            }
            return(true);
        }
        // Token: 0x06000190 RID: 400 RVA: 0x00012F70 File Offset: 0x00011170
        public static bool getDebris(int which, int howMuch)
        {
            switch (which)
            {
            case 0:
                Game1.player.CopperPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage("Copper", howMuch, true, Color.Sienna, null));
                if (howMuch > 0)
                {
                    Game1.stats.CopperFound += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;

            case 1:
            case 3:
            case 5:
            case 7:
            case 9:
            case 11:
                break;

            case 2:
                Game1.player.IronPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage("Iron", howMuch, true, Color.LightSlateGray, null));
                if (howMuch > 0)
                {
                    Game1.stats.IronFound += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;

            case 4:
                Game1.player.CoalPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage("Coal", howMuch, true, Color.DimGray, null));
                if (howMuch > 0)
                {
                    Game1.stats.CoalFound += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;

            case 6:
                Game1.player.GoldPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage("Gold", howMuch, true, Color.Gold, null));
                if (howMuch > 0)
                {
                    Game1.stats.GoldFound += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;

            case 8:
            {
                int i = Game1.random.Next(10, 50) * howMuch;
                i -= i % 5;
                Game1.player.Money += i;
                if (howMuch > 0)
                {
                    Game1.stats.CoinsFound += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;
            }

            case 10:
                Game1.player.IridiumPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage("Iridium", howMuch, true, Color.Purple, null));
                if (howMuch > 0)
                {
                    Game1.stats.IridiumFound += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;

            case 12:
                Game1.player.WoodPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage("Wood", howMuch, true, Color.Tan, null));
                if (howMuch > 0)
                {
                    Game1.stats.SticksChopped += (uint)howMuch;
                    goto IL_256;
                }
                goto IL_256;

            default:
                if (which == 28)
                {
                    Game1.player.fuelLantern(howMuch * 2);
                    Game1.addHUDMessage(new HUDMessage("Fuel", howMuch * 2, true, Color.Goldenrod, null));
                    goto IL_256;
                }
                break;
            }
            return(false);

IL_256:
            if (Game1.questOfTheDay != null && Game1.questOfTheDay.accepted && !Game1.questOfTheDay.completed && Game1.questOfTheDay.GetType().Name.Equals("ResourceCollectionQuest"))
            {
                ((ResourceCollectionQuest)Game1.questOfTheDay).checkIfComplete(null, which, howMuch, null, null);
            }
            return(true);
        }
Beispiel #6
0
        // Token: 0x06000152 RID: 338 RVA: 0x0000E63C File Offset: 0x0000C83C
        public static void receiveBuildingChange(byte whatChange, short tileX, short tileY, string name, long who, long id)
        {
            if (Game1.IsClient)
            {
                MultiplayerUtility.recentMultiplayerEntityID = id;
            }
            else
            {
                MultiplayerUtility.recentMultiplayerEntityID = MultiplayerUtility.getNewID();
            }
            if (Game1.currentLocation is Farm || Game1.IsServer)
            {
                Farm farm = (Farm)Game1.currentLocation;
                if (!(Game1.currentLocation is Farm))
                {
                    farm = (Farm)Game1.otherFarmers[id].currentLocation;
                }
                Farmer f = Game1.getFarmer(who);
                switch (whatChange)
                {
                case 0:
                {
                    BluePrint b = new BluePrint(name);
                    if (b.blueprintType.Equals("Animals") && farm.placeAnimal(b, new Vector2((float)tileX, (float)tileY), true, who) && f.IsMainPlayer)
                    {
                        b.consumeResources();
                    }
                    else if (!b.blueprintType.Equals("Animals") && farm.buildStructure(b, new Vector2((float)tileX, (float)tileY), true, f, false) && f.IsMainPlayer)
                    {
                        b.consumeResources();
                    }
                    else if (f.IsMainPlayer)
                    {
                        Game1.addHUDMessage(new HUDMessage("Can't Build There", Color.Red, 3500f));
                        return;
                    }
                    if (!b.blueprintType.Equals("Animals"))
                    {
                        Game1.playSound("axe");
                        return;
                    }
                    break;
                }

                case 1:
                {
                    Building destroyed = farm.getBuildingAt(new Vector2((float)tileX, (float)tileY));
                    if (farm.destroyStructure(new Vector2((float)tileX, (float)tileY)))
                    {
                        int groundYTile = destroyed.tileY + destroyed.tilesHigh;
                        for (int i = 0; i < destroyed.texture.Bounds.Height / Game1.tileSize; i++)
                        {
                            Game1.createRadialDebris(farm, destroyed.texture, new Microsoft.Xna.Framework.Rectangle(destroyed.texture.Bounds.Center.X, destroyed.texture.Bounds.Center.Y, Game1.tileSize / 16, Game1.tileSize / 16), destroyed.tileX + Game1.random.Next(destroyed.tilesWide), destroyed.tileY + destroyed.tilesHigh - i, Game1.random.Next(20, 45), groundYTile);
                        }
                        Game1.playSound("explosion");
                        Utility.spreadAnimalsAround(destroyed, farm);
                        return;
                    }
                    break;
                }

                case 2:
                {
                    BluePrint b         = new BluePrint(name);
                    Building  toUpgrade = farm.getBuildingAt(new Vector2((float)tileX, (float)tileY));
                    farm.tryToUpgrade(toUpgrade, b);
                    break;
                }

                default:
                    return;
                }
            }
        }
        public static void receiveBuildingChange(byte whatChange, short tileX, short tileY, string name, long who, long id)
        {
            MultiplayerUtility.recentMultiplayerEntityID = !Game1.IsClient ? MultiplayerUtility.getNewID() : id;
            if (!(Game1.currentLocation is Farm) && !Game1.IsServer)
            {
                return;
            }
            Farm currentLocation = (Farm)Game1.currentLocation;

            if (!(Game1.currentLocation is Farm))
            {
                currentLocation = (Farm)Game1.otherFarmers[id].currentLocation;
            }
            Farmer farmer = Game1.getFarmer(who);

            switch (whatChange)
            {
            case 0:
                BluePrint bluePrint = new BluePrint(name);
                if (bluePrint.blueprintType.Equals("Animals") && currentLocation.placeAnimal(bluePrint, new Vector2((float)tileX, (float)tileY), true, who) && farmer.IsMainPlayer)
                {
                    bluePrint.consumeResources();
                }
                else if (!bluePrint.blueprintType.Equals("Animals") && currentLocation.buildStructure(bluePrint, new Vector2((float)tileX, (float)tileY), true, farmer, false) && farmer.IsMainPlayer)
                {
                    bluePrint.consumeResources();
                }
                else if (farmer.IsMainPlayer)
                {
                    Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:BlueprintsMenu.cs.10016"), Color.Red, 3500f));
                    break;
                }
                if (bluePrint.blueprintType.Equals("Animals"))
                {
                    break;
                }
                Game1.playSound("axe");
                break;

            case 1:
                Building buildingAt1 = currentLocation.getBuildingAt(new Vector2((float)tileX, (float)tileY));
                if (!currentLocation.destroyStructure(new Vector2((float)tileX, (float)tileY)))
                {
                    break;
                }
                int num = buildingAt1.tileY + buildingAt1.tilesHigh;
                for (int index = 0; index < buildingAt1.texture.Bounds.Height / Game1.tileSize; ++index)
                {
                    Farm      farm    = currentLocation;
                    Texture2D texture = buildingAt1.texture;
                    Microsoft.Xna.Framework.Rectangle bounds = buildingAt1.texture.Bounds;
                    int x = bounds.Center.X;
                    bounds = buildingAt1.texture.Bounds;
                    int y      = bounds.Center.Y;
                    int width  = Game1.tileSize / 16;
                    int height = Game1.tileSize / 16;
                    Microsoft.Xna.Framework.Rectangle sourcerectangle = new Microsoft.Xna.Framework.Rectangle(x, y, width, height);
                    int xTile           = buildingAt1.tileX + Game1.random.Next(buildingAt1.tilesWide);
                    int yTile           = buildingAt1.tileY + buildingAt1.tilesHigh - index;
                    int numberOfChunks  = Game1.random.Next(20, 45);
                    int groundLevelTile = num;
                    Game1.createRadialDebris((GameLocation)farm, texture, sourcerectangle, xTile, yTile, numberOfChunks, groundLevelTile);
                }
                Game1.playSound("explosion");
                Utility.spreadAnimalsAround(buildingAt1, currentLocation);
                break;

            case 2:
                BluePrint blueprint   = new BluePrint(name);
                Building  buildingAt2 = currentLocation.getBuildingAt(new Vector2((float)tileX, (float)tileY));
                currentLocation.tryToUpgrade(buildingAt2, blueprint);
                break;
            }
        }
Beispiel #8
0
        public static bool getDebris(int which, int howMuch)
        {
            switch (which)
            {
            case 0:
                Game1.player.CopperPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.621", new object[0]), howMuch, true, Color.Sienna, null));
                if (howMuch > 0)
                {
                    Game1.stats.CopperFound += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;

            case 1:
            case 3:
            case 5:
            case 7:
            case 9:
            case 11:
                break;

            case 2:
                Game1.player.IronPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.622", new object[0]), howMuch, true, Color.LightSlateGray, null));
                if (howMuch > 0)
                {
                    Game1.stats.IronFound += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;

            case 4:
                Game1.player.CoalPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.623", new object[0]), howMuch, true, Color.DimGray, null));
                if (howMuch > 0)
                {
                    Game1.stats.CoalFound += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;

            case 6:
                Game1.player.GoldPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.624", new object[0]), howMuch, true, Color.Gold, null));
                if (howMuch > 0)
                {
                    Game1.stats.GoldFound += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;

            case 8:
            {
                int num = Game1.random.Next(10, 50) * howMuch;
                num -= num % 5;
                Game1.player.Money += num;
                if (howMuch > 0)
                {
                    Game1.stats.CoinsFound += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;
            }

            case 10:
                Game1.player.IridiumPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.626", new object[0]), howMuch, true, Color.Purple, null));
                if (howMuch > 0)
                {
                    Game1.stats.IridiumFound += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;

            case 12:
                Game1.player.WoodPieces += howMuch;
                Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.627", new object[0]), howMuch, true, Color.Tan, null));
                if (howMuch > 0)
                {
                    Game1.stats.SticksChopped += (uint)howMuch;
                    goto IL_2C9;
                }
                goto IL_2C9;

            default:
                if (which == 28)
                {
                    Game1.player.fuelLantern(howMuch * 2);
                    Game1.addHUDMessage(new HUDMessage(Game1.content.LoadString("Strings\\StringsFromCSFiles:Debris.cs.629", new object[0]), howMuch * 2, true, Color.Goldenrod, null));
                    goto IL_2C9;
                }
                break;
            }
            return(false);

IL_2C9:
            if (Game1.questOfTheDay != null && Game1.questOfTheDay.accepted && !Game1.questOfTheDay.completed && Game1.questOfTheDay.GetType().Name.Equals("ResourceCollectionQuest"))
            {
                ((ResourceCollectionQuest)Game1.questOfTheDay).checkIfComplete(null, which, howMuch, null, null);
            }
            return(true);
        }