User blog:Felyndiira/A Look at Level 500 FAW Killing Teams

Introduction
With the advent of the new Level 500, continuously snowballing FAW - Yuzuki - a lot of old FAW killing teams are now seeing increased failure rates. A number of players - out of frustration - had switched to different teams to attempt to maximize points by overkilling her, while still somehow keeping her snowballing in check so that she doesn't wipe out their entire deck. It's also likely that we will have other FAWs similar to her, so building a team that can take her on is very important.

There are some players that stuck with variations of old Buffer/10Hit/Unleasher teams, but most players decided to add some form of debuffer or turn skipper to try to control the snowballing. If you listen to the wiki discussions, both teams seem to have merit - but, the question remains, is the old unleasher teams still reliable, or should you also switch to a turn skipper team?

I'm going to use Monte-Carlo simulations to approximate the effectiveness of each of these builds.

Methodology
Unfortunately, with the exact attack/defense formulas unknown to us, it would take forever to try to build a full-scale simulator for each of these teams. We must have a good way to approximate success rates, and I feel that the best way to do so is by using Yuzuki's turn counts as a reference.

Yuzuki's snowballing is predictable - by turn 6, she will guarantee an OHKO on every single hit, which means that once she hits T6, if you're not set up, your chances of success starts going down the drain. Since every team has two vital cards (buffer, 10x hitter), losing either of these really decreases your chances of successfully completing the boss (or, even if you can tap her down with your remaining cards, the chance of actually dealing overkill damage).

We can model this by approximating the success rate to be 100% at turn 5 or earlier. Basically, if your team can be set up (as in fully buffed with your 10x hitter active) by turn 5, you will achieve a good overkill on Yuzuki. By turn 6, one of your critical cards may get knocked out and your success rate drops to 60%. By turn 7, your success drops to 20%, and by turn 8, you either tapped her out for no overkill, or might as well already have lost the battle.

For teams that do not use team unleashers or turnskippers, I model things a bit more precisely. I assume that you're trying to use multi-hitter procs early to try to get rid of minions, and are using taps wisely to ensure maximum potency on your 10x hitter. By turn 5, I assume that you are unleashing no matter what. If you want me to write a bot with a different behavior, please leave a comment and I'll see if I can get to it.

The full code (in VBA for Excel) is included with each team. Note that the simplified model does not include minion turn skips (which tends to favor turn-skipper and team unleash teams over HH+unleasher teams). I'm not modeling Valiant Bellona, though I will include hyper-optimized teams using an ABB turn skipper and/or Eternal Fortuna as reference.

Free Teams
We will be looking at two different free teams in this blog post:

Halloween Hades + Diva Mika + 3x Unleashers

 * 1x Free Multi-Hit Card (Halloween Hades or Heroic Gilgamesh)
 * 1x 300%+ Free Super Buffer (Diva Mika or Superstar Mika)
 * 3x Unleashers (Celestial Oracle, Oracle Chair, or off-element unleasher)

This team is your standard 10x Hit + Buffer + Unleashers team. Our bot attempts to unleash Halloween Hades once after a single buff to remove one resurrection from the minions, then try to eliminate the minions. Once the minions are gone and HH is fully buffed (or once turn 5 hits), we unleash HH regardless and hope to kill the boss. Note that HH's damage is assumed to be equally divided between living targets for simplicity. The code is given in the appendix.

Halloween Hades + Diva Mika + Astral Wing + 2x Unleashers

 * 1x Free Unleasher (Halloween Hades or Heroic Gilgamesh)
 * 1x 300%+ Free Super Buffer (Diva Mika or Superstar Mika)
 * 1x 4-Turn Skipper with Damage at 20% Proc (Astral Wing or others)
 * 3x Unleashers (Celestial Oracle, Oracle Chair, or off-element unleasher)

This team uses an Astral Wing, and the bot is coded a bit differently (as damage-turn-skipper gets rid of minions easily, we don't need to juggle them like we did with the pure HH team). Thus, this team is considered to be complete and overkill-ready as soon as it hits three buffs with Halloween Hades activated. Turns that are skipped are not counted against us since Yuzuki cannot snowball during these turns, so if Yuzuki gets 2 turns and then has 8 turns skipped, we count that as only two turns. The code is also given in the appendix.

Paid Summon Teams
There are a number of highly advantageous cards in Paid Summons that can greatly increase the success rate of our teams. Namely: We will be looking at the following teams. Note that ALL of these teams assume that you are using a 500%/650% buffer to achieve maximum 10 hit damage in two buffs. In other words, if you're already shelling out for things like team unleashers and Lulu, I also assume that you can do the same for the best buffers available in the game.
 * Using a 500%/650% buffer reduces the number of buffs we need to 2 (instead of 3), which is huge in battles where time is of the essence.
 * Team Unleashers are only available in paid summon.  Most of these have a 15% proc rate, although we will include teams with Eternal Fortuna (20%) for reference purposes.
 * The ABB Turn Skippers (like Lulu) are top-tier due to the 40% proc rate.

Halloween Hades + Triestesse + 3x Unleashers
This is basically a cash-shop version of the free HH+Buffer+Unleashers team. This team is included for reference to demonstrate how much a cash-shop 650% buffer can improve this team's efficiency over a free 400% like Diva Mika.
 * 1x Free Multi-Hit Card (Halloween Hades or Heroic Gilgamesh or different element)
 * 1x Cash Shop Super Buffer (Triestesse or other)
 * 3x Unleashers (Celestial Oracle, Oracle Chair, or other)

Double Team Unleasher + Double Buffer
This is the most powerful team you can build short of using exclusive cards. A double team unleasher achieves max damage if ANY of the team unleashers proc (since it will activate both buffers+the multi-hit, which is sufficient for the multi-hit card to reach max damage) and will have the best overkill numbers of any team on this list. Of course, this team also is hard as heck to build for its power, requiring at least four (probably all five) cards being cash-shop cards.
 * 2x Team Unleashers
 * 2x Cash Shop Buffers
 * 1x Multi-hit Card

I will also consider the following variant, which is pretty much exclusive to long-time mega cashers, just for comparison:
 * 2x Eternal Fortuna
 * 2x Cash Shop Buffers
 * 1x Multi-Hit Card

Multi-Hit + Buffer + DMG Turn Skipper + Team Unleasher + Unleasher
This team is a cash shop version of the delay team featured above, with a cash shop 650% or 500% buffer and a team unleasher. The idea behind this team is to delay the FAW and hold your team unleasher until you get a proc from your buffer - either from your normal procs or from your ST unleasher. Then, proc the team unleasher and you're instantly overkill-ready (2x buffer proc, 1x multi-hit, for max damage).
 * 1x Multi-hit Card
 * 1x Cash Shop Buffer
 * 1x 20% Damage+Turn Skipper
 * 1x 15% Team Unleasher
 * 1x Regular ST Unleasher

A variant of this is included (and is, in fact, the team I'm currently using) incorporating an ABB DMG Turn Skipper in place of a standard 20% proc one. Lulu's higher activation rate increases the amount of delaying we can do (despite lasting for one less turn) and gives us a higher guarantee that we'll get the procs we need: And, of course, the above team with Eternal Fortuna in place of the normal 15% team unleasher: If you have two team unleashers, you should not follow this setup and should instead use the double unleasher teams above.
 * 1x Multi-hit Card
 * 1x Cash Shop Buffer
 * 1x Lulu (or similar ABB card)
 * 1x 15% Team Unleasher
 * 1x Regular ST Unleasher
 * 1x Multi-hit Card
 * 1x Cash Shop Buffer
 * 1x Lulu (or similar ABB card)
 * 1x Eternal Fortuna
 * 1x Regular ST Unleasher

Results
Just as a reminder, we are using the following Yuzuki-turns to success ratio for our estimations: With this, the teams above have the following rates of success at overkilling Yuzuki:

Appendix: Source Code
Sub Lulu_Team Randomize Timer Dim lulu_proc As Boolean Dim lulu_pnum As Integer Dim unleash_proc As Boolean Dim unleash_num As Integer Dim lunar_proc As Boolean Dim lunar_alreadyproc As Boolean Dim buffer_proc As Boolean Dim buffer_procs As Integer Dim buffer_alreadyproc As Boolean Dim mhit_proc As Boolean Dim mhit_alreadyproc As Boolean Dim yuzuki_turns As Integer Dim yuzuki_delay As Integer Dim finish_flag As Boolean Dim temp_x As Integer For i = 1 To 10000 lulu_proc = False lulu_pnum = 0 unleash_proc = False unleash_num = 0 lunar_proc = False lunar_alreadyproc = False buffer_proc = False buffer_procs = 0 buffer_alreadyproc = False mhit_proc = False mhit_alreadyproc = False yuzuki_turns = 0 yuzuki_delay = 0 finish_flag = False Do Until finish_flag = True If Rnd <= 0.4 And lulu_pnum < 2 Then yuzuki_delay = yuzuki_delay + 3 lulu_pnum = lulu_pnum + 1 End If            If Rnd <= 0.2 And buffer_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If            If Rnd <= 0.15 And mhit_alreadyproc = False Then mhit_proc = 1 mhit_alreadyproc = True End If            If Rnd <= 0.3 And unleash_num < 3 Then temp_x = Rnd * 10000 If temp_x <= 3333 Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True ElseIf temp_x <= 6666 Then mhit_alreadyproc = True mhit_proc = True Else yuzuki_delay = yuzuki_delay + 3 lulu_pnum = lulu_pnum + 1 End If                unleash_num = unleash_num + 1 End If            If Rnd <= 0.15 And lunar_alreadyproc = False Then lunar_proc = True lunar_alreadyproc = True End If            If lunar_proc = True And buffer_procs >= 1 Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True mhit_proc = True mhit_alreadyproc = True End If            If buffer_procs >= 2 And mhit_proc Then finish_flag = True Else If yuzuki_delay = 0 Then yuzuki_turns = yuzuki_turns + 1 Else yuzuki_delay = yuzuki_delay - 1 End If            End If             ' This useless code is here so I can put a breakpoint on it. xtemp = 1 Loop ActiveSheet.Range("A" & i + 2).Value = yuzuki_turns Next End Sub Sub Lulu_SuperTeam Randomize Timer Dim lulu_proc As Boolean Dim lulu_pnum As Integer Dim unleash_proc As Boolean Dim unleash_num As Integer Dim lunar_proc As Boolean Dim lunar_alreadyproc As Boolean Dim buffer_proc As Boolean Dim buffer_procs As Integer Dim buffer_alreadyproc As Boolean Dim mhit_proc As Boolean Dim mhit_alreadyproc As Boolean Dim yuzuki_turns As Integer Dim yuzuki_delay As Integer Dim finish_flag As Boolean Dim temp_x As Integer For i = 1 To 10000 lulu_proc = False lulu_pnum = 0 unleash_proc = False unleash_num = 0 lunar_proc = False lunar_alreadyproc = False buffer_proc = False buffer_procs = 0 buffer_alreadyproc = False mhit_proc = False mhit_alreadyproc = False yuzuki_turns = 0 yuzuki_delay = 0 finish_flag = False Do Until finish_flag = True If Rnd <= 0.4 And lulu_pnum < 2 Then yuzuki_delay = yuzuki_delay + 3 lulu_pnum = lulu_pnum + 1 End If            If Rnd <= 0.2 And buffer_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If            If Rnd <= 0.15 And mhit_alreadyproc = False Then mhit_proc = 1 mhit_alreadyproc = True End If            If Rnd <= 0.3 And unleash_num < 3 Then temp_x = Rnd * 10000 If temp_x <= 3333 Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True ElseIf temp_x <= 6666 Then mhit_alreadyproc = True mhit_proc = True Else yuzuki_delay = yuzuki_delay + 3 lulu_pnum = lulu_pnum + 1 End If                unleash_num = unleash_num + 1 End If            If Rnd <= 0.2 And lunar_alreadyproc = False Then lunar_proc = True lunar_alreadyproc = True End If            If lunar_proc = True And buffer_procs >= 1 Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True mhit_proc = True mhit_alreadyproc = True End If            If buffer_procs >= 2 And mhit_proc Then finish_flag = True Else If yuzuki_delay = 0 Then yuzuki_turns = yuzuki_turns + 1 Else yuzuki_delay = yuzuki_delay - 1 End If            End If             ' This useless code is here so I can put a breakpoint on it. xtemp = 1 Loop ActiveSheet.Range("N" & i + 2).Value = yuzuki_turns Next End Sub Sub Triple_Unleash_Team Randomize Timer Dim unleash_num1 As Integer Dim unleash_num2 As Integer Dim unleash_num3 As Integer Dim buffer_procs As Integer Dim buffer_alreadyproc As Boolean Dim hhades_proc As Boolean Dim hhades_alreadyproc As Boolean Dim hhades_hp_thresh As Long Dim yuzuki_turns As Integer Dim yuzuki_minions As Integer Dim yuzuki_revives As Integer Dim temp_x As Integer For i = 1 To 10000 unleash_num1 = 0 unleash_num2 = 0 unleash_num3 = 0 buffer_procs = 0 buffer_alreadyproc = False hhades_proc = False hhades_alreadyproc = False hhades_hp_thresh = 0 yuzuki_turns = 0 yuzuki_minions = 2 yuzuki_revives = 2 finish_flag = False Do Until finish_flag = True If Rnd <= 0.2 And buffer_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If            If Rnd <= 0.15 And hhades_alreadyproc = False Then hhades_proc = True hhades_alreadyproc = True End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1500000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 2 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num1 < 3 Then temp_x = Rnd * 10 If temp_x <= 5 Then hhades_proc = True hhades_alreadyproc = True Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num1 = unleash_num1 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1500000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 2 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num2 < 3 Then temp_x = Rnd * 10 If temp_x <= 5 Then hhades_proc = True hhades_alreadyproc = True Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num2 = unleash_num2 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1500000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 2 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num3 < 3 Then temp_x = Rnd * 10 If temp_x <= 5 Then hhades_proc = True hhades_alreadyproc = True Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num3 = unleash_num3 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1500000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 2 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             ' Tap Damage If buffer_procs = 0 Then hhades_hp_thresh = hhades_hp_thresh + 30000 ElseIf buffer_procs = 1 Then If yuzuki_revives + yuzuki_minions <= 2 And yuzuki_minions >= 1 Then yuzuki_minions = yuzuki_minions - 1 Else hhades_hp_thresh = hhades_hp_thresh + 300000 End If            ElseIf buffer_procs >= 2 Then If yuzuki_revives + yuzuki_minions <= 2 And yuzuki_minions >= 1 Then yuzuki_minions = yuzuki_minions - 1 Else hhades_hp_thresh = hhades_hp_thresh + 1000000 End If            End If             If hhades_hp_thresh >= 7000000 Then finish_flag = True Else yuzuki_turns = yuzuki_turns + 1 If yuzuki_revives >= 1 And yuzuki_minions < 2 Then yuzuki_revives = yuzuki_revives - 1 yuzuki_minions = yuzuki_minions + 1 End If            End If             ' This useless code is here so I can put a breakpoint on it. xtemp = 1 Loop ActiveSheet.Range("D" & i + 2).Value = yuzuki_turns Next End Sub Sub Astral_Team Dim lulu_proc As Boolean Dim lulu_pnum As Integer Dim unleash_proc As Boolean Dim unleash_num As Integer Dim lunar_proc As Boolean Dim lunar_alreadyproc As Boolean Dim buffer_proc As Boolean Dim buffer_procs As Integer Dim buffer_alreadyproc As Boolean Dim mhit_proc As Boolean Dim mhit_alreadyproc As Boolean Dim yuzuki_turns As Integer Dim yuzuki_delay As Integer Dim finish_flag As Boolean Dim temp_x As Integer For i = 1 To 10000 lulu_proc = False lulu_pnum = 0 unleash_proc = False unleash_num = 0 lunar_proc = False lunar_alreadyproc = False buffer_proc = False buffer_procs = 0 buffer_alreadyproc = False mhit_proc = False mhit_alreadyproc = False yuzuki_turns = 0 yuzuki_delay = 0 finish_flag = False Do Until finish_flag = True If Rnd <= 0.2 And lulu_pnum < 2 Then yuzuki_delay = yuzuki_delay + 4 lulu_pnum = lulu_pnum + 1 End If            If Rnd <= 0.2 And buffer_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If            If Rnd <= 0.15 And mhit_alreadyproc = False Then mhit_proc = 1 mhit_alreadyproc = True End If            If Rnd <= 0.3 And unleash_num < 3 Then temp_x = Rnd * 10000 If temp_x <= 3333 Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True ElseIf temp_x <= 6666 Then mhit_alreadyproc = True mhit_proc = True Else yuzuki_delay = yuzuki_delay + 4 lulu_pnum = lulu_pnum + 1 End If                unleash_num = unleash_num + 1 End If            If Rnd <= 0.15 And lunar_alreadyproc = False Then lunar_proc = True lunar_alreadyproc = True End If            If lunar_proc = True And buffer_procs >= 1 Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True mhit_proc = True mhit_alreadyproc = True End If            If buffer_procs >= 2 And mhit_proc Then finish_flag = True Else If yuzuki_delay = 0 Then yuzuki_turns = yuzuki_turns + 1 Else yuzuki_delay = yuzuki_delay - 1 End If            End If         Loop ActiveSheet.Range("H" & i + 2).Value = yuzuki_turns Next End Sub Sub Double_Fortuna_Team Randomize Timer Dim Fortuna1_Proc As Boolean Dim Fortuna1_alreadyproc As Boolean Dim Fortuna2_Proc As Boolean Dim Fortuna2_alreadyproc As Boolean Dim buffer_procs As Integer Dim buffer1_alreadyproc As Boolean Dim buffer2_alreadyproc As Boolean Dim mhit_proc As Boolean Dim yuzuki_turns As Integer Dim finish_flag As Boolean Dim temp_x As Integer For i = 1 To 10000 Fortuna1_Proc = False Fortuna1_alreadyproc = False Fortuna2_Proc = False Fortuna2_alreadyproc = False buffer_procs = 0 buffer1_alreadyproc = False buffer2_alreadyproc = False mhit_proc = False yuzuki_turns = 0 finish_flag = False Do Until finish_flag = True If Rnd <= 0.2 And buffer1_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer1_alreadyproc = True End If            If Rnd <= 0.2 And buffer2_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer2_alreadyproc = True End If            If Rnd <= 0.15 And mhit_alreadyproc = False Then mhit_proc = True End If            If Rnd <= 0.2 And Fortuna1_alreadyproc = False Then buffer_procs = buffer_procs + 2 buffer1_alreadyproc = True buffer2_alreadyproc = True mhit_proc = True End If            If Rnd <= 0.2 And Fortuna2_alreadyproc = False Then buffer_procs = buffer_procs + 2 buffer1_alreadyproc = True buffer2_alreadyproc = True mhit_proc = True End If            If buffer_procs >= 2 And mhit_proc Then finish_flag = True Else yuzuki_turns = yuzuki_turns + 1 End If        Loop ActiveSheet.Range("K" & i + 2).Value = yuzuki_turns Next End Sub Sub Double_TUnleash_Team Randomize Timer Dim Fortuna1_Proc As Boolean Dim Fortuna1_alreadyproc As Boolean Dim Fortuna2_Proc As Boolean Dim Fortuna2_alreadyproc As Boolean Dim buffer_procs As Integer Dim buffer1_alreadyproc As Boolean Dim buffer2_alreadyproc As Boolean Dim mhit_proc As Boolean Dim yuzuki_turns As Integer Dim finish_flag As Boolean Dim temp_x As Integer For i = 1 To 10000 Fortuna1_Proc = False Fortuna1_alreadyproc = False Fortuna2_Proc = False Fortuna2_alreadyproc = False buffer_procs = 0 buffer1_alreadyproc = False buffer2_alreadyproc = False mhit_proc = False yuzuki_turns = 0 finish_flag = False Do Until finish_flag = True If Rnd <= 0.2 And buffer1_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer1_alreadyproc = True End If            If Rnd <= 0.2 And buffer2_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer2_alreadyproc = True End If            If Rnd <= 0.15 And mhit_alreadyproc = False Then mhit_proc = True End If            If Rnd <= 0.15 And Fortuna1_alreadyproc = False Then buffer_procs = buffer_procs + 2 buffer1_alreadyproc = True buffer2_alreadyproc = True mhit_proc = True End If            If Rnd <= 0.15 And Fortuna2_alreadyproc = False Then buffer_procs = buffer_procs + 2 buffer1_alreadyproc = True buffer2_alreadyproc = True mhit_proc = True End If            If buffer_procs >= 2 And mhit_proc Then finish_flag = True Else yuzuki_turns = yuzuki_turns + 1 End If        Loop ActiveSheet.Range("Q" & i + 2).Value = yuzuki_turns Next End Sub Sub Triple_Unleash_Free_Team Randomize Timer Dim unleash_num1 As Integer Dim unleash_num2 As Integer Dim unleash_num3 As Integer Dim buffer_procs As Integer Dim buffer_alreadyproc As Boolean Dim hhades_proc As Boolean Dim hhades_alreadyproc As Boolean Dim hhades_hp_thresh As Long Dim yuzuki_turns As Integer Dim yuzuki_minions As Integer Dim yuzuki_revives As Integer Dim temp_x As Integer For i = 1 To 10000 unleash_num1 = 0 unleash_num2 = 0 unleash_num3 = 0 buffer_procs = 0 buffer_alreadyproc = False hhades_proc = False hhades_alreadyproc = False hhades_hp_thresh = 0 yuzuki_turns = 0 yuzuki_minions = 2 yuzuki_revives = 2 finish_flag = False Do Until finish_flag = True If Rnd <= 0.2 And buffer_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If            If Rnd <= 0.15 And hhades_alreadyproc = False Then hhades_proc = True hhades_alreadyproc = True End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num1 < 3 Then temp_x = Rnd * 10 If temp_x <= 5 Then hhades_proc = True hhades_alreadyproc = True Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num1 = unleash_num1 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num2 < 3 Then temp_x = Rnd * 10 If temp_x <= 5 Then hhades_proc = True hhades_alreadyproc = True Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num2 = unleash_num2 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num3 < 3 Then temp_x = Rnd * 10 If temp_x <= 5 Then hhades_proc = True hhades_alreadyproc = True Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num3 = unleash_num3 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             ' Tap Damage If buffer_procs = 0 Then hhades_hp_thresh = hhades_hp_thresh + 30000 ElseIf buffer_procs = 1 Then If yuzuki_revives + yuzuki_minions <= 2 And yuzuki_minions >= 1 Then yuzuki_minions = yuzuki_minions - 1 Else hhades_hp_thresh = hhades_hp_thresh + 200000 End If            ElseIf buffer_procs >= 2 Then If yuzuki_revives + yuzuki_minions <= 2 And yuzuki_minions >= 1 Then yuzuki_minions = yuzuki_minions - 1 Else hhades_hp_thresh = hhades_hp_thresh + 1000000 End If            End If             If hhades_hp_thresh >= 7000000 Then finish_flag = True Else yuzuki_turns = yuzuki_turns + 1 If yuzuki_revives >= 1 And yuzuki_minions < 2 Then yuzuki_revives = yuzuki_revives - 1 yuzuki_minions = yuzuki_minions + 1 End If            End If             ' This useless code is here so I can put a breakpoint on it. xtemp = 1 Loop ActiveSheet.Range("T" & i + 2).Value = yuzuki_turns Next End Sub Sub Astral_Free_Team Randomize Timer Dim unleash_num1 As Integer Dim unleash_num2 As Integer Dim buffer_procs As Integer Dim buffer_alreadyproc As Boolean Dim astral_procs As Integer Dim hhades_proc As Boolean Dim hhades_alreadyproc As Boolean Dim hhades_hp_thresh As Long Dim yuzuki_turns As Integer Dim yuzuki_delay As Integer Dim yuzuki_minions As Integer Dim yuzuki_revives As Integer Dim temp_x As Integer For i = 1 To 10000 unleash_num1 = 0 unleash_num2 = 0 buffer_procs = 0 buffer_alreadyproc = False hhades_proc = False hhades_alreadyproc = False hhades_hp_thresh = 0 astral_procs = 0 yuzuki_turns = 0 yuzuki_delay = 0 yuzuki_minions = 2 yuzuki_revives = 2 finish_flag = False Do Until finish_flag = True If Rnd <= 0.2 And buffer_alreadyproc = False Then buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If            If Rnd <= 0.2 And astral_procs < 2 Then yuzuki_delay = yuzuki_delay + 4 astral_procs = astral_procs + 1 End If            If Rnd <= 0.15 And hhades_alreadyproc = False Then hhades_proc = True hhades_alreadyproc = True End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num1 < 3 Then temp_x = Rnd * 9 If temp_x <= 3 Then hhades_proc = True hhades_alreadyproc = True ElseIf temp_x <= 6 Then yuzuki_delay = yuzuki_delay + 4 astral_procs = astral_procs + 1 Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num1 = unleash_num1 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             If Rnd <= 0.3 And unleash_num2 < 3 Then temp_x = Rnd * 9 If temp_x <= 3 Then hhades_proc = True hhades_alreadyproc = True ElseIf temp_x <= 6 Then yuzuki_delay = yuzuki_delay + 4 astral_procs = astral_procs + 1 Else buffer_procs = buffer_procs + 1 buffer_alreadyproc = True End If                unleash_num2 = unleash_num2 + 1 End If            If hhades_proc = True Then If buffer_procs = 1 And yuzuki_revives + yuzuki_minions >= 2 And yuzuki_minions = 2 Then hhades_hp_thresh = hhades_hp_thresh + 1000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs = 2 And (yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 5000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False ElseIf buffer_procs >= 3 And (yuzuki_minions = 0 Or yuzuki_turns >= 5) Then hhades_hp_thresh = hhades_hp_thresh + 10000000 / (yuzuki_minions + 1) yuzuki_minions = 0 hhades_proc = False End If            End If             ' Tap Damage If buffer_procs = 0 Then hhades_hp_thresh = hhades_hp_thresh + 30000 ElseIf buffer_procs = 1 Then If yuzuki_revives + yuzuki_minions <= 2 And yuzuki_minions >= 1 Then yuzuki_minions = yuzuki_minions - 1 Else hhades_hp_thresh = hhades_hp_thresh + 200000 End If            ElseIf buffer_procs >= 2 Then If yuzuki_revives + yuzuki_minions <= 2 And yuzuki_minions >= 1 Then yuzuki_minions = yuzuki_minions - 1 Else hhades_hp_thresh = hhades_hp_thresh + 1000000 End If            End If             If hhades_hp_thresh >= 7000000 Then finish_flag = True Else If yuzuki_delay = 0 Then yuzuki_turns = yuzuki_turns + 1 Else yuzuki_delay = yuzuki_delay - 1 End If                If yuzuki_revives >= 1 And yuzuki_minions < 2 Then yuzuki_revives = yuzuki_revives - 1 yuzuki_minions = yuzuki_minions + 1 End If            End If             ' This useless code is here so I can put a breakpoint on it. xtemp = 1 Loop ActiveSheet.Range("X" & i + 2).Value = yuzuki_turns Next End Sub