Пример #1
0
        public Talents Clone()
        {
            var c = new Talents();

            // Affliction
            c.ImprovedCorruption  = ImprovedCorruption;
            c.ImprovedLifeTap     = ImprovedLifeTap;
            c.ImprovedAgony       = ImprovedAgony;
            c.EmpoweredCorruption = EmpoweredCorruption;
            c.ShadowMastery       = ShadowMastery;
            // Demonology
            c.ImprovedImp        = ImprovedImp;
            c.DemonicAegis       = DemonicAegis;
            c.UnholyPower        = UnholyPower;
            c.MasterDemonologist = MasterDemonologist;
            c.SoulLink           = SoulLink;
            c.DemonicKnowledge   = DemonicKnowledge;
            c.DemonicTactics     = DemonicTactics;
            // Destruction
            c.ImprovedShadowBolt = ImprovedShadowBolt;
            c.Bane             = Bane;
            c.ImprovedFirebolt = ImprovedFirebolt;
            c.Devastation      = Devastation;
            c.ImprovedImmolate = ImprovedImmolate;
            c.Ruin             = Ruin;
            c.Emberstorm       = Emberstorm;
            c.Backlash         = Backlash;
            c.ShadowAndFlame   = ShadowAndFlame;
            return(c);
        }
Пример #2
0
        SimResult simulate(Scenario scenario)
        {
            //logActions = logEvents = logPet = true;
            this.scenario             = scenario;
            warlock                   = scenario.Warlock;
            talents                   = warlock.Talents;
            timeline                  = new Timeline();
            results                   = new SimResult(scenario.FightDurationSeconds);
            currentTick               = 0;
            finalTick                 = scenario.FightDurationSeconds * 100;
            currentMana               = warlock.Mana;
            playerAbleToAct           = true;
            curseApplied              = false;
            immolateApplied           = false;
            corruptionApplied         = false;
            siphonLifeApplied         = false;
            unstableAfflictionApplied = false;

            if (warlock.Pet == Pet.Imp)
            {
                Schedule(Event.ImpFirebolt, FireboltCastTime());
            }
            if (warlock.Pet == Pet.Felguard)
            {
                Schedule(Event.FelguardCleave, 0);
                Schedule(Event.FelguardMeleeAttack, 200);
            }

            while (currentTick < finalTick)
            {
                ProcessEvents();
                if (playerAbleToAct)
                {
                    DoAction();
                }
                currentTick++;
            }
            results.Tabulate();
            return(results);
        }
Пример #3
0
        void Run()
        {
            var s = new Scenario();

            s.RaidTemplate();
            s.Warlock.UseImmolate   = true;
            s.Warlock.UseCorruption = true;
            s.Warlock.Curse         = Curse.Doom;
            s.Warlock.Talents       = Talents.SM_DS_30_21_10();
            s.Warlock.Pet           = Pet.Imp;
            s.Warlock.PreRaid();
            s.IsbUptimePercent = 60;
            s.Validate();

            var metaResult = Simulation.MetaSim(s, 4000);

            metaResult.Summarize();

            //var result = Simulation.Simulate(s);
            //result.Summarize();

            //SimStatScaling(s,5000);
        }