Medic!, a free system for Mudlet

by Lilia

Back to Mechanic's Corner.

Lilia2012-04-25 18:04:51
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 remove the burden of curing afflictions so that you can focus on the other things that are killing you killing the other guy. If you want to get seriously involved in combat, you will need a more complex system someday. Medic! is an introductory system, to help you figure out what you need to work on. 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.
    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.


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/choke/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. So 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.
    Does not assume wound levels after warrior hits. You have to manually check using WOUNDS SIMPLE or WS.


Instructions:
Lilia2012-04-25 18:05:16
Important Aliases:

pp
    Pause curing. This turns off affliction curing and the sipper.

medic ignore
    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
    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

    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. See below for a more in depth explanation of how the do queue works.
    You can add aliases to the queue just fine.

undo
    Removes everything from the do queue.
    Putting medic.chaser.clear() in the code for a trigger or alias will also clear the queue.

defup
    There are a few examples in here, to show you how to use the chaser script to add things to the queue.
    The first thing you should do is move this alias out of the Medic! folder, so it doesn't get deleted when you update.
    Then you add your defenses according to whether they require eq/bal and if they use eq/bal.
Lilia2012-04-25 18:05:35
How to use for bashing.

Most 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. 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, puncturedaura. 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 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.
    I have a feeling I'm forgetting something, so feel free to ask questions!


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.
Unknown2012-04-25 18:11:41
Very nice idea. I'm sure this will massively help a large number of people. Fair play for releasing it for free, too!
Lilia2012-04-25 20:06:14
Thanks! This started a long time ago, as a project to help me learn how to code in Mudlet. It held me over while I bashed up the gold to buy m&m, and then I set it aside. In the year or two since then, I've heard a lot of people, in game and on the forums, mention that a basic, free system would go along way towards helping newbies feel less overwhelmed about combat. So, when I went to live with my grandmother for a month, and wasn't able to use my laptop to connect to the internet, I decided not to ask Vadi for a Windows version of m&m. I went through Ascension on Medic! and I'm honestly surprised at how well it's done. My hope is that people can use it as a base for their own systems, modifying things to suit their needs.

Oh, and if anyone out there still has a version from when it was just called 'my firstaid system', please delete it and update to Medic! I've changed a lot of things at the code level to be easier to work with.
Unknown2012-04-26 03:44:11
Thanks for this contribution! I am tempted to snag it to load up for my newbie alts then expand on the system myself. :)
Unknown2012-05-01 19:27:50
Is there any way I can (safely) make it not do... whatever it does when I die? It was fine with dying - autopausing, I guess - but now that I have DarkRebirth it freaks out and crashes mudlet, rather than pausing itself.
Lilia2012-05-02 01:16:01
I'm not sure how DarkRebirth works, so I'll have to guess at this. The best bet is to put whatever line tells you DarkRebirth is working in the 'dead' trigger, which is in the 'Curing' folder. You can also put "You have been slain by" as a begin of line trigger. I didn't include that one because astral insanity will sometimes show that message.
Unknown2012-05-02 01:51:33
Ok, thanks! I'll try this when I have time to test it out. DarkRebirth works like Lichseed (I think) in that you die, then you aren't dead. Except you don't revive in the same spot. I think the problem Medic! was having was that it was trying to clear the cue with Firstaid but spazzed on being unable because of death (gap between death and reborn). I don't know. Anyway, thanks again.
Lilia2012-05-02 02:08:19
A few miscellaneous updates! To update, use the package manager to uninstall Medic!, redownload it from the link above, and reinstall it.

Getting stunned will now actually unpause after a bit, even if you don't see the 'no longer stunned' line.

The chaser is a bit quicker; instead of dochase being reset one second after a prompt, it now only resets if an action was sent, except for the free queue.

Doesn't delete prompts after FirstAid sends an action any more.
Lilia2012-05-25 07:09:55
Update time!

Will no longer spam diag in aeon. >_> Will also now attempt to cure sap.
Added the new standard cure lines, which means Medic! is now future proof for new affs. If the admins ever change their mind and decide new affs are allowed, that is. This may cause problems with some affs, such as...
Curing one cloudcoil will no longer remove coils from the queue unless it was actually the last coil.
Added sipping purgatives failsafe. Improved kafe failsafe.
Various tweaks to affliction lines, which is mostly removing things once I know it gives a proper affmessage.

You can now repeat actions in the do queue. Doesn't work for free actions. Just set medic.chaser.repete = true and the first action will be repeated until you clear the queue or set medic.chaser.repete = false. Perfect for bashing! And 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.
The chaser will now fire when you cure entangle or paralysis. As a note, put medic.chaser.chase() anywhere you want the chaser to fire immediately, like at the end of the defup alias.
Israafiyl2012-05-25 08:34:59
again great free system. Thank you so much!!
Lilia2012-07-25 15:08:11
Update for a new feature! Medic! will now assume deepwounds based on incoming afflictions. If you get an aff that requires a certain wounds level, and Medic! thinks your wounds on that part are below that level, it will adjust to the proper amount. Please note that this does not replace checking WS for accurate wound levels. It is possible to have, for example, critical wounds on a part and only receive a medium level affliction. If Medic! already thinks your wounds are at or above medium, it won't change anything. Remembering to check your wounds is a big part of fighting warriors!

NOTE: I did not include sprawled or broken limbs because those affs are so common outside of warriors.

Technical details for those who would like them:
    The wound assuming is based on the highest level needed for that aff, since I always feel it's safer to overestimate. If you want to adjust any of the numbers or levels, you can mess with the tables in Scripts > Medic! > Sipper > wounds > "aff data". Just remember that any changes you make will be deleted when you update, so write them down somewhere, or drag the script file out of the Medic! folder before you update. Don't forget to delete the new one and put yours back, it won't work right if the file is listed before the Medic! folder.
    There are some handy echoes you can see by disabling the debugging trigger (Triggers > Medic! > Curing > debugging > "debug spam"). It shows what part and wound level the incoming aff was found in, and if it changes your wounds, shows what they were for that part and the new value.
    The check occurs when affs are added to the queue, so ignored afflictions will not effect anything.
Agnlaa2012-07-25 16:13:30
I've been playing around for the past couple days, trying to figure something out but I didn't want to necro this thread. Now that it's obvious I won't be doing that - is it possible to change stand/writhe to springup/contort in in Medic!?
Lilia2012-07-25 17:57:48
Agnlaa:

I've been playing around for the past couple days, trying to figure something out but I didn't want to necro this thread. Now that it's obvious I won't be doing that - is it possible to change stand/writhe to springup/contort in in Medic!?

Nope. FirstAid does not use use cures from skills other than focus body/mind. My recommendation would be to ignore sprawled/entangled, and set something up to add springup/contort to the queue. If you have a problem with it getting added more than once, look at the "cleansing happened" trigger in Curing to see how to remove a specific item from the queue. I went ahead and added it, babysitting kids who can entertain themselves is boring. Find sprawled and entangled in the Afflictions folder and activate the springup and contort folders. I don't have a character who can contort, so you'll need to add in that line yourself. And please send it along to me so I can update it properly!