+class Thing_Hat(Thing):
+ symbol_hint = 'H'
+ portable = True
+ design = ' +--+ ' + ' | | ' + '======'
+ spinnable = True
+
+ def spin(self):
+ new_design = ''
+ new_design += self.design[12]
+ new_design += self.design[13]
+ new_design += self.design[6]
+ new_design += self.design[7]
+ new_design += self.design[0]
+ new_design += self.design[1]
+ new_design += self.design[14]
+ new_design += self.design[15]
+ new_design += self.design[8]
+ new_design += self.design[9]
+ new_design += self.design[2]
+ new_design += self.design[3]
+ new_design += self.design[16]
+ new_design += self.design[17]
+ new_design += self.design[10]
+ new_design += self.design[11]
+ new_design += self.design[4]
+ new_design += self.design[5]
+ self.design = ''.join(new_design)
+
+
+
+class Thing_HatRemixer(Thing):
+ symbol_hint = 'H'
+
+ def accept(self, hat):
+ import string
+ new_design = ''
+ legal_chars = string.ascii_letters + string.digits + string.punctuation + ' '
+ for i in range(18):
+ new_design += random.choice(list(legal_chars))
+ hat.design = new_design
+ self.sound('HAT REMIXER', 'remixing a hat …')
+ self.game.changed = True
+ # FIXME: pseudo-FOV-change actually
+ self.game.record_fov_change(self.thing.position)
+
+
+