audit hit/miss chances
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package engine.devcmd.cmds;
|
package engine.devcmd.cmds;
|
||||||
|
|
||||||
|
import engine.Enum;
|
||||||
import engine.devcmd.AbstractDevCmd;
|
import engine.devcmd.AbstractDevCmd;
|
||||||
import engine.gameManager.LootManager;
|
import engine.gameManager.LootManager;
|
||||||
import engine.gameManager.ZoneManager;
|
import engine.gameManager.ZoneManager;
|
||||||
@@ -26,7 +27,52 @@ public class SimulateBootyCmd extends AbstractDevCmd {
|
|||||||
String newline = "\r\n ";
|
String newline = "\r\n ";
|
||||||
|
|
||||||
String output;
|
String output;
|
||||||
|
if(target.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){
|
||||||
|
int ATR = Integer.parseInt(words[0]);
|
||||||
|
int DEF = Integer.parseInt(words[1]);
|
||||||
|
int attacks = Integer.parseInt(words[2]);
|
||||||
|
|
||||||
|
int hits = 0;
|
||||||
|
int misses = 0;
|
||||||
|
int defaultHits = 0;
|
||||||
|
int defualtMisses = 0;
|
||||||
|
|
||||||
|
float chance = (ATR-((ATR+DEF) * 0.315f)) / ((DEF-((ATR+DEF) * 0.315f)) + (ATR-((ATR+DEF) * 0.315f)));
|
||||||
|
float convertedChance = chance * 100;
|
||||||
|
output = "" + newline;
|
||||||
|
output += "DEF VS ATR SIMULATION: " + attacks + " ATTACKS SIMULATED" + newline;
|
||||||
|
output += "DEF = " + DEF + newline;
|
||||||
|
output += "ATR = " + ATR + newline;
|
||||||
|
output += "CHANCE TO LAND HIT: " + convertedChance + "%" + newline;
|
||||||
|
if(convertedChance < 5){
|
||||||
|
output += "CHANCE ADJUSTED TO 5.0%" + newline;
|
||||||
|
convertedChance = 5.0f;
|
||||||
|
}
|
||||||
|
if(convertedChance > 95){
|
||||||
|
output += "CHANCE ADJUSTED TO 95.0%" + newline;
|
||||||
|
convertedChance = 95.0f;
|
||||||
|
}
|
||||||
|
for(int i = 0; i < attacks; i++){
|
||||||
|
int roll = ThreadLocalRandom.current().nextInt(101);
|
||||||
|
|
||||||
|
if(roll <= convertedChance){
|
||||||
|
hits += 1;
|
||||||
|
}else{
|
||||||
|
misses += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float totalHits = defaultHits + hits;
|
||||||
|
float totalMisses = defualtMisses + misses;
|
||||||
|
float hitPercent = Math.round(totalHits / attacks * 100);
|
||||||
|
float missPercent = Math.round(totalMisses / attacks * 100);
|
||||||
|
|
||||||
|
output += "HITS LANDED: " + (defaultHits + hits) + "(" + Math.round(hitPercent) + "%)" + newline;
|
||||||
|
output += "HITS MISSED: " + (defualtMisses + misses) + "(" + Math.round(missPercent) + "%)";
|
||||||
|
|
||||||
|
throwbackInfo(playerCharacter,output);
|
||||||
|
return;
|
||||||
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
simCount = Integer.parseInt(words[0]);
|
simCount = Integer.parseInt(words[0]);
|
||||||
|
|||||||
Reference in New Issue
Block a user