|  | @@ -1,300 +0,0 @@
 | 
	
		
			
				|  |  | -"""Calculate production in different factories"""
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -from rival_regions_calc import Item, WorkProduction
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -DEPARTMENTS = {
 | 
	
		
			
				|  |  | -    '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 = 95
 | 
	
		
			
				|  |  | -WP.work_exp = 80000 + 200 * 350
 | 
	
		
			
				|  |  | -WP.nation_bonus = True
 | 
	
		
			
				|  |  | -WP.profit_share = 75
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -def 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()
 |