Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
        }