static void Main(string[] args) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); Console.WriteLine("Starting Ignite Simulation"); TargetDummy target = new TargetDummy(); Mage mages = new Mage(4, 35, 95, 0, target); int tickSize = mages.TimeBetweenFireballs(); Console.WriteLine("Time Between Fireballs: " + tickSize); long numberOfFireballsVolleys = 30000000; long maxTicks = numberOfFireballsVolleys * 300; for (long tick = 0; tick < maxTicks; tick += tickSize) { mages.CastFireBall(tick); } Random temp = new Random(); FireBall fireball = new FireBall(temp, 35, 95, 0, 0); fireball.critStatus = false; Console.WriteLine("Single Fireball Dmg (non crit): " + fireball.damage); List <double> report = target.ReportDamage(); Console.WriteLine("Reports:"); //Console.WriteLine("Number of spells non-crit: " + report[3]); //Console.WriteLine("Number of spells resisted: " + report[4]); //Console.WriteLine("Number of spells crit: " + report[5]); //Console.WriteLine("Number of total fireballs: " + report[6]); Console.WriteLine("Fireball damage taken / 500: " + report[0] / 500); Console.WriteLine("Ignite damage taken / 500: " + report[1] / 500); Console.WriteLine("Total damage taken / 500: " + report[2] / 500); stopWatch.Stop(); Console.WriteLine("Total Program Timer: " + stopWatch.ElapsedMilliseconds + " ms"); }
// private int resistCount = 0; //private int nonCritCount = 0; //private int critCount = 0; public void RecieveFireball(FireBall fireball) { ignite.CheckStatus(fireball.tick); if (fireball.hitStatus == false) { //resistCount++; //Console.WriteLine("Tick: " + fireball.tick + " Fireball resisted"); return; } else if (fireball.critStatus == true) { //Console.WriteLine("Tick: " + fireball.tick + " Fireball crit for " + fireball.damage); //critCount++; ignite.newCrit(fireball.tick, fireball.damage); fireballDamageTaken += fireball.damage; } else { //Console.WriteLine("Tick: " + fireball.tick + " Fireball hit for " + fireball.damage); //nonCritCount++; fireballDamageTaken += fireball.damage; } }
public void CastFireBall(long tick) { FireBall fireball = new FireBall(rand, critChance, hitChance, spellPower, tick); target.RecieveFireball(fireball); }