New Content July 2020 IotM - Melodramedary

Malibu Stacey

Active member
Shows the no familiar image in the left panel of the UI when equipped (the bugbear with the red circle and diagonal line).

Also doesn't show up in my favourites even though I have it favourite'd in the terrarium.

Code:
> version

KoLmafia v20.6 r20229

> ash favorite_familiars();

Returned: aggregate boolean [familiar]
Pair of Stomping Boots => true
Artistic Goth Kid => true
Crimbo Shrub => true
Ms. Puck Man => true
Intergnat => true
Trick-or-Treating Tot => true
Space Jellyfish => true
Optimistic Candle => true
Robortender => true
XO Skeleton => true
Garbage Fire => true
God Lobster => true
Cat Burglar => true
Elf Operative => true
Pocket Professor => true
Red-Nosed Snapper => true

Wiki entry -> https://kol.coldfront.net/thekolwiki/index.php/Melodramedary

Forum thread -> http://forums.kingdomofloathing.com/vb/showthread.php?t=242605
 
Last edited:

Veracity

Developer
Staff member
Compact sidepane now shows the larva image (like the Left-Hand Man) for the Melodramedary.

Both of those familiars compose their images out of multiple other images. FWIW, here is how KoL displays a camel with five humps.

Code:
<span style="display: block;position: relative; height: 30px; width: 115px" >
  <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_left.gif" width=20 height=30 border=0>
  <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width=15 height=30 border=0>
  <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width=15 height=30 border=0>
  <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width=15 height=30 border=0>
  <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width=15 height=30 border=0>
  <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_right.gif" width=25 height=30 border=0>
</span>
 

Veracity

Developer
Staff member
Here's an after-fight action for a Melodramedary, as logged by FightRequest:

Code:
          <center>
            <table>
              <tbody>
                <tr>
                  <td align="center" valign="center">
                    <span style="display: block;position: relative; height: 30px; width: 115px">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_left.gif" width="20" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width="15" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width="15" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width="15" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_middle.gif" width="15" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_right.gif" width="25" height="30" border="0">
                  <td valign="center">
                    You hear a loud
                    <i>
                      schlurrrrrk!
                    noice, and turn to see Gogarth sucking the liquid out of a grecian urn he found somewhere. (7% full)
I don't see a "familiarmessage" comment. I do see the full 6-image-span for the familiar image.
We need to track camel fullness, since at 100% you get two new combat skills.
 
Last edited:

Malibu Stacey

Active member
It gives an extra +1% exploration in the Desert when Active. Someone in /hardcore said it wasn't being tracked last night so ignore if you've added this already.

Workaround is to visit the beach before adventuring in the desert so the current exploration is re-parsed and the properties updated.
 

Malibu Stacey

Active member
Code:
familiar Melodramedary (16 lbs)

equip weapon Fourth of May Cosplay Saber

main.php?action=camel

Encounter: So Cold
Took choice 1418/1: I'm sure, slice it open!
choice.php?pwd&whichchoice=1418&option=1
--------------------
2578	Entauntauned	nopic.gif	297ee9fadfb5560e5142e0b3a88456db	neutral	none
# Effect Entauntauned
--------------------
You acquire an effect: Entauntauned (10)

It's supposed to have variable Cold Resistance depending on the experience of the familiar before it was sliced open but I guess since mine was at 0 (I hadn't used it at all yet) it's an effect with no blue text.

[Update] Entauntauned is apparently wishable but ends up as mine did, no blue text so no cold resistance. And apparently slicing it open costs all it's experience.
 
Last edited:

Veracity

Developer
Staff member
Code:
--------------------
2578	Entauntauned	nopic.gif	297ee9fadfb5560e5142e0b3a88456db	neutral	none
# Effect Entauntauned
Revision 20234 adds the effect, but I don't know how to support the enchantment.
Pretty niche; if you do the trick, you presumably know what you're doing, and will have a temporary boost to your Cold Resistance.
 

Veracity

Developer
Staff member
And apparently slicing it open costs all it's experience.
Well, we should support this, at least.

main.php?action=camel
(redirects to a choice. Should probably log the action as "Slice open your Melodramedary" or something.)
Choice 1418
1) Grants an effect and resets xp to 0. We should do that.
2?) Presumably "No, I won't do that" or something.

Can you walk away from the choice?

I'll try it out. I do not want to slice my familiar, but I can answer those questions.

P.S. I verified that we track the extra desert exploration correctly with this familiar.
 
It appears that Mafia is not properly registering it as a volleyball, probably because its type in familiar.txt is given as "stats0" instead of "stat0".
 

Malibu Stacey

Active member
It appears that Mafia is not properly registering it as a volleyball, probably because its type in familiar.txt is given as "stats0" instead of "stat0".

Out of interest, how are you using this? The $familiar record has no members that relate to this and I don't see any obvious functions that will let me know if a familiar is a fairy/leprechaun/woim/volleyball/sombrero type.
 

Veracity

Developer
Staff member
Here are the valid "types" in familiars.txt:

Code:
# none - does nothing
# stat0 - vollyball-like
# stat1 - sombrero-like
# item0 - Item Drop
# meat0 - Meat Drop
# combat0 - Physical Attack
# combat1 - Elemental Attack
# drop - special drop
# block - potato-like
# delevel - barrrnacle-like
# hp0 - restore hp during combat
# mp0 - restore mp during combat
# meat1 - drops meat during combat
# stat2 - grants stats during combat
# other0 - does other things during combat
# hp1 - restore hp after combat
# mp1 - restore mp after combat
# stat3 - grants stats after combat
# other1 - does other things after combat
# passive - passive effect
# underwater - breaths underwater
# variable - varies according to equipment or other factors.
Those are used for building the nested menus in the familiar picker in the compact side pane.

Here is how (some of) those map to $familiar proxy record fields:

Code:
combat0 (combat0ById) =>        .physical_damage
combat1 (combat1ById) =>        .element_damage
block (blockById) =>            .block
delevel (delevelById) =>        .delevel
hp0 (hp0ById) =>                .hp_during_combat
mp0 (mp0ById) =>                .mp_during_combat
other0 (other0ById) =>          .other_action_during_combat
hp1 (hp1ById) =>                .hp_after_combat
mp1 (mp1ById) =>                .mp_after_combat
other1 (other1ById) =>          .other_action_after_combat
passive (passiveById) =>        .passive
underwater (underwaterById) =>  .underwater
variable (variableById) =>      .variable
This one has several proxy record fields to help you figure out what the special drops are:

Code:
drop (dropById) => drop_name, drop_item, drops_today, drops_limit
Here are "types" that do not have proxy record fields:

Code:
none (noneById) => 
stat0 (volleyById) => 
stat1 (sombreroById) => 
stat2 (stat2ById) => 
stat3 (stat3ById) => 
item0 (fairyById) => 
meat0 (meatDropById) => 
meat1 (meat1ById) =>
Some of those are in modifiers, via get_numeric_modifier( <familiar object>, <modifier name> ):

Code:
stat0 (volleyById) =>            "Vollyball"
stat1 (sombreroById) =>          "Sombrero"
item0 (fairyById) =>             "Fairy"
meat0 (meatDropById) =>          "Leprechaun"
These are numeric modifiers because they return a float showing how effective the familiar is compared to the base familiar. For example, the Jumpsuited Hound Dog is Fairy: 1.25.

That leaves the following which are "types" but do not have proxy record values:

Code:
none (noneById) => 
stat2 (stat2ById) => 
stat3 (stat3ById) => 
meat1 (meat1ById) =>
stats during combat, meat during combat, stats after combat, and "pet rock".
Those would be reasonable to add as proxy records.

For that matter, .fairy, .leprechaun, .volleyball, and .sombrero would be reasonable as "float" proxy record fields.

You also mention "woim". We have Oily Woim listed as "passive". I actually have never used it. Wiki says it gives passive boost to initiative of 2 * familiar weight. modifiers.txt says this:

Code:
Familiar	Oily Woim	Initiative: [2*W]
So, we do account for it in your Initiative modifier. We do that for all the "passive" type familiars - Exotic Parrot gives resistance based on weight, for example - even if we don't have special "types" for them.
 

Veracity

Developer
Staff member
We still need to record things that happen in combat with this familiar.

Code:
          <center>
            <table>
              <tbody>
                <tr>
                  <td align="center" valign="center">
                    <span style="display: block;position: relative; height: 30px; width: 55px">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_left.gif" width="20" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_right.gif" width="25" height="30" border="0">
                  <td valign="center">
                    <b>
                      Gogarth gains a pound!
Code:
        <p>
          <center>
            <table>
              <tbody>
                <tr>
                  <td align="center" valign="center">
                    <span style="display: block;position: relative; height: 30px; width: 55px">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_left.gif" width="20" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_right.gif" width="25" height="30" border="0">
                  <td valign="center">
                    Gogarth kicks you in the leg, in just the right place to be very effective chiropracty. If that's a word.
Code:
        <p>
          <center>
            <table>
              <tbody>
                <tr>
                  <td align="center" valign="center">
                    <span style="display: block;position: relative; height: 30px; width: 55px">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_left.gif" width="20" height="30" border="0">
                      <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/otherimages/camelfam_right.gif" width="25" height="30" border="0">
                  <td valign="center">
                    You hear a loud
                    <i>
                      schlurrrrrk!
                    noise, and turn to see Gogarth sucking the liquid out of a dented beer keg he found somewhere. (20% full)
Note that none of those are tagged with <!--familiarmessage--> so we can't handle it the same way as normal familiars:
Code:
          <!--familiarmessage-->
          <center>
            <table>
              <tbody>
                <tr>
                  <td align="center" valign="center">
                    <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/itemimages/medium_0.gif" width="30" height="30">
                  <td valign="center">
                    Psychic Grrl surveys the scene from atop the throne, and gains 1 Experience.
Note also that we also depend on the "img" node matching that of a familiar - and the Melodramedary (and Left-Hand Man) do not provide a conventional image.

However, we can handle some things - like horses - that are not tagged as familiaraction:

Code:
        <p>
          Shrouded Cleopatra tiptoes out of her hiding place and gives you some meat.
          <center>
            <table>
              <tbody>
                <tr>
                  <td>
                    <img src="https://s3.amazonaws.com/images.kingdomofloathing.com/itemimages/meat.gif" height="30" width="30" alt="Meat">
                  <td valign="center">
                    You gain 12 Meat.
logged as:

Code:
After Battle: Shrouded Cleopatra tiptoes out of her hiding place and gives you some meat.
You gain 12 Meat.
I'll submit a bug report about the lack of <!--familiaraction-->. Although, since we don't get a usable image, I'll have to handle it differently, anyway.

Hmm.
 

Veracity

Developer
Staff member
Revision 20263 supports camel combat actions.

New property "camelSpit" is percentage fullness of your camel.
Set to current value from combat page.
Set to 0 when your camel spits at them or you.
Set to 0 when you ascend.

Logs camel combat actions in session log and gCLI.
 
Top