Tractor Mod

Tractor Mod

130k Downloads

[Lookup Anything] handle extra monster drops

Pathoschild opened this issue ยท 2 comments

commented

Some monsters have extra drops defined by overriding Monster.getExtraDropItems. Update Lookup Anything to handle those.

commented

I've had a look through the game code to see how this might be done.
There's a fair few custom conditions for various monsters (bat and slimes look particularly complex).

I'm thinking it could be done by adding to data.json. Something like this:

 "MonsterExtraDropItems": [
        {
            "MonsterNames": [
                "Mummy" // StardewValley.Monsters.Mummy..ctor
            ],
            "ExtraDropItems": [
                {
                    "ItemId": 485, // StardewValley.Monsters.Mummy.getExtraDropItems
                    "ItemType": "Item",
                    "MinDrop": 1,
                    "MaxDrop": 1,
                    "Probability": 0.002,
                    "Details": ""
                }
            ]
        },
        {
            "MonsterNames": [
                "Wilderness Golem" // StardewValley.Monsters.RockGolem..ctor
            ],
            "ExtraDropItems": [
                {
                    "ItemId": 40, // StardewValley.Monsters.RockGolem.getExtraDropItems
                    "ItemType": "Hat",
                    "MinDrop": 1,
                    "MaxDrop": 1,
                    "Probability": 0.0001,
                    "Details": ""
                },
                {
                    "ItemId": 273, // StardewValley.Monsters.RockGolem.getExtraDropItems
                    "ItemType": "Item",
                    "MinDrop": 2,
                    "MaxDrop": 6,
                    "Probability": 0.0825,
                    "Details": "Only drops in Spring"
                }
            ]
        }
    ]
commented

Yeah, the tricky thing is that extra monster drops are often based on a lot of conditions (e.g. your current mine level, whether you've reached the bottom, whether hard mode is enabled, etc), and I try to avoid predefining/hardcoding data whenever possible since it's much harder to maintain.