Source code for settings
# -*- coding: utf-8 -*-
from tools import Color
import json
import logging
# attrs from list will be send when mp session will be established
list_of_mp_relevant_options = {"multiple_attack", "force_attack", "who_starts"}
[docs]class Settings:
def __init__(self, default=False):
self.who_starts = Color.white
self.force_attack = True
self.ai = False
self.multiple_attack = True
self.always_on_top = False
self.ai_difficulty = 3
if not default:
try:
data = open('settings.json')
self.__dict__.update(json.loads(data.read()))
except IOError:
logging.debug("Could not load setting file.")
return
self.save_settings()
[docs] def json_import_dump(self, json_dump):
self.__dict__.update(json.loads(json_dump))
[docs] def json_dump_for_mp_connection(self):
mp_settings = dict()
for item in list_of_mp_relevant_options:
mp_settings[item] = getattr(self, item)
return json.dumps(mp_settings, default=lambda o: o.__dict__)
[docs] def save_settings(self):
with open('settings.json', 'w') as outfile:
json.dump(self.__dict__, outfile, sort_keys=True, indent=4, ensure_ascii=False)
outfile.close()