Cold Iron / Adamantine Discussion

Discussion in 'General Modification' started by Shiningted, Jun 16, 2021.

Remove all ads!
  1. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    OK, I guess I can do them in python if this ok with @Sitra Achara.
     
    anatoliy likes this.
  2. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    As we discussed earlier, Monster DR Cold is actually Cold Iron (there is no such thing as DR/Cold, we just have to fix frost weapons to not grant this).
    I'd be in favor of a generic DR condition (which could be specified with OR or And logic), but I’d also like the history to reflect it, which I'm not sure can be easily made generic.

    Regarding bonus types, certainly adding them to constants.py would be good. Should also do a thorough search in the decompilation for every instance of bonus_add and its variants to make sure we haven't missed anything.
     
    anatoliy likes this.
  3. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    OK will add the bonus types to constants.py then :)

    Will look into the DR Condition as well, if I find a good solution I will create a generic one, if not I will simply do normal ones.
     
  4. anatoliy

    anatoliy Established Member

    Joined:
    Feb 18, 2017
    Messages:
    635
    Likes Received:
    200
    Also there is issue with tagging a weapon with Cold Iron. For example there is condition "Weapon Silver". Now we need to add new condition of "Weapon Cold Iron".

    Another point is - there are around 57 non magical base weapons. I guess we would have to create protos for cold iron weapons. And these should not interfere with SGoS or other ZMOD modules preferably.
     
  5. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    No new protos are necessary at the Temple+ infrastructure level. If someone wants to add them in the module they can easily do so.
     
    anatoliy likes this.
  6. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    This might be a dumb question, but why does Monster DR like https://github.com/GrognardsFromHel...onditions-(List)-page-2-M-Z#monster-dr-silver also have a hook for dealing damage (0x100f7840). Just because I have a DR that gets broken by silver I do not automatically break silver DR? I am bit confused about this part right now.


    EDIT: If it is possible in protos to pass a second arg to the Monster DR a generic Monster DR would be doable without much troubles.

    The Monster DR all use the same Callback (0x100f7800) and if you pass the the desired DR as the second arg this would be easy and the history wouldn't be a concern, the callback handles this anyways.

    EDIT2: protos entry 14132 in protos.tab has a dr entry than looks like:
    Code:
    Monster DR Slashing    5    0
    so if the 0 represents a 2nd argument field that is not currently used as MOnster DR only takes 1 arg, this could be used for the 2nd arg.
     
    Last edited: Jun 17, 2021
  7. anatoliy

    anatoliy Established Member

    Joined:
    Feb 18, 2017
    Messages:
    635
    Likes Received:
    200
    upload_2021-6-17_18-15-42.png

    You will deal full damage if you hit by silver weapon.
     

    Attached Files:

  8. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    Cool.

    About the DealingDamage part: the rules do state this explicitly for DR/alignment. I suppose it also makes sense for werewolves to be able to kill each other, and so on.
     
  9. dolio

    dolio Established Member Supporter

    Joined:
    May 30, 2005
    Messages:
    338
    Likes Received:
    81
    So, I hadn't mentioned this before, but it occurred to me that there might be already enough in the game to handle both OR and AND conditions, although I don't know exactly how it works.

    Specifically, if you do
    Code:
    D20DAP_HOLY | D20DAP_SILVER
    does that count as 'holy OR silver'?

    If so, then that might be fine, because 'holy AND silver' is, I think, rules wise identical to two damage reductions, one which is holy and one which is silver. They don't stack in most cases, you just get the best one. So if you have 10/holy and 10/silver, that's the same as 10/(holy and silver), as long as the engine implements it correctly. The only difference might be the information displayed.

    As far as I know, D&D doesn't have more complicated nesting of bypass conditions (like (W and X) or (Y and Z)).
     
  10. anatoliy

    anatoliy Established Member

    Joined:
    Feb 18, 2017
    Messages:
    635
    Likes Received:
    200
    Nope. The weapon has to be both holy and silver to overcome damage reduction.

    MM p308
    "A few creatures are harmed by more than one kind of weapon. The babau demon, for example, has damage reduction 10/cold iron or good. Either kind of weapon—cold iron or good—overcomes its damage reduction.

    A few other creatures require combinations of different types of attacks to overcome their damage reduction. The ghaele eladrin has damage reduction 10/evil and cold iron, meaning that a weapon must be made of cold-forged iron and be evil-aligned in order to overcome the ghaele’s damage reduction. A lich has damage reduction 15/bludg-
    eoning and magic, meaning that only bludgeoning weapons with at least a +1 enhancement bonus deal full damage to it. A weapon that
    falls into one category but not the other is of no help in overcoming the creature’s damage reduction—a magic sword or a nonmagical
    mace is no better at harming a lich than any other weapon."
     
  11. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    @anatoliy could you test if the arg2 in protos.tab is useable for the condition.

    My generic_moster_dr.py misses the Verify_Obj_Conditions signal/query handling atm, I don't know it is needed, btu for testing purpose this could be good enough I think.
     

    Attached Files:

  12. dolio

    dolio Established Member Supporter

    Joined:
    May 30, 2005
    Messages:
    338
    Likes Received:
    81
    If you have 15/bludgeoning and 15/magic, then a magic sword gets reduced by the 15/bludgeoning, and a non-magical mace gets reduced by the 15/magic, and a non-magical spear gets reduced by one or the other, but not both (because you only take the most advantageous DR, not add them all up). At least, that's how the pen and paper rules work.

    If you can only give a monster a single DR condition in a proto, then that's a barrier, but I think at least with spell conditions you could have multiple DRs like this.
     
    anatoliy likes this.
  13. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    I am pretty sure it does the or thing the way you expect it, see:

    https://github.com/GrognardsFromHel...itions-(List)-page-2-M-Z#monster-dr-cold-holy

    it passes 1008 as data1
     
  14. anatoliy

    anatoliy Established Member

    Joined:
    Feb 18, 2017
    Messages:
    635
    Likes Received:
    200
    I disagree. They both protect and decrease number of damage one by one.
     
  15. anatoliy

    anatoliy Established Member

    Joined:
    Feb 18, 2017
    Messages:
    635
    Likes Received:
    200
    I'm not going to test as I know that it will. I myself did quite a few conditions, so no worries. Arg2 is passed correctly from protos.

    Overall looks good!

    Btw, you can use this: https://www.moddb.com/mods/toeezprotoed
    upload_2021-6-17_19-18-10.png
    upload_2021-6-17_19-18-36.png
     
Our Host!