コード例 #1
0
ファイル: core.py プロジェクト: thorvalddox/space_invasion
def find_solvent(temp, press):
    for i in solvents():
        if i.mintemp < temp < i.maxtemp:
            if i.minpress < press < i.maxpress:
                return i
            else:
                return None
    return None
コード例 #2
0
ファイル: core.py プロジェクト: thorvalddox/space_invasion
 def __init__(self, parent, index):
     self.parent = parent
     self.index = index
     self.mass = lograndom(10 ** -2, 70) * 10 ** index
     self.distance = lograndom(0.03, 0.3) * 10 ** index
     self.metals = OrderedDict((m, random.random() ** 3) for m in metals())
     self.solvents = OrderedDict((s, random.random() ** 3) for s in solvents())
     self.dispsize = (log_to_rel(self.mass, 10 ** -2, 7000) + 0.1) * 20
     self.dispdist = log_to_rel(self.distance, 0.03, 300) * 300 + 100
     self.color = usecolorstring(log_to_rel(self.mass, 10 ** -2, 7000), [(127, 127, 127), (255, 255, 127)])
     self.structures = [Structure(self) for _ in range(5)]
     self.name = generate_name()
     self.owner = None
     self.storage = Counter(self.solvents.keys())
     self.storage.update(self.metals.keys())
     self.population = 0
     self.temperature_max = 300 / self.distance / self.parent.mass
     self.temperature_min = self.temperature_max * 0.8
     self.pressure = self.mass ** 1 / 3
     self.active_solvent = find_solvent(self.temperature_max, self.pressure)
     self.buildable = self.active_solvent is not None
     self.autofire = True
     self.counter = 0
     self.pos = self.decide_pos()