def meetGodImpl(person): '''Реализация случайного благославления''' choice = random.choice([0, 1, 2, 3, 4, 5, 6]) god_say = "" if choice == 0: god_say += cl.b("Да увеличится, офигенно, твоя понтовость среди гопоты!\n") god_say += cl.b("Получи 100!") person.pont += 100 elif choice == 1: god_say += cl.b("Да увеличится твоя понтовость!") person.increaseExp(self.person.nextLevelSkill() - person.skill) elif choice == 2: god_say += cl.b("Да увеличится твоя сила!") person.strength += 1 person.current_health = person.getMaxHealth() elif choice == 3: god_say += cl.b("Да возрастут твои силы жизненные!") person.vitality += 1 person.current_health = person.getMaxHealth() elif choice == 4: god_say += cl.b("Да уменьшится твоя корявость!") person.agility += 1 elif choice == 5: god_say += cl.b("Накладываю на тебя защиту!") person.shield += 1 elif choice == 6: god_say += cl.b("Дарю тебе феньку!") variants = [artefacts.GodSaveRing(), artefacts.GodHelpRing(), artefacts.MegaRing(), artefacts.GodForgiveRing()] artefact = random.choice(variants) if artefact.description != "": god_say += "\n" + cl.b(artefact.description) person.artefacts.append(artefact) input(god_say)
def spyForCheaters(self): if self.person.money < 22: print(cl.r("Не хватает")) else: self.person.money -= 22 self.person.luck += 1 print(cl.g("Ты прокачиваешь удачу")) print(cl.b("Удача +1"))
def party(self): if self.person.money < 15: print(cl.r("Не хватает")) else: self.person.money -= 15 self.person.agility += 1 print(cl.g("Ты прокачиваешь ловкость")) print(cl.b("Ловкость +1"))
def trainShield(self): if self.person.money < 20: print(cl.r("Не хватает")) else: self.person.money -= 20 self.person.shield += 1 print(cl.g("Ты прокачиваешь пресс")) print(cl.b("Броня +1"))
def trainSkill(self): if self.person.money < 10: print(cl.r("Не хватает")) else: self.person.money -= 10 self.person.increaseExp(10) print(cl.g("Ты тренируешься")) print(cl.b(" +10 качков опыта"))
def trainVitality(self): if self.person.money < 20: print(cl.r("Не хватает")) else: self.person.money -= 20 self.person.vitality += 1 print(cl.g("Ты прокачиваешь выносливость")) print(cl.b("Выносливость +1"))
def trainStrength(self): if self.person.money < 20: print(cl.r("Не хватает")) else: self.person.money -= 20 self.person.strength += 1 print(cl.g("Ты прокачиваешь силу")) print(cl.b("Сила +1"))
def levelUp(self, silent=False): s = self.strength + self.agility + self.vitality + self.luck v = random.randint(0, s - 1) descr = "" if v < self.strength: self.strength += 1 descr = "Сила +1 " elif v < self.strength + self.agility: self.agility += 1 descr = "Ловкость +1 " elif v < self.strength + self.agility + self.vitality: self.vitality += 1 descr = "Живучесть +1 " else: self.luck += 1 descr = "Удача +1 " v = random.randint(0, s - 1) if v < self.strength: self.strength += 1 descr += "Сила +1" elif v < self.strength + self.agility: self.agility += 1 descr += "Ловкость +1" elif v < self.strength + self.agility + self.vitality: self.vitality += 1 descr += "Живучесть +1" else: self.luck += 1 descr += "Удача +1" self.skill -= self.nextLevelSkill() old_level_str = self.levelStr() self.level += 1 new_level_str = self.levelStr() if not silent: print(cl.b("Был ты " + old_level_str + " а стал " + new_level_str)) print(cl.b("Понтовость увеличивается: " + descr)) self.current_health = self.getMaxHealth()
def finishBattle(self): #TODO надо вычислить и добавить очки опыта персонажу exp = self.enemy.eff_strength() + self.enemy.eff_agility() + self.enemy.eff_vitality() + self.enemy.eff_luck() print(cl.y("За отпин врага ты получаешь {0} качков опыта".format(exp))) skillToLevel = self.person.nextLevelSkill() - self.person.skill #self.person.increaseExp() if exp < skillToLevel: self.person.increaseExp(exp) print(cl.y("Ты запинал слишком слабого мудака для увеличения понтовости")) print(cl.y("Сейчас у тебя {0} качков опыта, А для прокачки надо {1}".format(self.person.skill, self.person.nextLevelSkill()))) else: self.person.increaseExp(exp) print(cl.y("Сейчас у тебя {0} качков опыта. До следующей прокачки надо {1}".format(self.person.skill, self.person.nextLevelSkill()))) print(cl.b("Пиво победителю!")) self.person.beer += 2.0 #TODO надо обобрать побеждённого врага self.person.money += self.enemy.money self.person.stuff += self.enemy.stuff if self.enemy.artefacts: print(cl.b("Оба на! Колечко! Вот свезло так свезло!")) print(cl.b(self.enemy.artefacts[0].description)) self.person.artefacts.extend(self.enemy.artefacts) self.enemy = None self.state = GameLoop.STATE_WAIT_CMD
def greetings(self): lines = [ "┌─── ┌───┐ ┌───┐ ╷ ╷ ╷ ╷ ╷ ╷", "│ │ │ │ │ │ │ │ │ │ ╱ ", "│ │ │ │ │ │ │ │ │ │ ╱ ", "│ │ │ │ │ ├───┤ │ ╱│ │╱ ", "│ │ │ │ │ │ │ │ ╱ │ │╲ ", "│ │ │ │ │ │ │ │╱ │ │ ╲ ", "│ │ │ │ │ │ │ │ │ │ ╲ ", "╵ └───┘ ╵ ╵ ╵ ╵ ╵ ╵ ╵ ╵", " Версия 2.00 ", ] print(cl.grey(lines[0])) print(cl.b(lines[1])) print(cl.g(lines[2])) print(cl.cyan(lines[3])) print(cl.r(lines[4])) print(cl.magenta(lines[5])) print(cl.y(lines[6])) print(cl.w(lines[7])) print(cl.g(lines[8]))
def meetGod(self): def meetGodImpl(person): '''Реализация случайного благославления''' choice = random.choice([0, 1, 2, 3, 4, 5, 6]) god_say = "" if choice == 0: god_say += cl.b("Да увеличится, офигенно, твоя понтовость среди гопоты!\n") god_say += cl.b("Получи 100!") person.pont += 100 elif choice == 1: god_say += cl.b("Да увеличится твоя понтовость!") person.increaseExp(self.person.nextLevelSkill() - person.skill) elif choice == 2: god_say += cl.b("Да увеличится твоя сила!") person.strength += 1 person.current_health = person.getMaxHealth() elif choice == 3: god_say += cl.b("Да возрастут твои силы жизненные!") person.vitality += 1 person.current_health = person.getMaxHealth() elif choice == 4: god_say += cl.b("Да уменьшится твоя корявость!") person.agility += 1 elif choice == 5: god_say += cl.b("Накладываю на тебя защиту!") person.shield += 1 elif choice == 6: god_say += cl.b("Дарю тебе феньку!") variants = [artefacts.GodSaveRing(), artefacts.GodHelpRing(), artefacts.MegaRing(), artefacts.GodForgiveRing()] artefact = random.choice(variants) if artefact.description != "": god_say += "\n" + cl.b(artefact.description) person.artefacts.append(artefact) input(god_say) input(cl.w("Бродя по окрестностям с самыми грязными намерениями...")) input(cl.w("Ты наткнулся на храм Божий.")) if self.church_visited_ctr == 0: input(cl.w("Раз такая батва...")) input(cl.w("Надо типа помолиться Господу Богу...")) input(cl.w("Как делают новые руссские.")) input(cl.g("\"Господи, Братан, прости грешника\". - Начал было ты...")) input(cl.b("Громовой голос: \"Да пошёл ты нахрен!\"")) input(cl.g(" - Эээ.. типа.. а чё?..")) input(cl.b(" - \"а чё?\" блин! ") + self.person.name + cl.b("-" + str(self.person.person_type) + " чёртов!")) input(cl.g("Ну..")) input(cl.b("Ладна насылаю на тебя, типа, \"моё благославление\"")) meetGodImpl(self.person) print(cl.b("А теперь вали отсюда и никогда здесь не появляйся!")) print("") print(cl.w("Ты идёшь дальше")) print(cl.w("Ничё не происходит")) elif self.church_visited_ctr == 1: input(cl.w("В прошлый раз Бог сказал чтобы ты не осквернял своей рожей святой храм")) input(cl.w("Но надо бы типа помолиться о прощении")) input(cl.g("\"Господи, Братан, прости грешника опять\".")) input(cl.b("Бог: \"Да блин, упорный чудак!\"")) input(cl.b("Ладно насылаю на тебя, типа, \"моё благославление\" снова")) meetGodImpl(self.person) else: input(cl.b("Бог: \"А ты опять.\"")) input(cl.b("Ну ладно насылаю на тебя \"благославление\"")) meetGodImpl(self.person) print(cl.b("А теперь проваливай!")) self.church_visited_ctr += 1
def __str__(self): result = cl.g("Ты {0} {1} уровня - {2}\n".format( str(self.person_type), str(self.level), self.levelStr())) result += cl.g("А зовут тебя: ") result += self.name result += "\n" result += cl.y( "Сейчас у тебя {0} опыта, а для прокачки надо {1}\n".format( self.skill, self.nextLevelSkill())) result += cl.w("Сл:") + self.eff_strength_s() + cl.w( " Лв:") + self.eff_agility_s() + cl.w( " Жв:") + self.eff_vitality_s() + cl.w( " Уд:") + self.eff_luck_s() + "\n" simple_artefacts_str = cl.w("Феньки:") simple_artefacts_count = 0 power_artefacts_str = cl.w("Мощные феньки:") power_artefacts_count = 0 for a in self.artefacts: if a.is_powerful: power_artefacts_count += 1 power_artefacts_str += cl.b(" {0}".format(str(a))) else: simple_artefacts_count += 1 simple_artefacts_str += cl.b(" {0}".format(str(a))) if simple_artefacts_count > 0: result += simple_artefacts_str result += "\n" if power_artefacts_count > 0: result += power_artefacts_str result += "\n" if self.mobile: result += cl.lb("У тебя есть мобильник\n") if self.sun_glass: result += cl.lb("У тебя есть тёмные очки\n") if self.tattoo: result += cl.lb("На тебе зоновская наколка\n") weaponstr = "Урон {0}-{1}".format(self.getMinStrike(), self.getMaxStrike()) if (len(self.weapons) > 0): weaponstr += " " for w in self.weapons: weaponstr += str(w) weaponstr += " " weaponstr = cl.lb(weaponstr) else: weaponstr = cl.w(weaponstr) weaponstr += "\n" result += weaponstr healthstr = "Здоровье {0}/{1}".format(self.current_health, self.getMaxHealth()) if self.jaw_shield: healthstr += cl.b(" Зубная защита") if self.broken_leg: healthstr += cl.r(" Сломана нога") if self.broken_jaw: healthstr += cl.r(" Сломана челюсть") healthstr += "\n" if self.current_health > (self.getMaxHealth() * 2 / 3): result += cl.g(healthstr) elif self.current_health > (self.getMaxHealth() * 1 / 3): result += cl.y(healthstr) else: result += cl.r(healthstr) strikes = self.getStrikesAccuracy() accstr = "" if len(strikes) == 1: accstr = "Точность {0}%\n".format(strikes[0]) elif len(strikes) == 2: accstr = "Точность 90%, Второй удар {0}%\n".format(strikes[1]) else: accstr = "Точность 90% - {1} ударов, Точность {2} удара {3}%\n".format( len(strikes) - 1, len(strikes), strikes[len(strikes) - 1]) result += cl.w(accstr) if (len(self.shields) > 0): shieldstr = "Броня {0}".format(self.shield) shieldstr += " " for s in self.shields: shieldstr += str(s) shieldstr += " " shieldstr += "\n" result += cl.w(shieldstr) if (self.pot > 0): result += cl.w("Косяки {0}\n".format(self.pot)) if self.beer > 0: result += cl.w("Пиво {0}л.\n".format(round(self.beer, 1))) else: result += cl.r("Пива нет\n") if self.money > 0: result += cl.w("Бабки {0}".format(self.money)) else: result += cl.r("Бабок нет") if self.stuff > 0: result += cl.w("\nХлам {0}".format(self.stuff)) return result
def eff_luck_s(self): val = self.eff_luck() if val == self.luck: return cl.w(str(val)) else: return cl.b("{0}".format(val))
def eff_vitality_s(self): val = self.eff_vitality() if val == self.vitality: return cl.w(str(val)) else: return cl.b("{0}".format(val))
def eff_strength_s(self): val = self.eff_strength() if val == self.strength: return cl.w(str(val)) else: return cl.b("{0}".format(val))