Exemplo n.º 1
0
    def speedrun():
        """Start a speedrun.

        Keyword arguments
        duration -- duration in minutes to run
        f -- feature object
        """
        diggers = [2, 3, 11, 12]
        FightBoss.nuke()
        Wandoos.set_wandoos(0)
        Adventure.adventure(highest=True)
        TimeMachine.time_machine(Misc.get_idle_cap(1) * 0.01, magic=True)
        GoldDiggers.gold_diggers(diggers)
        Wandoos.wandoos(True)
        BloodMagic.blood_magic(8)
        while Rebirth.check_challenge():
            FightBoss.nuke()
            Augmentation.augments({
                "LS": 0.92,
                "QSL": 0.08
            }, Misc.get_idle_cap(1))
            GoldDiggers.gold_diggers(diggers)

        rb_time = Rebirth.get_rebirth_time()
        while int(rb_time.timestamp.tm_min) < 3:
            rb_time = Rebirth.get_rebirth_time()
            time.sleep(1)
Exemplo n.º 2
0
    def start():
        """Challenge rebirth sequence.

        If you wish to edit the length or sequence of the rebirths; change the for-loop values
        and durations in the Equipment.speedrun(duration) calls."""
        Wandoos.set_wandoos(0)  # wandoos 98, use 1 for meh

        for x in range(8):
            Equipment.speedrun(3)
            if not Rebirth.check_challenge():
                return
            Rebirth.do_rebirth()
        for x in range(5):
            Equipment.speedrun(7)
            if not Rebirth.check_challenge():
                return
            Rebirth.do_rebirth()
        for x in range(5):
            Equipment.speedrun(12)
            if not Rebirth.check_challenge():
                return
            Rebirth.do_rebirth()
        for x in range(5):
            Equipment.speedrun(60)
            if not Rebirth.check_challenge():
                return
            Rebirth.do_rebirth()
        return
Exemplo n.º 3
0
def equipment():
    """Run no equipment challenge."""
    Wandoos.set_wandoos(0)  # wandoos 98, use 1 for meh

    for x in range(8):
        speedrun(3)
        if not Rebirth.check_challenge():
            return
        Rebirth.do_rebirth()
    for x in range(5):
        speedrun(7)
        if not Rebirth.check_challenge():
            return
        Rebirth.do_rebirth()
    for x in range(5):
        speedrun(12)
        if not Rebirth.check_challenge():
            return
        Rebirth.do_rebirth()
    for x in range(5):
        speedrun(60)
        if not Rebirth.check_challenge():
            return
        Rebirth.do_rebirth()
    return
Exemplo n.º 4
0
def ngu():
    """Run no NGU challenge."""
    Wandoos.set_wandoos(0)
    first_rebirth(15)
    if not Rebirth.check_challenge():
        return
    for x in range(8):
        speedrun(30)
        if not Rebirth.check_challenge():
            return
    while True:
        speedrun(60)
        if not Rebirth.check_challenge():
            return
    return
Exemplo n.º 5
0
 def start():
     """Defeat target boss."""
     Wandoos.set_wandoos(0)
     NGU.first_rebirth(15)
     if not Rebirth.check_challenge():
         return
     for x in range(8):
         NGU.speedrun(30)
         if not Rebirth.check_challenge():
             return
     while True:
         NGU.speedrun(60)
         if not Rebirth.check_challenge():
             return
     return
Exemplo n.º 6
0
 def start():
     """Defeat target boss."""
     Wandoos.set_wandoos(0)
     for x in range(6):
         Basic.speedrun(3)
         if not Rebirth.check_challenge():
             return
     for x in range(4):
         Basic.speedrun(7)
         if not Rebirth.check_challenge():
             return
     Wandoos.set_wandoos(1)
     for x in range(4):
         Basic.speedrun(12)
         if not Rebirth.check_challenge():
             return
     Wandoos.set_wandoos(2)
     for x in range(4):
         Basic.speedrun(30)
         if not Rebirth.check_challenge():
             return
     while True:
         Basic.speedrun(60)
         if not Rebirth.check_challenge():
             return
     return
Exemplo n.º 7
0
    def normal_rebirth(duration):
        """Procedure for first rebirth."""
        diggers = [2, 3, 11, 12]  # Wandoos, stat, blood, exp
        FightBoss.nuke()
        time.sleep(2)
        FightBoss.fight()
        Adventure.adventure(highest=True)
        Wandoos.set_wandoos(1)  # wandoos Meh, use 0 for 98
        BloodMagic.toggle_auto_spells(drop=False)
        GoldDiggers.gold_diggers(diggers)
        while Inputs.check_pixel_color(*coords.COLOR_TM_LOCKED):
            Wandoos.wandoos(True)
            FightBoss.nuke()
            time.sleep(2)
            FightBoss.fight()

        TimeMachine.time_machine(Misc.get_idle_cap(1) * 0.1, magic=True)
        Adventure.adventure(itopod=True, itopodauto=True)

        while Inputs.check_pixel_color(*coords.COLOR_BM_LOCKED):
            Wandoos.wandoos(True)
            FightBoss.nuke()
            time.sleep(2)
            FightBoss.fight()
            GoldDiggers.gold_diggers(diggers)
        BloodMagic.blood_magic(8)
        rb_time = Rebirth.get_rebirth_time()
        while int(rb_time.timestamp.tm_min) < duration:
            Wandoos.wandoos(True)
            FightBoss.nuke()
            FightBoss.fight()
            time.sleep(2)
            GoldDiggers.gold_diggers(diggers)
            rb_time = Rebirth.get_rebirth_time()
            # return if challenge is completed and rebirth time is above 3 minutes
            if int(rb_time.timestamp.tm_min
                   ) >= 3 and not Rebirth.check_challenge():
                return

        Rebirth.do_rebirth()
Exemplo n.º 8
0
def basic():
    """Run basic challenge."""
    Wandoos.set_wandoos(0)
    for x in range(6):
        speedrun(3)
        if not Rebirth.check_challenge():
            return
    for x in range(4):
        speedrun(7)
        if not Rebirth.check_challenge():
            return
    Wandoos.set_wandoos(1)
    for x in range(4):
        speedrun(12)
        if not Rebirth.check_challenge():
            return
    Wandoos.set_wandoos(2)
    for x in range(4):
        speedrun(30)
        if not Rebirth.check_challenge():
            return
    while True:
        speedrun(60)
        if not Rebirth.check_challenge():
            return
    return
Exemplo n.º 9
0
 def start():
     """Defeat target boss."""
     Wandoos.set_wandoos(0)
     Timemachine.first_rebirth(3)
     if not Rebirth.check_challenge():
         return
     for x in range(8):
         Timemachine.speedrun(3)
         if not Rebirth.check_challenge():
             return
     for x in range(5):
         Timemachine.speedrun(7)
         if not Rebirth.check_challenge():
             return
     for x in range(5):
         Timemachine.speedrun(12)
         if not Rebirth.check_challenge():
             return
     for x in range(5):
         Timemachine.speedrun(60)
         if not Rebirth.check_challenge():
             return
     return
Exemplo n.º 10
0
def timemachine():
    """Run no time machine challenge."""
    Wandoos.set_wandoos(0)
    first_rebirth(3)
    if not Rebirth.check_challenge():
        return
    for x in range(8):
        speedrun(3)
        if not Rebirth.check_challenge():
            return
    for x in range(5):
        speedrun(7)
        if not Rebirth.check_challenge():
            return
    for x in range(5):
        speedrun(12)
        if not Rebirth.check_challenge():
            return
    for x in range(5):
        speedrun(60)
        if not Rebirth.check_challenge():
            return
    return
Exemplo n.º 11
0
    def run() -> None:
        """Rebirth procedure."""
        GuffinRun.advanced_training_locked = True
        GuffinRun.current_boss = 0
        GuffinRun.rb_time = 0
        GuffinRun.__update_gamestate()
        if GuffinRun.rb_time > GuffinRun.max_rb_duration:
            Rebirth.do_rebirth()
            return
        FightBoss.nuke()
        time.sleep(2)
        Adventure.adventure(const.ZONE_MAP[GuffinRun.gold_zone])
        BloodMagic.toggle_auto_spells(number=False, drop=False)
        GoldDiggers.gold_diggers(GuffinRun.diggers)
        BloodMagic.blood_magic(8)
        NGU.cap_ngu()
        NGU.cap_ngu(magic=True)
        Wandoos.set_wandoos(0)
        Wandoos.wandoos(True, True)
        Augmentation.augments({
            GuffinRun.aug[0]: 0.66,
            GuffinRun.aug[1]: 0.34
        },
                              Misc.get_idle_cap(1) * 0.5)
        TimeMachine.time_machine(Misc.get_idle_cap(1) * 0.1, magic=True)
        GuffinRun.__update_gamestate()
        BloodMagic.toggle_auto_spells(drop=False, gold=False)
        if GuffinRun.wishes:
            GuffinRun.wishes.get_caps()
            GuffinRun.wishes.get_wish_status()
            GuffinRun.wishes.allocate_wishes()

        while GuffinRun.advanced_training_locked:
            GuffinRun.__do_quest()
            FightBoss.nuke()
            GoldDiggers.gold_diggers(GuffinRun.diggers)
            NGU.cap_ngu()
            NGU.cap_ngu(magic=True)
            Hacks.hacks(GuffinRun.hacks, coords.INPUT_MAX)
            Augmentation.augments(
                {
                    GuffinRun.aug[0]: 0.66,
                    GuffinRun.aug[1]: 0.34
                },
                Misc.get_idle_cap(1) * 0.5,
            )
            TimeMachine.time_machine(coords.INPUT_MAX, magic=True)
            GuffinRun.__update_gamestate()

        Misc.reclaim_tm(energy=True, magic=True)
        Misc.reclaim_aug()
        AdvancedTraining.advanced_training(1e12)
        Wandoos.set_wandoos(GuffinRun.wandoos_version)
        Wandoos.wandoos(True, True)
        Augmentation.augments({
            GuffinRun.aug[0]: 0.66,
            GuffinRun.aug[1]: 0.34
        },
                              Misc.get_idle_cap(1) * 0.5)
        TimeMachine.time_machine(Misc.get_idle_cap(1) * 0.1, magic=True)
        while GuffinRun.rb_time < GuffinRun.max_rb_duration - 140:
            GoldDiggers.gold_diggers(GuffinRun.diggers)
            FightBoss.nuke()
            Hacks.hacks(GuffinRun.hacks, coords.INPUT_MAX)
            GuffinRun.__do_quest()
            GuffinRun.__update_gamestate()

        FightBoss.fight()
        Adventure.adventure(itopodauto=True)
        MoneyPit.pit()
        Misc.save_check()
        while GuffinRun.rb_time < GuffinRun.max_rb_duration:
            time.sleep(1)
            GuffinRun.__update_gamestate()

        FightBoss.nuke()
        Rebirth.do_rebirth()
        # Must wait for game to fully redraw all elements after rebirthing
        time.sleep(1)
        GuffinRun.runs += 1
        print(
            f"Completed guffin run #{GuffinRun.runs} in {time.strftime('%H:%M:%S', time.gmtime(GuffinRun.rb_time))}"
        )