def activate(self, activator=None): if CountUpTile.activate(self,activator): xu = self.map.size.x//4 yu = self.map.size.y//4 b = Menu( Position(xu,yu), Position(xu*2,yu*2), title="Trap Control" ) b.add('1',"View traps") b.add('2',"%s traps" %(TrapConsole.traps_on and 'Disable' or 'Enable')) b.add('3',"Set off traps") b.add('x',"Exit") c = b.get_key() del b traps = self.map.find_all(Trap,Tile) if c == '1': for t in traps: t.visible_to_player = True self.map.player.handle_keys() elif c == '2': for trap in traps: trap.enabled = TrapConsole.traps_on TrapConsole.traps_on = not TrapConsole.traps_on elif c == '3': for trap in traps: trap.trip() return True return False
def pickup(self, i): """returns True if i picked up successfully""" # TODO: move all this into HasInventory interface assert isinstance(i, Item), "Can't pick up a %s" % i if isinstance(i, Evidence): self.evidence.append(i) if not i.pos is None: # found it in a locker self.map.remove(i) return Player.ITEM_PICKUP_COST item_index = None items = self.items if isinstance(i, SlotItem): items = [self.slot_items[i.valid_slot]] if not None in items: # prompt to drop something; drop it xu = self.map.size.x // 4 yu = self.map.size.y // 4 b = Menu(Position(xu, yu), Position(xu * 2, yu * 2), title="Pick Up") b.add('x', str(i)) b.add_spacer() for idx in range(len(items)): v = items[idx] b.add('%d' % (idx + 1), str(v)) c = b.get_key() if isinstance(c, str) and c.isnumeric(): item_index = int(c) - 1 self.redraw_screen() del b if item_index is None or item_index >= len(items): return 0.0 items[item_index].drop_at(self.pos) self.map.add(items[item_index]) else: item_index = items.index(None) if isinstance(i, SlotItem): self.slot_items[i.valid_slot] = i else: self.items[item_index] = i if not i.pos is None: # if taken from locker or other bonus self.map.remove(i) i.take_by(self) return Player.ITEM_PICKUP_COST
def pickup(self,i): """returns True if i picked up successfully""" # TODO: move all this into HasInventory interface assert isinstance(i,Item), "Can't pick up a %s"%i if isinstance(i,Evidence): self.evidence.append(i) if not i.pos is None: # found it in a locker self.map.remove(i) return Player.ITEM_PICKUP_COST item_index = None items = self.items if isinstance(i,SlotItem): items = [self.slot_items[i.valid_slot]] if not None in items: # prompt to drop something; drop it xu = self.map.size.x//4 yu = self.map.size.y//4 b = Menu( Position(xu,yu), Position(xu*2,yu*2), title="Pick Up" ) b.add('x',str(i)) b.add_spacer() for idx in range(len(items)): v = items[idx] b.add('%d'%(idx+1),str(v)) c = b.get_key() if isinstance(c,str) and c.isnumeric(): item_index = int(c) - 1 self.redraw_screen() del b if item_index is None or item_index >= len(items): return 0.0 items[item_index].drop_at(self.pos) self.map.add(items[item_index]) else: item_index = items.index(None) if isinstance(i,SlotItem): self.slot_items[i.valid_slot] = i else: self.items[item_index] = i if not i.pos is None: # if taken from locker or other bonus self.map.remove(i) i.take_by(self) return Player.ITEM_PICKUP_COST
def activate(self, activator=None): if CountUpTile.activate(self, activator): xu = self.map.size.x // 4 yu = self.map.size.y // 4 b = Menu(Position(xu, yu), Position(xu * 2, yu * 2), title="Camera Control") b.add('1', "View cameras") b.add( '2', "Switch %s cameras" % (CameraConsole.cameras_on and 'off' or 'on')) b.add('x', "Exit") c = b.get_key() del b cams = self.map.find_all(StaticCamera, Monster) if c == '1': for cam in cams: self.map.prepare_fov(cam.pos, reset=False) self.map.player.handle_keys() elif c == '2': if CameraConsole.cameras_on: for cam in cams: cam.add_effect(StatusEffect.BLIND) else: for cam in cams: cam.remove_effect(StatusEffect.BLIND) CameraConsole.cameras_on = not CameraConsole.cameras_on return True return False
def activate(self, activator=None): if CountUpTile.activate(self,activator): xu = self.map.size.x//4 yu = self.map.size.y//4 b = Menu( Position(xu,yu), Position(xu*2,yu*2), title="Camera Control" ) b.add('1',"View cameras") b.add('2',"Switch %s cameras" %(CameraConsole.cameras_on and 'off' or 'on')) b.add('x',"Exit") c = b.get_key() del b cams = self.map.find_all(StaticCamera,Monster) if c == '1': for cam in cams: self.map.prepare_fov(cam.pos,reset=False) self.map.player.handle_keys() elif c == '2': if CameraConsole.cameras_on: for cam in cams: cam.add_effect(StatusEffect.BLIND) else: for cam in cams: cam.remove_effect(StatusEffect.BLIND) CameraConsole.cameras_on = not CameraConsole.cameras_on return True return False
def drop(self): # prompt to drop something; drop it xu = self.map.size.x//4 yu = self.map.size.y//4 b = Menu( Position(xu,yu), Position(xu*2,yu*2), title="Drop" ) b.add('x','Do nothing') b.add_spacer() for idx in range(len(self.items)): v = self.items[idx] if not v is None: b.add('%d'%(idx+1),str(v)) b.add_spacer() idx += 1 for k in self.slot_keys: idx += 1 if not self.slot_items[k] is None: b.add('%d'%idx,str(self.slot_items[k])) c = b.get_key() item_index = None if isinstance(c,str) and c.isnumeric(): item_index = int(c) - 1 self.redraw_screen() del b if item_index is None: return 0.0 i = None if item_index < len(self.items): i = self.items[item_index] self.items[item_index] = None elif item_index < len(self.items)+len(self.slot_keys): k = self.slot_keys[item_index-len(self.items)] i = self.slot_items[k] self.slot_items[k] = None if not i is None: i.drop_at(self.pos) self.map.add(i) return self.ITEM_DROP_COST return 0.0
def drop(self): # prompt to drop something; drop it xu = self.map.size.x // 4 yu = self.map.size.y // 4 b = Menu(Position(xu, yu), Position(xu * 2, yu * 2), title="Drop") b.add('x', 'Do nothing') b.add_spacer() for idx in range(len(self.items)): v = self.items[idx] if not v is None: b.add('%d' % (idx + 1), str(v)) b.add_spacer() idx += 1 for k in self.slot_keys: idx += 1 if not self.slot_items[k] is None: b.add('%d' % idx, str(self.slot_items[k])) c = b.get_key() item_index = None if isinstance(c, str) and c.isnumeric(): item_index = int(c) - 1 self.redraw_screen() del b if item_index is None: return 0.0 i = None if item_index < len(self.items): i = self.items[item_index] self.items[item_index] = None elif item_index < len(self.items) + len(self.slot_keys): k = self.slot_keys[item_index - len(self.items)] i = self.slot_items[k] self.slot_items[k] = None if not i is None: i.drop_at(self.pos) self.map.add(i) return self.ITEM_DROP_COST return 0.0
def activate(self, activator=None): if CountUpTile.activate(self, activator): xu = self.map.size.x // 4 yu = self.map.size.y // 4 b = Menu(Position(xu, yu), Position(xu * 2, yu * 2), title="Trap Control") b.add('1', "View traps") b.add( '2', "%s traps" % (TrapConsole.traps_on and 'Disable' or 'Enable')) b.add('3', "Set off traps") b.add('x', "Exit") c = b.get_key() del b traps = self.map.find_all(Trap, Tile) if c == '1': for t in traps: t.visible_to_player = True self.map.player.handle_keys() elif c == '2': for trap in traps: trap.enabled = TrapConsole.traps_on TrapConsole.traps_on = not TrapConsole.traps_on elif c == '3': for trap in traps: trap.trip() return True return False