Page 2 of 2 FirstFirst 1 2
Results 11 to 14 of 14

Thread: July 2020 IotM - Melodramedary

  1. #11

    Default

    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".
    Originally Posted by carolingian_tortoise View Post
    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.
    Autoscend. For when you want a robot to play a game, that you spend money on, for you.

  2. #12
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    13,396

    Default

    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.

  3. #13
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    13,396

    Default

    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.

  4. #14
    Developer Veracity's Avatar
    Join Date
    Mar 2006
    Location
    The Unseelie Court
    Posts
    13,396

    Default

    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •