def drop_pc(pc,item): rog.alert("Place {i} where?{d}".format(d=dirStr,i=item.name)) args=rog.get_direction() if not args: return dx,dy,dz=args if not drop(pc, item): rog.alert("You can't put that there!")
def pickup_pc(pc): rog.alert("Pick up what?{d}".format(d=dirStr)) args=rog.get_direction() if not args: rog.alert() return dx,dy,dz=args xx,yy=pc.x + dx, pc.y + dy things=rog.thingsat(xx,yy) if pc in things: things.remove(pc) choice=None if len(things) > 1: rog.alert("There are multiple things here. Pick up which item?") choices = [] #["all",] #should player be able to pickup multiple things at once? Maybe could be a delayed action? for thing in things: choices.append(thing) choice=rog.menu( "pick up", rog.view_port_x()+2, rog.view_port_y()+2, choices ) else: if things: choice=things[0] if (choice and not choice == "all"): if choice == K_ESCAPE: return #thing is creature! You can't pick up creatures :( if choice.isCreature: rog.alert("You can't pick that up!") return #thing is on fire! What are you doing trying to pick it up?? if rog.on(choice,FIRE): answer="" while True: answer=rog.prompt(0,0,rog.window_w(),1,maxw=1, q="That thing is on fire! Are you sure? y/n", mode='wait',border=None) answer=answer.lower() if answer == "y" or answer == " " or answer == K_ENTER: rog.alert("You burn your hands!") rog.burn(pc, FIRE_BURN) rog.hurt(pc, FIRE_HURT) break elif answer == "n" or answer == K_ESCAPE: return # put in inventory pocketThing(pc, choice) #elif choice == "all": # else: rog.alert("There is nothing there to pick up.")
def open_pc(pc): rog.alert("Open what?{d}".format(d=dirStr)) args=rog.get_direction() if not args: return dx,dy,dz=args xto=pc.x+dx yto=pc.y+dy if not openClose(pc, xto, yto): rog.alert("It won't open.")
def towel_pc(pc, item): options={} options.update({"W" : "wrap around"}) options.update({"l" : "lie"}) options.update({"s" : "sail"}) options.update({"w" : "wield"}) options.update({"h" : "wear on head"}) options.update({"x" : "wave"}) options.update({"d" : "dry"}) choice=rog.menu("use towel",0,0,options,autoItemize=False) if choice == "wear on head": pass elif choice == "wrap around": dirTo=rog.get_direction() if not args: return dx,dy,dz=args xto = pc.x + dx; yto = pc.y + dy; if (dx==0 and dy==0 and dz==0): pass #wrap around self elif choice == "wield": if rog.on(item, WET): pass #equip it else: rog.alert("You can't wield a towel that isn't wet!") elif choice == "dry": #itSeemsCleanEnough=... if ( itSeemsCleanEnough and not rog.on(item, WET) ): pass #dry self else: if not itSeemsCleanEnough: rog.alert("It doesn't seem clean enough.") elif rog.on(item, WET): rog.alert("It's too wet.")
def pickup_pc(pc): world = rog.world() pos = world.component_for_entity(pc, cmp.Position) pcx = pos.x pcy = pos.y rog.alert("Pick up what?{d}".format(d=dirStr)) args=rog.get_direction() if not args: rog.alert() return dx,dy,dz=args xx,yy = pcx + dx, pcy + dy things=rog.thingsat(xx,yy) if pc in things: #can't pick yourself up. things.remove(pc) choice=None if len(things) > 1: rog.alert("There are multiple things here. Pick up which item?") choices = [] #["all",] #should player be able to pickup multiple things at once? Maybe could be a delayed action? for thing in things: choices.append(thing) choice=rog.menu( "pick up", rog.view_port_x()+2, rog.view_port_y()+2, choices ) else: if things: choice=things[0] if (choice and not choice == "all"): if choice == K_ESCAPE: return #thing is creature! You can't pick up creatures :( or can you...? if world.has_component(choice, cmp.Creature): rog.alert("You can't pick that up!") return #thing is on fire, prompt user & burn persistent rogues if rog.on(choice,FIRE): answer="" while True: answer=rog.prompt(0,0,rog.window_w(),1,maxw=1, q="That thing is on fire! Are you sure? y/n", mode='wait',border=None) answer=answer.lower() if answer == "y" or answer == " " or answer == K_ENTER: rog.alert("You burn your hands!") rog.burn(pc, FIRE_BURN) rog.hurt(pc, FIRE_HURT) break elif answer == "n" or answer == K_ESCAPE: return # put in inventory pocketThing(pc, choice) ## elif choice == "all": ## for tt in things: ## pocketThing(pc, tt) else: rog.alert("There is nothing there to pick up.")