예제 #1
0
파일: loot.py 프로젝트: wetyuip/RPG
def new_gold_from_loot():
    total_gold_from_mob_life = float(mob_hp())
    random_gold_chance = float(random.randint (0, total_gold_from_mob_life))

    random_gold = float(random_gold_chance ) * 0.01

    return random_gold
예제 #2
0
파일: exper.py 프로젝트: wetyuip/RPG
def exper():
    from system.random_mob_hp import mob_hp, random_mob_hp
    global exp
    exp = mob_hp()
    exp /= 25
    i = round(exp, 2)
    exper = open("system/hero/hero_char.py", "r")
    b = exper.readline()
    a = eval(b)
    a["exper"] += i
    exper.close()
    # запись полученного словаря(полночтью) в файл
    exper = open("system/hero/hero_char.py", "w")
    exper.write(str(a))
    exper.close()
    return i
예제 #3
0
            def frame_game():
                # проверка на чит режим
                cheat_mode_on_off()

                line()
                print("{: <20}{} {: ^10}{}{: ^10} {}{: >20}".format("", h.title(), "", sw, "", mob_name().title(), ""))
                line()
                print(
                    "Health (now/max):        {}/{}{: ^20}{}/{}".format(int_hero_life, float(life()), "", int_mob_life,
                                                                        float(mob_hp())))
                print("Hit (now/max):           {}/{}{: ^20}{}/{}\n".format(hero_hits, max_hero_hit(), "", mob_hits,
                                                                            max_mob_hit()))
                if module_expended_statics == 1:
                    module_expended_statics_check()

                # короткий лог + тестовый полигон
                test()
                short_log()
예제 #4
0
        def combat():
            mob_rand_name()
            random_mob_hp()
            global all_mob_hits, all_hero_hits
            from system.definition import short_log, line, test
            from system.modules import module_expended_statics
            import threading
            module_expended_statics()
            module_expended_statics = module_expended_statics()

            h = hero_name()
            # max_hit = max_hero_hit()
            mob_life_attack = float(mob_hp())
            hero_life = float(life())
            mob_hit()
            max_mob_hit()
            # m_max_ht = round(max_mob_hit(), 2)
            sw = 0

            def module_expended_statics_check():
                print("Hero/Mob damages:{}/{}".format(round(all_hero_hits, 2), round(all_mob_hits, 2)))

            # Рамка во время боя
            def frame_game():
                # проверка на чит режим
                cheat_mode_on_off()

                line()
                print("{: <20}{} {: ^10}{}{: ^10} {}{: >20}".format("", h.title(), "", sw, "", mob_name().title(), ""))
                line()
                print(
                    "Health (now/max):        {}/{}{: ^20}{}/{}".format(int_hero_life, float(life()), "", int_mob_life,
                                                                        float(mob_hp())))
                print("Hit (now/max):           {}/{}{: ^20}{}/{}\n".format(hero_hits, max_hero_hit(), "", mob_hits,
                                                                            max_mob_hit()))
                if module_expended_statics == 1:
                    module_expended_statics_check()

                # короткий лог + тестовый полигон
                test()
                short_log()

            def frame():
                frame = threading.Thread(target=frame_game)
                frame.start()

            # лут и деньги
            def loots():
                # импорт модулей
                from system.modules import module_cash_switch, module_loot_switch
                module_loot = module_loot_switch()
                module_cash_switch = module_cash_switch()

                # новый опыт и запуск функции добавление опыта
                print("New experience {: <12}+{}".format("", float(exper())))
                hero_next_lvl()

                # новые деньги и запуск функции добавление денег в кошелек
                if module_cash_switch == 1:
                    print("New money {: <18} +{}".format("", new_gold_to_wallet()))

                # новые вещи и функция добавленеи вещей в мешок
                if module_loot == 1:
                    print("New loot:{: <20} construct".format(""))
                    line()

            # логи и характеристика персонажа после боя
            def logs():
                global all_mob_hits, all_hero_hits

                # характеристика полезная
                hero_statistics()

                # разная статистика по персонажу, временная на текущий бой
                print("Rounds:{}".format(sw), end=" ")
                if module_expended_statics == 0:
                    print(" | Hero/Mob damages:{}/{}".format(round(all_hero_hits, 2), round(all_mob_hits, 2)))

                all_mob_hits = 0
                all_hero_hits = 0
                line()

                # Сюда записывать все временные логи, которые появились после боя
                def write_logs():
                    pass

            # начало боя
            while True:

                # отображает номер строки раунда
                time.sleep(1)
                sw += 1
                hero_hits = 0
                mob_hits = 0

                # кидаем костяшки на инициативу хода между мобом и гг
                line()
                hero_random = random.random()
                mob_random = random.random()
                int_mob_life = round(mob_life_attack, 2)
                int_hero_life = round(hero_life, 2)

                # проверка на инициативу героя
                if hero_random >= mob_random:
                    hero_hits = round(hero_hit(), 2)
                    luck_now()

                    # проверка на удачу в бою
                    if luck_now == True:

                        # если удача улыбнулась удар max + random_hit
                        max_hit = max_hero_hit()
                        hero_hits = max_hit + hero_hits
                        hero_hits = round(hero_hits, 2)
                        mob_life_attack -= hero_hits
                        int_mob_life = round(mob_life_attack, 2)
                        int_mob_life = round(mob_life_attack, 2)
                        int_hero_life = round(hero_life, 2)
                        all_hero_hits += max_hit

                        os.system('clear')

                        line()
                        print("{:^7}\nТебе улыбнулись сами боги! {} лупит со всей силы! КРИТ! {}НР.\n".format("",
                                                                                                              hero_name().title(),
                                                                                                              hero_hits))

                        # рамка #####
                        frame()
                        #############

                    # обычный удар героя
                    else:
                        mob_life_attack -= hero_hits
                        int_mob_life = round(mob_life_attack, 2)

                        all_hero_hits += hero_hits

                        os.system('clear')

                        line()
                        # проверка на попадание героя по мобу
                        if hero_hits == 0.0:
                            print("\nГерой банально промазал. " + mob_name().title() + " ржет в стороне\n")
                        else:
                            print("\n{} бъет на {}НР\n".format(h.title(), hero_hits))

                        # рамка
                        frame()
                        ###############

                    # проверка на смерть моба и выдача плюшек
                    if int_mob_life <= 0:
                        from system.exper import new_exp, exper

                        new_exp()
                        hero_quantity_mob()

                        # Проверка на победу гг
                        os.system('clear')
                        line()
                        print("\nГерой победил злобного монстра!{:<80}".format(" ").upper())

                        # head
                        line()
                        print("{: <20}{} {: ^10}{: ^12}{} {: >20}".format("", h.title(), "", "", "Victory!!", ""))

                        loots()
                        logs()
                        test()

                        # запрос на новый бой, таймер
                        timer()

                # проверка на инициативу моба
                if hero_random <= mob_random:
                    os.system('clear')
                    mob_hits = round(mob_hit(), 2)
                    # запоминает удар моба
                    all_mob_hits += mob_hits

                    # удар моба
                    hero_life -= mob_hits
                    int_hero_life = round(hero_life, 2)

                    # сообщение про удар моба
                    line()
                    print("\n{: ^50}{} кусает героя на {}HP\n".format("", mob_name().title(), mob_hits))

                    # рамка + тестовый полигон
                    frame()
                    #######

                    # проверка на смерть героя
                    if int_hero_life <= 0:
                        os.system('clear')
                        line()
                        print("\n               " + str(h.upper()) + " погиб не выдержав побоев.\n".upper())

                        # head
                        line()
                        print(
                            "{: <20}{} {: ^10}{: ^12}{} {: >20}".format("", h.title(), "", "", mob_name().title(), ""))

                        logs()

                        # зачисление еденичку за убийство
                        hero_quantity_died()

                        # таймер на поиск нового моба
                        timer()