コード例 #1
0
def trader_item():
    # reroll item until we get item whose base price >= 30
    item = random.choice(Item.__subclasses__())(random.randint(3, 6))
    while item.base_price < 30:
        item = random.choice(Item.__subclasses__())(random.randint(3, 6))
    # item = rand_element(Item.__subclasses__())(random.randint(3, 6))
    item.b_price = int(0.7 * item.base_price)
    item.s_price = int(0.6 * item.base_price)
    return item
コード例 #2
0
def news_event(region_list):
    rng = random.randint(1, 10)
    percent = (
        random.randint(70, 90)
        if random.randint(1, 2) == 1
        else random.randint(110, 130)
    )
    multiplier = percent / 100
    all_items = Item.__subclasses__()
    if rng <= 2:
        # adjust base_price of all items
        for item in all_items:
            item.base_price *= multiplier
        return (
            "The Universe's prices are "
            + ("increasing" if percent > 100 else "decreasing")
            + "! ("
            + str(percent - 100)
            + "%)"
        )
    elif rng <= 5:
        # adjust base_price of category
        rand_category = category[random.randint(0, len(category) - 1)]
        for item in all_items:
            if item.category == rand_category:
                item.base_price *= (1 + multiplier % 1 * 2) if multiplier > 1 else 1 - (1 - multiplier) * 2
        return (
            "The price of "
            + rand_category
            + " items have "
            + ("increased" if percent > 100 else "decreased")
            + "! ("
            + str((percent - 100) * 2)
            + "%)"
        )
    elif rng <= 8:
        # adjust b_price of specific item
        rand_item = all_items[random.randint(0, len(all_items) - 1)]
        rand_item.base_price *= (1 + multiplier % 1 * 3) if multiplier > 1 else 1 - (1 - multiplier) * 3
        return (
            rand_item.name
            + " is becoming "
            + ("trendy" if percent > 100 else "unpopular")
            + "! ("
            + str((percent - 100) * 3)
            + "%)"
        )
    else:
        # adjust base_price of all items in a specific region
        rand_region = region_list[random.randint(0, len(region_list) - 1)]
        rand_region.news_multiplier *= multiplier
        return (
            "Region "
            + rand_region.name
            + "'s prices are "
            + ("increasing" if percent > 100 else "decreasing")
            + "! ("
            + str(percent - 100)
            + "%)"
        )
コード例 #3
0
ファイル: myapp.py プロジェクト: jeffreytram/Chicken-Traders
def collection():
    if request.method == "POST":
        if "addCredits" in request.form:
            category = request.form["addCredits"]
            index = state["game"].player.collection.category.index(category)
            state["game"].player.collection.complete[index] = True
            state["game"].player.credit += 100
            state["game"].player.transaction_history.append(Transactions("Collection reward", 100, "collection", "earnings"))
            return str(state["game"].player.credit)
    return render_template(
        "collection.html", game=state["game"], all_items=Item.__subclasses__()
    )
コード例 #4
0
 def init_market(self):
     poss_items = Item.__subclasses__()
     # 12 item market limit
     while len(self.market) < 12:
         rand_index = random.randint(0, len(poss_items) - 1)
         # item too advanced for region
         if poss_items[rand_index].debut > self.tech_level.value:
             # remove from possible items in market
             poss_items.pop(rand_index)
         else:
             # region able to support item, add to market
             discard_int = random.randint(1, 12)
             # techlevel <= item debut, higher difference techlevel and debut, higher chance to discard
             # higher tech diff, higher chance to reroll item
             if discard_int > self.tech_level.value - poss_items[
                     rand_index].debut:
                 self.market.append(poss_items[rand_index](random.randint(
                     2, 10)))
                 poss_items.pop(rand_index)