How are critical stars distributed?
by
, August 21st, 2015 at 06:36 PM (45249 Views)
GUESS WHO STARTED LOOKING STRAIGHT INTO THE COMBAT CODE.
Me, of course. I need a place to write down my observations.
tl;dr: It uses a weighed table based on each servant's personal criticalWeight and 3 random cards are given 50, 20 and 20 extra criticalWeight.
FIRST OFF.
There's a concept of 'critical weight'. It's called that because it's used for a weighed table. Tally up all the results and you get 100%, and each value is a fraction of the pie. So [20 30 50] adds up to 100 and thus the chances become [20% 30% 50%]. If it's [10 5 7 3] then it adds up to 25 and the chances are [40% 20% 28% 12%].
Alright. HOW DOES IT WORK.
First, the game assigns base weights to three of the five cards. 50, 20 and 20.. The cards are then shuffled.
Second, it adds the card's servant's criticalWeight, multiplied by their critical focus factor (This is what Gil's Collector EX does and whatnot), to each card.
What are these criticalWeights? These:
Spoiler:
Yes, Riders and Archers will attract the most stars (plus minus the skew caused by those base weights I mentioned before. Also RNG)
And Gil? Well he'll prolly get ALL THE STARS. The bling extends to his gameplay.
Anyways.
Third, the game tallies up the total weight. Like I said, weighed table.
Fourth, it goes one by one with each star you got. It will roll a random number between 0 and [totalWeight]. Whichever slot corresponds to the number will get the crit star. Imagine it as dividing a dartboard into 5 sections in proportion of each card's criticalWeight and then throwing a dart. Wherever the dart hits, that card gets +X (where X is 11% as of this writing) crit chance.
Fairly simple, really. But now you know why Berserkers never get crits. Unless they luck out and get that base 20 or 50 criticalWeight, their slice of the pie isliterally zeroalmost zero.
Interestingly the devs have a system so cards would get X bonus crit rate for every Y stars they get, but the parameters that control it are both set to 0. I guess they realized it'd go nuts too quickly.