JSFiddle - React, Tailwind, and code Playground

by Tenderfeel

JavaScript

function createStatus(level){
    
    var table = {
        base:{
            'A':5,
            'B' :4,
            'C':4,
            'D' :4,
            'E' :3,
            'F' :3,
            'G' :2,
        },
        gain:{
            'A':0.5,
            'B' :0.45,
            'C':0.4,
            'D' :0.35,
            'E' :0.3,
            'F' :0.25,
            'G' :0.2,
        }
        
    };
    
    var keys = ['energy', 'attack', 'speed', 'guard', 'cost'];
    var ranks = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
    var status = {
        energy: level * Number.random(5, 10),
        attack: level * Number.random(5, 10),
        speed : level * Number.random(5, 10),
        guard : level * Number.random(5, 10),
        cost  : level * Number.random(5, 10)
    };
    
    var fit = {
        energy: ranks.getRandom(),
        attack: ranks.getRandom(),
        speed : ranks.getRandom(),
        guard : ranks.getRandom(),
        cost  : ranks.getRandom()
    };
    
    Array.map(keys, function(k){
        var r = fit[k];
        var d = (table.base[r] + (table.gain[r] * level));
        if(k !== 'cost'){
            status[k] *=  Math.ceil(d);
        }else{
            var c = Math.ceil(status[k] / d);
            status[k] = Math.ceil(status[k] * c);
        }
    });
    
    status['rank'] = calcRank(status, level);
    
    return status;
};

function calcRank(status, level){
    var total = Object.values(status).reduce(function(previousValue, currentValue, index, array){
      return previousValue + currentValue;
    });
    
    var ave = (total/5)/level; 
    
    if(ave > level*15){
        return 'S2';
    }else if(ave > level*12){
        return 'S';
    }else if(ave > level*10){
        return 'A2';
    }else if(ave > level*8){
        return 'A'
    }else if(ave > level*5){
        return 'B';
    }else if(ave > level*3){
        return 'C';
    }else{
        return 'D';
    }

}

var result = [], unitNum = 0;
var teams  =...