def do(self, *args, **kwargs): print("一名身穿旧式礼服的新娘子向你招手,你顿时恍惚出神") role = kwargs.get("role") res = role.ability_challenge(ability="知识", type="事件") if sum(res) >= 5: print("某些异样让你迅速的回复了神志,知识上升1个级别") else: print("迷迷糊糊之中,你发现你向着不知何处前进着") res = role.dice(n=3) if sum(res) == 6: print("回过神来,你发现你在入口处") role.floor = 1 role.x = 4 role.y = 6 lobby_0.into(role) return elif 4 <= sum(res) <= 5: print("回过神来,你发现你在上台阶处") role.floor = 2 role.x = 4 role.y = 4 up_steps.into(role) return elif 2 <= sum(res) <= 3: role.floor = 2 elif 0 <= sum(res) <= 1: role.floor = 0 while True: x = random.randint(0, 4) y = random.randint(0, 4) if game_map[role.floor].map[x][y] is None: set_room(role.explore(direction=random.randint(0, 3)), role.floor, x, y) break
def use(self, role): super(Collapse, self).use(role) print('你从房间跳下') role.hurt(type='肉体') room_list = room_search(sign='崩塌的房间', floor=0) if len(room_list) == 0: role.hurt(type='肉体') role.floor = 0 x = random.randint(0, 4) y = random.randint(0, 4) if constant.game_map[0].map[x][y] is None: set_room(role.explore(direction=random.randint(0, 3)), role.floor, x, y) new_room = constant.game_map[0].map[x][y] self.leave(role) if isinstance(new_room, PartitionRoom): new_room.into(role, direction=random.randint(0, 3)) new_room.get_sign(role).append("崩塌的房间") else: new_room.sign.append("崩塌的房间") new_room.into(role) else: new_room = room_list[0] role.floor = new_room.get('floor') self.leave(role) new_room.get('room').into(role)
def into(self, role, direction=None): super(Collapse, self).into(role) print( "第一个进入本房间的玩家必须以'速度'进行'能力考验'。若骰数大于或等于5,则人物无恙。否则翻开一张地下室卡,放到地下,玩家坠落至此,并需要骰1,点数为玩家'肉体伤害'" ) if self.force: print('当你一脚踏进这个房间时,显然没有注意到地板上的破洞.') if sum(role.ability_challenge(ability='速度')) >= 5: print('但是你灵巧的稳住了身形,避免了掉落') else: print('你一脚踩空,下落到地下室随机地点') role.hurt(type='肉体') role.floor = 0 x = random.randint(0, 4) y = random.randint(0, 4) if constant.game_map[0].map[x][y] is None: set_room(role.explore(direction=random.randint(0, 3)), role.floor, x, y) new_room = constant.game_map[0].map[x][y] self.leave(role) if isinstance(new_room, PartitionRoom): new_room.into(role, direction=random.randint(0, 3)) new_room.get_sign(role).append("崩塌的房间") else: new_room.sign.append("崩塌的房间") new_room.into(role) self.force = False
def move(self, direction): # 丝网判断 self.struggle(name="丝网", ability="力量", goal=4) # 瓦砾判断 self.struggle(name="瓦砾", ability="力量", goal=4) # 敌对干扰判断 enemy = len([x for x in self.room.get_creatures(self) if x.camp != self.camp]) self.move_bar -= enemy # 首次移动判断 if not self.first_move and self.move_bar <= 0: print("行动力不足") return # 房间门判断 if self.room.door[direction] >= 1: if self.room.door[direction] == 9: if not self.room.across(self, direction): self.first_move = False self.move_bar = 0 return if direction == 0: x = self.room.x y = self.room.y - 1 elif direction == 1: x = self.room.x + 1 y = self.room.y elif direction == 2: x = self.room.x y = self.room.y + 1 elif direction == 3: x = self.room.x - 1 y = self.room.y else: x = self.room.x y = self.room.y try: new_room = game_map[self.floor].map[x][y] except: print("这扇门似乎和空间牢牢的固定在一起。") return if new_room is None: while True: new_room = self.explore(direction) set_room(new_room, self.floor, x, y) if live_map_cheak(floor=self.floor) > 0: break else: room_card_set.append(new_room) random.shuffle(room_card_set) set_room(None, self.floor, x, y) self.move_bar = 0 else: if new_room.door[[2, 3, 0, 1][direction]] == 0: print("这扇门似乎和空间牢牢的固定在一起。") return self.move_bar -= 1 self.first_move = False self.room.leave(self) new_room.into(role=self, direction=direction)
def do(self, *args, **kwargs): print("你觉得你走进了一个充满迷雾的走廊,迷迷糊糊的前进着,当你回头望去,发现一切迷雾都消失了") role = kwargs.get("role") set_room(None, role.floor, role.room.x, role.room.y) while True: x = random.randint(0, 4) y = random.randint(0, 4) if game_map[role.floor].map[x][y] is None: set_room(role.room, role.floor, x, y) break
def into(self, role, direction=None): super(Lake, self).into(role) if self.force: print("进入时直接落入湖水中,随机落到地下空白位置") print('你一脚踩空,下落到一片冰冷的湖水中') constant.game_map[role.floor].map[role.room.x][role.room.y] = None role.floor = 0 while True: x = random.randint(0, 4) y = random.randint(0, 4) if constant.game_map[0].map[x][y] is None: set_room(self, 0, x, y) break role.room = self self.force = False
def do(self, *args, **kwargs): print("身处[庭院],[墓园],[塔楼],[露台]的人们脑中突然传来了一个声音。") print("“外面!你必须到外面去!自由的飞翔吧!”") rooms = room_search(names=["庭院", "墓园", "塔楼", "露台"]) for room in rooms: for role in room.get_creatures(): if role.camp >= 0: res = role.ability_challenge(ability="意志", type="事件") if sum(res) >= 4: print(role.name, "站在窗台上的瞬间打消了这个愚蠢的念头。") else: print(role.name, "纵身跳了出去,发出如怪鸟一般的叫声,") print(role.name, "一段时间后,在[天井]醒来,骰1肉体伤害") if yard in room_card_set: role.floor = 0 while True: x = random.randint(0, 4) y = random.randint(0, 4) if game_map[0].map[x][y] is None: set_room(yard, role.floor, x, y) room_card_set.remove(yard) yard.into(role) break else: x = 0 y = 0 for i in range(len(game_map[0].map)): x = i for room in game_map[0].map[x]: if room == yard: break y += 1 role.x = x role.y = y role.floor = 0 role.hurt(type="肉体") yard.into(role)
constant.room_card_set.append(staircase) constant.room_card_set.append(pentacle) constant.room_card_set.append(waste_room) constant.room_card_set.append(yard) constant.room_card_set.append(courtyard) constant.room_card_set.append(stove_room) constant.room_card_set.append(food_storeroom) constant.room_card_set.append(greenroom) constant.room_card_set.append(gym) constant.room_card_set.append(tower) constant.room_card_set.append(crack) constant.room_card_set.append(mausoleum) constant.room_card_set.append(elevator) # 打乱 random.shuffle(constant.room_card_set) # 地图初始化 underground = Map(floor=0) constant.game_map.append(underground) ground = Map(floor=1) constant.game_map.append(ground) overground = Map(floor=2) constant.game_map.append(overground) underground.map[4][4] = down_steps set_room(down_steps, 0, 4, 4) set_room(staircase_0, 1, 4, 7) set_room(lobby_1, 1, 4, 8) set_room(lobby_0, 1, 4, 9) set_room(up_steps, 2, 4, 4)