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:
- 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.
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.
Halloween Hades + Triestesse + 3x Unleashers[]
- 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)
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.
Double Team Unleasher + Double Buffer[]
- 2x Team Unleashers
- 2x Cash Shop Buffers
- 1x Multi-hit Card
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.
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[]
- 1x Multi-hit Card
- 1x Cash Shop Buffer
- 1x 20% Damage+Turn Skipper
- 1x 15% Team Unleasher
- 1x Regular ST 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).
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:
- 1x Multi-hit Card
- 1x Cash Shop Buffer
- 1x Lulu (or similar ABB card)
- 1x 15% Team Unleasher
- 1x Regular ST Unleasher
And, of course, the above team with Eternal Fortuna in place of the normal 15% team unleasher:
- 1x Multi-hit Card
- 1x Cash Shop Buffer
- 1x Lulu (or similar ABB card)
- 1x Eternal Fortuna
- 1x Regular ST Unleasher
If you have two team unleashers, you should not follow this setup and should instead use the double unleasher teams above.
Results[]
Just as a reminder, we are using the following Yuzuki-turns to success ratio for our estimations:
| # Yuzuki Turns before Team Completion | Success Rate |
|---|---|
| 1-5 | 100% |
| 6 | 60% |
| 7 | 20% |
| 8+ | 0% |
With this, the teams above have the following rates of success at overkilling Yuzuki:
| Team | Average Success Rate |
|---|---|
|
Halloween Hades + Diva Mika + 3x Unleasher |
70.1% |
| Halloween Hades + Diva Mika + DMG Turn Skipper + 2x Unleasher | 69.0% |
| Multi-Hitter + Cash Buffer + 3x Unleasher | 77.1% |
| Multi-Hitter + Cash Buffer + DMG Turn Skipper + Team Unleasher + Unleasher | 92.2% |
| Multi-Hitter + Cash Buffer + Lulu + Team Unleasher + Unleasher | 93.4% |
| Multi-Hitter + Cash Buffer + Lulu + Eternal Fortuna + Unleasher | 96.4% |
| Multi-Hitter + 2x Cash Buffer + 2x Team Unleasher | 93.2% |
| Multi-Hitter + 2x Cash Buffer + 2x Eternal Fortuna | 96.8% |
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_BoobBunny_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.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 TUnleash_TurnSkip_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 TSkip_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