Beispiel #1
0
def make_character():
    race = list(race_trait.keys())
    Class = list(class_ability.keys())

    #Pick Race
    menu = SelectionMenu(race,'Select a Race:',show_exit_option=False)
    menu.show()
    menu.join()
    selection = menu.selected_option
    character['race'] = race[selection]

    #Pick Class
    menu = SelectionMenu(Class,'Select a Class:',show_exit_option=False)
    menu.show()
    menu.join()
    selection = menu.selected_option
    character['class'] = Class[selection]

    #Assign initial abilities and characteristics
    character['age'] = random.randint(int(race_trait[character['race']]['min_age']),\
                                int(race_trait[character['race']]['max_age']))
    character['str'] = random.randint(3,18)
    character['int'] = random.randint(3,18)
    character['dex'] = random.randint(3,18)
    character['con'] = random.randint(3,18)
    character['wis'] = random.randint(3,18)
    character['cha'] = random.randint(3,18)
    character['numHD'] = 1
    character['level'] = 1
    character['xp'] = 0
    character['ac'] = 10

    #Determine starting Gold
    character['gold'] = 0
    rolls = 0
    wealth_rolls = int(class_ability[character['class']]['WR'])
    while rolls < wealth_rolls:
        rolls += 1
        character['gold'] += random.randint(1,4) * 10
        #print(f"{character['gold']} after roll {rolls}.")
        #input()
    character['max_hp'] = calc_initial_abilities(character)
    character['hp'] = character['max_hp']
    #Reduce initial max_hp to test healing
    #if character['max_hp'] < 6:
    #    character['hp'] = character['max_hp']
    #else:
    #    character['hp'] = character['max_hp'] - 5

    return race, Class
Beispiel #2
0
def selection_menu_example():
    bool_list = ['~/logs', '~/Backup']
    submenu2 = SelectionMenu(bool_list, "What directory location?")
    submenu2.show()
    submenu2.join()
    selection = submenu2.selected_option
    print('\nselection is: %s\n' % str(selection))
 def test_select(self):
     selection_menu = SelectionMenu(strings=["a", "b", "c"],
                                    title="Select a letter")
     selection_menu.start()
     selection_menu.wait_for_start(timeout=10)
     selection_menu.go_down()
     selection_menu.select()
     selection_menu.join(timeout=10)
     self.assertFalse(selection_menu.is_alive())
     self.assertEqual(selection_menu.selected_option, 1)
 def test_init(self):
     selection_menu_1 = SelectionMenu(["1", "2", "3"])
     selection_menu_2 = SelectionMenu(["4", "5"], "selection_menu_2",
                                      "test_init", True)
     selection_menu_3 = SelectionMenu(strings=["6", "7", "8", "9"],
                                      title="selection_menu_3",
                                      subtitle="test_init",
                                      show_exit_option=False)
     self.assertIsNone(selection_menu_1.title)
     self.assertEqual(selection_menu_2.title, "selection_menu_2")
     self.assertEqual(selection_menu_3.title, "selection_menu_3")
     self.assertIsNone(selection_menu_1.subtitle)
     self.assertEqual(selection_menu_2.subtitle, "test_init")
     self.assertEqual(selection_menu_3.subtitle, "test_init")
     self.assertTrue(selection_menu_1.show_exit_option)
     self.assertTrue(selection_menu_2.show_exit_option)
     self.assertFalse(selection_menu_3.show_exit_option)
     self.assertEqual(selection_menu_1.items[1].text, "2")
     self.assertEqual(selection_menu_2.items[0].text, "4")
     self.assertEqual(selection_menu_3.items[3].text, "9")
Beispiel #5
0
def step_impl(context):
    context.menu = CursesMenu("Test Menu", "Subtitle")
    context.menu_item = MenuItem("NORMAL", "Menu Item")
    context.menu.append_item(context.menu_item)
    context.function_item = FunctionItem("NORMAL", "Call a Python function",
                                         input, ["Enter an input"])
    context.menu.append_item(context.function_item)
    context.command_item = CommandItem("NORMAL", "Run a console command",
                                       "ipconfig /all")
    context.menu.append_item(context.command_item)
    context.selection_menu = SelectionMenu(["item1", "item2", "item3"])
    context.selection_submenu_item = SubmenuItem("NORMAL", "Submenu item",
                                                 context.selection_menu)
    context.menu.append_item(context.selection_submenu_item)
    pass
    def test_current_menu(self):
        menu = []
        self.menu_thread = ThreadedReturnGetter(SelectionMenu.get_selection,
                                                args=[["One", "Two", "Three"]],
                                                kwargs={"_menu": menu})

        self.menu_thread.start()
        while not menu:
            continue
        menu = menu[0]
        menu.wait_for_start(timeout=10)
        self.assertIsInstance(CursesMenu.currently_active_menu, SelectionMenu)
        self.assertIs(CursesMenu.currently_active_menu, menu)

        selection_menu = SelectionMenu(strings=["a", "b", "c"],
                                       title="Select a letter")
        selection_menu.start()
        selection_menu.wait_for_start(timeout=10)
        self.assertIs(CursesMenu.currently_active_menu, selection_menu)
Beispiel #7
0
# requirements:
#   PyGithub
#   curses-menu
#
from github import Github
from cursesmenu import SelectionMenu

# config
g = Github("add token with public repo read rights here")
org = g.get_organization("ComputationalRadiationPhysics")
repo = org.get_repo("picongpu")
milestones = repo.get_milestones(sort="asc", state="all")

m_list = map(lambda m: m.title, milestones)
print(list(m_list))
menu = SelectionMenu(m_list, "Select a Milestone")
menu.show()
menu.join()
m_sel = menu.selected_option

print(m_list[m_sel], milestones[m_sel].number)

# get pulls (all pulls are also issues but not vice versa)
issues = repo.get_issues(state="closed", sort="updated", direction="asc", milestone=milestones[m_sel])
# Use this in the future, but pagination seems broken in it:
#search_string = 'repo:ComputationalRadiationPhysics/picongpu type:pr is:merged milestone:"'+milestones[m_sel].title+'"'
#print(search_string)
#issues = g.search_issues(search_string)


# categories
Beispiel #8
0
    def process_inbox(self):
        """Display interactive prompts for user to process inbox items."""

        # FIFO. For each item, the user will be guided
        # by interactive prompts to create a new item based on inbox item. New
        # item will be given same timestamp as the inbox item. (Conceptually, the
        # item is being 'moved' or 'changed'.) When item is successfully
        # processed, it will be dequeued (removed), and loop will continue with
        # next (now first) item in queue. Loop until no items are left.

        d = self.d['inbox'].items
        inbox = deque(d.keys())

        while len(inbox):
            key = inbox[0]
            menu_title = f"[Inbox Item]: {d[key]['title']}"
            menu_subtitle = f"What is it? ({len(inbox)-1} items remaining)')"
            selections = [
                ("Next Action: It can be done in one step"),  # 0
                (
                    "Do It Now: It will take less than 2 minutes, so "  # 1
                    "do it!"),
                ("Calendar: It happens on a specific date/time"),  # 2
                ("Waiting For: Someone else needs to do it"),  # 3
                (
                    "Projects: It's an outcome that will take multiple "  # 4
                    "steps to accomplish"),
                (
                    "Maybe Someday: You're not fully committed to doing it "  # 5
                    "yet, but might want to think about it again later."),
                ("Delete: It's not important. Forget about it."),  # 6
                ("Skip")  # 7
            ]
            menu = SelectionMenu(selections,
                                 title=menu_title,
                                 subtitle=menu_subtitle)
            menu.show()
            menu.join()
            selection = menu.selected_option

            if selection == 0:  # Next Action
                self.d['next_actions'].i_new_item(key)
                taskID = inbox.popleft()
                quickstart.delete_g_task(taskID, 'inbox')
                continue
            elif selection == 1:  # Do in 2 Min
                print("Do it now!")
                input("Press any key to start 2 min timer...")
                timer(120)
                done = input("Done? (y/n): ").lower()
                if 'y' in done:
                    taskID = inbox.popleft()
                    quickstart.complete_g_task(taskID, 'inbox')
                else:
                    continue  # repeat loop with same item
            elif selection == 2:  # Calendar
                self.d['calendar'].i_new_item(key)
                taskID = inbox.popleft()
                quickstart.delete_g_task(taskID, 'inbox')
                continue
            elif selection == 3:  # Waiting For
                self.d['waiting_for'].i_new_item(key)
                taskID = inbox.popleft()
                quickstart.delete_g_task(taskID, 'inbox')
                continue
            elif selection == 4:  # Project
                self.d['projects'].i_new_item(key)
                taskID = inbox.popleft()
                quickstart.delete_g_task(taskID, 'inbox')
                continue
            elif selection == 5:  # Maybe Someday
                self.d['maybe_someday'].add(d[key]['title'], key)
                taskID = inbox.popleft()
                quickstart.delete_g_task(taskID, 'inbox')
                continue
            # elif 'r' in actionable:
            #     # TODO: add reference list
            #     print('Not implemented')
            #     continue
            elif selection == 6:  # Delete
                taskID = inbox.popleft()
                quickstart.delete_g_task(taskID, 'inbox')
                print('Item deleted.')
                continue
            elif selection == 7:  # Skip
                print(
                    "SKIPPING NOT ALLOWED! You must process Inbox items "
                    "one by one, FIFO. You'll have to make a decision "
                    "eventually...do it now. You can decide to not decide..."
                    " That's ok. Choose Maybe Someday. Say, 'I'm choosing not "
                    "to commit to this right now. Maybe I'll reconsider at "
                    "a later time.")
            else:
                break
Beispiel #9
0
def step_impl(context):
    context.selection_menu = SelectionMenu(["item1", "item2", "item3"])
    context.selection_submenu_item = SubmenuItem("NORMAL", "Submenu item",
                                                 context.selection_menu)
    context.menu.append_item(context.selection_submenu_item)
    pass
Beispiel #10
0
# Create the menu
menu = CursesMenu("Title", "Subtitle")

# Create some items

# MenuItem is the base class for all items, it doesn't do anything when selected
menu_item = MenuItem("Menu Item")

# A FunctionItem runs a Python function when selected
function_item = FunctionItem("Call a Python function", input,
                             ["Enter an input"])

# A CommandItem runs a console command
command_item = CommandItem("Run a console command", "touch hello.txt")

# A SelectionMenu constructs a menu from a list of strings
selection_menu = SelectionMenu(["item1", "item2", "item3"])

# A SubmenuItem lets you add a menu (the selection_menu above, for example)
# as a submenu of another menu
submenu_item = SubmenuItem("Submenu item", selection_menu, menu)

# Once we're done creating them, we just add the items to the menu
menu.append_item(menu_item)
menu.append_item(function_item)
menu.append_item(command_item)
menu.append_item(submenu_item)

# Finally, we call show to show the menu and allow the user to interact
menu.show()