protected override OptionResult Run(Lot lot, Household me) { if (lot == null) return OptionResult.Failure; if (!ApplyAll) { string text = StringInputDialog.Show(Name, Common.Localize("DepreciateHouse:Prompt"), "0", 256, StringInputDialog.Validation.None); if ((text == null) || (text == "")) return OptionResult.Failure; mValue = 0; if (!int.TryParse(text, out mValue)) { SimpleMessageDialog.Show(Name, Common.Localize("Numeric:Error")); return OptionResult.Failure; } } if ((lot != null) && (lot.IsResidentialLot)) { int oldCost = lot.CalculateFurnitureWorth (); int baseCost = lot.Cost - oldCost; Dictionary<string,int> objects = new Dictionary<string,int>(); foreach (GameObject obj in lot.GetObjects<GameObject> ()) { if (obj is AbstractArtObject) continue; if (obj is Fireplace) continue; if (obj is ImageObject) continue; if (obj is Terrarium) continue; obj.ValueModifier -= (int) (obj.PurchasedPrice * (mValue / 100f)); if (!objects.ContainsKey(obj.CatalogName)) { objects.Add(obj.CatalogName, 1); } else { objects[obj.CatalogName]++; } } int newCost = lot.CalculateFurnitureWorth(); Common.Notify(Common.Localize("DepreciateHouse:Success", false, new object[] { lot.Name, baseCost + oldCost, baseCost + newCost })); } return OptionResult.SuccessClose; }
protected override OptionResult Run(Lot lot, Household me) { if (lot == null) { return(OptionResult.Failure); } if (!ApplyAll) { string text = StringInputDialog.Show(Name, Common.Localize("DepreciateHouse:Prompt"), "0", 256, StringInputDialog.Validation.None); if ((text == null) || (text == "")) { return(OptionResult.Failure); } mValue = 0; if (!int.TryParse(text, out mValue)) { SimpleMessageDialog.Show(Name, Common.Localize("Numeric:Error")); return(OptionResult.Failure); } } if ((lot != null) && (lot.IsResidentialLot)) { int oldCost = lot.CalculateFurnitureWorth(); int baseCost = lot.Cost - oldCost; Dictionary <string, int> objects = new Dictionary <string, int>(); foreach (GameObject obj in lot.GetObjects <GameObject> ()) { if (obj is AbstractArtObject) { continue; } if (obj is Fireplace) { continue; } if (obj is ImageObject) { continue; } if (obj is Terrarium) { continue; } obj.ValueModifier -= (int)(obj.PurchasedPrice * (mValue / 100f)); if (!objects.ContainsKey(obj.CatalogName)) { objects.Add(obj.CatalogName, 1); } else { objects[obj.CatalogName]++; } } int newCost = lot.CalculateFurnitureWorth(); Common.Notify(Common.Localize("DepreciateHouse:Success", false, new object[] { lot.Name, baseCost + oldCost, baseCost + newCost })); } return(OptionResult.SuccessClose); }