def make_shop(vnum: int) -> ShopBehavior: """Create an instance of a shop given by the vnum""" try: return converted_shops[vnum] except KeyError: c_shop = shops[vnum] shop = ShopBehavior() shop.circle_vnum = c_shop.circle_vnum # keep the vnum shop.shopkeeper_vnum = c_shop.shopkeeper # keep the vnum of the shopkeeper shop.banks_money = c_shop.banks shop.will_fight = c_shop.fights shop.buyprofit = c_shop.buyprofit # price factor when shop buys an item assert shop.buyprofit <= 1.0 shop.sellprofit = c_shop.sellprofit # price factor when shop sells item assert shop.sellprofit >= 1.0 open_hrs = (max(0, c_shop.open1), min(24, c_shop.close1)) shop.open_hours = [open_hrs] if c_shop.open2 and c_shop.close2: open_hrs = (max(0, c_shop.open2), min(24, c_shop.close2)) shop.open_hours.append(open_hrs) # items to be cloned when sold (endless supply): shop.forsale = set() missing_items = set() for item_vnum in c_shop.forsale: try: shop.forsale.add(make_item(item_vnum)) except KeyError: missing_items.add(item_vnum) if missing_items: print("Shop #%d: unknown items:" % vnum, missing_items) shop.msg_playercantafford = c_shop.msg_playercantafford shop.msg_playercantbuy = c_shop.msg_playercantbuy shop.msg_playercantsell = c_shop.msg_playercantsell shop.msg_shopboughtitem = c_shop.msg_shopboughtitem shop.msg_shopcantafford = c_shop.msg_shopcantafford shop.msg_shopdoesnotbuy = c_shop.msg_shopdoesnotbuy shop.msg_shopsolditem = c_shop.msg_shopsolditem shop.action_temper = c_shop.msg_temper shop.willbuy = c_shop.willbuy shop.wontdealwith = c_shop.wontdealwith converted_shops[vnum] = shop return shop
def make_shop(vnum: int) -> ShopBehavior: """Create an instance of a shop given by the vnum""" try: return converted_shops[vnum] except KeyError: c_shop = shops[vnum] shop = ShopBehavior() shop.circle_vnum = c_shop.circle_vnum # type: ignore # keep the vnum shop.shopkeeper_vnum = c_shop.shopkeeper # keep the vnum of the shopkeeper shop.banks_money = c_shop.banks shop.will_fight = c_shop.fights shop.buyprofit = c_shop.buyprofit # price factor when shop buys an item assert shop.buyprofit <= 1.0 shop.sellprofit = c_shop.sellprofit # price factor when shop sells item assert shop.sellprofit >= 1.0 open_hrs = (max(0, c_shop.open1), min(24, c_shop.close1)) shop.open_hours = [open_hrs] if c_shop.open2 and c_shop.close2: open_hrs = (max(0, c_shop.open2), min(24, c_shop.close2)) shop.open_hours.append(open_hrs) # items to be cloned when sold (endless supply): shop.forsale = set() missing_items = set() for item_vnum in c_shop.forsale: try: shop.forsale.add(make_item(item_vnum)) except KeyError: missing_items.add(item_vnum) if missing_items: print("Shop #%d: unknown items:" % vnum, missing_items) shop.msg_playercantafford = c_shop.msg_playercantafford shop.msg_playercantbuy = c_shop.msg_playercantbuy shop.msg_playercantsell = c_shop.msg_playercantsell shop.msg_shopboughtitem = c_shop.msg_shopboughtitem shop.msg_shopcantafford = c_shop.msg_shopcantafford shop.msg_shopdoesnotbuy = c_shop.msg_shopdoesnotbuy shop.msg_shopsolditem = c_shop.msg_shopsolditem shop.action_temper = c_shop.msg_temper shop.willbuy = c_shop.willbuy shop.wontdealwith = c_shop.wontdealwith converted_shops[vnum] = shop return shop
def setUp(self): self.shopkeeper = Shopkeeper("lucy", "f") shop = ShopBehavior() shop.open_hours = [(9, 17), (22, 3)] # from 9 to 17 and in the night from 22 to 03 self.shopkeeper.set_shop(shop)