def mail_results(self): for faction in Faction.objects.all(): actions = Action.objects.filter(faction=faction, turn=self.turn) Message.mail_line( faction.controller, "%s Turn Results: %s" % (faction.name, self.display_turn()), "\n".join([a.p_str for a in actions]))
def generate_resources(self): for faction in Faction.objects.all(): generated = [] for territory in faction.territory_set.filter(special=MINE): generated.append("%s generates %s" % (territory.name, territory.resource_generated())) try: Message.mail_line(faction.controller, "Resources Generated", "Your territories generated the following resources:\n%s" % "\n".join(generated)) except: pass
def disband_units(self): for faction in Faction.objects.all(): if faction.code == 'ET': continue # ET gets a pass, ha ha if faction.units() > faction.allowed_units(): to_disband = faction.units() - faction.allowed_units() disbandees = faction.unit_set.filter(alive=True).order_by('disband_priority')[:to_disband] for d in disbandees: d.alive = False d.save() try: Message.mail_line(faction.controller, "%s units disbanded" % disbandees.count(), "You were over your cap, so units in the following territories were disbanded:\n%s" % "\n".join([d.territory.name for d in list(disbandees)])) except Exception, e: print e, type(e), e.message
def generate_resources(self): for faction in Faction.objects.all(): generated = [] for territory in faction.territory_set.filter(special=MINE): generated.append( "%s generates %s" % (territory.name, territory.resource_generated())) try: Message.mail_line( faction.controller, "Resources Generated", "Your territories generated the following resources:\n%s" % "\n".join(generated)) except: pass
def build_units(self): for faction in Faction.objects.all(): if not BuildOrder.objects.filter(faction=faction, turn=self.turn).exists(): continue built = [] for b in BuildOrder.objects.filter(faction=faction, turn=self.turn): if b.territory.owner != faction: built.append("%s: failed, territory not yours" % b.territory.name) elif b.territory.has_unit: built.append("%s: failed, territory still occupied" % b.territory.name) else: built.append("%s: succeeded" % b.territory.name) Unit.objects.create(faction=faction, territory=b.territory) try: Message.mail_line(faction.controller, "Unit Build Results", "Your build orders:\n%s" % "\n".join(built)) except: pass
def disband_units(self): for faction in Faction.objects.all(): if faction.code == 'ET': continue # ET gets a pass, ha ha if faction.units() > faction.allowed_units(): to_disband = faction.units() - faction.allowed_units() disbandees = faction.unit_set.filter( alive=True).order_by('disband_priority')[:to_disband] for d in disbandees: d.alive = False d.save() try: Message.mail_line( faction.controller, "%s units disbanded" % disbandees.count(), "You were over your cap, so units in the following territories were disbanded:\n%s" % "\n".join([d.territory.name for d in list(disbandees)])) except Exception, e: print e, type(e), e.message
def mail_results(self): for faction in Faction.objects.all(): actions = Action.objects.filter(faction=faction, turn=self.turn) Message.mail_line(faction.controller, "%s Turn Results: %s" % (faction.name, self.display_turn()), "\n".join([a.p_str for a in actions]))