Beispiel #1
0
 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
Beispiel #2
0
 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)
Beispiel #3
0
 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
Beispiel #4
0
 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)
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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)
Beispiel #8
0
    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)