class OutputMachine(Machine): arrows = Img.imgrot("Machines/OutputOnly") def render(self, layer, surf, tpos, area, scale=3): super().render(layer, surf, tpos, area, scale) if layer == self.renderlayer: surf.blit(self.arrows[self.r][scale], tpos) @property def img(self): return self.imgs[self.r==2]
class SlotMachine(OutputMachine): outputslot=None output_enabled=False arrows=Img.imgrot("Machines/StandardIO") def update(self, pos, area, events): if self.output_enabled: if self.outputslot and self.outputslot.q: if self.add_output(self.outputslot.item): self.outputslot.remove(1) elif area.get("Conv",pos+Vector.vdirs[self.r]): self.output_enabled=True super().update(pos,area,events)
class Fireball(Rotatable): layers = ["Objects"] imgs=Img.imgrot("War/Fireball") rng=4 mspeed = 8 def update(self, pos, area, events): if self.mprog: return if self.rng and area.move(self,pos,Vector.vdirs[self.r]): self.rng-=1 else: area.dobj(self,pos) area.create_exp(pos,1,"Cross",0)
class Arrow(Overlay): imgs = Img.imgrot(Img.imgx("Overlays/Arrow"))
def ore_strip(fil): imgs = Img.imgstriprot(fil) inf = imgs[-1][0].copy() inf.blit(infsparks, (0, 0)) imgs.append(Img.imgrot(inf)) return imgs