diff --git a/S06/character-health-fix.json b/S06/character-health-fix.json new file mode 100644 index 0000000..cf9fb08 --- /dev/null +++ b/S06/character-health-fix.json @@ -0,0 +1 @@ +{"essosgreyjoy54": {"health": {"jonsnow": 100, "branstark": 100, "aryastark": 100, "daenerystargaryen": 100, "tyrionlannister": 100, "cerseilannister": 100, "margaerytyrell": 100}, "roster": "-KGpQ4siAX95EDRLVfhb", "episode": 54, "house": "greyjoy"}, "essosgreyjoy53": {"health": {"jonsnow": 100, "branstark": 100, "aryastark": 100, "daenerystargaryen": 100, "tyrionlannister": 100, "cerseilannister": 100, "margaerytyrell": 100}, "roster": "-KGpQ4siAX95EDRLVfhb", "episode": 53, "house": "greyjoy"}, "essosgreyjoy52": {"health": {"jonsnow": 100, "branstark": 100, "aryastark": 100, "daenerystargaryen": 100, "tyrionlannister": 100, "cerseilannister": 100, "margaerytyrell": 100}, "roster": "-KGpQ4siAX95EDRLVfhb", "episode": 52, "house": "greyjoy"}, "essosgreyjoy51": {"health": {"jonsnow": 100, "branstark": 100, "aryastark": 100, "daenerystargaryen": 100, "tyrionlannister": 100, "cerseilannister": 100, "margaerytyrell": 100}, "roster": "-KGpQ4siAX95EDRLVfhb", "episode": 51, "house": "greyjoy"}, "essoslannister54": {"health": {"davosseaworth": 100, "branstark": 100, "ramsaybolton": 100, "bronn": 100, "tyrionlannister": 100, "jaimelannister": 100, "margaerytyrell": 100}, "roster": "-KGPBCVMw4am83rjMcnI", "episode": 54, "house": "lannister"}, "essoslannister52": {"health": {"davosseaworth": 100, "branstark": 100, "ramsaybolton": 100, "bronn": 100, "tyrionlannister": 100, "jaimelannister": 100, "margaerytyrell": 100}, "roster": "-KGPBCVMw4am83rjMcnI", "episode": 52, "house": "lannister"}, "essoslannister53": {"health": {"davosseaworth": 100, "branstark": 100, "ramsaybolton": 100, "bronn": 100, "tyrionlannister": 100, "jaimelannister": 100, "margaerytyrell": 100}, "roster": "-KGPBCVMw4am83rjMcnI", "episode": 53, "house": "lannister"}, "essoslannister51": {"health": {"davosseaworth": 100, "branstark": 100, "ramsaybolton": 100, "bronn": 100, "tyrionlannister": 100, "jaimelannister": 100, "margaerytyrell": 100}, "roster": "-KGPBCVMw4am83rjMcnI", "episode": 51, "house": "lannister"}, "westeroslannister54": {"health": {"doranmartell": 100, "olennatyrell": 100, "threeeyedraven": 100, "aryastark": 100, "gilly": 100, "kevanlannister": 100, "pycelle": 100}, "roster": "-KGB1-QihLDlrpMj7xwZ", "episode": 54, "house": "lannister"}, "westeroslannister51": {"health": {"doranmartell": 100, "olennatyrell": 100, "threeeyedraven": 100, "aryastark": 100, "gilly": 100, "kevanlannister": 100, "pycelle": 100}, "roster": "-KGB1-QihLDlrpMj7xwZ", "episode": 51, "house": "lannister"}, "westeroslannister52": {"health": {"doranmartell": 100, "olennatyrell": 100, "threeeyedraven": 100, "aryastark": 100, "gilly": 100, "kevanlannister": 100, "pycelle": 100}, "roster": "-KGB1-QihLDlrpMj7xwZ", "episode": 52, "house": "lannister"}, "westeroslannister53": {"health": {"doranmartell": 100, "olennatyrell": 100, "threeeyedraven": 100, "aryastark": 100, "gilly": 100, "kevanlannister": 100, "pycelle": 100}, "roster": "-KGB1-QihLDlrpMj7xwZ", "episode": 53, "house": "lannister"}, "westerostyrell54": {"health": {"doranmartell": 100, "shae": 100, "melisandre": 100, "petyrbaelish": 100, "sansastark": 100, "missandei": 100, "jorahmormont": 100}, "roster": "-KGDW-jMuwELhDMfrxF2", "episode": 54, "house": "tyrell"}, "westerostyrell53": {"health": {"doranmartell": 100, "shae": 100, "melisandre": 100, "petyrbaelish": 100, "sansastark": 100, "missandei": 100, "jorahmormont": 100}, "roster": "-KGDW-jMuwELhDMfrxF2", "episode": 53, "house": "tyrell"}, "westerostyrell52": {"health": {"doranmartell": 100, "shae": 100, "melisandre": 100, "petyrbaelish": 100, "sansastark": 100, "missandei": 100, "jorahmormont": 100}, "roster": "-KGDW-jMuwELhDMfrxF2", "episode": 52, "house": "tyrell"}, "westerostyrell51": {"health": {"doranmartell": 100, "shae": 100, "melisandre": 100, "petyrbaelish": 100, "sansastark": 100, "missandei": 100, "jorahmormont": 100}, "roster": "-KGDW-jMuwELhDMfrxF2", "episode": 51, "house": "tyrell"}, "essosarryn51": {"health": {"davosseaworth": 100, "branstark": 100, "jonsnow": 100, "petyrbaelish": 100, "samwelltarly": 100, "bronn": 100, "daarionaharis": 100}, "roster": "-KGGLXcjNjjZxMBHoPm_", "episode": 51, "house": "arryn"}, "essosarryn52": {"health": {"davosseaworth": 100, "branstark": 100, "jonsnow": 100, "petyrbaelish": 100, "samwelltarly": 100, "bronn": 100, "daarionaharis": 100}, "roster": "-KGGLXcjNjjZxMBHoPm_", "episode": 52, "house": "arryn"}, "essosarryn53": {"health": {"davosseaworth": 100, "branstark": 100, "jonsnow": 100, "petyrbaelish": 100, "samwelltarly": 100, "bronn": 100, "daarionaharis": 100}, "roster": "-KGGLXcjNjjZxMBHoPm_", "episode": 53, "house": "arryn"}, "essosarryn54": {"health": {"davosseaworth": 100, "branstark": 100, "jonsnow": 100, "petyrbaelish": 100, "samwelltarly": 100, "bronn": 100, "daarionaharis": 100}, "roster": "-KGGLXcjNjjZxMBHoPm_", "episode": 54, "house": "arryn"}, "westerosbolton53": {"health": {"hodor": 100, "branstark": 100, "aryastark": 0, "tyenesand": 100, "jaqenhghar": 100, "ellariasand": 100, "brienneoftarth": 0}, "roster": "-KGWu8DveQ51N6FjrEin", "episode": 53, "house": "bolton"}, "westerosbolton52": {"health": {"hodor": 100, "branstark": 100, "aryastark": 100, "tyenesand": 100, "jaqenhghar": 100, "ellariasand": 100, "brienneoftarth": 0}, "roster": "-KGWu8DveQ51N6FjrEin", "episode": 52, "house": "bolton"}, "westerosbolton51": {"health": {"hodor": 100, "branstark": 100, "aryastark": 100, "tyenesand": 100, "jaqenhghar": 100, "ellariasand": 100, "brienneoftarth": 100}, "roster": "-KGWu8DveQ51N6FjrEin", "episode": 51, "house": "bolton"}, "westerosbolton54": {"health": {"hodor": 100, "branstark": 100, "aryastark": 0, "tyenesand": 100, "jaqenhghar": 100, "ellariasand": 100, "brienneoftarth": 0}, "roster": "-KGWu8DveQ51N6FjrEin", "episode": 54, "house": "bolton"}, "dragonbolton52": {"health": {"alliserthorne": 100, "pycelle": 100, "walderrivers": 100, "randylltarly": 100, "myrcellabaratheon": 100, "brienneoftarth": 100, "branstark": 100}, "roster": "-KGe5Q7FiC3vnThiaKkZ", "episode": 52, "house": "bolton"}, "westerostargaryen52": {"health": {"robinarryn": 100, "daarionaharis": 100, "highsparrow": 100, "petyrbaelish": 100, "bronn": 100, "tyrionlannister": 100, "forzo": 100}, "roster": "-KGBZs5uSsv9rOvR0VRu", "episode": 52, "house": "targaryen"}, "essosindependent54": {"health": {"aryastark": 0, "branstark": 100, "kinvara": 100, "jonsnow": 100, "eurongreyjoy": 100, "petyrbaelish": 100, "tyrionlannister": 100}, "roster": "-KGAhjufgBl0BfaE-rQ8", "episode": 54, "house": "independent"}, "essosindependent51": {"health": {"aryastark": 0, "branstark": 100, "kinvara": 100, "jonsnow": 100, "eurongreyjoy": 100, "petyrbaelish": 100, "tyrionlannister": 100}, "roster": "-KGAhjufgBl0BfaE-rQ8", "episode": 51, "house": "independent"}, "essosindependent52": {"health": {"aryastark": 0, "branstark": 100, "kinvara": 100, "jonsnow": 100, "eurongreyjoy": 100, "petyrbaelish": 100, "tyrionlannister": 100}, "roster": "-KGAhjufgBl0BfaE-rQ8", "episode": 52, "house": "independent"}, "essosindependent53": {"health": {"aryastark": 0, "branstark": 100, "kinvara": 100, "jonsnow": 100, "eurongreyjoy": 100, "petyrbaelish": 100, "tyrionlannister": 100}, "roster": "-KGAhjufgBl0BfaE-rQ8", "episode": 53, "house": "independent"}, "westerosmeereen54": {"health": {"obarasand": 100, "kinvara": 100, "varys": 100, "unella": 100, "gregorclegane": 100, "nightsking": 100, "wunwun": 0}, "roster": "-KGSdEuzfBxYc8Y2vYr-", "episode": 54, "house": "meereen"}, "westerosmeereen51": {"health": {"obarasand": 100, "kinvara": 100, "varys": 100, "unella": 100, "gregorclegane": 100, "nightsking": 100, "wunwun": 100}, "roster": "-KGSdEuzfBxYc8Y2vYr-", "episode": 51, "house": "meereen"}, "westerosmeereen53": {"health": {"obarasand": 100, "kinvara": 100, "varys": 100, "unella": 100, "gregorclegane": 100, "nightsking": 100, "wunwun": 0}, "roster": "-KGSdEuzfBxYc8Y2vYr-", "episode": 53, "house": "meereen"}, "westerosmeereen52": {"health": {"obarasand": 100, "kinvara": 100, "varys": 100, "unella": 100, "gregorclegane": 100, "nightsking": 100, "wunwun": 100}, "roster": "-KGSdEuzfBxYc8Y2vYr-", "episode": 52, "house": "meereen"}, "westerosgreyjoy54": {"health": {"daarionaharis": 100, "melisandre": 100, "balongreyjoy": 100, "razdalmoeraz": 100, "wunwun": 0, "shae": 100, "margaerytyrell": 100}, "roster": "-KHA_LQGEDaOjLCAK7MQ", "episode": 54, "house": "greyjoy"}, "westerosgreyjoy51": {"health": {"daarionaharis": 100, "melisandre": 100, "balongreyjoy": 100, "razdalmoeraz": 100, "wunwun": 100, "shae": 100, "margaerytyrell": 100}, "roster": "-KHA_LQGEDaOjLCAK7MQ", "episode": 51, "house": "greyjoy"}, "westerosgreyjoy53": {"health": {"daarionaharis": 100, "melisandre": 100, "balongreyjoy": 100, "razdalmoeraz": 100, "wunwun": 100, "shae": 100, "margaerytyrell": 100}, "roster": "-KHA_LQGEDaOjLCAK7MQ", "episode": 53, "house": "greyjoy"}, "westerosgreyjoy52": {"health": {"daarionaharis": 100, "melisandre": 100, "balongreyjoy": 100, "razdalmoeraz": 100, "wunwun": 100, "shae": 100, "margaerytyrell": 100}, "roster": "-KHA_LQGEDaOjLCAK7MQ", "episode": 52, "house": "greyjoy"}, "dragonlannister53": {"health": {"bronn": 100, "kevanlannister": 100, "tyrionlannister": 100, "cerseilannister": 100, "gregorclegane": 100, "podrickpayne": 100, "macetyrell": 100}, "roster": "-KGD3BYXdsTrmMcOG5mG", "episode": 53, "house": "lannister"}, "dragonlannister52": {"health": {"bronn": 100, "kevanlannister": 100, "tyrionlannister": 100, "cerseilannister": 100, "gregorclegane": 100, "podrickpayne": 100, "macetyrell": 100}, "roster": "-KGD3BYXdsTrmMcOG5mG", "episode": 52, "house": "lannister"}, "dragonlannister51": {"health": {"bronn": 100, "kevanlannister": 100, "tyrionlannister": 100, "cerseilannister": 100, "gregorclegane": 100, "podrickpayne": 100, "macetyrell": 100}, "roster": "-KGD3BYXdsTrmMcOG5mG", "episode": 51, "house": "lannister"}, "dragonlannister54": {"health": {"bronn": 100, "kevanlannister": 100, "tyrionlannister": 0, "cerseilannister": 100, "gregorclegane": 100, "podrickpayne": 100, "macetyrell": 100}, "roster": "-KGD3BYXdsTrmMcOG5mG", "episode": 54, "house": "lannister"}, "westerosstark51": {"health": {"branstark": 100, "kinvara": 100, "tommenbaratheon": 100, "jaqenhghar": 100, "hodor": 100, "missandei": 100, "daarionaharis": 100}, "roster": "-KGDCPPxlYCo0VPXCoUW", "episode": 51, "house": "stark"}, "westerosstark53": {"health": {"branstark": 100, "kinvara": 100, "tommenbaratheon": 100, "jaqenhghar": 100, "hodor": 100, "missandei": 100, "daarionaharis": 100}, "roster": "-KGDCPPxlYCo0VPXCoUW", "episode": 53, "house": "stark"}, "westerosstark52": {"health": {"branstark": 100, "kinvara": 100, "tommenbaratheon": 100, "jaqenhghar": 100, "hodor": 100, "missandei": 100, "daarionaharis": 100}, "roster": "-KGDCPPxlYCo0VPXCoUW", "episode": 52, "house": "stark"}, "westerosstark54": {"health": {"branstark": 100, "kinvara": 100, "tommenbaratheon": 100, "jaqenhghar": 100, "hodor": 100, "missandei": 100, "daarionaharis": 100}, "roster": "-KGDCPPxlYCo0VPXCoUW", "episode": 54, "house": "stark"}, "westerosminor51": {"health": {"davosseaworth": 100, "lancel": 100, "highsparrow": 100, "walderrivers": 100, "walderfrey": 100, "razdalmoeraz": 100, "unella": 100}, "roster": "-KGMFTJk_xa22rmTsMeH", "episode": 51, "house": "minor"}, "westerosminor53": {"health": {"davosseaworth": 100, "lancel": 100, "highsparrow": 100, "walderrivers": 100, "walderfrey": 100, "razdalmoeraz": 100, "unella": 100}, "roster": "-KGMFTJk_xa22rmTsMeH", "episode": 53, "house": "minor"}, "westerosminor52": {"health": {"davosseaworth": 100, "lancel": 100, "highsparrow": 100, "walderrivers": 100, "walderfrey": 100, "razdalmoeraz": 100, "unella": 100}, "roster": "-KGMFTJk_xa22rmTsMeH", "episode": 52, "house": "minor"}, "westerosminor54": {"health": {"davosseaworth": 100, "lancel": 100, "highsparrow": 100, "walderrivers": 100, "walderfrey": 100, "razdalmoeraz": 100, "unella": 100}, "roster": "-KGMFTJk_xa22rmTsMeH", "episode": 54, "house": "minor"}, "dragonarryn54": {"health": {"davosseaworth": 100, "yohnroyce": 100, "jonsnow": 100, "tyenesand": 100, "ahko": 100, "yaragreyjoy": 100, "gregorclegane": 100}, "roster": "-KGCTbNVSS96R53-90v_", "episode": 54, "house": "arryn"}, "essostargaryen54": {"health": {"davosseaworth": 100, "ramsaybolton": 0, "aryastark": 100, "jaqenhghar": 0, "daenerystargaryen": 0, "brienneoftarth": 25, "tyrionlannister": 0}, "roster": "-KGI7f2E0QIBTBiO-DzW", "episode": 54, "house": "targaryen"}, "dragonarryn51": {"health": {"davosseaworth": 100, "yohnroyce": 100, "jonsnow": 100, "tyenesand": 100, "ahko": 100, "yaragreyjoy": 100, "gregorclegane": 100}, "roster": "-KGCTbNVSS96R53-90v_", "episode": 51, "house": "arryn"}, "essostargaryen52": {"health": {"davosseaworth": 100, "ramsaybolton": 100, "aryastark": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "tyrionlannister": 100}, "roster": "-KGI7f2E0QIBTBiO-DzW", "episode": 52, "house": "targaryen"}, "dragonarryn53": {"health": {"davosseaworth": 100, "yohnroyce": 100, "jonsnow": 100, "tyenesand": 100, "ahko": 100, "yaragreyjoy": 100, "gregorclegane": 100}, "roster": "-KGCTbNVSS96R53-90v_", "episode": 53, "house": "arryn"}, "dragonarryn52": {"health": {"davosseaworth": 100, "yohnroyce": 100, "jonsnow": 100, "tyenesand": 100, "ahko": 100, "yaragreyjoy": 100, "gregorclegane": 100}, "roster": "-KGCTbNVSS96R53-90v_", "episode": 52, "house": "arryn"}, "essosmeereen53": {"health": {"osha": 100, "aryastark": 100, "bronn": 100, "hodor": 100, "ahko": 100, "yezzanzoqaggaz": 100, "tyrionlannister": 100}, "roster": "-KGCsDHhxFyweVLBC0AA", "episode": 53, "house": "meereen"}, "essosmeereen52": {"health": {"osha": 100, "aryastark": 100, "bronn": 100, "hodor": 100, "ahko": 100, "yezzanzoqaggaz": 100, "tyrionlannister": 100}, "roster": "-KGCsDHhxFyweVLBC0AA", "episode": 52, "house": "meereen"}, "essosmeereen51": {"health": {"osha": 100, "aryastark": 100, "bronn": 100, "hodor": 100, "ahko": 100, "yezzanzoqaggaz": 100, "tyrionlannister": 100}, "roster": "-KGCsDHhxFyweVLBC0AA", "episode": 51, "house": "meereen"}, "essosmeereen54": {"health": {"osha": 100, "aryastark": 100, "bronn": 100, "hodor": 100, "ahko": 100, "yezzanzoqaggaz": 100, "tyrionlannister": 100}, "roster": "-KGCsDHhxFyweVLBC0AA", "episode": 54, "house": "meereen"}, "essosstark53": {"health": {"branstark": 100, "aryastark": 100, "tyenesand": 100, "jaqenhghar": 100, "hodor": 100, "roosebolton": 100, "gregorclegane": 100}, "roster": "-KGAIMzp4T5z6tLZH5pj", "episode": 53, "house": "stark"}, "essosstark52": {"health": {"branstark": 100, "aryastark": 100, "tyenesand": 100, "jaqenhghar": 100, "hodor": 100, "roosebolton": 100, "gregorclegane": 100}, "roster": "-KGAIMzp4T5z6tLZH5pj", "episode": 52, "house": "stark"}, "essosstark51": {"health": {"branstark": 100, "aryastark": 100, "tyenesand": 100, "jaqenhghar": 100, "hodor": 100, "roosebolton": 100, "gregorclegane": 100}, "roster": "-KGAIMzp4T5z6tLZH5pj", "episode": 51, "house": "stark"}, "westerosindependent52": {"health": {"branstark": 100, "eurongreyjoy": 100, "varys": 0, "jaqenhghar": 100, "ellariasand": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "moro": 100}, "roster": "-KGD89OLUQQoYKT9vz68", "episode": 52, "house": "independent"}, "westerosindependent53": {"health": {"branstark": 100, "aryastark": 100, "eurongreyjoy": 100, "varys": 0, "jaqenhghar": 100, "ellariasand": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "moro": 100}, "roster": "-KGD89OLUQQoYKT9vz68", "episode": 53, "house": "independent"}, "essosstark54": {"health": {"branstark": 100, "aryastark": 0, "tyenesand": 100, "jaqenhghar": 100, "hodor": 100, "roosebolton": 100, "gregorclegane": 100}, "roster": "-KGAIMzp4T5z6tLZH5pj", "episode": 54, "house": "stark"}, "essosminor53": {"health": {"aryastark": 100, "olennatyrell": 100, "highsparrow": 100, "jonsnow": 100, "threeeyedraven": 100, "bronn": 100, "jaqenhghar": 100}, "roster": "-KGLQ4Rz3c5J-bjAVTJO", "episode": 53, "house": "minor"}, "essostargaryen53": {"health": {"davosseaworth": 100, "ramsaybolton": 0, "aryastark": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "tyrionlannister": 0}, "roster": "-KGI7f2E0QIBTBiO-DzW", "episode": 53, "house": "targaryen"}, "essosminor51": {"health": {"aryastark": 100, "olennatyrell": 100, "highsparrow": 100, "jonsnow": 100, "threeeyedraven": 100, "bronn": 100, "jaqenhghar": 100}, "roster": "-KGLQ4Rz3c5J-bjAVTJO", "episode": 51, "house": "minor"}, "dragonstark52": {"health": {"aryastark": 0, "jonsnow": 0, "brienneoftarth": 100, "varys": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "sansastark": 100}, "roster": "-KGAL96FHYP2ImZ-PBET", "episode": 52, "house": "stark"}, "dragonstark53": {"health": {"aryastark": 0, "jonsnow": 0, "brienneoftarth": 100, "varys": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "sansastark": 100}, "roster": "-KGAL96FHYP2ImZ-PBET", "episode": 53, "house": "stark"}, "essosminor54": {"health": {"aryastark": 100, "olennatyrell": 100, "highsparrow": 100, "jonsnow": 100, "threeeyedraven": 100, "bronn": 100, "jaqenhghar": 100}, "roster": "-KGLQ4Rz3c5J-bjAVTJO", "episode": 54, "house": "minor"}, "essostargaryen51": {"health": {"davosseaworth": 100, "ramsaybolton": 100, "aryastark": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "tyrionlannister": 100}, "roster": "-KGI7f2E0QIBTBiO-DzW", "episode": 51, "house": "targaryen"}, "westerostargaryen54": {"health": {"robinarryn": 100, "daarionaharis": 100, "highsparrow": 100, "petyrbaelish": 100, "bronn": 100, "tyrionlannister": 100, "forzo": 100}, "roster": "-KGBZs5uSsv9rOvR0VRu", "episode": 54, "house": "targaryen"}, "dragonbolton54": {"health": {"alliserthorne": 100, "pycelle": 100, "walderrivers": 100, "randylltarly": 100, "myrcellabaratheon": 100, "brienneoftarth": 100, "branstark": 100}, "roster": "-KGe5Q7FiC3vnThiaKkZ", "episode": 54, "house": "bolton"}, "westerostargaryen51": {"health": {"robinarryn": 100, "daarionaharis": 100, "highsparrow": 100, "petyrbaelish": 100, "bronn": 100, "tyrionlannister": 100, "forzo": 100}, "roster": "-KGBZs5uSsv9rOvR0VRu", "episode": 51, "house": "targaryen"}, "dragonbolton53": {"health": {"alliserthorne": 100, "pycelle": 100, "walderrivers": 100, "randylltarly": 100, "myrcellabaratheon": 100, "brienneoftarth": 100, "branstark": 100}, "roster": "-KGe5Q7FiC3vnThiaKkZ", "episode": 53, "house": "bolton"}, "westerostargaryen53": {"health": {"robinarryn": 100, "daarionaharis": 100, "highsparrow": 100, "petyrbaelish": 100, "bronn": 100, "tyrionlannister": 100, "forzo": 100}, "roster": "-KGBZs5uSsv9rOvR0VRu", "episode": 53, "house": "targaryen"}, "dragonbolton51": {"health": {"alliserthorne": 100, "pycelle": 100, "walderrivers": 100, "randylltarly": 100, "myrcellabaratheon": 100, "brienneoftarth": 100, "branstark": 100}, "roster": "-KGe5Q7FiC3vnThiaKkZ", "episode": 51, "house": "bolton"}, "westerosarryn54": {"health": {"doranmartell": 100, "melisandre": 100, "walderfrey": 100, "petyrbaelish": 100, "tyrionlannister": 100, "roosebolton": 100, "margaerytyrell": 100}, "roster": "-KGECAech_bBt1UlahvR", "episode": 54, "house": "arryn"}, "westerosarryn52": {"health": {"doranmartell": 100, "melisandre": 100, "walderfrey": 100, "petyrbaelish": 100, "tyrionlannister": 100, "roosebolton": 100, "margaerytyrell": 100}, "roster": "-KGECAech_bBt1UlahvR", "episode": 52, "house": "arryn"}, "westerosarryn53": {"health": {"doranmartell": 100, "melisandre": 100, "walderfrey": 100, "petyrbaelish": 100, "tyrionlannister": 100, "roosebolton": 100, "margaerytyrell": 100}, "roster": "-KGECAech_bBt1UlahvR", "episode": 53, "house": "arryn"}, "westerosarryn51": {"health": {"doranmartell": 100, "melisandre": 100, "walderfrey": 100, "petyrbaelish": 100, "tyrionlannister": 100, "roosebolton": 100, "margaerytyrell": 100}, "roster": "-KGECAech_bBt1UlahvR", "episode": 51, "house": "arryn"}, "dragongreyjoy52": {"health": {"gregorclegane": 100, "jonsnow": 100, "melisandre": 100, "nightsking": 100, "theongreyjoy": 100, "bronn": 100, "greyworm": 100}, "roster": "-KGD9vm5eldOWq2CLLaQ", "episode": 52, "house": "greyjoy"}, "dragongreyjoy53": {"health": {"gregorclegane": 100, "jonsnow": 100, "melisandre": 100, "nightsking": 100, "theongreyjoy": 100, "bronn": 100, "greyworm": 100}, "roster": "-KGD9vm5eldOWq2CLLaQ", "episode": 53, "house": "greyjoy"}, "dragongreyjoy51": {"health": {"gregorclegane": 100, "jonsnow": 100, "melisandre": 100, "nightsking": 100, "theongreyjoy": 100, "bronn": 100, "greyworm": 100}, "roster": "-KGD9vm5eldOWq2CLLaQ", "episode": 51, "house": "greyjoy"}, "dragongreyjoy54": {"health": {"gregorclegane": 100, "jonsnow": 100, "melisandre": 100, "nightsking": 100, "theongreyjoy": 100, "bronn": 100, "greyworm": 100}, "roster": "-KGD9vm5eldOWq2CLLaQ", "episode": 54, "house": "greyjoy"}, "essosminor52": {"health": {"aryastark": 100, "olennatyrell": 100, "highsparrow": 100, "jonsnow": 100, "threeeyedraven": 100, "bronn": 100, "jaqenhghar": 100}, "roster": "-KGLQ4Rz3c5J-bjAVTJO", "episode": 52, "house": "minor"}, "essosmartell53": {"health": {"izembaro": 100, "meerareed": 100, "razdalmoeraz": 100, "forzo": 100, "yaragreyjoy": 100, "qyburn": 100, "thoros": 100}, "roster": "-KGBhEZkrU2wrw3GACwK", "episode": 53, "house": "martell"}, "essosmartell52": {"health": {"izembaro": 100, "meerareed": 100, "razdalmoeraz": 100, "forzo": 100, "yaragreyjoy": 100, "qyburn": 100, "thoros": 100}, "roster": "-KGBhEZkrU2wrw3GACwK", "episode": 52, "house": "martell"}, "essosmartell51": {"health": {"izembaro": 100, "meerareed": 100, "razdalmoeraz": 100, "forzo": 100, "yaragreyjoy": 100, "qyburn": 100, "thoros": 100}, "roster": "-KGBhEZkrU2wrw3GACwK", "episode": 51, "house": "martell"}, "essosmartell54": {"health": {"izembaro": 100, "meerareed": 100, "razdalmoeraz": 100, "forzo": 100, "yaragreyjoy": 100, "qyburn": 100, "thoros": 100}, "roster": "-KGBhEZkrU2wrw3GACwK", "episode": 54, "house": "martell"}, "essosbolton51": {"health": {"wunwun": 100, "aryastark": 100, "razdalmoeraz": 100, "moro": 100, "tyrionlannister": 100, "qyburn": 100, "margaerytyrell": 100}, "roster": "-KGLDy5Jn9I3O_Nol5fA", "episode": 51, "house": "bolton"}, "essosbolton53": {"health": {"wunwun": 100, "aryastark": 100, "razdalmoeraz": 100, "moro": 100, "tyrionlannister": 100, "qyburn": 100, "margaerytyrell": 100}, "roster": "-KGLDy5Jn9I3O_Nol5fA", "episode": 53, "house": "bolton"}, "essosbolton52": {"health": {"wunwun": 100, "aryastark": 100, "razdalmoeraz": 100, "moro": 100, "tyrionlannister": 100, "qyburn": 100, "margaerytyrell": 100}, "roster": "-KGLDy5Jn9I3O_Nol5fA", "episode": 52, "house": "bolton"}, "essosbolton54": {"health": {"wunwun": 100, "aryastark": 100, "razdalmoeraz": 100, "moro": 100, "tyrionlannister": 100, "qyburn": 100, "margaerytyrell": 100}, "roster": "-KGLDy5Jn9I3O_Nol5fA", "episode": 54, "house": "bolton"}, "essosnightswatch54": {"health": {"aryastark": 100, "tyrionlannister": 100, "moro": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100, "daenerystargaryen": 100}, "roster": "-KGKOewaE5xx1AJXln_n", "episode": 54, "house": "nightswatch"}, "essosnightswatch51": {"health": {"aryastark": 100, "tyrionlannister": 100, "moro": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100, "daenerystargaryen": 100}, "roster": "-KGKOewaE5xx1AJXln_n", "episode": 51, "house": "nightswatch"}, "essosnightswatch52": {"health": {"aryastark": 100, "tyrionlannister": 100, "moro": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100, "daenerystargaryen": 100}, "roster": "-KGKOewaE5xx1AJXln_n", "episode": 52, "house": "nightswatch"}, "essosnightswatch53": {"health": {"aryastark": 100, "tyrionlannister": 100, "moro": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100, "daenerystargaryen": 100}, "roster": "-KGKOewaE5xx1AJXln_n", "episode": 53, "house": "nightswatch"}, "dragonmartell54": {"health": {"davosseaworth": 100, "kinvara": 100, "petyrbaelish": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100}, "roster": "-KGDUGdFlVurT0CFC4M9", "episode": 54, "house": "martell"}, "dragonmartell52": {"health": {"davosseaworth": 100, "kinvara": 100, "petyrbaelish": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100}, "roster": "-KGDUGdFlVurT0CFC4M9", "episode": 52, "house": "martell"}, "dragonmartell53": {"health": {"davosseaworth": 100, "kinvara": 100, "petyrbaelish": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100}, "roster": "-KGDUGdFlVurT0CFC4M9", "episode": 53, "house": "martell"}, "dragonmartell51": {"health": {"davosseaworth": 100, "kinvara": 100, "petyrbaelish": 100, "daenerystargaryen": 100, "brienneoftarth": 100, "missandei": 100, "margaerytyrell": 100}, "roster": "-KGDUGdFlVurT0CFC4M9", "episode": 51, "house": "martell"}, "essostyrell51": {"health": {"ramsaybolton": 100, "petyrbaelish": 100, "theongreyjoy": 100, "jaqenhghar": 100, "cerseilannister": 100, "missandei": 100, "tyrionlannister": 100}, "roster": "-KGA4ENa6NKvWHU02_Yw", "episode": 51, "house": "tyrell"}, "essostyrell53": {"health": {"ramsaybolton": 100, "petyrbaelish": 100, "theongreyjoy": 100, "jaqenhghar": 100, "cerseilannister": 100, "missandei": 100, "tyrionlannister": 100}, "roster": "-KGA4ENa6NKvWHU02_Yw", "episode": 53, "house": "tyrell"}, "essostyrell52": {"health": {"ramsaybolton": 100, "petyrbaelish": 100, "theongreyjoy": 100, "jaqenhghar": 100, "cerseilannister": 100, "missandei": 100, "tyrionlannister": 100}, "roster": "-KGA4ENa6NKvWHU02_Yw", "episode": 52, "house": "tyrell"}, "essostyrell54": {"health": {"ramsaybolton": 100, "petyrbaelish": 100, "theongreyjoy": 100, "jaqenhghar": 100, "cerseilannister": 100, "missandei": 100, "tyrionlannister": 0}, "roster": "-KGA4ENa6NKvWHU02_Yw", "episode": 54, "house": "tyrell"}, "westerosindependent54": {"health": {"branstark": 100, "aryastark": 100, "eurongreyjoy": 100, "varys": 0, "jaqenhghar": 100, "ellariasand": 100, "daenerystargaryen": 0, "brienneoftarth": 100, "moro": 100}, "roster": "-KGD89OLUQQoYKT9vz68", "episode": 54, "house": "independent"}, "westerosindependent51": {"health": {"branstark": 100, "eurongreyjoy": 100, "varys": 100, "jaqenhghar": 100, "ellariasand": 100, "moro": 100, "daenerystargaryen": 100}, "roster": "-KGD89OLUQQoYKT9vz68", "episode": 51, "house": "independent"}, "westerosnightswatch54": {"health": {"hodor": 100, "branstark": 100, "ellariasand": 100, "walderfrey": 100, "samwelltarly": 100, "roosebolton": 100, "thoros": 100}, "roster": "-KGDVzRCtFn0gSecFoQb", "episode": 54, "house": "nightswatch"}, "westerosnightswatch52": {"health": {"hodor": 100, "branstark": 100, "ellariasand": 100, "walderfrey": 100, "samwelltarly": 100, "roosebolton": 100, "thoros": 100}, "roster": "-KGDVzRCtFn0gSecFoQb", "episode": 52, "house": "nightswatch"}, "westerosnightswatch53": {"health": {"hodor": 100, "branstark": 100, "ellariasand": 100, "walderfrey": 100, "samwelltarly": 100, "roosebolton": 100, "thoros": 100}, "roster": "-KGDVzRCtFn0gSecFoQb", "episode": 53, "house": "nightswatch"}, "westerosnightswatch51": {"health": {"hodor": 100, "branstark": 100, "ellariasand": 100, "walderfrey": 100, "samwelltarly": 100, "roosebolton": 100, "thoros": 100}, "roster": "-KGDVzRCtFn0gSecFoQb", "episode": 51, "house": "nightswatch"}, "westerosmartell54": {"health": {"doranmartell": 100, "branstark": 100, "jorahmormont": 100, "tyrionlannister": 100, "podrickpayne": 100, "margaerytyrell": 100, "moro": 100}, "roster": "-KGA9a4ZuKQSO4Vmhoyb", "episode": 54, "house": "martell"}, "westerosmartell51": {"health": {"doranmartell": 100, "branstark": 100, "jorahmormont": 100, "tyrionlannister": 100, "podrickpayne": 100, "margaerytyrell": 100, "moro": 100}, "roster": "-KGA9a4ZuKQSO4Vmhoyb", "episode": 51, "house": "martell"}, "dragonstark54": {"health": {"aryastark": 0, "jonsnow": 0, "brienneoftarth": 100, "varys": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "sansastark": 100}, "roster": "-KGAL96FHYP2ImZ-PBET", "episode": 54, "house": "stark"}, "westerosmartell53": {"health": {"doranmartell": 100, "branstark": 100, "jorahmormont": 100, "tyrionlannister": 100, "podrickpayne": 100, "margaerytyrell": 100, "moro": 100}, "roster": "-KGA9a4ZuKQSO4Vmhoyb", "episode": 53, "house": "martell"}, "westerosmartell52": {"health": {"doranmartell": 100, "branstark": 100, "jorahmormont": 100, "tyrionlannister": 100, "podrickpayne": 100, "margaerytyrell": 100, "moro": 100}, "roster": "-KGA9a4ZuKQSO4Vmhoyb", "episode": 52, "house": "martell"}, "dragonstark51": {"health": {"aryastark": 100, "jonsnow": 0, "brienneoftarth": 100, "varys": 100, "jaqenhghar": 100, "daenerystargaryen": 100, "sansastark": 100}, "roster": "-KGAL96FHYP2ImZ-PBET", "episode": 51, "house": "stark"}} \ No newline at end of file diff --git a/S06/core/example.py b/S06/core/example.py index 639a161..b51093b 100644 --- a/S06/core/example.py +++ b/S06/core/example.py @@ -35,4 +35,4 @@ for league in game.leagues: - league.process_episode_results_and_publish() \ No newline at end of file + league.process_episode_results_and_publish() diff --git a/S06/core/house.py b/S06/core/house.py index e032da4..fb48d2f 100644 --- a/S06/core/house.py +++ b/S06/core/house.py @@ -109,7 +109,7 @@ def plot_assassination(self, league, missions, target_roster): "success" : success } - pprint(damage_potential) + # pprint(damage_potential) return damage_potential @@ -488,7 +488,7 @@ def foil_assassination(self, league, missions, target_roster, damage): # BOLTON ABILITY # Chance that an attack on this House backfires and retargets the assassin itself - # Chance is 15% * target's prominence power + # Chance is 15% * target's prominence poewr v = getattr(league.game.characters[missions['assassination_target_character']], 'prominence') @@ -506,8 +506,10 @@ def foil_assassination(self, league, missions, target_roster, damage): if league.get_player_house_immunity(missions['player']) == new_target_character: damage_dealt = 0 + target_house_name = league.get_player_house(missions['player']) + damage.update({ - "target_house" : league.get_player_house(missions['player']), + "target_house" : target_house_name, "target_character" : new_target_character, "damage_intended" : damages[violence], "damage_dealt" : damage_dealt, diff --git a/S06/core/league.py b/S06/core/league.py index 155a0db..c0132e7 100644 --- a/S06/core/league.py +++ b/S06/core/league.py @@ -32,8 +32,6 @@ def __init__(self, name, game): self.roster_ids = self.collect_player_rosters_ids() self.rosters = self.collect_player_rosters() - self.character_health = self.collect_character_health() - self.assign_rosters_to_players() @@ -71,41 +69,6 @@ def collect_player_rosters_ids(self): def collect_player_rosters(self): return {roster_id: roster.values() for roster_id, roster in self.game.rosters.iteritems() if roster_id in self.roster_ids} - def collect_character_health(self): - """ HEALTH FOR ROSTER CHARACTER IN LEAGUE - character_health. - . - : health - """ - - for roster_id, roster in self.rosters.iteritems(): - - house = self.get_roster_house(roster_id) - key = "{}{}{}".format(self.name, house, self.current_episode) - prev_key = "{}{}{}".format(self.name, house, str(int(self.current_episode)-1)) - - # GET CHAR_HEALTH FROM PREVIOUS EPISODE AND SET IT AS THE CURRENT - if prev_key in self.game.character_health: - - health = self.game.character_health[prev_key] - health.update({"episode" : self.current_episode}) - - self.game.character_health[key] = health - - # IF NO CHAR_HEALTH, GENERATE DEFAULT - else: - health = { - "episode" : self.current_episode, - "house" : house, - "roster" : roster_id, - "health" : dict(zip(roster, [100]*len(roster) )) - } - self.game.character_health[key] = health - - self.game.set_character_health(key, health) - - return {h['house']: h['health'] for key, h in self.game.character_health.iteritems() if h['roster'] in self.roster_ids} - def get_player(self, uid): return [p for p in self.players if p.id == uid][0] @@ -131,6 +94,9 @@ def get_house_player(self, house): def get_roster_house(self, rid): return [p.house.name for p in self.players if p.roster_id == rid][0] + def get_roster_player(self, rid): + return [p for p in self.players if p.roster_id == rid][0] + def get_episode_title(self, epno): return [e.title for id, e in self.game.episodes.iteritems() if id == str(epno)][0] @@ -139,10 +105,44 @@ def get_episode_number(self, epno): def assign_rosters_to_players(self): - for player in self.players: + """ HEALTH FOR ROSTER CHARACTER IN LEAGUE + character_health. + . + : health + """ + + for roster_id, roster in self.rosters.iteritems(): + + house = self.get_roster_house(roster_id) + key = "{}{}{}".format(self.name, house, self.current_episode) + prev_key = "{}{}{}".format(self.name, house, str(int(self.current_episode)-1)) + + # GET CHAR_HEALTH FROM PREVIOUS EPISODE AND SET IT AS THE CURRENT + if prev_key in self.game.character_health: + + health = self.game.character_health[prev_key].copy() + health.update({"episode" : self.current_episode}) + + self.game.character_health[key] = health + + # IF NO CHAR_HEALTH, GENERATE DEFAULT + else: + health = { + "episode" : self.current_episode, + "house" : house, + "roster" : roster_id, + "health" : dict(zip(roster, [100]*len(roster) )) + } + self.game.character_health[key] = health + + self.game.set_character_health(key, health) + + # Assign to player objects + player = self.get_roster_player(roster_id) player.roster = self.rosters[player.roster_id] - player.character_health = self.character_health[player.house.name] + player.character_health = health['health'] player.roster_prominence = player.get_roster_prominence(self.game.characters) + # Weekly Processes @@ -160,7 +160,6 @@ def process_episode_results(self, votes=True, missions=False, analytics=True): self.score_weekly_episode() print '*** VOTES COUNTED ***' - if missions: # DEVELOPER self.run_weekly_diplomatic_missions() @@ -296,9 +295,9 @@ def run_weekly_assassion_missions(self): murder_print = lambda m : "House {house} assassination of {murder[target_house]}, dealt {murder[damage_dealt]} damage".format(**m) - for murder in murder_set: - if murder['murder']['success']: - pprint(murder_print(murder)) + # for murder in murder_set: + # if murder['murder']['success']: + # pprint(murder_print(murder)) # Dock Character Health @@ -365,6 +364,7 @@ def process_murder_log(self, murder_set): mx = murder['murder'] + # Update Character Health on Player self.get_house_player(mx['target_house']).character_health[mx['target_character']] -= mx['damage_dealt'] keys = murder.copy() @@ -372,6 +372,7 @@ def process_murder_log(self, murder_set): 'house' : murder['murder']['target_house'] }) + # Update Character Health on Game self.game.update_character_health(keys, murder['murder']) @@ -571,7 +572,7 @@ def award_weekly_points(self): player_roster_award_scores = {} for award in self.game.awards: - + award_score = self.current_episode_score[award] awarded_points = player.house.award_points(self, self.current_episode, award, award_score, self.game.characters, player.character_health, player.missions) diff --git a/S06/fix-character-health.ipynb b/S06/fix-character-health.ipynb new file mode 100644 index 0000000..db6e772 --- /dev/null +++ b/S06/fix-character-health.ipynb @@ -0,0 +1,218 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pprint\n", + "import simplejson\n", + "import pandas as pd\n", + "from firebase import firebase\n", + "\n", + "url = 'https://ascension.firebaseio.com'\n", + "firebase = firebase.FirebaseApplication(url, None)\n", + "base = firebase.get('/', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "base[u'character_health'] = {k:v for k,v in base[u'character_health'].iteritems() if v['episode'] < 55}" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "missions = {k:v for k,v in base[u'missions'].iteritems() if v['episode'] == '54'}" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "character_health = {k:v for k,v in base[u'character_health'].iteritems() if v['episode'] == 54}" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "damage = [0,0,25,50,75,100]" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100\n", + "daenerystargaryen\n", + "SUCCESS\n", + "\n", + "\n", + "0\n", + "tyrionlannister\n", + "SUCCESS\n", + "\n", + "\n", + "100\n", + "daenerystargaryen\n", + "SUCCESS\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "100\n", + "brienneoftarth\n", + "SUCCESS\n", + "\n", + "\n", + "100\n", + "aryastark\n", + "SUCCESS\n", + "\n", + "\n", + "0\n", + "aryastark\n", + "SUCCESS\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "100\n", + "tyrionlannister\n", + "SUCCESS\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "FAIL\n", + "\n", + "\n", + "100\n", + "wunwun\n", + "SUCCESS\n", + "\n", + "\n", + "100\n", + "jaqenhghar\n", + "SUCCESS\n", + "\n", + "\n" + ] + } + ], + "source": [ + "for k,m in missions.iteritems():\n", + " if m['assassination_target_house']:\n", + " h = m['assassination_target_house']\n", + " l = m['league']\n", + " d = base['characters'][m['assassination_agent']]['violence']\n", + " try:\n", + " v = base[u'character_health'][l+h+'54']['health']\n", + " print v[m['assassination_target_character']]\n", + " print m['assassination_target_character']\n", + " v[m['assassination_target_character']] = max(v[m['assassination_target_character']] - damage[d], 0)\n", + " print 'SUCCESS'\n", + " except:\n", + " print 'FAIL'\n", + "\n", + " print '\\n'" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [], + "source": [ + "# {k:v for k,v in base[u'character_health'].iteritems() if v['episode'] == 54}" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "with open('/home/io/character-health-fix.json','w') as json_file:\n", + " simplejson.dump(base[u'character_health'], json_file)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}