Exemplo n.º 1
0
    public async void Start()
    {
        harmonyInstance = HarmonyInstance.Create(harmonyID);
        harmonyInstance.PatchAll(Assembly.GetExecutingAssembly());


        ComponentManager <Arashi_RaftFishingExpansion> .Value = this;



        var bundleLoadRequest = AssetBundle.LoadFromFileAsync("mods\\ModData\\Arashi_RaftFishingExpansion\\scrapmechanic_trophies.assets");

        while (!bundleLoadRequest.isDone)
        {
            await Task.Delay(1);
        }                                                          //Prevents assigning ScrapMechanicTrohpies before asset bundle is loaded
        ScrapMechanicTrophies = bundleLoadRequest.assetBundle;


        //Register new items

        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_CraftBot"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_BananaCrate"), StandardQuadType);

        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_BlueBerryCrate"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_BroccoliCrate"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_Bucket"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_CarrotCrate"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_CookBot"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_CowCrate"), StandardQuadType);

        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_GlowGorp"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_OrangeCrate"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_PineappleCrate"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_RedBeetCrate"), StandardQuadType);
        RegisterPlaceableItem((Item_Base)await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Placeable_ScrapMechanicTrophy_TomatoCrate"), StandardQuadType);


        //Set Loot Tables
        TestDropper = (SO_RandomDropper) await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Dropper_Arashi_ScrapTrophies");

        FishingRod_Dropper = (SO_RandomDropper) await GetAssetFromTargetBundle(ScrapMechanicTrophies, "Dropper_Arashi_ScrapTrophies");



        // SetBobberLoot();
    }
        public static void ForceSeedDropRate(PickupItem pickupItem)
        {
            SO_RandomDropper dropper    = Traverse.Create(pickupItem.dropper).Field("randomDropperAsset").GetValue() as SO_RandomDropper;
            Randomizer       randomizer = dropper.randomizer;

            foreach (RandomItem item in randomizer.items)
            {
                if (item.obj != null && item.obj.GetType() == typeof(Item_Base))
                {
                    Item_Base item_Base = item.obj as Item_Base;
                    if (item_Base.UniqueName.ToLower().Contains("seed"))
                    {
                        item.weight      = randomizer.TotalWeight * 0.3f;
                        item.spawnChance = item.weight / randomizer.TotalWeight * 100f + "%";
                    }
                }
            }
        }