| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 | """Calculate production in different factories"""from rival_regions_calc import Item, WorkProductionDEPARTMENTS = {    'oil': 1.5,    'gold': 0.4,    'diamond': 0.1,    'uranium': 0,    'ore': 0,}PRICE = {    'oil': 255,    'gold': 0,    'diamond': 1650000,    'uranium': 2300,    'ore': 235,}REGIONS = {    4001: {        'name': 'Northern Netherlands',        'resources': {            'gold': 379,            'oil': 223,            'ore': 247,            # 'uranium': 2,            'uranium': 25,            'diamond': 5,        },        'tax': {            'gold': 15,            'oil': 15,            'ore': 15,            'uranium': 15,            'diamond': 15,        },    },    4002: {        'name': 'Eastern Netherlands',        'resources': {            'gold': 359,            # 'oil': 266,            'oil': 371,            'ore': 250,            'uranium': 2,            'diamond': 2,        },        'tax': {            'gold': 15,            'oil': 2,            'ore': 15,            'uranium': 15,            'diamond': 15,        },    },    4003: {        'name': 'Western Netherlands',        'resources': {            'gold': 372,            'oil': 296,            'ore': 230,            'uranium': 2,            'diamond': 2,        },        'tax': {            'gold': 15,            'oil': 15,            'ore': 15,            'uranium': 15,            'diamond': 15,        },    },    4004: {        'name': 'Southern Netherlands',        'resources': {            'gold': 366,            'oil': 296,            'ore': 211,            'uranium': 2,            'diamond': 2,        },        'tax': {            'gold': 15,            'oil': 15,            'ore': 15,            'uranium': 15,            'diamond': 15,        },    },    4008: {        'name': 'Amsterdam',        'resources': {            'gold': 418,            'oil': 307,            'ore': 303,            'uranium': 4,            'diamond': 13,        },        'tax': {            'gold': 15,            'oil': 15,            'ore': 15,            'uranium': 15,            'diamond': 15,        },    },    4801: {        'name': 'Luxembourg',        'resources': {            'gold': 435,            'oil': 283,            'ore': 267,            'uranium': 2,            'diamond': 2,        },        'tax': {            'gold': 15,            'oil': 15,            'ore': 15,            'uranium': 15,            'diamond': 15,        },    }}RESOURCES = {    'oil': {        45760: {            'name': 'OIL RAFINERY',            'level': 185,            'region_id': 4002,            'wage': 100,        },        32282: {            'name': 'OIL - Lorenzo Industries',            'level': 157,            'region_id': 4801,            'wage': 100,        },        59465: {            'name': 'Verenigde Nederlanden Oil',            'level': 144,            'region_id': 4003,            'wage': 99,        },        90420: {            'name': 'Shelby oil',            'level': 124,            'region_id': 4002,            'wage': 95,        },        61361: {            'name': 'Koninklijke Olie',            'level': 120,            'region_id': 4001,            'wage': 100,            'fixed_wage': 150500500,        },        60828: {            'name': 'Austins wegenolie',            'level': 117,            'region_id': 4008,            'wage': 100,            'fixed_wage': 130000000,        },    },    'ore': {        32145: {            'name': 'DS ore',            'level': 139,            'region_id': 4801,            'wage': 99,        },        48500: {            'name': 'Shelby ore',            'level': 138,            'region_id': 4004,            'wage': 95,        },        29239: {            'name': 'Nederlands Ore EN',            'level': 73,            'region_id': 4002,            'wage': 80,        },    },    'uranium': {        34997: {            'name': 'Quite a serious power plant!',            'level': 147,            'region_id': 4001,            'wage': 100,            'fixed_wage': 350000000,        },    },    'diamond': {        33263: {            'name': 'Shelby Diamonds #2',            'level': 148,            'region_id': 4008,            'wage': 95,        },        63317: {            'name': 'Vone I',            'level': 30,            'region_id': 4008,            'wage': 80,        },    },}WP = WorkProduction()WP.user_level = 95WP.work_exp = 80000 + 200 * 350WP.nation_bonus = TrueWP.profit_share = 75def calculate_wage(resource_name, factory):    """Calculate production"""    if 'fixed_wage' in factory:        return factory['fixed_wage']    resource = Item(resource_name)    WP.resource = resource    WP.factory_level = factory['level']    WP.department_bonus = DEPARTMENTS[resource_name]    WP.resource_max = REGIONS[factory['region_id']]['resources'][resource_name]    WP.wage_percentage = factory['wage']    WP.tax_rate = REGIONS[factory['region_id']]['tax'][resource_name]    WP.calculate()    return WP.wage() * PRICE[resource_name]def all_factories():    """return all factories"""    factory_dict = {}    for factories in RESOURCES.values():        factory_dict.update(factories)    return factory_dict def print_per_resource():    """Print wages per resource"""    for resource_name, factories in RESOURCES.items():        print(resource_name)        for factory in sorted(factories.values(), key=lambda k: k['wage'], reverse=True):            print('{:30} {:>12}'.format(                factory['name'],                int(factory['wage']),            ))def print_all():    """Print wages per resource"""    factory_dict = all_factories()    print("total")    sorted_factories = sorted(factory_dict.values(), key=lambda k: k['wage'], reverse=True)    top_wage = sorted_factories[0]['wage']    for factory in sorted_factories:        print('{:28}  {:>11,}  {:>3}'.format(            factory['name'],            int(factory['wage']),            int(100 / top_wage * factory['wage']),        ).replace(',', '.'))def print_factory_list():    """print all factories"""    for resource_name, factories in RESOURCES.items():        print('[rr]{}[/rr]'.format(resource_name.capitalize()))        for factory_id, factory in factories.items():            print('[url=https://rivalregions.com/#factory/index/{}]Desktop[/url] [url=https://m.rivalregions.com/#factory/index/{}]Mobile[/url] {}, {} '.format(                factory_id,                factory_id,                factory['name'],                REGIONS[factory['region_id']]['name'],            ))def main():    """Main function"""    for resource_name, factories in RESOURCES.items():        for factory_id, factory in factories.items():            wage = calculate_wage(resource_name, factory)            RESOURCES[resource_name][factory_id]['wage'] = wage    # print_per_resource()    print_all()    # print_factory_list()if __name__ == '__main__':    main()
 |