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); }
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; } }
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)); }