metrics = {'prosumer_s1_0': {'MC': [7], 'MB': [10], 'MO': [1], 'MR': [50]},
           'prosumer_s1_1': {'MC': [], 'MB': [15], 'MO': [], 'MR': [90]},
           'prosumer_s1_2': {'MC': [7], 'MB': [10], 'MO': [1], 'MR': [50]},
           'prosumer_s1_3': {'MC': [], 'MB': [15], 'MO': [], 'MR': [90]},
           'prosumer_s1_4': {'MC': [7], 'MB': [10], 'MO': [1], 'MR': [50]},
           'prosumer_s1_5': {'MC': [], 'MB': [15], 'MO': [], 'MR': [90]},
           'prosumer_s1_6': {'MC': [100], 'MB': [15], 'MO': [1], 'MR': [90]}}



 # Agent 0 -------------------------------------------------------------------------------------

    # Load
    ['load[0]', 'gpctrl[0]', 'load_dem', 'demand[0]'],
    ['load[0]', 'monitor', 'load_dem'],
    ['gpctrl[0]', 'prosumer_s1[0]', 'demand[0]', 'demand[0]'],
    ['gpctrl[0]', 'monitor', 'demand[0]'],

    # Wind
    ['wind[0]', 'gpctrl[0]', 'wind_gen', 'generator[0]'],
    ['wind[0]', 'monitor', 'wind_gen'],
    ['gpctrl[0]', 'prosumer_s1[0]', 'generator[0]', 'generator[0]'],
    ['gpctrl[0]', 'monitor', 'generator[0]'],

    # Gpctrl
    ['gpctrl[0]', 'monitor', 'net'],
    ['gpctrl[0]', 'monitor', 'excess'],
    ['gpctrl[0]', 'monitor', 'deficit'],


    # Agent 1 -------------------------------------------------------------------------------------

    # Load
    ['load[1]', 'gpctrl[1]', 'load_dem', 'demand[0]'],
    ['load[1]', 'monitor', 'load_dem'],
    ['gpctrl[1]', 'prosumer_s1[1]', 'demand[0]', 'demand[0]'],
    ['gpctrl[1]', 'monitor', 'demand[0]'],

    # Gpctrl
    ['gpctrl[1]', 'monitor', 'net'],
    ['gpctrl[1]', 'monitor', 'excess'],
    ['gpctrl[1]', 'monitor', 'deficit'],

    # Agent 2 -----------------------------------------------------------------------------------

    # Load
    ['load[2]', 'gpctrl[2]', 'load_dem', 'demand[0]'],
    ['load[2]', 'monitor', 'load_dem'],
    ['gpctrl[2]', 'prosumer_s1[2]', 'demand[0]', 'demand[0]'],
    ['gpctrl[2]', 'monitor', 'demand[0]'],

    # Wind
    ['wind[1]', 'gpctrl[2]', 'wind_gen', 'generator[0]'],
    ['wind[1]', 'monitor', 'wind_gen'],
    ['gpctrl[2]', 'prosumer_s1[2]', 'generator[0]', 'generator[0]'],
    ['gpctrl[2]', 'monitor', 'generator[0]'],

    # Battery
    ['battery[0]', 'gpctrl[2]', 'soc', 'storage[0]'],
    ['battery[0]', 'monitor', 'soc'],
    ['battery[0]', 'monitor', 'flow2b'],
    ['gpctrl[2]', 'prosumer_s1[2]', 'storage[0]', 'storage[0]'],
    ['gpctrl[2]', 'monitor', 'storage[0]'],
    ['gpctrl[2]', 'battery[0]', 'flow2b[0]', 'flow2b'],
    ['gpctrl[2]', 'monitor', 'flow2b[0]'],

    # Gpctrl
    ['gpctrl[2]', 'monitor', 'net'],
    ['gpctrl[2]', 'monitor', 'excess'],
    ['gpctrl[2]', 'monitor', 'deficit'],

    # Agent 3 -----------------------------------------------------------------------------------

    # Load
    ['load[3]', 'gpctrl[3]', 'load_dem', 'demand[0]'],
    ['load[3]', 'monitor', 'load_dem'],
    ['gpctrl[3]', 'prosumer_s1[3]', 'demand[0]', 'demand[0]'],
    ['gpctrl[3]', 'monitor', 'demand[0]'],

    # Gpctrl
    ['gpctrl[3]', 'monitor', 'net'],
    ['gpctrl[3]', 'monitor', 'excess'],
    ['gpctrl[3]', 'monitor', 'deficit'],

    # Agent 4 -------------------------------------------------------------------------------------

    # Load
    ['load[4]', 'gpctrl[4]', 'load_dem', 'demand[0]'],
    ['load[4]', 'monitor', 'load_dem'],
    ['gpctrl[4]', 'prosumer_s1[4]', 'demand[0]', 'demand[0]'],
    ['gpctrl[4]', 'monitor', 'demand[0]'],

    # Wind
    ['wind[2]', 'gpctrl[4]', 'wind_gen', 'generator[0]'],
    ['wind[2]', 'monitor', 'wind_gen'],
    ['gpctrl[4]', 'prosumer_s1[4]', 'generator[0]', 'generator[0]'],
    ['gpctrl[4]', 'monitor', 'generator[0]'],

    # Gpctrl
    ['gpctrl[4]', 'monitor', 'net'],
    ['gpctrl[4]', 'monitor', 'excess'],
    ['gpctrl[4]', 'monitor', 'deficit'],

    # Agent 5 -----------------------------------------------------------------------------------

    # Load
    ['load[5]', 'gpctrl[5]', 'load_dem', 'demand[0]'],
    ['load[5]', 'monitor', 'load_dem'],
    ['gpctrl[5]', 'prosumer_s1[5]', 'demand[0]', 'demand[0]'],
    ['gpctrl[5]', 'monitor', 'demand[0]'],

    # Gpctrl
    ['gpctrl[5]', 'monitor', 'net'],
    ['gpctrl[5]', 'monitor', 'excess'],
    ['gpctrl[5]', 'monitor', 'deficit'],


    # -- Games --------------------------------------------------------------------------------------

    # RT price
    ['rtprice[0]', 'monitor', 'buy_price'],
    ['rtprice[0]', 'monitor', 'sell_price'],

    # Agent 0 in RT price
    ['prosumer_s1[0]', 'rtprice[0]', 'rt_buy', 'buy[0]'],
    ['prosumer_s1[0]', 'rtprice[0]', 'rt_sell', 'sell[0]'],
    ['prosumer_s1[0]', 'monitor', 'rt_buy'],
    ['prosumer_s1[0]', 'monitor', 'rt_sell'],

    # Agent 1 in RT price
    ['prosumer_s1[1]', 'rtprice[0]', 'rt_sell', 'sell[1]'],
    ['prosumer_s1[1]', 'rtprice[0]', 'rt_buy', 'buy[1]'],
    ['prosumer_s1[1]', 'monitor', 'rt_buy'],
    ['prosumer_s1[1]', 'monitor', 'rt_sell'],

    # Agent 2 in RT price
    ['prosumer_s1[2]', 'rtprice[0]', 'rt_sell', 'sell[2]'],
    ['prosumer_s1[2]', 'rtprice[0]', 'rt_buy', 'buy[2]'],
    ['prosumer_s1[2]', 'monitor', 'rt_buy'],
    ['prosumer_s1[2]', 'monitor', 'rt_sell'],

    # Agent 3 in RT price
    ['prosumer_s1[3]', 'rtprice[0]', 'rt_sell', 'sell[3]'],
    ['prosumer_s1[3]', 'rtprice[0]', 'rt_buy', 'buy[3]'],
    ['prosumer_s1[3]', 'monitor', 'rt_buy'],
    ['prosumer_s1[3]', 'monitor', 'rt_sell'],

    # Agent 4 in RT price
    ['prosumer_s1[4]', 'rtprice[0]', 'rt_sell', 'sell[4]'],
    ['prosumer_s1[4]', 'rtprice[0]', 'rt_buy', 'buy[4]'],
    ['prosumer_s1[4]', 'monitor', 'rt_buy'],
    ['prosumer_s1[4]', 'monitor', 'rt_sell'],

    # Agent 5 in RT price
    ['prosumer_s1[5]', 'rtprice[0]', 'rt_sell', 'sell[5]'],
    ['prosumer_s1[5]', 'rtprice[0]', 'rt_buy', 'buy[5]'],
    ['prosumer_s1[5]', 'monitor', 'rt_buy'],
    ['prosumer_s1[5]', 'monitor', 'rt_sell'],
