tModLoader Boss Checklist - In-game progression checklist.

Discussion in 'Works-in-Progress' started by jopojelly, Oct 26, 2016.

  1. jopojelly

    jopojelly Retinazer

    [​IMG]
    Boss Checklist

    Latest Download:
    Mod Browser (in-game) - Direct link - Alt download link
    Open source on GitHub

    This mod adds an in-game checklist that you can toggle with a hotkey. This checklist will be in suggested order according to the modders of the other mods enabled. When you defeat a boss, the checklist will update accordingly. I created this mod because I found that while playing modded Terraria, I had no idea which boss to tackle next without consulting the forum threads of each mod constantly.

    Unfortunately, I can't support all mods yet because most of the mods that I want to support have not structured their code correctly. (See below and next post)

    See it in action:

    Currently Supported Mods (and probably a lot more I just don't know about):
    • Vanilla Terraria
    • ThoriumMod
    • CalamityMod
    • Bluemagic's Mod - Endgame Bosses
    • Tremor
    • SpiritMod
    • Pumpking
    • JoostMod
    • GRealm
    • SacredTools
    • Da Dude Mod
    • Enigma
    • Crystilium
    • Erilipah
    • Pinkymod

    Changelog
    0.1.5
    • Hide Bosses from Checklist
      • Alt Click to hide
      • Useful for bosses you don't care about or are unable to summon
      • Syncs in MP
    0.1.4
    • Mini-boss and Event support
    March 6, 2017
    • Tremor
    • SpiritMod
    v0.1.1.3
    • Updated to 0.9
    • Only Calamity and Thorium supported
    v0.1.1
    • Added CalamityMod support
    v0.1
    • Initial Release
    • Completed Filter
    • Vanilla Bosses, Bluemagic, ThoriumMod, and SacredTools supported
    [​IMG]
     
    Last edited: Oct 1, 2018
  2. jopojelly

    jopojelly Retinazer

    How to add support for your mod
    Adding support is easy, you just need to add some code to your Mod class that invokes Mod.Call on the bossChecklist mod. Make sure to follow the message format perfectly.

    Current Messages Accepted:
    Code:
    "AddBoss", string bossname, float bossValue, Func<bool> bossDowned
    "AddBossWithInfo", string bossname, float bossValue, Func<bool> bossDowned, string bossInfo
    "AddMiniBossWithInfo", string minibossname, float minibossValue, Func<bool> minibossDowned, string minibossInfo
    "AddEventWithInfo", string eventname, float eventValue, Func<bool> eventCompleted, string eventInfo
    Code:
            public override void PostSetupContent()
            {
                Mod bossChecklist = ModLoader.GetMod("BossChecklist");
                if(bossChecklist != null)
                {
                    // AddBoss, bossname, order or value in terms of vanilla bosses, inline method for retrieving downed value.
                    bossChecklist.Call("AddBoss", "Tacoman", 5.5f, (Func<bool>)(() => ExampleWorld.downedAbomination));
                    //bossChecklist.Call(....
                    // To include a description:
                    bossChecklist.Call("AddBossWithInfo", "Tacoman", 5.5f, (Func<bool>)(() => ExampleWorld.downedAbomination), "Use a [i:" + ItemType("StrongFlareGun") + "] at night in the Example Biome");
                }
            }
    The description string can the chat tags system for color and items: http://terraria.gamepedia.com/Chat#Tags

    Then let me know so I can add your mod to the list of supported mods.

    Reference for bossValue (set your value in relation to vanilla bosses):
    Code:
    SlimeKing = 1f;
    EyeOfCthulhu = 2f;
    EaterOfWorlds = 3f;
    QueenBee = 4f;
    Skeletron = 5f;
    WallOfFlesh = 6f;
    TheTwins = 7f;
    TheDestroyer = 8f;
    SkeletronPrime = 9f;
    Plantera = 10f;
    Golem = 11f;
    DukeFishron = 12f;
    LunaticCultist = 13f;
    Moonlord = 14f;
     
    Last edited: Nov 11, 2017
    Cinfoni, sOvr9000, LeGurdah and 7 others like this.
  3. neoselket

    neoselket Dungeon Spirit

    YES. i need this like i need pizza. i want it, but i can't have it yet.
     
    WhatTheHec and UberCAKE like this.
  4. MadaxTheShadow

    MadaxTheShadow Official Terrarian

    [​IMG]

    [​IMG]

    [​IMG]
     
    Mairek, Cinfoni, ninjakai03 and 2 others like this.
  5. Fargowilta

    Fargowilta The Destroyer

    looking good. This must mean I can do the same with my mod hooray :p

    Edit: I'm pretty sure pumpkings mod has bools ready
     
    Last edited: Oct 26, 2016
  6. jopojelly

    jopojelly Retinazer

    I just checked, they are programmed incorrectly. If you defeat one boss, it'll set the bool for the other bosses.
     
  7. jopojelly

    jopojelly Retinazer

    Ok, Initial Release time.

    v0.1
    • Initial Release
    • Completed Filter
    • Vanilla Bosses, Bluemagic, ThoriumMod, and SacredTools supported
    Filter in action:
     
    Fargowilta and Joost8910 like this.
  8. Danew Dr

    Danew Dr Skeletron

    Looks good! Before the release of my mod, I'll do all the stuff you said then *HOPE* it gets added. Btw, what do you mean by *the pull*? Just curious!
     
  9. Joost8910

    Joost8910 Dungeon Spirit

    This looks awesome! I'll have to have to work on adding support with my mod next I can.
     
  10. jopojelly

    jopojelly Retinazer

    With Github, if you don't have permission to commit changes directly into the master branch of a project, you "fork" the project, meaning you have your own branch of the project. After you make changes, you click "New Pull Request" and your changes will be presented to the users of the master branch so they can decide whether or not to "pull" or merge your changes into the master branch. Basically it lets you submit changes to an open source project that will be verified by one of the main developers of a project.

    Great, I hope my instructions prove good enough for someone to figure out what I mean, but don't hesitate to ask.
     
  11. Gameraiders101

    Gameraiders101 Terrarian

    Hyped for this, once all mods get supported
     
    WhatTheHec, Mairek, Vefak and 2 others like this.
  12. jopojelly

    jopojelly Retinazer

    Updated for CalamityMod support --> 0.1.1
     
  13. Joost8910

    Joost8910 Dungeon Spirit

    I get an error when I try to build the Boss Checklist with the changes I added...

    The game has crashed!

    Exception has been thrown by the target of an invocation.
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at Terraria.ModLoader.ModCompile.RoslynCompile(CompilerParameters compileOptions, String[] files)
    at Terraria.ModLoader.ModCompile.CompileMod(BuildingMod mod, List`1 refMods, Boolean forWindows, Byte[]& dll, Byte[]& pdb)
    at Terraria.ModLoader.ModCompile.Build(BuildingMod mod, IBuildStatus status)
    at Terraria.ModLoader.ModCompile.Build(String modFolder, IBuildStatus status)
    at Terraria.ModLoader.ModLoader.<>c.<BuildMod>b__44_0(Object _)

    Inner Exception:
    Could not load file or assembly 'System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
    at Terraria.ModLoader.RoslynWrapper.Compile(CompilerParameters args, String[] files)
     
  14. jopojelly

    jopojelly Retinazer

    If you push your changes to your fork I can check it out and see if I see anything.
     
    Joost8910 likes this.
  15. Joost8910

    Joost8910 Dungeon Spirit

  16. jopojelly

    jopojelly Retinazer

  17. PurpleNecromancer

    PurpleNecromancer Skeletron

    Why is Ragnarok not included? Did it not have its own downedX bool?
     
  18. jopojelly

    jopojelly Retinazer

    I wasn't sure, as I don't know the mod too well. I see downedPatchwerk which I think is a miniboss, downedRealityBreaker which I don't know about, and downedSkelly, which I also don't know. If one of those 2 is actually Ragnarok, I can add it, and minibosses I'll add once I plan some things out. If it's not, there might not be a bool yet.
     
  19. PurpleNecromancer

    PurpleNecromancer Skeletron

    RealityBreaker may be the Expert exclusive form of Ragnarok, I assume.
     
  20. jopojelly

    jopojelly Retinazer

    Joost8910 likes this.