Introducing Medic!, a FirstAid curing system for Mudlet!
This is a basic system intended for people who mostly bash or are just getting started in combat. The idea is to remove the burden of curing afflictions so that you can focus on
the other things that are killing you killing the other guy. Medic! is intended as an introductory system, to help you figure out what you need to work on. It works much better than I ever expected it to, so you might never get to a point where you need something more complicated. If you do, you can use Medic! as a base to start from. The code is all visible and very easy to adjust. It is also free, because I think it's important for everyone to be able to dive into combat if they want. That said, I will not turn away small tips. I have given Medic! to several people over the course of its development, and I use it myself 90% of the time.
Features:
- Makes use of the FirstAid queue to track and cure afflictions. This means the bulk of the work is done server side, so you (and I) don't have to think about it. It is also future proof! When a new skill or ability is introduced, if it has an affmessage, Medic! will know what to do with it. If it gives an affliction, it gives an affmessage. (If it doesn't, bug it, it's supposed to.)
- Autosipper with customizable sipping levels and priorities. Very flexible.
- The sipper includes burst vessel curing, and basic deepwound curing.
- Healing scroll and sparkleberry use are also included.
- A do queue with functions to add to the queue depending on the balances it needs/uses. This is very useful for creating defup aliases, and setting up bashing. Can be used to do an action once, or repeat it indefinitely.
- Assumes deepwound levels based on afflictions received.
Drawbacks:
- Hardly has any failsafes for illusions. The best it can do is realize you don't have the affliction you just tried to cure, and that doesn't work for everything. I will add in failsafes where I can, but true anti-illusion is extremely complex.
- Does not work in aeon/sap. Right now it turns itself off and only attempts to cure aeon. No guarantees it will work.
- Unreliable cleanse curing. Firstaid doesn't cure all cleanse afflictions, and when it does, it only rubs cleanse. Medic! does allow you to choose how you want to cleanse, but you will still attempt to rub. If you don't want to use the enchantment, it adds cleansing to Medic!'s queue instead of FirstAid's so it's possible you'll cleanse more than once. There is a failsafe to keep this from happening, but it is not 100%.
- Does not assume wound levels after (most) warrior hits. You have to manually check using WOUNDS SIMPLE or WS.
Instructions:
- Right click here, chose save as. Import this file with the package manager.
- Turn on affmessages (CONFIG AFFMESSAGES ON) and disable the game's wrapping (CONFIG WRAPWIDTH 0).
- Enable gmcp. This is on the General tab of Mudlet's settings.
- Restart Mudlet.
- Set up the sipper. It comes with default settings of 75% for everything and a priority of health, mana, ego. To see the current settings, use 'medic sipper'. Medic!'s sipper uses potions, sparkleberry, and healing scrolls. To change the level for one type of healing for all three stats, use 'medic <type> <#>'. The number should be the percentage. Omitting the number will show you the current levels. Setting a type to 0 will disable it completely.
- medic scroll 60: Read healing scroll when any stat drops to 60%
- medic potion: Show the current levels for sipping each potion.
- Each stat can be set individually as well. hps <#>, mps <#>, and eps <#>, will set the sipping levels for health, mana, and ego, respectively. Adding 's' to the front will set it for scroll, and adding 'b' will set it for sparkleberry. Again, anything set to 0 will be disabled.
- hps 75: Sip health at 75% health
- bmps 50: Eat sparkleberry at 50% mana
- seps 70: Read healing scroll at 70% ego
- To change the priorities, use 'sp<#> <potion>'
- sp1 health: Make health the first priority
- sp2 bromides: Make bromides the second priority
- WARNING! There is currently no easy way to switch two priorities. If you change health from first to second, your new priority will be health health ego, and you won't sip/sparkle/scroll for mana at all. So don't forget to make sure you've got all three set right!
Comments
pp
- Pause curing. This turns off affliction curing and the sipper.
medic ignore <affliction>- Ignore an affliction. Use the same alias to remove it from the ignore list.
- To see the current list of ignored afflictions, use 'medic ignore'.
- WARNING! Do not remove aeon from the ignore list. You will never ever cure it and you will die a horrible death.
- It's up to you to make sure the affliction name you use is correct. Check the FirstAid database if you're not sure. For example, WHATCURES DIZZY will tell you there's no affliction called dizzy. The correct name is dizziness.
reset- Pretty self explanatory. Clear the queue, reset all healing balances. You'd use this at the end of a spar, or if something has gone majorly wrong.
medic cleanse <type>- How you would like Medic! to cleanse. The choices are rub, cast, and scrub, with rub as the default.
- Use 'medic cleanse' to see what the current setting is.
do <action>- Adds the action to the do queue, to be done as soon as you have both balance and equilibrium. This alias adds things to the 'free' queue, which means it will happen before other things in the queue.
- There is a function you can use that can customize the balances something needs and consumes, which I've demonstrated in the 'defup' alias. More on that below.
- You can add aliases to the queue just fine.
- Put medic.chaser.chase() anywhere you want the chaser to fire
immediately, like at the end of the defup alias.
dor <action>- Adds the action to the do queue, to be done as soon as you have both
balance and equilibrium, and will repeat until disabled.
- You can also set up repeating within an alias or function, as long as you don't set them as free actions. Just set medic.chaser.repete = true and the first action (not in the free queue) will
be repeated until you clear the queue or set medic.chaser.repete =
false. Perfect for bashing! Yes, it's spelled wrong, I know. Repeat
is a lua keyword, so I couldn't use it; repete will have to do. Don't
judge me.
undo- Removes everything from the do queue.
- Putting medic.chaser.clear() in the code for a trigger or alias will also clear the queue.
defupMost of the time, you will get an affmessage if a mob afflicts you. Occasionally, it will just say, "You are afflicted with an unknown ailment." But of course, this isn't true, you know exactly what that thing just hit you with, you've been fighting these things long enough to know what attacks do what, geeze! And sometimes you don't get an extra message at all, but you know you got afflicted. This is when you open up the handy "bashing" folder in the "Curing" section of Medic!'s triggers. There's plenty of triggers already in there, but I don't bash near as many things as most people, so you'll probably need to add your own at some point. It's fairly simple, you just add the attack message to one of the triggers already there, or make a new one with medic.addaff("affname") as the code. Affnames are always one word, no spaces: brokenleftleg, blackedout, etc. You can check the FirstAid database for the right name. There is no such thing as a 'prone' aff; the name is sprawled.
You will probably want to move the bashing folder out of the Medic! folder, so the things you add don't get deleted when you update.
Quirks to watch out for.
- When you die, Medic! pauses itself. Do not unpause until you're alive again, or you will spam healing so much Mudlet crashes. Once you are alive, don't forget to unpause! Oh, the number of times I have died because I went back to fight still paused…
- If you don't check WS every now and then, you will not cure deep wounds. Only wounds simple will work, the fancy man you see using WOUNDS won't do anything.
When I work on Medic! I always save the changes, so the link above will always contain the most recent version. I make small tweaks too often to post every time, but if I make a major change, I will say something. So if you notice something slightly off, and you haven't updated in a week or so, download the newest version. If that doesn't fix it, let me know. For any major problems, let me know, either here on the forums, or in game through Tulemrah. Feel free to contact me if you have any questions!I also added documentation for the dor alias, which lets you repeat actions in the queue. See the second post for the details.
find the Sprawled affliction in the Afflictions folder, obviously found under 'S'.
Add in the exact lines for springing up, and not being on the ground.
Save Item, Save Profile.
Fixed.
I just at the point of wondering how to involve herb balance in the DEFUP alias, right now.
This is will do until I purchase the MM system from @Vadi