示例#1
0
    public int Add(PickupObject value, bool updateSpriteCollections = false, string floor = "ANY")
    {
        int id = PickupObjectDatabase.Instance.Objects.Count;

        PickupObjectDatabase.Instance.Objects.Add(value);
        ModItems.Add(value);
        if (value != null)
        {
            UnityEngine.Object.DontDestroyOnLoad(value.gameObject);
            ModItemMap[value.name] = value;
            value.PickupObjectId   = id;

            EncounterDatabaseEntry edbEntry = new EncounterDatabaseEntry(value.encounterTrackable);
            edbEntry.ProxyEncounterGuid =
                edbEntry.myGuid         = value.encounterTrackable.EncounterGuid;
            edbEntry.path = "Assets/Resources/ITEMDB:" + value.name + ".prefab";
            EncounterDatabase.Instance.Entries.Add(edbEntry);


            WeightedGameObject lootGameObject = new WeightedGameObject()
            {
                // gameObject = value.gameObject,
                weight = 1f,
                additionalPrerequisites = new DungeonPrerequisite[0]
            };
            lootGameObject.SetGameObject(value.gameObject);
            if (value is Gun)
            {
                GameManager.Instance.RewardManager.GunsLootTable.defaultItemDrops.Add(lootGameObject);
            }
            else
            {
                GameManager.Instance.RewardManager.ItemsLootTable.defaultItemDrops.Add(lootGameObject);
            }
            List <WeightedGameObject> loot;
            if (!ModLootPerFloor.TryGetValue(floor, out loot))
            {
                loot = new List <WeightedGameObject>();
            }
            loot.Add(lootGameObject);
            ModLootPerFloor[floor] = loot;
        }
        if (updateSpriteCollections)
        {
            AmmonomiconController.ForceInstance.EncounterIconCollection.Handle();
            if (value is Gun)
            {
                WeaponCollection.Handle();
                WeaponCollection02.Handle();
                ProjectileCollection.Handle();
            }
            else
            {
                ItemCollection.Handle();
            }
        }
        return(id);
    }
示例#2
0
    public static void SetupSprite(this Gun gun, tk2dSpriteCollectionData collection = null, string defaultSprite = null, int fps = 0)
    {
        AmmonomiconController.ForceInstance.EncounterIconCollection.Handle();
        ETGMod.Databases.Items.ProjectileCollection.Handle();
        collection = collection ?? ETGMod.Databases.Items.WeaponCollection;
        collection.Handle();

        if (defaultSprite != null)
        {
            gun.encounterTrackable.journalData.AmmonomiconSprite = defaultSprite;
        }

        gun.UpdateAnimations(collection);
        gun.GetSprite().SetSprite(collection, gun.DefaultSpriteID = collection.GetSpriteIdByName(gun.encounterTrackable.journalData.AmmonomiconSprite));

        if (fps != 0)
        {
            gun.SetAnimationFPS(fps);
        }
    }