carroto Posted September 25, 2020 Posted September 25, 2020 (edited) I made a simple tool for creating charts. Currently you can graph proc chances with varying recharge and also regen. You can view raw proc chances or proc damage as a percentage of the base damage of a power. For regen you can graph character regen by varying either regen or max HP. Sorry if those descriptions aren't clear. I think if you play with it, it will be clear enough. I'm pulling powers data from @RubyRed's powers API. Those data are pretty raw and I'm sure I haven't massaged all of them properly, so you might want to double-check the damage against Mids' now and then. The only powers I'm currently aware are not correct are Assassin's Strikes and chain powers. Just haven't gotten to them yet. (Edit: also apparently any powers that use pseudo pets). It's a simple tool but hopefully some people will find it useful or entertaining. If anyone has any suggestions for improvements or other charts that might be useful, please offer them. Edited September 29, 2020 by carroto 2 1 1 Make your own proc chance charts
Bopper Posted September 25, 2020 Posted September 25, 2020 Since your Proc chance graph and your Proc Damage % graph are basically the same curve, why not combine it into one graph with 2 y-axis? Make the left side show proc chance and the right side show damage %? PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 20 hours ago, Bopper said: Since your Proc chance graph and your Proc Damage % graph are basically the same curve, why not combine it into one graph with 2 y-axis? Make the left side show proc chance and the right side show damage %? Good idea. I'll have to see if the chart library I'm using supports that. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 While you're looking into updates to the tool, I notice you do not have the auto/toggle/pseudopets proc calculation. It looks like you're still using recharge when in fact they don't (and they don't use slotted recharge in its calculation either). 21 minutes ago, carroto said: Good idea. I'll have to see if the chart library I'm using supports that. I was thinking about it and it might not be a good idea. There are some powers that don't do damage but can take procs. So those will show up as infinite gains to proc damage and would wash everything else out. And since you have it set up to show multiple powers on one graph, the recharge to damage translation for one power will not match that of another power. So disregard this suggestion, i see it breaking things. PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 3 minutes ago, Bopper said: It looks like you're still using recharge when in fact they don't (and they don't use slotted recharge in its calculation either). Well considering that's the whole point of the chart I'm not sure how to handle those, aside from maybe excluding them altogether. I also just noticed that the damage calculation for quick snipes is not as simple as adding up the different damage types. There seems to be an additional modifier that is not the same for every AT. Good times. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 (edited) 19 minutes ago, carroto said: Well considering that's the whole point of the chart I'm not sure how to handle those, aside from maybe excluding them altogether. I also just noticed that the damage calculation for quick snipes is not as simple as adding up the different damage types. There seems to be an additional modifier that is not the same for every AT. Good times. Yes, there is a magnitude expression that makes things difficult. Same for things like savage melee. I just use the base scale, personally. As for including autos/pseudopets/toggles, it would be a straight line (so no dependence on varying recharge). It still is useful, as people can see the probability of procing every 10s Edit: if you do damage % on A/P/Ts though, you should do what i did in one of my tools. Convert it to DPA. So if a toggle or auto does X damage every activation period, it gets a DPA of X_A. And the proc will have a DPA of Prob x ProcDamage / 10s. Then you can do the % calc from there Edited September 26, 2020 by Bopper PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 15 minutes ago, Bopper said: I just use the base scale, personally. Unless my math is way off the final damage is significantly reduced relative to the base scale for most ATs. However Dominators seem to get special treatment. It's not obvious to me why that is. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 4 minutes ago, carroto said: Unless my math is way off the final damage is significantly reduced relative to the base scale for most ATs. However Dominators seem to get special treatment. It's not obvious to me why that is. Got an example? I don't think I'm on the same page with you. PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 1 minute ago, Bopper said: Got an example? I don't think I'm on the same page with you. If you look at the Blaster quick snipe you see it does a total of 4.56 damage scale with a magnitude expression of (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) * 0.7 The last number in that formula is 0.3 for the smashing component (2.28 DS), and 0.7 for the energy component (2.28 DS). If we're just looking at maxed out +tohit, we can simplify it to 1.210526316 * damage * 0.7 for the energy portion. Applying this to both components I get a final total of 0.83 DS smashing + 1.93 DS energy for a total of 2.76 effective DS for the power. It's the same for the Corruptor version. However for Doms the magnitude expression is ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.25) + .75) * @StdResult Which simplifies under enough +tohit to just equal 1 for both the smashing and energy portions, so it's just whatever the base DS of the power is. In this case it's 3.56. So the Dom quick snipe has a lower base DS (3.56 versus 4.56 for Blaster), but due to having a different magnitude expression, ends up with an effective higher DS (3.56 vs. 2.76). This is appropriate given the higher recharge on the Dom snipe, but it seems like a wonky way of getting there. I'm guessing this was done during the relatively recent Dom revamp in which Dom snipes were boosted in recharge and damage. However it seems really odd to break the standard damage formulas where DS is based on the recharge of the power. The Dom slow snipe has a 4.5 DS, same as on other ATs, but it gets a much longer recharge (20s vs. 12s). Then it gets a higher effective DS on the quick snipe compared to other ATs. Like I said, seems really wonky. If the devs wanted to boost the quick snipe on Doms I'd think it would have been better to stick to the standard damage formula and tweak the magnitude expression. But I guess this might have been seen as the best way if they wanted to just boost the quick snipe. I dunno, seems really kludgey, because this way you get an effective boost to the quick snipe damage, but the slow snipe kind of sucks given the higher recharge but same DS as other ATs get. Seems like there had to be a better way to do whatever they were getting at. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 I'm not on a computer at the moment to look at all this, but the 0.3 and 0.7 is done just to split the sniper damage to be 30% of one damage type and 70% of the other. It's very messy, i know. Take a look at Proton Volley and you'll see its quick snipe does 4 ticks of damage. But instead of setting the scale to be 1/4th of what it normally would be, they baked in the 1/4th into the magnitude expression. PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
Bopper Posted September 26, 2020 Posted September 26, 2020 for snipe info, checkout these patch notes PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 10 minutes ago, Bopper said: checkout these patch notes Thanks for that. Could have saved myself a bunch of calculations. Still seems kind of crappy to me that Doms get a much higher recharge on their slow snipes for the same damage as other ATs. Oh well it is what it is. Anyway, I'm not sure how to handle that sort of thing for this chart tool. I've been trying to avoid having to code a full magnitude expression evaluator but it's kind of looking like any other solution may be even worse. Until I can get it sorted it looks like quick snipe damage is way off for all ATs except Doms. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 5 minutes ago, carroto said: Thanks for that. Could have saved myself a bunch of calculations. Still seems kind of crappy to me that Doms get a much higher recharge on their slow snipes for the same damage as other ATs. Oh well it is what it is. Anyway, I'm not sure how to handle that sort of thing for this chart tool. I've been trying to avoid having to code a full magnitude expression evaluator but it's kind of looking like any other solution may be even worse. Until I can get it sorted it looks like quick snipe damage is way off for all ATs except Doms. Keep in mind, the higher recharge is what gives Doms the higher quick snipe damage. Even factoring in AT modifiers it does more damage than the blaster version. And I am in full agreement, I have completely ignored magnitude expressions, it's a ton of work to get it to handle everything correctly. I might revisit it, though. If I can just strip out the multiplier it uses (the *0.3, or /4, for example), it would go a long ways. So I might mess with that tonight. PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 18 minutes ago, Bopper said: I have completely ignored magnitude expressions Where are you dealing with those? I see your spreadsheets but no tool that's reading raw powers data that would have to contend with magnitude expressions directly. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
Bopper Posted September 26, 2020 Posted September 26, 2020 I haven't released a tool, just the spreadsheets from the tool. PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 1 minute ago, Bopper said: I haven't released a tool, just the spreadsheets from the tool. I see. You haven't added that to your sig yet. I was just thinking that a number of people keep having to solve the same set of problems related to getting meaningful data from the raw data, and it would be nice if we had one central source so we don't keep having to reinvent the same solutions. What language are you using? I was thinking that any language that has some version of "eval" could perhaps provide a shortcut for dealing with magnitude expressions. Do a simple string replace to put values in for variables, then eval the whole thing. Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 (edited) I am using MATLAB. The challenge I have with mag expressions are the various parameters it could use. Snipes use ToHit from the character, SavageMelee uses the count from Blood Frenzy. These require user inputs to plug in for those expressions. I could maybe try to parse every mag expression in the game to see what needs to be handled, but for my spreadsheets it does no good. I'm not gonna display every permutation of damage values a power can do. But it might help you out where you have the user input parameters of their build already. Edited September 26, 2020 by Bopper PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 Well I figure most people would be interested in either the worst or best case. So you could just do those. I'll probably just do max +tohit for quick snipes. Anyway if you want a list of all unique mag expressions I could probably get that pretty easily. I already coded a script to get me all the unique power effect area designators (['Cone', 'Chain', 'Map', 'SingleTarget', 'AoE', 'Location']). Make your own proc chance charts
Bopper Posted September 26, 2020 Posted September 26, 2020 Yeah, i'll take it. If you can populate a list of unique mag expressions, that would be helpful. PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 26, 2020 Author Posted September 26, 2020 (edited) Here is the list: Spoiler ((((.8 * minmax(power.base>rechargetime, 1, 30)) + 1.8) * .2) * @StdResult) / power.base>areafactor ((((15 - source>level) * .07) + .3) * .13) * @StdResult ((((15 - source>level) * .07) + .3) * .33) * @StdResult ((((15 - source>level) * .07) + .3) * .67) * @StdResult ((((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) / 3) * 0.33 ((((power.base>activatetime * 0.70) + (power.base>rechargetime * 0.04)) + 0.40) * @StdResult) / 3 (((1.2 * source>kHitPoints%) / 100) * .3) * @StdResult (((100 - source>kHitPoints%) + source>kEndurance%) / 200) * @StdResult (((100 - source>kHitPoints%) / 100) + 1) * @StdResult (((100 - source>kHitPoints%) / 1000) + .1) * @StdResult (((100 - target>kHitPoints%) / 100) * @StdResult) * .45 (((15 - source>level) * .07) + .3) * @StdResult (((75 - source>kHitPoints%) + 30) / 100) * @StdResult (((@Scale + (0.01 * source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Wind_Control_Pressure))) * @Value) * @Effectiveness) * @Strength (((@Scale + (0.02 * source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Wind_Control_Pressure))) * @Value) * @Effectiveness) * @Strength (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) * 0.3 (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) * 0.7 (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) / 4 (((power.base>activatetime * 0.70) + (minmax(power.base>rechargetime, 0, 20) * 0.04)) + 0.40) * @StdResult (((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .04) + 1) * @StdResult) + .72 (((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .04) + 1) * @StdResult) + .76 ((.11 * minmax(power.base>activateperiod, 0, 2)) * @StdResult) / power.base>areafactor ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.25) + .75) * @StdResult ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.314285714) + 1) * @StdResult ((minmax((distance - 25), 0, 40) / 40) + 1) * @StdResult ((negate(((source.TeamSize>30 * 0.03) + 0.07)) + 1.0) >= rand()) * @StdResult ((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .014) + 1) * @StdResult ((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .04) + 1) * @StdResult ((source>cur.kMeter * .1) + .05) * @Strength ((source>cur.kMeter * 2) + 1) * @Strength (.066 * power.base>activatetime) / power.base>areafactor (minmax((100 - target>kHitPoints%), 0, 100) / 100) * 0.75 (minmax((60 - source>kHitPoints%), 0, 100) / 60) * 0.2 (minmax((60 - source>kHitPoints%), 0, 100) / 60) * 0.25 (minmax((75 - source>kHitPoints%), 0, 100) / 60) * 0.25 (source>Max.kHitPoints * 0.03) * @Strength (source>Max.kHitPoints * 0.033) * @Strength (source>Max.kHitPoints * 0.09) * @Strength (source>Max.kHitPoints * 0.1) * @Strength (source>Max.kHitPoints * 0.25) * @Strength (source>Max.kHitPoints * 0.3) * @Strength (target.EventCount>ActivateAttackClick * 3) * source>Str.kRage (target>Max.kHitPoints * 0.1) * @Strength (target>Max.kHitPoints * 0.9) - target>Cur.kHitPoints -1 @StdResult * (((source.ownPowerNum?(Pool.Fighting.Boxing) * .15) + (source.ownPowerNum?(Pool.Fighting.Cross_Punch) * .15)) + 1) @StdResult * (((source.ownPowerNum?(Pool.Fighting.Kick) * .15) + (source.ownPowerNum?(Pool.Fighting.Boxing) * .15)) + 1) @StdResult * (((source.ownPowerNum?(Pool.Fighting.Kick) * .15) + (source.ownPowerNum?(Pool.Fighting.Cross_Punch) * .15)) + 1) @StdResult * (source.ownPowerNum?(Pool.Fighting.Kick) + source.ownPowerNum?(Pool.Fighting.Boxing)) minmax(((pow * 0.25) / 4), 0.0, 1.0) minmax((target.EventCount>ActivateAttackClick * 0.5), 0.0, 10.0) * minmax((((100.0 - (source>kMeter * 100)) / 20.0) * dup()), 0.0, 10.0) minmax((target.EventCount>ActivateAttackClick * @StdResult), 0.0, 10.0) * minmax((((100.0 - (source>kMeter * 100)) / 20.0) * dup()), 0.0, 10.0) minmax((target.EventCount>AttackedByOtherClick * 0.25), 0.0, 5.0) * minmax((((100.0 - (source>kMeter * 100)) / 20.0) * dup()), 0.0, 10.0) negate(minmax((source>mod.kConfused + 1), 2, 30)) negate(minmax((source>mod.kHeld + 1), 2, 30)) negate(minmax((source>mod.kImmobilize + 1), 2, 30)) negate(minmax((source>mod.kSleep + 1), 2, 30)) negate(minmax((source>mod.kStun + 1), 2, 30)) negate(minmax((source>mod.kTerrorized + 1), 2, 30)) pow * 0.0125 pow * 0.25 source.TeamSize>30 * @StdResult source>Max.kHitPoints * @StdResult source>kRage * .01 source>kRage * .02 target.EventCount>ActivateAttackClick * 5 Edit: Next step will be to pull out a list of unique variable / function names in all of those. That will have to wait though. I have to step out for the evening. Edit: Here's the list of unique "words" in those magnitude expressions. I used a simple algorithm to extract them. Hopefully none got missed. Spoiler @Effectiveness @Scale @StdResult @Strength @Value Pool.Fighting.Boxing Pool.Fighting.Cross_Punch Pool.Fighting.Kick Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker Temporary_Powers.Temporary_Powers.Wind_Control_Pressure distance dup minmax negate pow power.base>activateperiod, power.base>activatetime power.base>areafactor power.base>rechargetime power.base>rechargetime, rand source.TeamSize>30 source.ownPowerNum? source>Max.kHitPoints source>Str.kRage source>cur.kMeter source>cur.kToHit source>kEndurance% source>kHitPoints% source>kMeter source>kRage source>level source>mod.kConfused source>mod.kHeld source>mod.kImmobilize source>mod.kSleep source>mod.kStun source>mod.kTerrorized target.EventCount>ActivateAttackClick target.EventCount>AttackedByOtherClick target>Cur.kHitPoints target>Max.kHitPoints target>kHitPoints% Edited September 27, 2020 by carroto 1 Make your own proc chance charts
Bopper Posted September 28, 2020 Posted September 28, 2020 (edited) @carroto thanks for all the hard work on this. I'm just now getting to look at it, but one thing stood out to me. Can you find for me the power that has this magnitude expression? I couldn't find it when I tried. ((((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) / 3) * 0.33 Edit: Disregard, I found it to be a contamination effect from beam rifle. So it won't impact my stuff, luckily. Edited September 28, 2020 by Bopper PPM Information Guide Survivability Tool Interface DoT Procs Guide Time Manipulation Guide Bopper Builds +HP/+Regen Proc Cheat Sheet Super Pack Drop Percentages Recharge Guide Base Empowerment: Temp Powers Bopper's Tools & Formulas Mids' Reborn
carroto Posted September 28, 2020 Author Posted September 28, 2020 I had the same question about a number of mag expressions so I made a list that includes the power names. Hopefully not too hard to read: Spoiler ((((.8 * minmax(power.base>rechargetime, 1, 30)) + 1.8) * .2) * @StdResult) / power.base>areafactor -> (Doublehit) ((((15 - source>level) * .07) + .3) * .13) * @StdResult -> (Throwing Knives) ((((15 - source>level) * .07) + .3) * .33) * @StdResult -> (Tranq Dart) ((((15 - source>level) * .07) + .3) * .67) * @StdResult -> (Tranq Dart) ((((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) / 3) * 0.33 -> (Penetrating Ray) ((((power.base>activatetime * 0.70) + (power.base>rechargetime * 0.04)) + 0.40) * @StdResult) / 3 -> (Penetrating Ray) (((1.2 * source>kHitPoints%) / 100) * .3) * @StdResult -> (Gamma Boost) (((100 - source>kHitPoints%) + source>kEndurance%) / 200) * @StdResult -> (Master Brawler) (((100 - source>kHitPoints%) / 100) + 1) * @StdResult -> (Life Support System) (((100 - source>kHitPoints%) / 1000) + .1) * @StdResult -> (Life Support System) (((100 - target>kHitPoints%) / 100) * @StdResult) * .45 -> (Second Wind) (((15 - source>level) * .07) + .3) * @StdResult -> (Apprentice Charm, Mutagen, Taser Dart, Throwing Knives) (((75 - source>kHitPoints%) + 30) / 100) * @StdResult -> (Gamma Boost) (((@Scale + (0.01 * source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Wind_Control_Pressure))) * @Value) * @Effectiveness) * @Strength -> (Microburst) (((@Scale + (0.02 * source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Wind_Control_Pressure))) * @Value) * @Effectiveness) * @Strength -> (Microburst, Breathless) (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) * 0.3 -> (Sniper Blast) (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) * 0.7 -> (Sniper Blast) (((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult) / 4 -> (Proton Volley) (((power.base>activatetime * 0.70) + (minmax(power.base>rechargetime, 0, 20) * 0.04)) + 0.40) * @StdResult -> (Doublehit) (((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .04) + 1) * @StdResult) + .72 -> (Hemorrhage) (((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .04) + 1) * @StdResult) + .76 -> (Hemorrhage) ((.11 * minmax(power.base>activateperiod, 0, 2)) * @StdResult) / power.base>areafactor -> (Doublehit) ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.210526316) + 1) * @StdResult -> (Moonbeam, Zapp, Blazing Bolt, Psionic Lance, Sniper Rifle, Penetrating Ray, Sniper Blast, Ranged Shot) ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.25) + .75) * @StdResult -> (Masterful Throw, Proton Volley, Zapp, Blazing Bolt, Moon Beam, Psionic Lance, Sniper Blast) ((minmax(((source>cur.kToHit - 0.75) / 0.22), -1.0, 1.0) * 0.314285714) + 1) * @StdResult -> (Zapp, Mace Beam, Moonbeam) ((minmax((distance - 25), 0, 40) / 40) + 1) * @StdResult -> (Feral Charge, Savage Leap AoE) ((negate(((source.TeamSize>30 * 0.03) + 0.07)) + 1.0) >= rand()) * @StdResult -> (Energy Transfer) ((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .014) + 1) * @StdResult -> (Unkindness) ((source.ownPowerNum?(Temporary_Powers.Temporary_Powers.Savage_Melee_Blood_Frenzy_Stalker) * .04) + 1) * @StdResult -> (Hemorrhage, Call Hawk, Rending Flurry Normal, Rending Flurry Large) ((source>cur.kMeter * .1) + .05) * @Strength -> (Fortify Pack) ((source>cur.kMeter * 2) + 1) * @Strength -> (Fortify Pack) (.066 * power.base>activatetime) / power.base>areafactor -> (Dual Wield, Piercing Rounds, Time Bomb, Taser, Smoke Grenade, Rain of Arrows, Trip Mine, Toxic Web Grenade, Empty Clips, Suppressive Fire, Bullet Rain, Caltrops, Executioner's Shot, Hail of Bullets, Pistols, Proton Volley, Moonbeam, Zapp, Blazing Bolt, Psionic Lance, Sniper Blast, Sniper Rifle, Penetrating Ray, Ranged Shot, Gun Drone) (minmax((100 - target>kHitPoints%), 0, 100) / 100) * 0.75 -> (Vigilance) (minmax((60 - source>kHitPoints%), 0, 100) / 60) * 0.2 -> (Agile, Dodge, Lucky) (minmax((60 - source>kHitPoints%), 0, 100) / 60) * 0.25 -> (Agile, Dodge, Enduring) (minmax((75 - source>kHitPoints%), 0, 100) / 60) * 0.25 -> (Combat Training: Defensive, Foresight) (source>Max.kHitPoints * 0.03) * @Strength -> (Parasitic Aura) (source>Max.kHitPoints * 0.033) * @Strength -> (Parasitic Aura) (source>Max.kHitPoints * 0.09) * @Strength -> (Ablative Carapace) (source>Max.kHitPoints * 0.1) * @Strength -> (Parasitic Aura) (source>Max.kHitPoints * 0.25) * @Strength -> (Wild Bastion, Force Barrier) (source>Max.kHitPoints * 0.3) * @Strength -> (Ablative Carapace) (target.EventCount>ActivateAttackClick * 3) * source>Str.kRage -> (Domination) (target>Max.kHitPoints * 0.1) * @Strength -> (Spirit Ward) (target>Max.kHitPoints * 0.9) - target>Cur.kHitPoints -> (Enforced Morale) -1 -> (Burst of Speed) @StdResult * (((source.ownPowerNum?(Pool.Fighting.Boxing) * .15) + (source.ownPowerNum?(Pool.Fighting.Cross_Punch) * .15)) + 1) -> (Kick) @StdResult * (((source.ownPowerNum?(Pool.Fighting.Kick) * .15) + (source.ownPowerNum?(Pool.Fighting.Boxing) * .15)) + 1) -> (Cross Punch) @StdResult * (((source.ownPowerNum?(Pool.Fighting.Kick) * .15) + (source.ownPowerNum?(Pool.Fighting.Cross_Punch) * .15)) + 1) -> (Boxing) @StdResult * (source.ownPowerNum?(Pool.Fighting.Kick) + source.ownPowerNum?(Pool.Fighting.Boxing)) -> (Brawl, Cross Punch) minmax(((pow * 0.25) / 4), 0.0, 1.0) -> (Defiance old) minmax((target.EventCount>ActivateAttackClick * 0.5), 0.0, 10.0) * minmax((((100.0 - (source>kMeter * 100)) / 20.0) * dup()), 0.0, 10.0) -> (Battle Euphoria) minmax((target.EventCount>ActivateAttackClick * @StdResult), 0.0, 10.0) * minmax((((100.0 - (source>kMeter * 100)) / 20.0) * dup()), 0.0, 10.0) -> (Fury) minmax((target.EventCount>AttackedByOtherClick * 0.25), 0.0, 5.0) * minmax((((100.0 - (source>kMeter * 100)) / 20.0) * dup()), 0.0, 10.0) -> (Fury, Battle Euphoria) negate(minmax((source>mod.kConfused + 1), 2, 30)) -> (Inner Will) negate(minmax((source>mod.kHeld + 1), 2, 30)) -> (Inner Will) negate(minmax((source>mod.kImmobilize + 1), 2, 30)) -> (Inner Will) negate(minmax((source>mod.kSleep + 1), 2, 30)) -> (Inner Will) negate(minmax((source>mod.kStun + 1), 2, 30)) -> (Inner Will) negate(minmax((source>mod.kTerrorized + 1), 2, 30)) -> (Inner Will) pow * 0.0125 -> (Defiance old) pow * 0.25 -> (Defiance old) source.TeamSize>30 * @StdResult -> (Assassination) source>Max.kHitPoints * @StdResult -> (Ablative Carapace, Parasitic Leech) source>kRage * .01 -> (Domination, Defiance, Battle Euphoria Buff, Opportunity, Primal Energy, Fury) source>kRage * .02 -> (Fury) target.EventCount>ActivateAttackClick * 5 -> (Defiance) 1 Make your own proc chance charts
carroto Posted September 29, 2020 Author Posted September 29, 2020 That turned to be a more useful exercise than I'd anticipated. Looking over that list I saw a lot of Savage Melee stuff, so I investigated and found I was way off on those powers. Fixed quick snipes while I was at it. For both I just took the best base scenario. 97% tohit and 5 stacks of Blood Frenzy. Make your own proc chance charts
SmalltalkJava Posted October 7, 2021 Posted October 7, 2021 Thanks for creating this. I just found it today. I am loving it! Baseline MM Henchmen Defenses and Resist Values MM - Beast Pets - Pet Attack usage and some quick proc testing
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now