public static CrowdResponse UpgradeWeapon(ControlClient client, CrowdRequest req)
        {
            int id = req.GetReqID();

            if (WeaponClass.Club.DoUpgrade() || WeaponClass.Sword.DoUpgrade() || WeaponClass.Dagger.DoUpgrade())
            {
                UI.ShowInfo($"{req.GetReqViewer()} upgraded {Game1.player.Name}'s Weapon");
                return(new CrowdResponse(id));
            }

            return(new CrowdResponse(id, CrowdResponse.Status.STATUS_FAILURE, Game1.player.Name + "'s Weapon is already at the highest upgrade level"));
        }
示例#2
0
        private void OnReturnedToTitle(object sender, ReturnedToTitleEventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            if (client == null)
            {
                return;
            }
            Helper.Events.GameLoop.Saved  -= client.OnSaved;
            Helper.Events.GameLoop.Saving -= client.OnSaving;
            Helper.Events.Player.Warped   -= client.OnWarped;
            client.Stop();
            client = null;
        }
示例#3
0
        private void OnSaveLoaded(object sender, SaveLoadedEventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            if (!Context.IsWorldReady || client != null)
            {
                return;
            }
            client = new ControlClient();
            Helper.Events.GameLoop.Saved  += client.OnSaved;
            Helper.Events.GameLoop.Saving += client.OnSaving;
            Helper.Events.Player.Warped   += client.OnWarped;
            new Thread(new ThreadStart(client.NetworkLoop)).Start();
            new Thread(new ThreadStart(client.RequestLoop)).Start();
        }
        public static CrowdResponse Kill(ControlClient client, CrowdRequest req)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            if (Interlocked.Exchange(ref Game1.player.health, 0) == 0)
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = Game1.player.Name + " is currently dead";
            }
            else
            {
                UI.ShowInfo($"{req.GetReqViewer()} killed {Game1.player.Name}");
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
        public static CrowdResponse UpgradeTrashCan(ControlClient client, CrowdRequest req)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            if (Game1.player.trashCanLevel < 4)
            {
                Interlocked.Increment(ref Game1.player.trashCanLevel);
                UI.ShowInfo($"{req.GetReqViewer()} upgraded {Game1.player.Name}'s Trash Can");
            }
            else
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = Game1.player.Name + "'s Trash Can is already at the highest upgrade level";
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
        public static CrowdResponse UpgradeBackpack(ControlClient client, CrowdRequest req)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            if (Game1.player.items.Capacity == 36)
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = Game1.player.Name + "'s Backpack is already at maximum capacity";
            }
            else
            {
                Game1.player.increaseBackpackSize(12);
                UI.ShowInfo($"{req.GetReqViewer()} upgraded {Game1.player.Name}'s Backpack");
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
        public static CrowdResponse DowngradeFishingRod(ControlClient client, CrowdRequest req)
        {
            int id = req.GetReqID();

            foreach (KeyValuePair <string, int> downgrade in downgradeFishingRods)
            {
                Tool tool = Game1.player.getToolFromName(downgrade.Key);
                if (tool != null)
                {
                    tool.UpgradeLevel = downgrade.Value;
                    UI.ShowInfo($"{req.GetReqViewer()} downgraded {Game1.player.Name}'s Fishing Rod");

                    return(new CrowdResponse(id));
                }
            }

            return(new CrowdResponse(id, CrowdResponse.Status.STATUS_FAILURE, Game1.player.Name + "'s Fishing Rod is already at the lowest upgrade level"));
        }
        private static CrowdResponse DoSpawn(ControlClient client, CrowdRequest req, Monster monster)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            if (client.CanSpawn())
            {
                Game1.player.currentLocation.addCharacter(monster);
                client.TrackMonster(monster);
                UI.ShowInfo($"{req.GetReqViewer()} spawned a {monster.Name} near {Game1.player.Name}");
            }
            else
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = $"Cannot spawn {monster.Name} because {Game1.player.Name} is at {Game1.player.currentLocation.Name}";
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
        public static CrowdResponse PassOut(ControlClient client, CrowdRequest req)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            float stamina = Game1.player.Stamina;

            if (stamina > -16)
            {
                Game1.player.Stamina = -16;
                UI.ShowInfo($"{req.GetReqViewer()} made {Game1.player.Name} pass out");
            }
            else
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = Game1.player.Name + " is currently passed out";
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
        public static CrowdResponse EnergizeFull(ControlClient client, CrowdRequest req)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            int   max     = Game1.player.MaxStamina;
            float stamina = Game1.player.Stamina;

            if (stamina < max)
            {
                Game1.player.Stamina = max;
                UI.ShowInfo($"{req.GetReqViewer()} fully energized {Game1.player.Name}");
            }
            else
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = Game1.player.Name + " is already at maximum energy";
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
        public static CrowdResponse GiveStardrop(ControlClient client, CrowdRequest req)
        {
            CrowdResponse.Status status = CrowdResponse.Status.STATUS_SUCCESS;
            string message = "";

            int stamina = Game1.player.MaxStamina;

            if (stamina == 508)
            {
                status  = CrowdResponse.Status.STATUS_FAILURE;
                message = Game1.player.Name + " is already at the highest energy maximum";
            }
            else
            {
                stamina += 34;
                Game1.player.MaxStamina = stamina;
                Game1.player.Stamina    = stamina;
                UI.ShowInfo($"{req.GetReqViewer()} gave {Game1.player.Name} a Stardrop");
            }

            return(new CrowdResponse(req.GetReqID(), status, message));
        }
 public static CrowdResponse WarpTower(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Forest", 5, 29));
 }
 public static CrowdResponse DowngradeAxe(ControlClient client, CrowdRequest req)
 {
     return(DoDowngrade(req, "Axe"));
 }
 public static CrowdResponse WarpSewer(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Sewer", 16, 13));
 }
 public static CrowdResponse WarpRailroad(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Railroad", 35, 52));
 }
 public static CrowdResponse WarpMountain(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Mountain", 31, 20));
 }
 public static CrowdResponse Tire50(ControlClient client, CrowdRequest req)
 {
     return(DoTireBy(req, 0.5f));
 }
 public static CrowdResponse Heal25(ControlClient client, CrowdRequest req)
 {
     return(DoHealBy(req, 0.25f));
 }
 public static CrowdResponse WarpDesert(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Desert", 35, 43));
 }
 public static CrowdResponse WarpBeach(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Beach", 20, 4));
 }
 public static CrowdResponse Hurt50(ControlClient client, CrowdRequest req)
 {
     return(DoHurtBy(req, 0.5f));
 }
 public static CrowdResponse RemoveMoney10000(ControlClient client, CrowdRequest req)
 {
     return(DoRemoveMoney(req, 10000));
 }
 public static CrowdResponse UpgradePickaxe(ControlClient client, CrowdRequest req)
 {
     return(DoUpgrade(req, "Pickaxe"));
 }
 public static CrowdResponse SpawnFrostBat(ControlClient client, CrowdRequest req)
 {
     return(DoSpawn(client, req, new Bat(GetRandomNear(), 60)));
 }
 public static CrowdResponse WarpTown(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Town", 29, 67));
 }
 public static CrowdResponse WarpFarm(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Farm", 48, 7));
 }
 public static CrowdResponse WarpWoods(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "Woods", 55, 15));
 }
 public static CrowdResponse WarpIsland(ControlClient client, CrowdRequest req)
 {
     return(DoWarp(req, "IslandSouth", 11, 11));
 }
 public static CrowdResponse UpgradeWateringCan(ControlClient client, CrowdRequest req)
 {
     return(DoUpgrade(req, "Watering Can"));
 }
 public static CrowdResponse SpawnSerpent(ControlClient client, CrowdRequest req)
 {
     return(DoSpawn(client, req, new Serpent(GetRandomNear())));
 }