Exemple #1
0
        public static int ReturnPriceByQuality(Quality q, int defaultPrice)
        {
            int price = defaultPrice;

            try
            {
                switch (q)
                {
                case Quality.Foul:
                case Quality.Horrifying:
                case Quality.Bad:
                case Quality.Putrid:
                    price = (int)(defaultPrice * 0.5f);
                    break;

                case Quality.Nice:
                case Quality.VeryNice:
                    price = (int)(defaultPrice * 1.2f);
                    break;

                case Quality.Great:
                case Quality.Outstanding:
                case Quality.Excellent:
                    price = (int)(defaultPrice * 1.3f);
                    break;

                case Quality.Perfect:
                    price = (int)(defaultPrice * 1.4f);
                    break;

                default:
                    price = defaultPrice;
                    break;
                }
            }
            catch (System.Exception ex)
            {
                CMStoreSet.PrintMessage("Serving Price: " + ex.Message);
                throw;
            }
            return(price);
        }
Exemple #2
0
        public static GameObject CreateRestockItem(GameObject src, int value, bool isRug)
        {
            try
            {
                RestockItem item = null;

                if (isRug)
                {
                    item = GlobalFunctions.CreateObject(ResourceKey.FromString("319e4f1d:00000000:4d2d76202832ac21"),
                                                        src.PositionOnFloor, src.mLevel, src.ForwardVector) as RestockItem;
                }
                else
                {
                    item = GlobalFunctions.CreateObject(ResourceKey.FromString("319e4f1d:00000000:74eadf6231a9cf5e"),
                                                        src.PositionOnFloor, src.mLevel, src.ForwardVector) as RestockItem;
                }
                item.info.Key   = src.GetResourceKeyForClone(true);
                item.info.Type  = RestockItemHelperClass.GetItemType(src);
                item.info.Name  = src.GetLocalizedName();
                item.info.Price = value;

                switch (item.info.Type)
                {
                case ItemType.Buy:
                case ItemType.Craftable:
                    item.info.DesignPreset = ObjectDesigner.GetObjectDesignPreset(src.ObjectId);
                    break;

                case ItemType.Ingredient:
                    //item.info.IngData = (IngredientData)((Ingredient)src).Data;
                    // item.info.Key = ((Ingredient)src).GetResourceKey();
                    //item.info.IngredientKey = ((Ingredient)src).IngredientKey;
                    break;

                case ItemType.Fish:
                    item.info.FType = ((Fish)src).mFishType;
                    break;

                case ItemType.Herb:
                    //item.info.PlantData = ((PlantableNonIngredient)src).mData;
                    // item.info.Key = ((Herb)src).GetResourceKey();
                    break;

                case ItemType.Metal:
                    item.info.RockData = ((Metal)src).mGuid;
                    item.info.Key      = ((Metal)src).GetResourceKey();
                    break;

                case ItemType.Gem:
                    item.info.RockData = ((Gem)src).mGuid;
                    item.info.Key      = ((Gem)src).GetResourceKey();
                    break;

                case ItemType.Nectar:
                    item.info.Key       = ((NectarBottle)src).GetResourceKey();
                    item.info.NectarAge = ((NectarBottle)src).mBottleInfo.DateNum;

                    if (item.info.NectarAge == 0)
                    {
                        item.info.NectarAge = 1;
                    }

                    item.info.NectarFruitHash   = ((NectarBottle)src).mBottleInfo.FruitHash;
                    item.info.NectarIngredients = ((NectarBottle)src).Ingredients;                    //.in.mBottleInfo;
                    break;

                case ItemType.AlchemyPotion:

                    break;

                case ItemType.Bug:
                    item.info.BugType = ((NormalTerrarium)src).mInsectType;
                    break;

                case ItemType.Food:
                    item.info.cookingProcess = ((ServingContainer)src).CookingProcess;
                    break;

                case ItemType.Flowers:
                    item.info.TypeOfWildFlower = ((Wildflower)src).TypeOfWildFlower;
                    break;

                case ItemType.BookAlchemyRecipe_:
                case ItemType.BookComic_:
                case ItemType.BookFish_:
                case ItemType.BookGeneral_:
                case ItemType.BookRecipe_:
                case ItemType.BookSkill_:
                case ItemType.BookToddler_:
                case ItemType.SheetMusic_:
                case ItemType.AcademicTextBook_:
                    item.info.Name = ((Book)src).CatalogName;
                    break;

                case ItemType.JamJar:
                    Type         tInfo = src.GetType();
                    BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
                    FieldInfo    ingredientDataField = tInfo.GetField("mData", flags);
                    FieldInfo    ingredientKeyField  = tInfo.GetField("mIngredientKey", flags);
                    FieldInfo    qualityField        = tInfo.GetField("mQuality", flags);
                    FieldInfo    preservesField      = tInfo.GetField("mIsPreserves", flags);

                    item.info.IngData       = (IngredientData)ingredientDataField.GetValue(src);
                    item.info.IngredientKey = (string)ingredientKeyField.GetValue(src);
                    item.info.JamQuality    = (Quality)qualityField.GetValue(src);
                    item.info.JamIsPreserve = (bool)preservesField.GetValue(src);
                    break;

                default:
                    break;
                }
                return(item);
            }
            catch (System.Exception ex)
            {
                CMStoreSet.PrintMessage("CreateRestockItem: " + ex.Message);
                return(null);
            }
        }