From 47001f552a6fbb86839f9cc2b9aa2757876458ae Mon Sep 17 00:00:00 2001 From: yegorf1 Date: Wed, 28 Sep 2016 18:43:33 +0300 Subject: [PATCH] VIETNAM --- items/loot/ak.py | 2 +- items/loot/m-16.py | 2 +- items/loot/m79.py | 2 +- items/loot/minigun.py | 2 +- items/loot/vietnam_star.py | 13 ++++ rooms/{ => default}/boss/black_knight.py | 0 rooms/{ => default}/boss/cthulhu.py | 0 rooms/{ => default}/boss/hellkite_dragon.py | 0 rooms/{ => default}/boss/lich_king.py | 0 .../{ => default}/boss/moonlight_butterfly.py | 0 rooms/{ => default}/boss/naping_dragon.py | 0 rooms/{ => default}/missions/caravan/army.py | 0 .../{ => default}/missions/caravan/caravan.py | 0 rooms/{ => default}/missions/caravan/first.py | 0 .../{ => default}/missions/lepricone/first.py | 0 rooms/{ => default}/missions/main/first.py | 0 rooms/{ => default}/missions/main/second.py | 0 rooms/{ => default}/missions/main/third.py | 0 rooms/{ => default}/monster/dragon.py | 0 rooms/{ => default}/monster/easy/archemage.py | 0 rooms/{ => default}/monster/easy/bat.py | 0 rooms/{ => default}/monster/easy/duck.py | 0 rooms/{ => default}/monster/easy/grass.py | 0 rooms/{ => default}/monster/easy/minion.py | 0 .../{ => default}/monster/easy/quinquepede.py | 0 rooms/{ => default}/monster/easy/rat.py | 0 rooms/{ => default}/monster/easy/slime.py | 0 rooms/{ => default}/monster/easy/spirit.py | 0 rooms/{ => default}/monster/easy/sylph.py | 0 rooms/{ => default}/monster/easy/werewolf.py | 0 rooms/{ => default}/monster/easy/zombie.py | 0 rooms/{ => default}/monster/expert/saitama.py | 0 rooms/{ => default}/monster/hard/basilisk.py | 0 rooms/{ => default}/monster/hard/darklord.py | 0 rooms/{ => default}/monster/hard/jayson.py | 0 rooms/{ => default}/monster/hard/ork.py | 0 rooms/{ => default}/monster/hard/vaper.py | 0 rooms/{ => default}/monster/medium/bandits.py | 0 rooms/{ => default}/monster/medium/bear.py | 0 rooms/{ => default}/monster/medium/chubaka.py | 0 rooms/{ => default}/monster/medium/dipper.py | 0 rooms/{ => default}/monster/medium/ghoul.py | 0 .../monster/medium/internet_troll.py | 0 rooms/{ => default}/monster/medium/knight.py | 0 rooms/{ => default}/monster/medium/mimic.py | 0 rooms/{ => default}/monster/medium/mirror.py | 0 rooms/{ => default}/monster/medium/nazgul.py | 0 rooms/{ => default}/monster/medium/promote.py | 0 rooms/{ => default}/monster/medium/rabbit.py | 0 rooms/{ => default}/monster/medium/turtle.py | 0 .../monster/up_medium/doctor_who.py | 0 .../monster/up_medium/twi_monster.py | 0 rooms/{ => default}/special/bill_cypher.py | 0 rooms/{ => default}/special/bill_gates.py | 0 rooms/{ => default}/special/gabe.py | 0 rooms/{ => default}/special/icecream.py | 0 rooms/{ => default}/special/kiba.py | 0 rooms/{ => default}/special/kodzima.py | 0 rooms/{ => default}/special/remains.py | 0 rooms/{ => default}/special/rick_astley.py | 0 rooms/{ => default}/special/sign.py | 6 +- rooms/{ => default}/special/stone_room.py | 0 .../special/the_thing_from_below.py | 0 rooms/{ => default}/special/tornament.py | 0 rooms/{ => default}/special/yegorf1.py | 0 rooms/{ => default}/usual/apple_tree.py | 0 rooms/{ => default}/usual/call_back.py | 0 rooms/{ => default}/usual/cesar.py | 0 rooms/{ => default}/usual/chest.py | 0 rooms/{ => default}/usual/clairvoyance.py | 4 +- rooms/{ => default}/usual/comissar.py | 0 rooms/{ => default}/usual/destiny_book.py | 0 rooms/{ => default}/usual/devil.py | 0 rooms/{ => default}/usual/dog.py | 0 rooms/{ => default}/usual/door.py | 0 .../{ => default}/usual/dumbledore_office.py | 0 rooms/{ => default}/usual/exit.py | 0 rooms/{ => default}/usual/fog_door.py | 0 rooms/{ => default}/usual/frog.py | 0 rooms/{ => default}/usual/gideon.py | 0 rooms/{ => default}/usual/gnome.py | 0 rooms/{ => default}/usual/goal.py | 0 rooms/{ => default}/usual/haircutter.py | 0 rooms/{ => default}/usual/lepricone.py | 0 rooms/{ => default}/usual/librarian.py | 0 rooms/{ => default}/usual/lucifer_bank.py | 0 rooms/{ => default}/usual/luck.py | 0 rooms/{ => default}/usual/musclelot.py | 0 .../{ => default}/usual/no_sudden_movement.py | 0 rooms/{ => default}/usual/nothing.py | 0 rooms/{ => default}/usual/orc_shop.py | 0 rooms/{ => default}/usual/rick_and_morty.py | 0 rooms/default/usual/river.py | 49 ++++++++++++++ rooms/{ => default}/usual/roulette.py | 0 rooms/{ => default}/usual/sensei.py | 0 .../{ => default}/usual/shaolin_monastery.py | 0 rooms/{ => default}/usual/slender.py | 0 rooms/{ => default}/usual/some_player.py | 0 rooms/{ => default}/usual/spanish_girl.py | 0 rooms/{ => default}/usual/troll_bridge.py | 0 rooms/{ => default}/usual/uncle_stanley.py | 0 rooms/{ => default}/usual/vegan.py | 0 rooms/{ => default}/usual/vladislav.py | 0 rooms/{ => default}/usual/watches.py | 0 rooms/{ => default}/usual/water.py | 0 rooms/{ => default}/usual/witcher.py | 0 rooms/monster/vietnam/bush_soldier.py | 11 ---- rooms/monster/vietnam/river.py | 64 ------------------- rooms/roomloader.py | 34 +++++----- rooms/vietnam/monster/bush_soldier.py | 11 ++++ .../vietnam => vietnam/monster}/hippie.py | 2 +- rooms/vietnam/monster/vietnam_army.py | 16 +++++ rooms/vietnam/usual/river.py | 46 +++++++++++++ rooms/vietnam/usual/trap.py | 18 ++++++ tests.py | 2 +- user/__init__.py | 1 + user/death_defenition.py | 2 +- user/fight_defenition.py | 8 +-- user/room_defenition.py | 12 ++-- utils/buffs.py | 25 +++++++- 120 files changed, 218 insertions(+), 114 deletions(-) create mode 100644 items/loot/vietnam_star.py rename rooms/{ => default}/boss/black_knight.py (100%) rename rooms/{ => default}/boss/cthulhu.py (100%) rename rooms/{ => default}/boss/hellkite_dragon.py (100%) rename rooms/{ => default}/boss/lich_king.py (100%) rename rooms/{ => default}/boss/moonlight_butterfly.py (100%) rename rooms/{ => default}/boss/naping_dragon.py (100%) rename rooms/{ => default}/missions/caravan/army.py (100%) rename rooms/{ => default}/missions/caravan/caravan.py (100%) rename rooms/{ => default}/missions/caravan/first.py (100%) rename rooms/{ => default}/missions/lepricone/first.py (100%) rename rooms/{ => default}/missions/main/first.py (100%) rename rooms/{ => default}/missions/main/second.py (100%) rename rooms/{ => default}/missions/main/third.py (100%) rename rooms/{ => default}/monster/dragon.py (100%) rename rooms/{ => default}/monster/easy/archemage.py (100%) rename rooms/{ => default}/monster/easy/bat.py (100%) rename rooms/{ => default}/monster/easy/duck.py (100%) rename rooms/{ => default}/monster/easy/grass.py (100%) rename rooms/{ => default}/monster/easy/minion.py (100%) rename rooms/{ => default}/monster/easy/quinquepede.py (100%) rename rooms/{ => default}/monster/easy/rat.py (100%) rename rooms/{ => default}/monster/easy/slime.py (100%) rename rooms/{ => default}/monster/easy/spirit.py (100%) rename rooms/{ => default}/monster/easy/sylph.py (100%) rename rooms/{ => default}/monster/easy/werewolf.py (100%) rename rooms/{ => default}/monster/easy/zombie.py (100%) rename rooms/{ => default}/monster/expert/saitama.py (100%) rename rooms/{ => default}/monster/hard/basilisk.py (100%) rename rooms/{ => default}/monster/hard/darklord.py (100%) rename rooms/{ => default}/monster/hard/jayson.py (100%) rename rooms/{ => default}/monster/hard/ork.py (100%) rename rooms/{ => default}/monster/hard/vaper.py (100%) rename rooms/{ => default}/monster/medium/bandits.py (100%) rename rooms/{ => default}/monster/medium/bear.py (100%) rename rooms/{ => default}/monster/medium/chubaka.py (100%) rename rooms/{ => default}/monster/medium/dipper.py (100%) rename rooms/{ => default}/monster/medium/ghoul.py (100%) rename rooms/{ => default}/monster/medium/internet_troll.py (100%) rename rooms/{ => default}/monster/medium/knight.py (100%) rename rooms/{ => default}/monster/medium/mimic.py (100%) rename rooms/{ => default}/monster/medium/mirror.py (100%) rename rooms/{ => default}/monster/medium/nazgul.py (100%) rename rooms/{ => default}/monster/medium/promote.py (100%) rename rooms/{ => default}/monster/medium/rabbit.py (100%) rename rooms/{ => default}/monster/medium/turtle.py (100%) rename rooms/{ => default}/monster/up_medium/doctor_who.py (100%) rename rooms/{ => default}/monster/up_medium/twi_monster.py (100%) rename rooms/{ => default}/special/bill_cypher.py (100%) rename rooms/{ => default}/special/bill_gates.py (100%) rename rooms/{ => default}/special/gabe.py (100%) rename rooms/{ => default}/special/icecream.py (100%) rename rooms/{ => default}/special/kiba.py (100%) rename rooms/{ => default}/special/kodzima.py (100%) rename rooms/{ => default}/special/remains.py (100%) rename rooms/{ => default}/special/rick_astley.py (100%) rename rooms/{ => default}/special/sign.py (88%) rename rooms/{ => default}/special/stone_room.py (100%) rename rooms/{ => default}/special/the_thing_from_below.py (100%) rename rooms/{ => default}/special/tornament.py (100%) rename rooms/{ => default}/special/yegorf1.py (100%) rename rooms/{ => default}/usual/apple_tree.py (100%) rename rooms/{ => default}/usual/call_back.py (100%) rename rooms/{ => default}/usual/cesar.py (100%) rename rooms/{ => default}/usual/chest.py (100%) rename rooms/{ => default}/usual/clairvoyance.py (98%) rename rooms/{ => default}/usual/comissar.py (100%) rename rooms/{ => default}/usual/destiny_book.py (100%) rename rooms/{ => default}/usual/devil.py (100%) rename rooms/{ => default}/usual/dog.py (100%) rename rooms/{ => default}/usual/door.py (100%) rename rooms/{ => default}/usual/dumbledore_office.py (100%) rename rooms/{ => default}/usual/exit.py (100%) rename rooms/{ => default}/usual/fog_door.py (100%) rename rooms/{ => default}/usual/frog.py (100%) rename rooms/{ => default}/usual/gideon.py (100%) rename rooms/{ => default}/usual/gnome.py (100%) rename rooms/{ => default}/usual/goal.py (100%) rename rooms/{ => default}/usual/haircutter.py (100%) rename rooms/{ => default}/usual/lepricone.py (100%) rename rooms/{ => default}/usual/librarian.py (100%) rename rooms/{ => default}/usual/lucifer_bank.py (100%) rename rooms/{ => default}/usual/luck.py (100%) rename rooms/{ => default}/usual/musclelot.py (100%) rename rooms/{ => default}/usual/no_sudden_movement.py (100%) rename rooms/{ => default}/usual/nothing.py (100%) rename rooms/{ => default}/usual/orc_shop.py (100%) rename rooms/{ => default}/usual/rick_and_morty.py (100%) create mode 100644 rooms/default/usual/river.py rename rooms/{ => default}/usual/roulette.py (100%) rename rooms/{ => default}/usual/sensei.py (100%) rename rooms/{ => default}/usual/shaolin_monastery.py (100%) rename rooms/{ => default}/usual/slender.py (100%) rename rooms/{ => default}/usual/some_player.py (100%) rename rooms/{ => default}/usual/spanish_girl.py (100%) rename rooms/{ => default}/usual/troll_bridge.py (100%) rename rooms/{ => default}/usual/uncle_stanley.py (100%) rename rooms/{ => default}/usual/vegan.py (100%) rename rooms/{ => default}/usual/vladislav.py (100%) rename rooms/{ => default}/usual/watches.py (100%) rename rooms/{ => default}/usual/water.py (100%) rename rooms/{ => default}/usual/witcher.py (100%) delete mode 100644 rooms/monster/vietnam/bush_soldier.py delete mode 100644 rooms/monster/vietnam/river.py create mode 100644 rooms/vietnam/monster/bush_soldier.py rename rooms/{monster/vietnam => vietnam/monster}/hippie.py (87%) create mode 100644 rooms/vietnam/monster/vietnam_army.py create mode 100644 rooms/vietnam/usual/river.py create mode 100644 rooms/vietnam/usual/trap.py diff --git a/items/loot/ak.py b/items/loot/ak.py index e2f0743..a4a358a 100644 --- a/items/loot/ak.py +++ b/items/loot/ak.py @@ -1,6 +1,6 @@ name = 'АК-47' description = ( - ' Пробивает рельс. Насвозь. Вдоль. Наверное.' + ' Пробивает рельс. Насвозь. Вдоль. Наверное.' ) price = 300 diff --git a/items/loot/m-16.py b/items/loot/m-16.py index 6407e44..1e9330e 100644 --- a/items/loot/m-16.py +++ b/items/loot/m-16.py @@ -1,6 +1,6 @@ name = 'М-16' description = ( - 'Приклад немного подплавился и треснул. _Держать вдали от воды!_' + 'Приклад немного подплавился и треснул. _Держать вдали от воды!_' ) price = 300 diff --git a/items/loot/m79.py b/items/loot/m79.py index ac1d29e..9552172 100644 --- a/items/loot/m79.py +++ b/items/loot/m79.py @@ -1,6 +1,6 @@ name = 'M79' description = ( - 'Уничтожает. Быстро.' + 'Уничтожает. Быстро.' ) price = 800 diff --git a/items/loot/minigun.py b/items/loot/minigun.py index 16c53e1..55b1a2d 100644 --- a/items/loot/minigun.py +++ b/items/loot/minigun.py @@ -1,6 +1,6 @@ name = 'Миниган' description = ( - 'Тратит твои патроны. Быстро.' + 'Тратит твои патроны. Быстро.' ) price = 650 diff --git a/items/loot/vietnam_star.py b/items/loot/vietnam_star.py new file mode 100644 index 0000000..9626cdf --- /dev/null +++ b/items/loot/vietnam_star.py @@ -0,0 +1,13 @@ +name = 'Мазь "Звёздочка"' +description = 'Лечебная мазь универсального действия. Кажется, может вылечить даже от рака.' +price = 300 + +usable = True +disposable = True + +def on_use(user, reply): + reply('Вот так-то лучше!') + + user.heal(25) + + user.buffs = [ b for b in user.buffs if not b.is_negative() ] \ No newline at end of file diff --git a/rooms/boss/black_knight.py b/rooms/default/boss/black_knight.py similarity index 100% rename from rooms/boss/black_knight.py rename to rooms/default/boss/black_knight.py diff --git a/rooms/boss/cthulhu.py b/rooms/default/boss/cthulhu.py similarity index 100% rename from rooms/boss/cthulhu.py rename to rooms/default/boss/cthulhu.py diff --git a/rooms/boss/hellkite_dragon.py b/rooms/default/boss/hellkite_dragon.py similarity index 100% rename from rooms/boss/hellkite_dragon.py rename to rooms/default/boss/hellkite_dragon.py diff --git a/rooms/boss/lich_king.py b/rooms/default/boss/lich_king.py similarity index 100% rename from rooms/boss/lich_king.py rename to rooms/default/boss/lich_king.py diff --git a/rooms/boss/moonlight_butterfly.py b/rooms/default/boss/moonlight_butterfly.py similarity index 100% rename from rooms/boss/moonlight_butterfly.py rename to rooms/default/boss/moonlight_butterfly.py diff --git a/rooms/boss/naping_dragon.py b/rooms/default/boss/naping_dragon.py similarity index 100% rename from rooms/boss/naping_dragon.py rename to rooms/default/boss/naping_dragon.py diff --git a/rooms/missions/caravan/army.py b/rooms/default/missions/caravan/army.py similarity index 100% rename from rooms/missions/caravan/army.py rename to rooms/default/missions/caravan/army.py diff --git a/rooms/missions/caravan/caravan.py b/rooms/default/missions/caravan/caravan.py similarity index 100% rename from rooms/missions/caravan/caravan.py rename to rooms/default/missions/caravan/caravan.py diff --git a/rooms/missions/caravan/first.py b/rooms/default/missions/caravan/first.py similarity index 100% rename from rooms/missions/caravan/first.py rename to rooms/default/missions/caravan/first.py diff --git a/rooms/missions/lepricone/first.py b/rooms/default/missions/lepricone/first.py similarity index 100% rename from rooms/missions/lepricone/first.py rename to rooms/default/missions/lepricone/first.py diff --git a/rooms/missions/main/first.py b/rooms/default/missions/main/first.py similarity index 100% rename from rooms/missions/main/first.py rename to rooms/default/missions/main/first.py diff --git a/rooms/missions/main/second.py b/rooms/default/missions/main/second.py similarity index 100% rename from rooms/missions/main/second.py rename to rooms/default/missions/main/second.py diff --git a/rooms/missions/main/third.py b/rooms/default/missions/main/third.py similarity index 100% rename from rooms/missions/main/third.py rename to rooms/default/missions/main/third.py diff --git a/rooms/monster/dragon.py b/rooms/default/monster/dragon.py similarity index 100% rename from rooms/monster/dragon.py rename to rooms/default/monster/dragon.py diff --git a/rooms/monster/easy/archemage.py b/rooms/default/monster/easy/archemage.py similarity index 100% rename from rooms/monster/easy/archemage.py rename to rooms/default/monster/easy/archemage.py diff --git a/rooms/monster/easy/bat.py b/rooms/default/monster/easy/bat.py similarity index 100% rename from rooms/monster/easy/bat.py rename to rooms/default/monster/easy/bat.py diff --git a/rooms/monster/easy/duck.py b/rooms/default/monster/easy/duck.py similarity index 100% rename from rooms/monster/easy/duck.py rename to rooms/default/monster/easy/duck.py diff --git a/rooms/monster/easy/grass.py b/rooms/default/monster/easy/grass.py similarity index 100% rename from rooms/monster/easy/grass.py rename to rooms/default/monster/easy/grass.py diff --git a/rooms/monster/easy/minion.py b/rooms/default/monster/easy/minion.py similarity index 100% rename from rooms/monster/easy/minion.py rename to rooms/default/monster/easy/minion.py diff --git a/rooms/monster/easy/quinquepede.py b/rooms/default/monster/easy/quinquepede.py similarity index 100% rename from rooms/monster/easy/quinquepede.py rename to rooms/default/monster/easy/quinquepede.py diff --git a/rooms/monster/easy/rat.py b/rooms/default/monster/easy/rat.py similarity index 100% rename from rooms/monster/easy/rat.py rename to rooms/default/monster/easy/rat.py diff --git a/rooms/monster/easy/slime.py b/rooms/default/monster/easy/slime.py similarity index 100% rename from rooms/monster/easy/slime.py rename to rooms/default/monster/easy/slime.py diff --git a/rooms/monster/easy/spirit.py b/rooms/default/monster/easy/spirit.py similarity index 100% rename from rooms/monster/easy/spirit.py rename to rooms/default/monster/easy/spirit.py diff --git a/rooms/monster/easy/sylph.py b/rooms/default/monster/easy/sylph.py similarity index 100% rename from rooms/monster/easy/sylph.py rename to rooms/default/monster/easy/sylph.py diff --git a/rooms/monster/easy/werewolf.py b/rooms/default/monster/easy/werewolf.py similarity index 100% rename from rooms/monster/easy/werewolf.py rename to rooms/default/monster/easy/werewolf.py diff --git a/rooms/monster/easy/zombie.py b/rooms/default/monster/easy/zombie.py similarity index 100% rename from rooms/monster/easy/zombie.py rename to rooms/default/monster/easy/zombie.py diff --git a/rooms/monster/expert/saitama.py b/rooms/default/monster/expert/saitama.py similarity index 100% rename from rooms/monster/expert/saitama.py rename to rooms/default/monster/expert/saitama.py diff --git a/rooms/monster/hard/basilisk.py b/rooms/default/monster/hard/basilisk.py similarity index 100% rename from rooms/monster/hard/basilisk.py rename to rooms/default/monster/hard/basilisk.py diff --git a/rooms/monster/hard/darklord.py b/rooms/default/monster/hard/darklord.py similarity index 100% rename from rooms/monster/hard/darklord.py rename to rooms/default/monster/hard/darklord.py diff --git a/rooms/monster/hard/jayson.py b/rooms/default/monster/hard/jayson.py similarity index 100% rename from rooms/monster/hard/jayson.py rename to rooms/default/monster/hard/jayson.py diff --git a/rooms/monster/hard/ork.py b/rooms/default/monster/hard/ork.py similarity index 100% rename from rooms/monster/hard/ork.py rename to rooms/default/monster/hard/ork.py diff --git a/rooms/monster/hard/vaper.py b/rooms/default/monster/hard/vaper.py similarity index 100% rename from rooms/monster/hard/vaper.py rename to rooms/default/monster/hard/vaper.py diff --git a/rooms/monster/medium/bandits.py b/rooms/default/monster/medium/bandits.py similarity index 100% rename from rooms/monster/medium/bandits.py rename to rooms/default/monster/medium/bandits.py diff --git a/rooms/monster/medium/bear.py b/rooms/default/monster/medium/bear.py similarity index 100% rename from rooms/monster/medium/bear.py rename to rooms/default/monster/medium/bear.py diff --git a/rooms/monster/medium/chubaka.py b/rooms/default/monster/medium/chubaka.py similarity index 100% rename from rooms/monster/medium/chubaka.py rename to rooms/default/monster/medium/chubaka.py diff --git a/rooms/monster/medium/dipper.py b/rooms/default/monster/medium/dipper.py similarity index 100% rename from rooms/monster/medium/dipper.py rename to rooms/default/monster/medium/dipper.py diff --git a/rooms/monster/medium/ghoul.py b/rooms/default/monster/medium/ghoul.py similarity index 100% rename from rooms/monster/medium/ghoul.py rename to rooms/default/monster/medium/ghoul.py diff --git a/rooms/monster/medium/internet_troll.py b/rooms/default/monster/medium/internet_troll.py similarity index 100% rename from rooms/monster/medium/internet_troll.py rename to rooms/default/monster/medium/internet_troll.py diff --git a/rooms/monster/medium/knight.py b/rooms/default/monster/medium/knight.py similarity index 100% rename from rooms/monster/medium/knight.py rename to rooms/default/monster/medium/knight.py diff --git a/rooms/monster/medium/mimic.py b/rooms/default/monster/medium/mimic.py similarity index 100% rename from rooms/monster/medium/mimic.py rename to rooms/default/monster/medium/mimic.py diff --git a/rooms/monster/medium/mirror.py b/rooms/default/monster/medium/mirror.py similarity index 100% rename from rooms/monster/medium/mirror.py rename to rooms/default/monster/medium/mirror.py diff --git a/rooms/monster/medium/nazgul.py b/rooms/default/monster/medium/nazgul.py similarity index 100% rename from rooms/monster/medium/nazgul.py rename to rooms/default/monster/medium/nazgul.py diff --git a/rooms/monster/medium/promote.py b/rooms/default/monster/medium/promote.py similarity index 100% rename from rooms/monster/medium/promote.py rename to rooms/default/monster/medium/promote.py diff --git a/rooms/monster/medium/rabbit.py b/rooms/default/monster/medium/rabbit.py similarity index 100% rename from rooms/monster/medium/rabbit.py rename to rooms/default/monster/medium/rabbit.py diff --git a/rooms/monster/medium/turtle.py b/rooms/default/monster/medium/turtle.py similarity index 100% rename from rooms/monster/medium/turtle.py rename to rooms/default/monster/medium/turtle.py diff --git a/rooms/monster/up_medium/doctor_who.py b/rooms/default/monster/up_medium/doctor_who.py similarity index 100% rename from rooms/monster/up_medium/doctor_who.py rename to rooms/default/monster/up_medium/doctor_who.py diff --git a/rooms/monster/up_medium/twi_monster.py b/rooms/default/monster/up_medium/twi_monster.py similarity index 100% rename from rooms/monster/up_medium/twi_monster.py rename to rooms/default/monster/up_medium/twi_monster.py diff --git a/rooms/special/bill_cypher.py b/rooms/default/special/bill_cypher.py similarity index 100% rename from rooms/special/bill_cypher.py rename to rooms/default/special/bill_cypher.py diff --git a/rooms/special/bill_gates.py b/rooms/default/special/bill_gates.py similarity index 100% rename from rooms/special/bill_gates.py rename to rooms/default/special/bill_gates.py diff --git a/rooms/special/gabe.py b/rooms/default/special/gabe.py similarity index 100% rename from rooms/special/gabe.py rename to rooms/default/special/gabe.py diff --git a/rooms/special/icecream.py b/rooms/default/special/icecream.py similarity index 100% rename from rooms/special/icecream.py rename to rooms/default/special/icecream.py diff --git a/rooms/special/kiba.py b/rooms/default/special/kiba.py similarity index 100% rename from rooms/special/kiba.py rename to rooms/default/special/kiba.py diff --git a/rooms/special/kodzima.py b/rooms/default/special/kodzima.py similarity index 100% rename from rooms/special/kodzima.py rename to rooms/default/special/kodzima.py diff --git a/rooms/special/remains.py b/rooms/default/special/remains.py similarity index 100% rename from rooms/special/remains.py rename to rooms/default/special/remains.py diff --git a/rooms/special/rick_astley.py b/rooms/default/special/rick_astley.py similarity index 100% rename from rooms/special/rick_astley.py rename to rooms/default/special/rick_astley.py diff --git a/rooms/special/sign.py b/rooms/default/special/sign.py similarity index 88% rename from rooms/special/sign.py rename to rooms/default/special/sign.py index 8dfc6e3..96d6ce7 100644 --- a/rooms/special/sign.py +++ b/rooms/default/special/sign.py @@ -21,7 +21,7 @@ def get_actions(user): actions = [ ] for room_type, room_name in rooms: - loaded_room = roomloader.load_room(room_name, room_type) + loaded_room = roomloader.load_room(room_name, room_type, user) name = loaded_room.name if room_name not in all_visited_rooms: name = crypt(name) @@ -34,7 +34,7 @@ def enter(user, reply): while len(rooms) < 4: rm = roomloader.get_next_room(user) - loaded_room = roomloader.load_room(rm[1], rm[0]) + loaded_room = roomloader.load_room(rm[1], rm[0], user) if random.random() < 0.05: rm = ('special', 'rick_astley') @@ -47,7 +47,7 @@ def enter(user, reply): def action(user, reply, text): rooms = user.get_room_temp('rooms') for room_type, room_name in rooms: - loaded_room = roomloader.load_room(room_name, room_type) + loaded_room = roomloader.load_room(room_name, room_type, user) if loaded_room.name == text or crypt(loaded_room.name) == text: if random.random() < 0.1: reply('Что-то пошло не так, ты увидел фезку пролетающую у тебя над головой. Ощущения будто был нарушен межпространственный континуум.') diff --git a/rooms/special/stone_room.py b/rooms/default/special/stone_room.py similarity index 100% rename from rooms/special/stone_room.py rename to rooms/default/special/stone_room.py diff --git a/rooms/special/the_thing_from_below.py b/rooms/default/special/the_thing_from_below.py similarity index 100% rename from rooms/special/the_thing_from_below.py rename to rooms/default/special/the_thing_from_below.py diff --git a/rooms/special/tornament.py b/rooms/default/special/tornament.py similarity index 100% rename from rooms/special/tornament.py rename to rooms/default/special/tornament.py diff --git a/rooms/special/yegorf1.py b/rooms/default/special/yegorf1.py similarity index 100% rename from rooms/special/yegorf1.py rename to rooms/default/special/yegorf1.py diff --git a/rooms/usual/apple_tree.py b/rooms/default/usual/apple_tree.py similarity index 100% rename from rooms/usual/apple_tree.py rename to rooms/default/usual/apple_tree.py diff --git a/rooms/usual/call_back.py b/rooms/default/usual/call_back.py similarity index 100% rename from rooms/usual/call_back.py rename to rooms/default/usual/call_back.py diff --git a/rooms/usual/cesar.py b/rooms/default/usual/cesar.py similarity index 100% rename from rooms/usual/cesar.py rename to rooms/default/usual/cesar.py diff --git a/rooms/usual/chest.py b/rooms/default/usual/chest.py similarity index 100% rename from rooms/usual/chest.py rename to rooms/default/usual/chest.py diff --git a/rooms/usual/clairvoyance.py b/rooms/default/usual/clairvoyance.py similarity index 98% rename from rooms/usual/clairvoyance.py rename to rooms/default/usual/clairvoyance.py index 77717d8..3e280be 100644 --- a/rooms/usual/clairvoyance.py +++ b/rooms/default/usual/clairvoyance.py @@ -56,7 +56,7 @@ def action(user, reply, text): 'И видит..\n' ) - room = roomloader.load_room(found_user.room[1], found_user.room[0]) + room = roomloader.load_room(found_user.room[1], found_user.room[0], found_user) room_name = room.name res += room_name @@ -66,7 +66,7 @@ def action(user, reply, text): 'И бросает кости в..\n' ) - room = roomloader.load_room(found_user.room[1], found_user.room[0]) + room = roomloader.load_room(found_user.room[1], found_user.room[0], found_user) room_name = room.name res += room_name diff --git a/rooms/usual/comissar.py b/rooms/default/usual/comissar.py similarity index 100% rename from rooms/usual/comissar.py rename to rooms/default/usual/comissar.py diff --git a/rooms/usual/destiny_book.py b/rooms/default/usual/destiny_book.py similarity index 100% rename from rooms/usual/destiny_book.py rename to rooms/default/usual/destiny_book.py diff --git a/rooms/usual/devil.py b/rooms/default/usual/devil.py similarity index 100% rename from rooms/usual/devil.py rename to rooms/default/usual/devil.py diff --git a/rooms/usual/dog.py b/rooms/default/usual/dog.py similarity index 100% rename from rooms/usual/dog.py rename to rooms/default/usual/dog.py diff --git a/rooms/usual/door.py b/rooms/default/usual/door.py similarity index 100% rename from rooms/usual/door.py rename to rooms/default/usual/door.py diff --git a/rooms/usual/dumbledore_office.py b/rooms/default/usual/dumbledore_office.py similarity index 100% rename from rooms/usual/dumbledore_office.py rename to rooms/default/usual/dumbledore_office.py diff --git a/rooms/usual/exit.py b/rooms/default/usual/exit.py similarity index 100% rename from rooms/usual/exit.py rename to rooms/default/usual/exit.py diff --git a/rooms/usual/fog_door.py b/rooms/default/usual/fog_door.py similarity index 100% rename from rooms/usual/fog_door.py rename to rooms/default/usual/fog_door.py diff --git a/rooms/usual/frog.py b/rooms/default/usual/frog.py similarity index 100% rename from rooms/usual/frog.py rename to rooms/default/usual/frog.py diff --git a/rooms/usual/gideon.py b/rooms/default/usual/gideon.py similarity index 100% rename from rooms/usual/gideon.py rename to rooms/default/usual/gideon.py diff --git a/rooms/usual/gnome.py b/rooms/default/usual/gnome.py similarity index 100% rename from rooms/usual/gnome.py rename to rooms/default/usual/gnome.py diff --git a/rooms/usual/goal.py b/rooms/default/usual/goal.py similarity index 100% rename from rooms/usual/goal.py rename to rooms/default/usual/goal.py diff --git a/rooms/usual/haircutter.py b/rooms/default/usual/haircutter.py similarity index 100% rename from rooms/usual/haircutter.py rename to rooms/default/usual/haircutter.py diff --git a/rooms/usual/lepricone.py b/rooms/default/usual/lepricone.py similarity index 100% rename from rooms/usual/lepricone.py rename to rooms/default/usual/lepricone.py diff --git a/rooms/usual/librarian.py b/rooms/default/usual/librarian.py similarity index 100% rename from rooms/usual/librarian.py rename to rooms/default/usual/librarian.py diff --git a/rooms/usual/lucifer_bank.py b/rooms/default/usual/lucifer_bank.py similarity index 100% rename from rooms/usual/lucifer_bank.py rename to rooms/default/usual/lucifer_bank.py diff --git a/rooms/usual/luck.py b/rooms/default/usual/luck.py similarity index 100% rename from rooms/usual/luck.py rename to rooms/default/usual/luck.py diff --git a/rooms/usual/musclelot.py b/rooms/default/usual/musclelot.py similarity index 100% rename from rooms/usual/musclelot.py rename to rooms/default/usual/musclelot.py diff --git a/rooms/usual/no_sudden_movement.py b/rooms/default/usual/no_sudden_movement.py similarity index 100% rename from rooms/usual/no_sudden_movement.py rename to rooms/default/usual/no_sudden_movement.py diff --git a/rooms/usual/nothing.py b/rooms/default/usual/nothing.py similarity index 100% rename from rooms/usual/nothing.py rename to rooms/default/usual/nothing.py diff --git a/rooms/usual/orc_shop.py b/rooms/default/usual/orc_shop.py similarity index 100% rename from rooms/usual/orc_shop.py rename to rooms/default/usual/orc_shop.py diff --git a/rooms/usual/rick_and_morty.py b/rooms/default/usual/rick_and_morty.py similarity index 100% rename from rooms/usual/rick_and_morty.py rename to rooms/default/usual/rick_and_morty.py diff --git a/rooms/default/usual/river.py b/rooms/default/usual/river.py new file mode 100644 index 0000000..1383d50 --- /dev/null +++ b/rooms/default/usual/river.py @@ -0,0 +1,49 @@ +name = 'Река' + + +def get_actions(user): + return [ 'Грести', 'Вернуться в коридор' ] + + +def enter(user, reply): + reply( + 'Дверь, через которую ты вошел, магическим образом исчезла.\n' + 'Ты решаете осмотреться и замечаещь лодку, стоящую неподалёку.\n' + 'Тебе ничего не остается, кроме как прыгнуть в речку и плыть. Да, всё именно так.\n' + 'Хотя можно просто вернуться обратно в Джунгли..' + ) + user.set_room_temp('rvr', 0) + +def action(user, reply, text): + if text == 'Вернуться в коридор': + user.leave(reply) + return + + rvr = user.get_room_temp('rvr', 0) + + if user.has_item('m79') : + rvr += 4 + reply('Ты вспоминаешь, что у тебя есть М79, берешь его в руки и гребешь.') + else: + rvr += 1 + reply('Ты гребешь руками. Кажется, что скоро конец') + + user.set_room_temp('rvr', rvr) + + if rvr > 8: + msg = '' + if user.has_item('m-16'): + user.remove_item('m-16') + reply('Твой М-16 теперь не стреляет.. пришлость выкинуть.') + + + reply( + 'Вы пристаете к другому концу берега, вылезаете из лодки.\n' + 'Единственное место, куда вы можете пойти здесь - едва приоткрытая дверь.\n' + 'Вы открываете дверь... И выходите во *Вьетнам*!\n\n' + '_Приключения начинаются_.\n\n' + '..._снова_.' + ) + + user.rooms_pack = 'vietnam' + user.leave(reply) diff --git a/rooms/usual/roulette.py b/rooms/default/usual/roulette.py similarity index 100% rename from rooms/usual/roulette.py rename to rooms/default/usual/roulette.py diff --git a/rooms/usual/sensei.py b/rooms/default/usual/sensei.py similarity index 100% rename from rooms/usual/sensei.py rename to rooms/default/usual/sensei.py diff --git a/rooms/usual/shaolin_monastery.py b/rooms/default/usual/shaolin_monastery.py similarity index 100% rename from rooms/usual/shaolin_monastery.py rename to rooms/default/usual/shaolin_monastery.py diff --git a/rooms/usual/slender.py b/rooms/default/usual/slender.py similarity index 100% rename from rooms/usual/slender.py rename to rooms/default/usual/slender.py diff --git a/rooms/usual/some_player.py b/rooms/default/usual/some_player.py similarity index 100% rename from rooms/usual/some_player.py rename to rooms/default/usual/some_player.py diff --git a/rooms/usual/spanish_girl.py b/rooms/default/usual/spanish_girl.py similarity index 100% rename from rooms/usual/spanish_girl.py rename to rooms/default/usual/spanish_girl.py diff --git a/rooms/usual/troll_bridge.py b/rooms/default/usual/troll_bridge.py similarity index 100% rename from rooms/usual/troll_bridge.py rename to rooms/default/usual/troll_bridge.py diff --git a/rooms/usual/uncle_stanley.py b/rooms/default/usual/uncle_stanley.py similarity index 100% rename from rooms/usual/uncle_stanley.py rename to rooms/default/usual/uncle_stanley.py diff --git a/rooms/usual/vegan.py b/rooms/default/usual/vegan.py similarity index 100% rename from rooms/usual/vegan.py rename to rooms/default/usual/vegan.py diff --git a/rooms/usual/vladislav.py b/rooms/default/usual/vladislav.py similarity index 100% rename from rooms/usual/vladislav.py rename to rooms/default/usual/vladislav.py diff --git a/rooms/usual/watches.py b/rooms/default/usual/watches.py similarity index 100% rename from rooms/usual/watches.py rename to rooms/default/usual/watches.py diff --git a/rooms/usual/water.py b/rooms/default/usual/water.py similarity index 100% rename from rooms/usual/water.py rename to rooms/default/usual/water.py diff --git a/rooms/usual/witcher.py b/rooms/default/usual/witcher.py similarity index 100% rename from rooms/usual/witcher.py rename to rooms/default/usual/witcher.py diff --git a/rooms/monster/vietnam/bush_soldier.py b/rooms/monster/vietnam/bush_soldier.py deleted file mode 100644 index 9d98f04..0000000 --- a/rooms/monster/vietnam/bush_soldier.py +++ /dev/null @@ -1,11 +0,0 @@ -name = 'Куст' -hp = 280 -damage_range = (20, 35) - -coins = 200 - -loot = [ 'm-16' ] - -def enter(user, reply): - reply('Когда ты проходил мимо куста, из него выпрыгнул солдат и ударил тебя прикладом') - user.make_damage(0, 30, reply, name='Приклад') diff --git a/rooms/monster/vietnam/river.py b/rooms/monster/vietnam/river.py deleted file mode 100644 index c175e2e..0000000 --- a/rooms/monster/vietnam/river.py +++ /dev/null @@ -1,64 +0,0 @@ -name = 'Река' - -actions = [ 'Грести руками' ] - - - - -def get_actions(user): - if user.has_item('m79'): - actions.append('Использовать М79') - if user.has_item('m-16'): - actions.append('Использовать М-16') - return actions - - -def enter(user, reply): - reply( 'Дверь, через которую вы вошли, магическим образом исчезла.\n' - 'Вы решаете осмотреться и замечаете лодку, стоящую неподалёку.\n' - 'Вам ничего не остаётся, кроме как сесть в лодку и переплыть препятствие.\n') - user.set_room_temp('rvr', 0) - - -def action(user, reply, text): - global rvr - if text == actions[0]: - rvr += 1 - reply('Вы гребёте руками. Кажется, что скоро конец') - print(rvr) - if rvr > 8: - msg = '' - if user.has_item('m-16'): - user.remove_item('m-16') - msg += 'Вы уронили свой М-16, пока плыли. Ну хоть себя не выронили.\n' - msg += 'Вы пристаёте к другому концу берега, вылезаете из лодки.\n' - msg += 'Единственное место, куда вы можете пойти здесь - едва приоткрытая дверь.\n' - msg += 'Вы открываете дверь... И выходите в коридор!' - reply(msg) - rvr = 0 - user.leave(reply) - elif user.has_item('m79'): - rvr += 1 - reply('Вы вспоминаете, что у вас есть М79, берёте его в руки и гребёте им.') - if rvr > 8: - msg = '' - if user.has_item('m-16'): - user.remove_item('m-16') - msg += 'Вы уронили свой М-16, пока плыли. Ну хоть себя не выронили.\n' - msg += 'Вы пристаёте к другому концу берега, вылезаете из лодки.\n' - msg += 'Единственное место, куда вы можете пойти здесь - едва приоткрытая дверь.\n' - msg += 'Вы открываете дверь... И выходите в коридор!' - reply(msg) - rvr = 0 - user.leave(reply) - else: - rvr += 1 - reply('Вы вспоминаете, что у вас есть М-16, берёте его в руки и гребёте им.') - if rvr > 8: - user.remove_item('m-16') - reply('Вы пристаёте к другому концу берега, вылезаете из лодки. Ваш М-16 не выдержал такого нахальства и рассыпался прямо у вас в руках.\n' - '- Ну и чёрт с ним, - подумали вы.\n' - 'Единственное место, куда вы можете пойти здесь - едва приоткрытая дверь.\n' - 'Вы открываете дверь... И выходите в коридор!') - user.leave(reply) - rvr = 0 diff --git a/rooms/roomloader.py b/rooms/roomloader.py index ce95059..a4dc730 100644 --- a/rooms/roomloader.py +++ b/rooms/roomloader.py @@ -10,7 +10,7 @@ logger = logging.getLogger('rg') def load_room(name, room_type='usual', user=None): - path = 'rooms/{0}/{1}.py'.format(room_type, name) + path = 'rooms/{0}/{1}/{2}.py'.format(user.rooms_pack if user is not None else 'default', room_type, name) if not os.path.exists(path): path += 'c' @@ -275,12 +275,13 @@ def get_next_room(user): if p < 1 / 100: return ('special', 'remains') elif p <= 0.7: - return get_random_room('monster/' + user.level, user) + return get_random_room('monster/' + user.level, user, 'monster') else: return get_random_room('usual', user) -def get_all_rooms(room_type): - pth = 'rooms/' + room_type + '/' +def get_all_rooms(rooms_pack, room_type): + pth = 'rooms/' + rooms_pack + '/' + room_type + '/' + rooms = [ f[:-3] for f in os.listdir(pth) if f.endswith('.py') ] comp_rooms = [ f[:-4] for f in os.listdir(pth) if f.endswith('.pyc') ] @@ -291,7 +292,7 @@ def get_level_rooms(user, level): names = [ ] rm_type = 'monster/' + str(level) - for rm in get_all_rooms(rm_type): + for rm in get_all_rooms(user.rooms_pack, rm_type): if rm in all_visited_rooms: room = load_room(rm, rm_type, user) names.append(room.name) @@ -300,33 +301,36 @@ def get_level_rooms(user, level): return names -def get_random_room(room_type, user): - rooms = get_all_rooms(room_type) +def get_random_room(room_type, user, second_type=None): + rooms = [ (room_type, rm) for rm in get_all_rooms(user.rooms_pack, room_type) ] + + if second_type is not None: + rooms.extend([ (second_type, rm) for rm in get_all_rooms(user.rooms_pack, second_type) ]) all_visited_rooms = user.get_perma_variable('visited_rooms', [ ]) not_visited_rooms = [ ] visited_rooms = [ ] - for rm in rooms: + for tp, rm in rooms: if rm in all_visited_rooms: - visited_rooms.append(rm) + visited_rooms.append((tp, rm)) else: - not_visited_rooms.append(rm) + not_visited_rooms.append((tp, rm)) visited_rooms_proc = len(visited_rooms) / len(rooms) if visited_rooms_proc < 1: visit_new_p = 1 - visited_rooms_proc / 5 - name = '' + new_room = '' if random.random() < visit_new_p: - name = random.choice(not_visited_rooms) + new_room = random.choice(not_visited_rooms) else: - name = random.choice(visited_rooms) + new_room = random.choice(visited_rooms) else: user.prepare_boss() - name = random.choice(rooms) + new_room = random.choice(rooms) - return (room_type, name) + return new_room diff --git a/rooms/vietnam/monster/bush_soldier.py b/rooms/vietnam/monster/bush_soldier.py new file mode 100644 index 0000000..6c08f81 --- /dev/null +++ b/rooms/vietnam/monster/bush_soldier.py @@ -0,0 +1,11 @@ +name = 'Куст' +hp = 280 +damage_range = (20, 35) + +coins = 200 + +loot = [ 'm-16' ] + +def enter(user, reply): + reply('Когда ты проходил мимо куста, из него выпрыгнул солдат и ударил тебя прикладом') + user.make_damage(0, 30, reply, name='Приклад') diff --git a/rooms/monster/vietnam/hippie.py b/rooms/vietnam/monster/hippie.py similarity index 87% rename from rooms/monster/vietnam/hippie.py rename to rooms/vietnam/monster/hippie.py index ff36f1a..1f18673 100644 --- a/rooms/monster/vietnam/hippie.py +++ b/rooms/vietnam/monster/hippie.py @@ -5,7 +5,7 @@ coins = 27 -loot = [ 'grass_in_pot' ] +loot = [ 'vietnam_star' ] def enter(user, reply): reply('Он против войны. Докажи ему, что он не прав.') diff --git a/rooms/vietnam/monster/vietnam_army.py b/rooms/vietnam/monster/vietnam_army.py new file mode 100644 index 0000000..1bcb7c2 --- /dev/null +++ b/rooms/vietnam/monster/vietnam_army.py @@ -0,0 +1,16 @@ +import random + +name = 'Армия Вьетнамцев' + +hp = 1500 +damage_range = ( 40, 70 ) + +coins = 1337 + +loot = [random.choice([ 'ak', 'm79' ])] + +def enter(user, reply): + msg = ( + 'Огромая куча вьетнамцев, на летающих тракторах производства СССР, устроит дискотеку с фейерверком и светомузыкой. ' + ) + reply(msg) diff --git a/rooms/vietnam/usual/river.py b/rooms/vietnam/usual/river.py new file mode 100644 index 0000000..1d851dc --- /dev/null +++ b/rooms/vietnam/usual/river.py @@ -0,0 +1,46 @@ +name = 'Река' + + +def get_actions(user): + return [ 'Грести', 'Вернуться в джунгли' ] + + +def enter(user, reply): + reply( + 'Ты решаете осмотреться и замечаещь лодку, стоящую неподалёку.\n' + 'Тебе ничего не остается, кроме как прыгнуть в речку и плыть. Да, всё именно так.\n' + 'Хотя можно просто вернуться обратно в Джунгли..' + ) + user.set_room_temp('rvr', 0) + +def action(user, reply, text): + if text == 'Вернуться в джунгли': + user.leave(reply) + return + + rvr = user.get_room_temp('rvr', 0) + + if user.has_item('m79') : + rvr += 4 + reply('Ты вспоминаешь, что у тебя есть М79, берешь его в руки и гребешь.') + else: + rvr += 1 + reply('Ты гребешь руками. Кажется, что скоро конец') + + user.set_room_temp('rvr', rvr) + + if rvr > 8: + msg = '' + if user.has_item('m-16'): + user.remove_item('m-16') + reply('Твой М-16 теперь не стреляет.. Пишлость выкинуть.') + + + reply( + 'Вы пристаете к другому концу берега, вылезаете из лодки.\n' + 'Единственное место, куда вы можете пойти здесь - едва приоткрытая дверь.\n' + 'Вы открываете дверь... И выходите в Коридор!\n\n' + ) + + user.rooms_pack = 'default' + user.leave(reply) diff --git a/rooms/vietnam/usual/trap.py b/rooms/vietnam/usual/trap.py new file mode 100644 index 0000000..7e96d42 --- /dev/null +++ b/rooms/vietnam/usual/trap.py @@ -0,0 +1,18 @@ +from utils.buffs import VietnamBuff + +name = 'Листва' + +def enter(user, reply): + reply( + 'Не дойдя пары шагов до двери, ты с грохотом проваливаешься ' + 'в яму, на дне которой хищно поблескивает огромный капкан. ' + 'Стальные челюсти захлопываются на твоих ногах. Чёрт! ' + 'Надо выбираться. ' + ) + +def get_actions(user): + return [ 'Выбираться' ] + +def action(user, reply, text): + user.new_buff(VietnamBuff()) + user.leave(reply) \ No newline at end of file diff --git a/tests.py b/tests.py index 935f75e..f8a79c4 100644 --- a/tests.py +++ b/tests.py @@ -13,7 +13,7 @@ class Tests(unittest.TestCase): def test_rooms(self): ROOM_TYPES = [ 'usual', 'special', 'boss', 'monster', 'missions/main' ] for t in ROOM_TYPES: - for r in roomloader.get_all_rooms(t): + for r in roomloader.get_all_rooms('default', t): if r == 'twi_monster': continue diff --git a/user/__init__.py b/user/__init__.py index 3a17c1e..c8e23b9 100644 --- a/user/__init__.py +++ b/user/__init__.py @@ -54,6 +54,7 @@ def __init__(self, uid): self.level = 'easy' self.room = ('', '') self.room_temp = { } + self.rooms_pack = 'default' self.reborn_answer = None self.dead = False diff --git a/user/death_defenition.py b/user/death_defenition.py index 18a2a3e..7f6e8a1 100644 --- a/user/death_defenition.py +++ b/user/death_defenition.py @@ -22,7 +22,7 @@ def update_leaderbord(self, reason=None): def death(self, reply, reason=None): if self.state == 'room': - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) room.on_death(self, reply) reply(locale_manager.get('DEATH_PLACE').format(room.name)) diff --git a/user/fight_defenition.py b/user/fight_defenition.py index b97355a..0e39208 100644 --- a/user/fight_defenition.py +++ b/user/fight_defenition.py @@ -26,7 +26,7 @@ def get_fight_actions(self): return actions def fight_dice(self, reply, result, subject=None): - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) if subject == 'noname': dmg = result + self.get_damage_bonus(reply) // 2 @@ -40,7 +40,7 @@ def fight_dice(self, reply, result, subject=None): def fight_action(self, reply, text): - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) if text == locale_manager.get('KICK_ARM'): dmg = self.get_damage() + self.get_damage_bonus(reply) @@ -98,7 +98,7 @@ def fight_action(self, reply, text): self.fight_answer(reply) def fight_answer(self, reply): - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) if room.code_name == 'tornament': return @@ -124,7 +124,7 @@ def escape(self, reply, success=True): self.leave(reply) def won(self, reply, tornament=False, boss=None): - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) if room.code_name == 'tornament' and tornament: reply('Стоп. Это же турнир, тут все работает не так. Ты просто нанес огромный урон противникам. Примерно `100`') diff --git a/user/room_defenition.py b/user/room_defenition.py index 5b05ade..a89f0f7 100644 --- a/user/room_defenition.py +++ b/user/room_defenition.py @@ -27,7 +27,7 @@ def make_damage(self, mn, mx, reply, death=True, defence=True, name=None): self.hp = max(self.hp, 1) elif self.hp <= 0: if name is None and self.state == 'room': - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) name = room.name self.death(reply, reason=name) @@ -73,7 +73,7 @@ def open_room(self, reply, room_type=None, room_name=None): self.set_perma_variable('visited_rooms', visited) statistics.track(self.uid, {'uid': self.uid, 'name': room_name, 'type': room_type}, 'Room opened') - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) for i in self.get_items(): i.on_room(self, reply, room) @@ -112,12 +112,12 @@ def open_room(self, reply, room_type=None, room_name=None): return def in_room(self, reply, text): - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) room.action(self, reply, text) if self.state == 'room': reply(self.get_stats()) - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) reply(locale_manager.get('YOUR_ACTIONS'), room.get_actions(self)) def throw_dice(self, reply, subject=None): @@ -146,7 +146,7 @@ def dice(self, reply, text): res += self.get_dice_bonus(reply) reply(locale_manager.get('DICE_RESULT').format(res)) - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) room.dice(self, reply, res, self.subject) if self.state == 'room': @@ -159,7 +159,7 @@ def leave(self, reply): self.shop_items = [ ] self.prayed = False - room = roomloader.load_room(self.room[1], self.room[0]) + room = roomloader.load_room(self.room[1], self.room[0], self) if room is not None: room.on_leave(self, reply) diff --git a/utils/buffs.py b/utils/buffs.py index 484e53f..a70ab67 100644 --- a/utils/buffs.py +++ b/utils/buffs.py @@ -25,19 +25,37 @@ def on_room(self, user, reply, room): def on_end(self, user, reply, room): pass + + def is_negative(self): + return False class RainbowBuff(Buff): def __init__(self): - super(RainbowBuff, self).__init__(20, name='negative_rainbow', mana_damage_plus=50) + super(RainbowBuff, self).__init__(20, name='rainbow', mana_damage_plus=50) + +class VietnamBuff(Buff): + def __init__(self): + super(VietnamBuff, self).__init__(100000, name='negative_vietnam') + + def on_room(self, user, reply, room): + self.time -= 1 + self.make_damage(5, 5, reply, name='Вьетнамская ловушка') + reply('Как же болят твои ноги... Хуже, чем от ботинок.') + + def is_negative(self): + return True class NegativeRainbowBuff(Buff): def __init__(self): - super(RainbowBuff, self).__init__(50, name='rainbow', mana_damage_plus=50) + super(NegativeRainbowBuff, self).__init__(50, name='negative_rainbow', mana_damage_plus=50) def on_room(self, user, reply, room): self.time -= 1 self.mana_damage_plus = (1.25 * random.random() - 1) * user.get_mana_damage() + def is_negative(self): + return True + class DevilPower(Buff): def __init__(self,): super(DevilPower, self).__init__(8, name='devilpow', damage_plus=3000000) @@ -86,6 +104,9 @@ def on_room(self, user, reply, room): user.make_damage(10, 20, reply, death=True, name='Праведный огонь') reply('У тебя кожа горит.') + def is_negative(self): + return True + class ScrollBuff_armor(Buff): def __init__(self): super(ScrollBuff_armor, self).__init__(2, name='scrolldef', defence=1000) \ No newline at end of file