示例#1
0
        public List <Farmer> GetRetrievableFarmers()
        {
            List <Farmer> offline_farmers = new List <Farmer>(Game1.getAllFarmers());

            foreach (Farmer online_farmer in Game1.getOnlineFarmers())
            {
                offline_farmers.Remove(online_farmer);
            }
            for (int i = 0; i < offline_farmers.Count; i++)
            {
                Farmer farmer = offline_farmers[i];
                Cabin  home   = Utility.getHomeOfFarmer(farmer) as Cabin;
                if (home != null && (farmer.isUnclaimedFarmhand || home.inventoryMutex.IsLocked()))
                {
                    offline_farmers.RemoveAt(i);
                    i--;
                }
            }
            return(offline_farmers);
        }
示例#2
0
        protected override void resetLocalState()
        {
            base.resetLocalState();
            string target = "Farmhouse";

            foreach (Building building in Game1.getFarm().buildings)
            {
                if (building.indoors.Value != null && building.indoors.Value is Cabin)
                {
                    Cabin cabin = building.indoors.Value as Cabin;
                    if (cabin.GetCellarName() == base.Name)
                    {
                        target = cabin.NameOrUniqueName;
                        break;
                    }
                }
            }
            foreach (Warp warp in warps)
            {
                warp.TargetName = target;
            }
        }
示例#3
0
        public override bool answerDialogueAction(string questionAndAnswer, string[] questionParams)
        {
            string s5 = null;

            if (questionAndAnswer == null)
            {
                return(false);
            }
            switch (questionAndAnswer)
            {
            case "divorceCancel_Yes":
                if ((bool)Game1.player.divorceTonight)
                {
                    Game1.player.divorceTonight.Value = false;
                    if (!Game1.player.isRoommate(Game1.player.spouse))
                    {
                        Game1.player.addUnearnedMoney(50000);
                    }
                    s5 = Game1.content.LoadStringReturnNullIfNotFound("Strings\\Locations:ManorHouse_DivorceBook_Cancelled_" + Game1.player.spouse);
                    if (s5 == null)
                    {
                        s5 = Game1.content.LoadStringReturnNullIfNotFound("Strings\\Locations:ManorHouse_DivorceBook_Cancelled");
                    }
                    Game1.drawObjectDialogue(s5);
                    if (!Game1.player.isRoommate(Game1.player.spouse))
                    {
                        Game1.multiplayer.globalChatInfoMessage("DivorceCancel", Game1.player.Name);
                    }
                }
                break;

            case "divorce_Yes":
                if (Game1.player.Money >= 50000 || Game1.player.spouse == "Krobus")
                {
                    if (!Game1.player.isRoommate(Game1.player.spouse))
                    {
                        Game1.player.Money -= 50000;
                    }
                    Game1.player.divorceTonight.Value = true;
                    s5 = Game1.content.LoadStringReturnNullIfNotFound("Strings\\Locations:ManorHouse_DivorceBook_Filed_" + Game1.player.spouse);
                    if (s5 == null)
                    {
                        s5 = Game1.content.LoadStringReturnNullIfNotFound("Strings\\Locations:ManorHouse_DivorceBook_Filed");
                    }
                    Game1.drawObjectDialogue(s5);
                    if (!Game1.player.isRoommate(Game1.player.spouse))
                    {
                        Game1.multiplayer.globalChatInfoMessage("Divorce", Game1.player.Name);
                    }
                }
                else
                {
                    Game1.drawObjectDialogue(Game1.content.LoadString("Strings\\UI:NotEnoughMoney1"));
                }
                break;

            case "separateWallets_Yes":
                if (changeWalletTypeImmediately)
                {
                    SeparateWallets();
                    break;
                }
                Game1.player.changeWalletTypeTonight.Value = true;
                Game1.multiplayer.globalChatInfoMessage("SeparateWallets", Game1.player.Name);
                break;

            case "cancelSeparateWallets_Yes":
                Game1.player.changeWalletTypeTonight.Value = false;
                Game1.multiplayer.globalChatInfoMessage("SeparateWalletsCancel", Game1.player.Name);
                break;

            case "mergeWallets_Yes":
                if (changeWalletTypeImmediately)
                {
                    MergeWallets();
                    break;
                }
                Game1.player.changeWalletTypeTonight.Value = true;
                Game1.multiplayer.globalChatInfoMessage("MergeWallets", Game1.player.Name);
                break;

            case "cancelMergeWallets_Yes":
                Game1.player.changeWalletTypeTonight.Value = false;
                Game1.multiplayer.globalChatInfoMessage("MergeWalletsCancel", Game1.player.Name);
                break;

            case "ledgerOptions_SendMoney":
                ChooseRecipient();
                break;

            case "ledgerOptions_MergeWallets":
                s5 = Game1.content.LoadString("Strings\\Locations:ManorHouse_LedgerBook_SeparateWallets_MergeQuestion");
                createQuestionDialogue(s5, createYesNoResponses(), "mergeWallets");
                break;

            case "ledgerOptions_CancelMerge":
                s5 = Game1.content.LoadString("Strings\\Locations:ManorHouse_LedgerBook_SeparateWallets_CancelQuestion");
                createQuestionDialogue(s5, createYesNoResponses(), "cancelMergeWallets");
                break;

            case "lostAndFound_RetrieveFarmhandItems":
                ShowOfflineFarmhandItemList();
                return(true);

            case "lostAndFound_CheckDonations":
                Game1.player.team.CheckReturnedDonations();
                return(true);
            }
            if (questionAndAnswer.StartsWith("CheckItems"))
            {
                string s6 = questionAndAnswer.Split('_')[1];
                long   id = 0L;
                if (long.TryParse(s6, out id))
                {
                    Farmer farmhand = Game1.getFarmerMaybeOffline(id);
                    Cabin  home     = Utility.getHomeOfFarmer(farmhand) as Cabin;
                    if (farmhand != null && home != null && !farmhand.isActive())
                    {
                        home.inventoryMutex.RequestLock(delegate
                        {
                            home.openFarmhandInventory();
                        });
                    }
                }
                return(true);
            }
            if (questionAndAnswer.Contains("Transfer"))
            {
                string answer = questionAndAnswer.Split('_')[1];
                beginSendMoney(sendMoneyMapping[answer]);
                sendMoneyMapping.Clear();
            }
            return(base.answerDialogueAction(questionAndAnswer, questionParams));
        }