예제 #1
0
 def speedrun(duration):
     """Procedure for first rebirth in a 100LC."""
     FightBoss.nuke()
     time.sleep(2)
     FightBoss.fight()
     diggers = [2, 3, 11, 12]
     Adventure.adventure(highest=True)
     current_boss = int(FightBoss.get_current_boss())
     if current_boss > 48:
         Augmentation.augments({
             "EB": 0.66,
             "CS": 0.34
         }, Misc.get_idle_cap(1))
     else:
         Augmentation.augments({"EB": 1}, coords.INPUT_MAX)
     GoldDiggers.gold_diggers(diggers)
     rb_time = Rebirth.get_rebirth_time()
     while int(rb_time.timestamp.tm_min) < duration:
         Augmentation.augments({
             "EB": 0.66,
             "CS": 0.34
         }, Misc.get_idle_cap(1))
         FightBoss.nuke()
         FightBoss.fight()
         GoldDiggers.gold_diggers(diggers)
         rb_time = Rebirth.get_rebirth_time()
     if not Rebirth.check_challenge() and rb_time.timestamp.tm_min >= 3:
         return
     Rebirth.do_rebirth()
     return
예제 #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
예제 #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
예제 #4
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()
예제 #5
0
def run(duration):
    """Procedure for Blind Challenge RBs."""
    global advanced_training_locked, bm_locked, tm_locked

    advanced_training_locked = True
    bm_locked = True
    tm_locked = True

    tm_assigned = False
    bm_assigned = False

    end = time.time() + duration * 60 + 10
    FightBoss.nuke()
    time.sleep(2)
    FightBoss.fight()
    diggers = [2, 3, 11, 12]
    Adventure.adventure(highest=True)
    Augmentation.augments({"SS": 1}, 1e12)
    GoldDiggers.gold_diggers(diggers)
    while time.time() < end:
        Augmentation.augments({"EB": 0.66, "CS": 0.34}, 1e13)
        Wandoos.wandoos(True, True)
        FightBoss.nuke()
        FightBoss.fight()
        GoldDiggers.gold_diggers(diggers)
        update_gamestate()
        if not tm_locked and not tm_assigned:
            TimeMachine.time_machine(1e13, m=1e13)
            tm_assigned = True
        if not bm_locked and not bm_assigned:
            BloodMagic.blood_magic(8)
            bm_assigned = True
        if not Rebirth.check_challenge() and end - time.time() > 180:
            return
    if not Rebirth.check_challenge():
        return
    Rebirth.do_rebirth()
    return
예제 #6
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))}"
        )
예제 #7
0
        NGU.reclaim_ngu(True)  # take all magic from magic NGUs
        for spell in spells:
            BloodMagic.cast_spell(spell)
        Misc.reclaim_bm()
        NGU.assign_ngu(Misc.get_idle_cap(1), range(1, 9), True)
        BloodMagic.toggle_auto_spells()  # retoggle autospells

    if rt.days > 0:  # rebirth is at >24 hours
        print(f"rebirthing at {rt}")  # debug
        FightBoss.nuke()
        MoneyPit.spin()
        GoldDiggers.deactivate_all_diggers()
        Yggdrasil.ygg(equip=1)  # harvest with equipment set 1
        Yggdrasil.ygg(eat_all=True)
        GoldDiggers.level_diggers()  # level all diggers
        Rebirth.do_rebirth()
        time.sleep(3)
        rt = Rebirth.get_rebirth_time()
        rebirth_init(rt)
    else:
        Yggdrasil.ygg()
        Misc.save_check()
        MoneyPit.pit()
        if rt.timestamp.tm_hour <= 12:  # quests for first 12 hours
            titans = Adventure.check_titan_status()
            if titans:
                for titan in titans:
                    Adventure.kill_titan(titan)
            Inventory.boost_cube()
            Questing.questing()
            time.sleep(3)
예제 #8
0
def speedrun(duration):
    """Start a speedrun.

    Keyword arguments
    duration -- duration in minutes to run
    f -- feature object
    """
    global current_boss, minutes_elapsed, advanced_training_locked, bm_locked, tm_locked

    diggers = [2, 3, 11, 12]
    adv_training_assigned = False
    Rebirth.do_rebirth()
    Wandoos.wandoos(True, True)
    FightBoss.nuke()
    time.sleep(2)
    FightBoss.fight()
    Adventure.adventure(highest=True)
    current_boss = 1
    minutes_elapsed = 0
    advanced_training_locked = True
    bm_locked = True
    tm_locked = True
    update_gamestate()

    while current_boss < 18 and minutes_elapsed < duration:  # augs unlocks after 17
        Wandoos.wandoos(True, True)
        Augmentation.augments({"SS": 1}, Misc.get_idle_cap(1))
        FightBoss.nuke()
        FightBoss.fight()
        if not advanced_training_locked and not adv_training_assigned:
            print("assigning adv")
            Misc.reclaim_aug()
            AdvancedTraining.advanced_training(4e11)
            Augmentation.augments({"SS": 1}, Misc.get_idle_cap(1))
            adv_training_assigned = True
        update_gamestate()
    Adventure.adventure(highest=True)

    while current_boss < 29 and minutes_elapsed < duration:  # buster unlocks after 28
        Wandoos.wandoos(True, True)
        FightBoss.nuke()
        FightBoss.fight()
        if not advanced_training_locked and not adv_training_assigned:
            print("assigning adv")
            Misc.reclaim_aug()
            AdvancedTraining.advanced_training(4e11)
            Augmentation.augments({"SS": 1}, Misc.get_idle_cap(1))
            adv_training_assigned = True
        update_gamestate()

    if minutes_elapsed < duration:  # only reclaim if we're not out of time
        Misc.reclaim_aug()

    while current_boss < 31 and minutes_elapsed < duration:  # TM unlocks after 31
        Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
        Wandoos.wandoos(True, True)
        FightBoss.nuke()
        FightBoss.fight()
        if not advanced_training_locked and not adv_training_assigned:
            print("assigning adv")
            Misc.reclaim_aug()
            AdvancedTraining.advanced_training(4e11)
            Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
            adv_training_assigned = True
        update_gamestate()

    if minutes_elapsed < duration:  # only reclaim if we're not out of time
        Misc.reclaim_aug()  # get some energy back for TM
        Misc.reclaim_res(magic=True)  # get all magic back from wandoos
        TimeMachine.time_machine(Misc.get_idle_cap(1) * 0.05, m=Misc.get_idle_cap(2) * 0.05)

    while current_boss < 38 and minutes_elapsed < duration:  # BM unlocks after 37
        GoldDiggers.gold_diggers(diggers)
        Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
        Wandoos.wandoos(True, True)
        FightBoss.nuke()
        FightBoss.fight()
        if not advanced_training_locked and not adv_training_assigned:
            print("assigning adv")
            Misc.reclaim_aug()
            AdvancedTraining.advanced_training(4e11)
            Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
            adv_training_assigned = True
        update_gamestate()

    if minutes_elapsed < duration:
        BloodMagic.blood_magic(8)
        BloodMagic.toggle_auto_spells(drop=False)
        time.sleep(10)
        print("waiting 10 seconds for gold ritual")
        BloodMagic.toggle_auto_spells(drop=False, gold=False)

    while current_boss < 49 and minutes_elapsed < duration:
        GoldDiggers.gold_diggers(diggers)
        Wandoos.wandoos(True, True)
        Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
        FightBoss.nuke()
        FightBoss.fight()
        if not advanced_training_locked and not adv_training_assigned:
            print("assigning adv")
            Misc.reclaim_aug()
            AdvancedTraining.advanced_training(4e11)
            Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
            adv_training_assigned = True
        update_gamestate()
    if minutes_elapsed < duration:  # only reclaim if we're not out of time
        Misc.reclaim_aug()

    while minutes_elapsed < duration:
        Augmentation.augments({"EB": 0.66, "CS": 0.34}, Misc.get_idle_cap(1))
        GoldDiggers.gold_diggers(diggers)
        Wandoos.wandoos(True, True)
        FightBoss.nuke()
        FightBoss.fight()
        if not advanced_training_locked and not adv_training_assigned:
            print("assigning adv")
            Misc.reclaim_aug()
            AdvancedTraining.advanced_training(4e11)
            Augmentation.augments({"EB": 0.66, "CS": 0.34}, Misc.get_idle_cap(1))
            adv_training_assigned = True
        update_gamestate()
        if not Rebirth.check_challenge() and minutes_elapsed >= 3:
            return
 
    return
예제 #9
0
    def speedrun(duration):
        """Start a speedrun.

        Keyword arguments
        duration -- duration in minutes to run
        f -- feature object
        """
        Rebirth.do_rebirth()
        FightBoss.nuke()
        time.sleep(2)
        Adventure.adventure(highest=True)

        try:
            current_boss = int(FightBoss.get_current_boss())
            if current_boss > 28 and current_boss < 49:
                Augmentation.augments({"EB": 1}, Misc.get_idle_cap(1))
            elif current_boss >= 49:
                Augmentation.augments({
                    "EB": 0.66,
                    "CS": 0.34
                }, Misc.get_idle_cap(1))
        except ValueError:
            print("couldn't get current boss")

        while Inputs.check_pixel_color(*coords.COLOR_TM_LOCKED):
            FightBoss.nuke()
            FightBoss.fight()
            Wandoos.wandoos(True)

        while Inputs.check_pixel_color(*coords.COLOR_BM_LOCKED):
            Wandoos.wandoos(True)
            FightBoss.nuke()
            time.sleep(2)
            FightBoss.fight()

        BloodMagic.blood_magic(8)
        Wandoos.wandoos(True)
        rb_time = Rebirth.get_rebirth_time()
        while int(rb_time.timestamp.tm_min) < duration:
            FightBoss.nuke()
            FightBoss.fight()
            Adventure.adventure(highest=True)
            Wandoos.wandoos(True)
            if Wandoos.check_wandoos_bb_status():
                Augmentation.augments({
                    "EB": 0.66,
                    "CS": 0.34
                }, Misc.get_idle_cap(1))
            """If current rebirth is scheduled for more than 3 minutes and
            we already finished the rebirth, we will return here, instead
            of waiting for the duration. Since we cannot start a new
            challenge if less than 3 minutes have passed, we must always
            wait at least 3 minutes."""
            rb_time = Rebirth.get_rebirth_time()
            if duration > 3:
                if not Rebirth.check_challenge():
                    while int(rb_time.timestamp.tm_min) < 3:
                        rb_time = Rebirth.get_rebirth_time()
                        time.sleep(1)
                    MoneyPit.pit()
                    MoneyPit.spin()
                    return

        MoneyPit.pit()
        MoneyPit.spin()
        return