Multi-elemental damage

Discussion in 'JS Plugin Requests' started by Hoppy, Nov 25, 2015.

  1. Hoppy

    Hoppy Veteran Veteran

    Messages:
    326
    Likes Received:
    54
    First Language:
    English
    I wonder if a plugin exists that lets you have skills that do multi elemental damage such as a dual tech I planning on making that does both fire and water damage.
     
    #1
  2. StarkinGyra

    StarkinGyra Adventurer Member

    Messages:
    219
    Likes Received:
    9
    Location:
    Portland, OR
    First Language:
    English
    I am not sure I have seen one. It would be fun to see one. I know a few times in my game it would work out well.
     
    #2
  3. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,061
    Location:
    Toronto
    First Language:
    English
    I will be implementing a plugin that allows you to implement elemental damage.


    This would change the way elemental calculations are handled.


    By default, the game just takes the one that would be most effective.


    My system would just apply them in a straightforward way.


    For example, say you have a Fire slime that is immune to fire damage (ie: element rate 0%)


    You have a "Fire Slash" skill that inflicts 50% fire and 50% physical damage.


    Total damage is equal to (fire effectiveness) * base damage + (physical effectiveness) * base damage.


    Which results in 0 fire damage, and 50% base damage, for a total of 50% damage.
     
    #3
  4. Maliki79

    Maliki79 Veteran Veteran

    Messages:
    636
    Likes Received:
    242
    Location:
    New Jersey
    First Language:
    English
    Primarily Uses:
    N/A
    #4
  5. Roguedeus

    Roguedeus It's never too late to procrastinate... Veteran

    Messages:
    527
    Likes Received:
    106
    First Language:
    English
    Primarily Uses:
    N/A
    Would you be willing to add the option of override elements? Where the action would apply 100% of its damage to the target (as the override element) unless the target was resistant to that element?

    Examples:

    100 Damage dealt as 50% Fire, 50% Physical, +Vorpal (Element Override)

    Override Elements: 10,11,12 (Defined in parameters)
    Code:
    Target has 0% Fire Rate, 50% Physical Rate, and No Vorpal Resist... The target will take 100 Damage. 
    Code:
    Target has 0% Fire Rate, 50% Physical Rate, and Vorpal Resist...The target will take 25 Damage.
    Essentially, the override elements will cause the damage to function in default mode. Applying damage in a weakest element first order. Unless the target is flagged as being resistant to it.

    <Override Resist: Vorpal> or <Override Resist: ID>With this... It would allow for the creation of certain equips that pierce established resistances unless the target is protected from that piercing. While not over-complicating to much. ;)

    That dragon has impenetrable damage resistance!! -- Unless you have that Sword made of Mithril (Mythril Element Override) and the dragon has no resistance to Mithril... etc...
     
    Last edited by a moderator: Nov 25, 2015
    #5
    Tsukihime likes this.
  6. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,061
    Location:
    Toronto
    First Language:
    English
    So basically, your skill/weapon has some property that allows you to bypass certain elemental resistances.

    For example, let's say Fire Slime has 0% element rate towards fire (in other words, 100% elemental resistance towards fire).

    Normally, it would receive 0 damage from fire elemental attacks.

    However, if your skill bypasses fire elemental resistance, then you would receive 100% from fire elemental attacks.

    Perhaps we can extend this to support an "elemental resist bypass offset"

    For example, your attack ignores 50% of their fire elemental resistance.
     
    Last edited by a moderator: Nov 25, 2015
    #6
  7. Roguedeus

    Roguedeus It's never too late to procrastinate... Veteran

    Messages:
    527
    Likes Received:
    106
    First Language:
    English
    Primarily Uses:
    N/A
    That's not a bad idea. But its not exactly what I mean.

    If the ability has the override element assigned, then all damage is applied based on the override elements rate (ignoring all other elements) unless the target is note tagged as resistant to that override.

    The override simply causes the damage to be applied as if the advanced element splitting doesn't exist. (and the winning element is the override element)

    If the target is resistant to that override element (by note tag, not element rate) the override element is ignored, and instead the advanced element split applies normally.

    That can be depend even more by the option of applying an attack a resistance offset as you describe.
     
    Last edited by a moderator: Nov 25, 2015
    #7
  8. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,061
    Location:
    Toronto
    First Language:
    English
    Ok, so let's say you're using a skill that is Fire-Physical element.


    However, you also have a state added that forces all damage to be ice elemental.


    When the state is applied, the only element you will inflict is ice.


    You could have multiple override states: ice-wind element.


    The same split calculations would occur using the override states.


    As another example, let's say you're using a physical skill. 100% physical damage.


    You then equip a fire sword.


    Fire sword Override: 50% fire elemental, 50% physical.


    Now, all of your skills that *can* be overriddden will use the new element.


    The "Normal" element type will be a bit special.
     
    Last edited by a moderator: Nov 25, 2015
    #8
  9. Roguedeus

    Roguedeus It's never too late to procrastinate... Veteran

    Messages:
    527
    Likes Received:
    106
    First Language:
    English
    Primarily Uses:
    N/A
    lol... I think so.

    But in my mind all that's needed is one override element to apply all the abilities damage (as it does by default mechanic) only it would be limited by the targets element rate (as it does by default mechanic).

    If more than one override is applied to an ability, then the winning override deals all the damage. It is either 100% override, or 0% override (At which point your element split applies)

    edit:

    You can also think of it as... If an override element applies and the target is not resistant, then that is the only element the ability has. Multiple overrides would compete as though they where non-override elements in the default mechanic.

    If the target is resistant to all the overrides, then non-override element processing kicks in...

    edit:

    The point of the override elements is NOT to split them. If you wanted a split, you could limit yourself to using non-override elements.
     
    Last edited by a moderator: Nov 25, 2015
    #9
  10. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,061
    Location:
    Toronto
    First Language:
    English
    That would be a bit strange: if you're overriding your skill element with a new element, why would it default to the old element if the enemy happens to be resistant to the override element?

    That's like saying if you have multiple attack elements, and the enemy happens to resist most of them, then you would happen to deal damage using the element it's weakest against.

    But the percentage override would make sense.

    Default: 100% physical

    Override: 100% fire

    If it overrides completely, then 100% fire

    If it overrides nothing, then 0%

    If it overrides half, then 50% fire 50% physical.

    We can even say that the override would be an additional elemental modifier on top of the splitting.

    Elemental damage would then be

    Code:
    (OverrideRate * fire rate) * base + (OverrideRate * physical rate) * base
    You would then include separate logic to determine how override rates are handled.
     
    Last edited by a moderator: Nov 25, 2015
    #10
  11. Roguedeus

    Roguedeus It's never too late to procrastinate... Veteran

    Messages:
    527
    Likes Received:
    106
    First Language:
    English
    Primarily Uses:
    N/A
    Because the override element is like a super element that pierces normal element rates. It overrides normal elements.

    The original example I gave is like a dragon that has great resistances to all elements, unless the attack uses a Mithril Sword. The Mithril is allowing the damage to totally bypass all other element rates.

    If the dragon has a rate of less than 100% for mithril, then the damage will be reduced as in the normal damage mechanic. (or increased by weaknesses)

    If the dragon has its mithril proof vest on. (Note tag: Override Resist: Mithril) then the mithril doesn't act as an override at all. Instead the dragons normal element rates apply.

    edit:

    You would probably define all override element ID's in the plugin parameters. That way there is no confusion between normal elements and override elements. If a trait grants the override element, then it overrides all non-override elements, unless the target is immune/resistant to that override element.

    edit:

    Using your method would have the same basic result, as far as I can tell. ;)

    But with the added benefit of being able to apply more than one override element.
     
    Last edited by a moderator: Nov 25, 2015
    #11
  12. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,061
    Location:
    Toronto
    First Language:
    English
    Ok, how about this

    Assume 75% Fire, 25% Physical. Assume target has no elemental resistances.

    First, you have your normal weighted distribution for elemental attacks/resistances. Damage will be

    (0.75 * 1 base) + (0.25 * 1 * base)Usual stuff.Second, let's give our target some resistance. Let's say they have 100% fire resistance, and 50% physical resistance

    (0.75 * 0 * base) + (0.25 * 0.5 * base)Which means they'll receive 12.5% physical damage.Finally, let's take into consideration the override states, which determines how effective their resistances are.

    Assume your dragon that is weak against mithril. Your "override" property would eliminate their resistances:

    (0.75 * [OVERRIDE RESISTANCE = 1] * base) + (0.25 * [OVERRIDE RESISTANCE = 1) * base)So basically, if they override condition is set, then it cancels out all of their resistances from the formula.If they are resistant to override, then the effect of the override would disappear, and you use the original resistances.

    My plugin would be set up to provide support for calculating elemental resistance, which allows me to write a separate plugin that can add overriding functionality easily, based on this formula.

    Partial override would then be something one could consider.
     
    Last edited by a moderator: Nov 25, 2015
    #12
    Roguedeus likes this.
  13. Roguedeus

    Roguedeus It's never too late to procrastinate... Veteran

    Messages:
    527
    Likes Received:
    106
    First Language:
    English
    Primarily Uses:
    N/A
    I look forward to it!

    But I hope this doesn't slow down your roll out of the Shop Manger! :D
     
    #13
  14. Hoppy

    Hoppy Veteran Veteran

    Messages:
    326
    Likes Received:
    54
    First Language:
    English
    I can't wait to see the plugin, I'll also try the Element EX plugin in the meantime.
     
    #14
    Maliki79 likes this.
  15. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,061
    Location:
    Toronto
    First Language:
    English
    Actually, I think instead of using "element rate", perhaps I can just offer an elemental resist plugin.

    0% would mean no resistance

    50% would mean half resist

    100% would mean full resistance.

    150% would mean 50% absorption

    200% would mean 100% absorption

    Then you could tag

    elemental attack: Fire 100%
    Code:
    elemental resist: Fire 100%
    Which would be more consistent?I don't know if the "200% = absorb" makes sense though, but if you already resist it 100%, well what the heck.
     
    Last edited by a moderator: Nov 25, 2015
    #15

Share This Page