コード例 #1
0
ファイル: CreateItemObject.cs プロジェクト: horoxix/lootbox
    // Generates an Item
    // Pass in item taken from Open();
    public static ItemScriptableObject Generate(ItemScriptableObject iso)
    {
        GenerateSprite       generateSprite       = new GenerateSprite();
        RandomManager        randomManager        = new RandomManager();
        StatFactory          statFactory          = new ConcreteStatFactory();
        ItemScriptableObject itemScriptableObject = ScriptableObject.CreateInstance <ItemScriptableObject>();

        randomManager.SetAnimationCurve();
        itemScriptableObject.itemSprite   = iso.itemSprite;
        itemScriptableObject.itemName     = iso.itemName;
        itemScriptableObject.itemType     = iso.itemType;
        itemScriptableObject.itemTypeName = iso.itemType.ToString().ToLower();
        itemScriptableObject.rarity       = (ItemObject.Rarity)Mathf.RoundToInt(randomManager.CurveWeightedRandom(randomManager.cumulativeProbability));
        itemScriptableObject.keyword      = (ItemObject.Keywords)Mathf.RoundToInt(randomManager.CurveWeightedRandom(randomManager.cumulativeProbability));
        itemScriptableObject.statCount    = statFactory.GenerateStatAmountForObject(itemScriptableObject.rarity);
        itemScriptableObject.modifierList = new List <Stat>();
        for (int i = 0; i < itemScriptableObject.statCount; i++)
        {
            Stat.StatType statType  = statFactory.GenerateStatType();
            Stat          stat      = statFactory.GetStatObject(statType, itemScriptableObject);
            int           statIndex = DetectStatInList(itemScriptableObject.modifierList, statType);
            if (statIndex != -1)
            {
                itemScriptableObject.modifierList[statIndex].StatValue += stat.StatValue;
                itemScriptableObject.statCount--;
            }
            else
            {
                itemScriptableObject.modifierList.Add(stat);
            }
        }
        itemScriptableObject.itemBackgroundSprite = GenerateSpriteType(BackgroundSprites.backgroundSprites, itemScriptableObject.rarity);
        return(itemScriptableObject);
    }
コード例 #2
0
ファイル: CreateItem.cs プロジェクト: horoxix/lootbox
    // Generates an Item
    public static Item Create()
    {
        GenerateSprite generateSprite = new GenerateSprite();
        RandomManager  randomManager  = new RandomManager();
        StatFactory    statFactory    = new ConcreteStatFactory();
        Item           asset          = ScriptableObject.CreateInstance <Item>();

        randomManager.SetAnimationCurve();
        asset.itemType     = (Item.ItemType)UnityEngine.Random.Range(0, Enum.GetNames(typeof(Item.ItemType)).Length);
        asset.itemTypeName = asset.itemType.ToString().ToLower();
        asset.rarity       = (Item.Rarity)Mathf.RoundToInt(randomManager.CurveWeightedRandom(randomManager.cumulativeProbability));
        asset.keyword      = (Item.Keywords)Mathf.RoundToInt(randomManager.CurveWeightedRandom(randomManager.cumulativeProbability));
        asset.statCount    = statFactory.GenerateStatAmount(asset.rarity);
        asset.modifierList = new List <Stat>();
        for (int i = 0; i < asset.statCount; i++)
        {
            asset.modifierList.Add(statFactory.GetStat(statFactory.GenerateStatType(), asset));
        }
        asset.itemName             = asset.keyword.ToString().ToLower() + " " + asset.rarity.ToString().ToLower() + " " + asset.itemTypeName;
        asset.itemSpriteList       = generateSprite.GenerateSpriteList(asset.itemType);
        asset.itemSprite           = GenerateSpriteType(asset.itemSpriteList, asset.rarity);
        asset.ItemLevel            = GenerateItemLevel(asset.rarity);
        asset.itemBackgroundSprite = GenerateSpriteType(BackgroundSprites.backgroundSprites, asset.rarity);
        return(asset);
    }
コード例 #3
0
        public static void Perform()
        {
            var hotspot = new Hotspot
            {
                Name        = "Hotspot",
                Sprite      = GenerateSprite.Default(),
                DebugSprite = GenerateSprite.Default(),
                Transform   = Transform2D.Identity
            };

            JsonData.SerializeToFile(hotspot, DataPath.Get("Hotspot.json"));
        }
コード例 #4
0
        public static void Perform()
        {
            var toy = new Toy
            {
                Name         = "TestToy",
                LargeSprite  = GenerateSprite.Default(),
                DamagePoints = new List <ToyDamagePoint>
                {
                    new ToyDamagePoint
                    {
                        Active = true,
                        Type   = "BurstSeam",
                        Sprite = GenerateSprite.Default()
                    },
                }
            };

            var path = DataPath.Get("Toys\\TestToy.json");

            JsonData.SerializeToFile(toy, path);
        }