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
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) + "%)" )
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__() )
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)