private string GenerateAttackEmulation() { int energy = 0, crush = 0, ability = 0, invalid = 0; System.Random enemyAttackRNG; for (int level = 1; level < 100; level++) { Digimon d = Database.GetRandomDigimonForBattle(level); if (d == null) { continue; } enemyAttackRNG = new System.Random(gm.GetRandomSavedSeed()); for (int i = 0; i < 10; i++) { int attack = ChooseEnemyAttack(d.GetRegularStats()); if (attack == 0) { energy++; } else if (attack == 1) { crush++; } else if (attack == 2) { ability++; } else { invalid++; } } } return($"En: {energy}, Cr: {crush}, Ab: {ability}, Invalid {invalid} <= This should be 0."); int ChooseEnemyAttack(MutableCombatStats enemyStats) { int total = enemyStats.EN + enemyStats.CR + enemyStats.AB; int rngNumber = enemyAttackRNG.Next(total); if (rngNumber < enemyStats.EN) { return(0); } else if (rngNumber < enemyStats.EN + enemyStats.CR) { return(1); } else { return(2); } } }
private string GenerateAttackEmulationForDigimon(string digimon) { int energy = 0, crush = 0, ability = 0, invalid = 0; System.Random enemyAttackRNG; for (int attempt = 1; attempt < 50; attempt++) { Digimon d = Database.GetDigimon(digimon); if (d == null) { continue; } enemyAttackRNG = new System.Random(gm.GetRandomSavedSeed()); Debug.Log($"Attack selected: {enemyAttackRNG}"); for (int i = 0; i < 20; i++) { int attack = ChooseEnemyAttack(d.GetRegularStats()); Debug.Log($"Attack selected: {attack}"); if (attack == 0) { energy++; } else if (attack == 1) { crush++; } else if (attack == 2) { ability++; } else { invalid++; } } } return($"En: {energy}, Cr: {crush}, Ab: {ability}, Invalid {invalid} <= This should be 0."); int ChooseEnemyAttack(MutableCombatStats enemyStats) { int total = enemyStats.EN + enemyStats.CR + enemyStats.AB; Debug.Log($"EN {enemyStats.EN}, CR: {enemyStats.CR}, AB: {enemyStats.AB}, total {total}"); int rngNumber = enemyAttackRNG.Next(total); Debug.Log($"Number chosen: {rngNumber}"); if (rngNumber < enemyStats.EN) { return(0); } else if (rngNumber < enemyStats.EN + enemyStats.CR) { return(1); } else { return(2); } } }