HEROvsDEMON GAME
unknown
python
a month ago
30 kB
4
Indexable
import random import time # ANSI escape sequences for colors and styles RESET = "\033[0m" BOLD = "\033[1m" RED = "\033[31m" GREEN = "\033[32m" YELLOW = "\033[33m" MAROON = "\033[38;2;128;0;0m" # Global Stats and Modes hero_hp = 100 base_max_hero_hp = 100 demon_king_hp = 1000 turn_number = 1 hero_mode = "base" # "base", "blessed", "unconquerable" blessing_uses = 2 # Additional Globals for Effects unconquerable_turns = 0 vanquisher_effect_turns = 0 demon_king_abyss = False flame_buff = 0 shield_block_value = 0 invictus_effect_turns = 0 venom_damage = 0 damage_reduction_next_turn = 0 # For Vanquisher burn effect vanquisher_burn_damage = 0 # Summoned Creature Info summoned_creature = None summon_duration = 0 venom_turns = 0 # Ending flags good_ending_obtained = False bad_ending_obtained = False # Dialogue Lists hero_dialogues = [ "For honor!", "I fight for justice!", "My resolve is unbreakable!", "I will protect the innocent!", "Arnathlious! I swore on the ruins of Solvieg that I would end your reign of terror!", "The gods have given me a second chance, and I will use it to strike you down!", "No matter how deep your darkness runs, it will never consume the light of hope!", "I stand for those who can no longer fight, for the voices you silenced!", "Even if my body shatters, my spirit will burn brighter than your abyss!", "You may have taken my home, my people, my past… but you will never take my resolve!", "The will of Solvieg still burns within me, and with it, I will cut you down!", "Your darkness has spread far, but I refuse to let it claim another innocent life!", "Your reign of terror ends here, Arnathlious!", "The gods may have blessed me, but it is my own will that will see this battle through!", "I do not fight for vengeance—I fight so no one else suffers as I have!", "I will not fall to you again! This time, I will be the one standing at the end!", "Even if I stand alone, I will never back down!", "Your power is great, Arnathlious, but I will never kneel to you!", "I carry the hopes of those you destroyed… and I will not let them down!", ] demon_king_dialogues = [ "Your end is near!", "I shall crush you!", "Your weakness is evident!", "Bow before my power!", "Oh, Lothar… you look just like your people did when I crushed them beneath my heel!", "You survived? How delightful! I do so enjoy breaking things more than once.", "The gods? They are nothing but distant cowards who let their creations rot!", "Every scream, every dying breath of Solvieg… I savored them, Lothar!", "Fighting me is like struggling against drowning in tar—slow, painful, inevitable!", "You shine so brightly, little hero… but the darker the light, the more satisfying it is to snuff out!", "Why do you persist? You are nothing but an ember, flickering before my eternal night.", "Your hatred gives you strength, but it is a poor substitute for true power!", "I will carve your name into the ruins of this world as the last fool who dared defy me!", "Your gods abandoned you before, and they will abandon you again!", "You think yourself a warrior of justice? You are merely a moth flying into the flame of your own demise!", "The cries of Solvieg were beautiful, like a song sung in terror. Shall we make the world sing again?", "I have devoured entire kingdoms, and you think one knight will stand against me?", "Your blade trembles. Your heart wavers. I can feel it… the delicious taste of despair!", "There is no future, Lothar. There is only the abyss!", ] hero_win_dialogues = [ "The world is safe once more!", "Victory is mine, justice prevails!", "I have triumphed over darkness!", "This war ends now! The world will never fall to your abyss!", "Your reign of terror is over, Arnathlious. The light has prevailed!", "For Solvieg, for the fallen, for the future—I stand victorious!", ] demon_king_win_dialogues = [ "The world will bow to me!", "Your defeat was inevitable!", "Darkness consumes all!", "Did you really believe you could defy me, Lothar? *Pathetic!*", "You were a candle in the dark… and I have snuffed you out!", ] # Buff System def get_buff(): if turn_number >= 20: return {"heal": 40, "flame": 40, "shield": 40, "vanquisher": 40, "retribution": 200, "burn": 20, "max": 100} elif turn_number >= 15: return {"heal": 30, "flame": 30, "shield": 30, "vanquisher": 30, "retribution": 150, "burn": 15, "max": 60} elif turn_number >= 10: return {"heal": 20, "flame": 20, "shield": 20, "vanquisher": 20, "retribution": 100, "burn": 10, "max": 40} elif turn_number >= 5: return {"heal": 10, "flame": 10, "shield": 20, "vanquisher": 10, "retribution": 50, "burn": 5, "max": 20} else: return {"heal": 0, "flame": 0, "shield": 0, "vanquisher": 0, "retribution": 0,"burn": 0, "max": 0} def get_max_hero_hp(): buff = get_buff() return base_max_hero_hp + buff["max"] # Helper Functions for Hero Parameters def get_basic_slash_damage(): if hero_mode == "base": return 20 elif hero_mode == "blessed": return 40 elif hero_mode == "unconquerable": return 70 return 20 def get_heal_value(): buff = get_buff() base = 30 if hero_mode == "base" else 50 return base + buff["heal"] def get_flame_bonus(): buff = get_buff() base = 30 if hero_mode == "base" else 50 return base + buff["flame"] def get_shield_value(): buff = get_buff() base = 40 if hero_mode == "base" else 60 return base + buff["shield"] # Hero Skills def hero_heal_skill(): value = get_heal_value() return min(value, get_max_hero_hp() - hero_hp) def use_flame_sword(): global flame_buff flame_buff = get_flame_bonus() def use_hero_shield(): global shield_block_value shield_block_value = get_shield_value() def use_invictus(): global hero_hp, invictus_effect_turns, hero_mode, unconquerable_turns, turn_number threshold = 50 if hero_mode == "blessed" else 30 # For blessed mode, if turn>=20, threshold is 100. if hero_mode == "blessed" and turn_number >= 20: threshold = 100 if hero_hp <= threshold: hero_hp = 51 if hero_mode == "blessed" else 31 invictus_effect_turns = 2 if hero_mode == "blessed": if turn_number >= 20: hero_mode = "unconquerable" unconquerable_turns = 2 hero_hp = get_max_hero_hp() print(f"\n{BOLD}{YELLOW}💥 Unconquerable Soul activated! Hero is fully healed and takes NO damage for this turn and the next!{RESET}") elif turn_number >= 15: if random.random() < 0.7: hero_mode = "unconquerable" unconquerable_turns = 2 hero_hp = get_max_hero_hp() print(f"\n{BOLD}{YELLOW}💥 Unconquerable Soul activated! (70% chance) Hero is fully healed and takes NO damage for this turn and the next!{RESET}") else: print(f"\n{BOLD}{YELLOW}⚡ Invictus activated in Blessed mode! This turn, Hero takes NO damage; next turn, there's a 50% chance to block damage.{RESET}") else: if random.random() < 0.3: hero_mode = "unconquerable" unconquerable_turns = 2 hero_hp = get_max_hero_hp() print(f"\n{BOLD}{YELLOW}💥 Unconquerable Soul activated! (30% chance) Hero is fully healed and takes NO damage for this turn and the next!{RESET}") else: print(f"\n{BOLD}{YELLOW}⚡ Invictus activated in Blessed mode! This turn, Hero takes NO damage; next turn, there's a 50% chance to block damage.{RESET}") else: print(f"\n{BOLD}{YELLOW}⚡ Invictus activated! This turn, Hero takes NO damage; next turn, there's a 50% chance to block damage.{RESET}") time.sleep(1) else: print(f"❌ Invictus can only be activated when Hero HP is {threshold} or below!") def hero_vanquisher(): global demon_king_hp, vanquisher_effect_turns, vanquisher_burn_damage buff = get_buff() damage = 50 + buff["vanquisher"] burn_damage = 30 + buff["burn"] demon_king_hp -= damage vanquisher_effect_turns = 3 vanquisher_burn_damage = burn_damage print("💥 Hero uses Vanquisher! Deals {} damage and applies a burning effect ({} dmg/turn for 3 turns) to the Demon King.".format(f"{RED}{damage}{RESET}", f"{RED}{burn_damage}{RESET}")) time.sleep(1) def divine_retribution(): global demon_king_hp buff = get_buff() # Damage is 300 plus an additional bonus from buffs (using the "vanquisher" bonus as an example) damage = 300 + buff["retribution"] demon_king_hp -= damage print(f"{BOLD}{YELLOW}✨ Divine Retribution! Deals {RED}{damage}{RESET}{BOLD}{YELLOW} damage to the Demon King!{RESET}") time.sleep(1) # Demon King Skills def demon_king_skills(): global demon_king_hp, demon_king_abyss if demon_king_abyss: chance = 0.8 if demon_king_hp <= 100 else 0.05 if random.random() < chance: return ("Annihilation", 0) abyss_skills = [ ("Abyssal Summon", 0), ("Soul Shatter", random.randint(70, 200)), ("Nightmare Burst", random.randint(70, 200)), ("Dread Surge", random.randint(70, 200)), ("Oblivion Strike", random.randint(70, 1000)) ] return random.choice(abyss_skills) else: # In normal form, no Annihilation is available. skills = [ ("Fireball", random.randint(40, 70)), ("Dark Slash", random.randint(50, 80)), ("Infernal Flame", random.randint(60, 90)), ("Poison Breath", random.randint(50, 90)), ("Shadow Lash", random.randint(40, 80)), ("Demonic Blast", random.randint(70, 99)), ("Void Pulse", random.randint(30, 60)), ("Curse of the Demon", 0), ("Freeze Nova", 30), ("Summon Minion", 0), ] return random.choice(skills) def summon_creature(): global summoned_creature, summon_duration summon_options = [ ("Demon Guard", "Demon Claw Strike", 20), ("Abyss Serpent", "Venom Bite", 10) ] summoned_creature = random.choice(summon_options) summon_duration = 2 print(f"👿 Demon King summons {summoned_creature[0]}!") time.sleep(1) def summoned_attack(): global hero_hp, venom_damage, venom_turns, summon_duration, summoned_creature, invictus_effect_turns if summoned_creature and summon_duration > 0: summon_duration -= 1 damage = summoned_creature[2] if invictus_effect_turns < 2 else 0 print(f"👿 {summoned_creature[0]} attacks with {summoned_creature[1]}! Deals {RED}{damage}{RESET} damage.") hero_hp -= damage if summoned_creature[0] == "Abyss Serpent": if invictus_effect_turns < 2: venom_damage = 10 venom_turns = 2 else: venom_damage = 0 venom_turns = 0 if summon_duration == 0: print(f"👿 {summoned_creature[0]} disappears!") summoned_creature = None time.sleep(1) def auto_blessing(): global hero_hp, blessing_uses, hero_mode if blessing_uses > 0: if random.random() < 0.8: full_heal = get_max_hero_hp() print(f"\n{BOLD}{YELLOW}✨ Blessed Hero activates! Hero is revived with {GREEN}{full_heal}{RESET}{YELLOW} HP and becomes Blessed! ✨{RESET}") hero_hp = full_heal hero_mode = "blessed" time.sleep(1) blessing_uses -= 1 return True return False def print_status(): global summoned_creature, summon_duration, flame_buff, shield_block_value, invictus_effect_turns, venom_damage, turn_number, hero_mode, vanquisher_effect_turns, demon_king_abyss form = "Abyss Form" if demon_king_abyss else "Normal" effective_max_hp = get_max_hero_hp() print(f"\n----- Turn {turn_number} -----") print(f"🛡️ Hero HP: {GREEN}{hero_hp}{RESET}/{GREEN}{effective_max_hp}{RESET} | Mode: {hero_mode}") print(f"🔥 Demon King HP: {RED}{demon_king_hp}{RESET} | Form: {form}") buff = get_buff() if any(buff.values()): if turn_number >= 20: print(f"{BOLD}{YELLOW}💫 Heroic Buff active!{RESET}") elif turn_number >= 15: print(f"{BOLD}{YELLOW}💫 Unrivaled Buff active!{RESET}") elif turn_number >= 10: print(f"{BOLD}{YELLOW}💫 Contender Buff active!{RESET}") elif turn_number >= 5: print(f"{BOLD}{YELLOW}💫 Challenger Buff active!{RESET}") if venom_damage: print(f"☠️ Venom Effect: -{RED}{venom_damage}{RESET} HP per turn") if summoned_creature: print(f"👿 Summoned Enemy: {summoned_creature[0]} ({summon_duration} turn(s) left)") if flame_buff: print(f"🔥 Flame Sword bonus: +{RED}{flame_buff}{RESET} damage on next attack") if shield_block_value: print(f"🛡️ Shield active: Will block {RED}{shield_block_value}{RESET} damage on next Demon King attack") if invictus_effect_turns: print(f"⚡ Invictus effect active for {invictus_effect_turns} more turn(s)") if vanquisher_effect_turns: print(f"🔥 Vanquisher burning effect active on Demon King for {vanquisher_effect_turns} more turn(s)") time.sleep(1) def combat_turn(): global hero_hp, demon_king_hp, flame_buff, shield_block_value, invictus_effect_turns global venom_damage, venom_turns, summoned_creature, summon_duration, damage_reduction_next_turn global turn_number, hero_mode, unconquerable_turns, vanquisher_effect_turns, demon_king_abyss print_status() reduction = 0 if damage_reduction_next_turn: reduction = damage_reduction_next_turn print(f"⚡ Freeze Nova effect is active: Hero's basic attack damage will be reduced by {reduction} this turn.") damage_reduction_next_turn = 0 print(f"{YELLOW}[Hero] {random.choice(hero_dialogues)}{RESET}") print("\n⚔️ Hero's turn: Choose a skill:") print("1. Heal ({}hp)".format(f"{GREEN}{get_heal_value()}{RESET}")) print("2. Flame Sword (+{} dmg on next basic attack)".format(f"{RED}{get_flame_bonus()}{RESET}")) print("3. Hero Shield ({} dmg block)".format(f"{RED}{get_shield_value()}{RESET}")) invictus_threshold = 30 if hero_mode == "blessed": invictus_threshold = 100 if turn_number >= 20 else 50 if hero_hp <= invictus_threshold: print( f"{YELLOW}4. Invictus (Blocks all damage this turn, with a 50% chance of doing the same next turn; chance for Unconquerable Soul upgrade){RESET}") if hero_mode == "unconquerable": buff = get_buff() vanq_damage = 50 + buff["vanquisher"] vanq_burn = 30 + buff["burn"] print("5. Vanquisher ({} DMG, Burn: {} dmg/turn (for 3 turns))".format(f"{RED}{vanq_damage}{RESET}", f"{RED}{vanq_burn}{RESET}")) if hero_hp == 1: buff = get_buff() dr_total = 300 + buff["retribution"] print( f"{BOLD}{YELLOW}6. ULTIMATE: Divine Retribution (Deals {RED}{dr_total}{RESET}{BOLD}{YELLOW} damage){RESET}") choice = input("Enter your choice: ").strip() if choice == "1": amt = hero_heal_skill() hero_hp += amt print(f"🩹 Hero heals for {GREEN}{amt}{RESET} HP!") elif choice == "2": use_flame_sword() print("🔥 Hero uses Flame Sword! Next attack gets bonus damage.") elif choice == "3": use_hero_shield() print("🛡️ Hero uses Hero Shield! Will block incoming damage.") elif choice == "4" and hero_hp <= invictus_threshold: use_invictus() elif choice == "5" and hero_mode == "unconquerable": hero_vanquisher() elif choice == "6" and hero_hp == 1: divine_retribution() else: print("❌ Invalid choice. Hero misses the turn.") time.sleep(1) basic_slash = max(0, get_basic_slash_damage() + flame_buff - reduction) print(f"⚔️ Hero's basic slash deals {RED}{basic_slash}{RESET} damage!") demon_king_hp -= basic_slash flame_buff = 0 time.sleep(1) # Check win condition after hero's attack. if demon_king_hp <= 0: print(f"\n{BOLD}{YELLOW}🏆 {random.choice(hero_win_dialogues)}{RESET}") # GOOD ENDING AFTERSTORY (Good Ending Placeholder) print(f"\n{BOLD}{YELLOW}GOOD ENDING: [Insert Good Ending Story Here]{RESET}") global good_ending_obtained good_ending_obtained = True restart_game() # Prompt restart and process post-credit scene if applicable. return False if not demon_king_abyss and demon_king_hp <= 300: demon_king_abyss = True demon_king_hp = 1000 print(f"{BOLD}{RED}😈 Demon King transforms into Abyss Form! Its power surges as it heals to 1000 HP and unleashes new menacing skills!{RESET}") time.sleep(1) if vanquisher_effect_turns > 0: print(f"🔥 Vanquisher burning effect deals {RED}{vanquisher_burn_damage}{RESET} damage to Demon King!") demon_king_hp -= vanquisher_burn_damage vanquisher_effect_turns -= 1 time.sleep(1) print("\n🔥 Demon King's turn:") print(f"{RED}[Demon King] {random.choice(demon_king_dialogues)}{RESET}") time.sleep(1) skill_name, skill_damage = demon_king_skills() invictus_block = False if invictus_effect_turns == 2: print("⚡ Invictus effect: Hero takes NO damage this turn!") skill_damage = 0 invictus_block = True invictus_effect_turns = 1 time.sleep(1) elif invictus_effect_turns == 1: if hero_mode == "unconquerable" or random.random() < 0.5: print("⚡ Invictus effect (2nd turn): Hero takes NO damage!") skill_damage = 0 invictus_block = True else: print("💀 Invictus effect (2nd turn) failed: Hero takes damage!") invictus_block = False invictus_effect_turns = 0 time.sleep(1) if skill_name == "Annihilation": print("💥ULTIMATE: Demon King uses Annihilation! It strikes the hero, reducing his HP to 0!") hero_hp = 0 time.sleep(1) if skill_name == "Freeze Nova": if invictus_block: print("❄️ Demon King uses Freeze Nova! (Blocked by Invictus)") else: hero_hp -= 30 damage_reduction_next_turn = 20 print("❄️ Demon King uses Freeze Nova! Deals 30 damage and reduces Hero's basic attack damage by 20 next turn.") elif skill_name in ["Summon Minion", "Abyssal Summon"]: summon_creature() elif skill_name == "Curse of the Demon": if invictus_block: print("💀 Demon King casts Curse of the Demon! (Blocked by Invictus)") else: print("💀 Demon King casts Curse of the Demon! Hero takes 30 damage!") hero_hp -= 30 else: if invictus_block: print(f"⚡ Demon King uses {skill_name}! (Blocked by Invictus)") else: if shield_block_value: net_damage = max(0, skill_damage - shield_block_value) print(f"⚡ Demon King uses {skill_name}! Damage {RED}{skill_damage}{RESET} reduced by shield {RED}{shield_block_value}{RESET} to {RED}{net_damage}{RESET}.") hero_hp -= net_damage shield_block_value = 0 else: hero_hp -= skill_damage print(f"⚡ Demon King uses {skill_name}! Deals {RED}{skill_damage}{RESET} damage.") time.sleep(1) if summoned_creature: summoned_attack() if venom_turns > 0: if invictus_block: print(f"☠️ Venom deals {RED}0{RESET} damage to Hero!") else: print(f"☠️ Venom deals {RED}{venom_damage}{RESET} damage to Hero!") hero_hp -= venom_damage venom_turns -= 1 if venom_turns == 0: venom_damage = 0 time.sleep(1) if hero_hp <= 0: # Try auto-resurrection first. if auto_blessing(): print(f"{BOLD}{YELLOW}✨ Hero is revived as Blessed Hero!{RESET}") time.sleep(1) return True else: print("\n💀 Hero has fallen!") time.sleep(1) # BAD ENDING AFTERSTORY print(f"\n{BOLD}{MAROON}BAD ENDING: The Age of Darkness Begins{RESET}\n") time.sleep(1) print("Lothar stood, bloodied and exhausted, his strength fading with each breath.") time.sleep(0.5) print( "Arnathlious, the King of the Abyss, loomed over him, a cruel grin twisting across his monstrous face.") time.sleep(0.5) print("\n'This is your fate, hero,' the demon king sneered. 'A futile struggle. A meaningless end.'") time.sleep(0.5) print( "\nWith a single, merciless swing of his abyssal blade, Arnathlious severed Lothar’s head from his body.") time.sleep(0.5) print( "The hero’s lifeless form collapsed to the ground, his sword slipping from his grasp, his final battle lost.") time.sleep(0.5) print("\nThe Demon King seized Lothar’s severed head and marched to the last remnants of humanity.") time.sleep(0.5) print("With a triumphant roar, he hurled it into their midst, watching as hope drained from their faces.") time.sleep(0.5) print("\n'Your hero is dead! Your world is MINE!' Arnathlious declared, his voice booming like thunder.") time.sleep(0.5) print( "\nWhat followed was an era of true horror. Without Lothar to oppose him, the abyss spread unchecked,") time.sleep(0.5) print( "corrupting the land, swallowing the skies in eternal night. Demons roamed free, reveling in the suffering of mortals.") time.sleep(0.5) print("\nMen, women, and children were hunted, tortured, and torn apart for sport.") time.sleep(0.5) print("Entire cities were razed to the ground, their ruins becoming nests for unholy creatures.") time.sleep(0.5) print( "\nThe world, once vibrant, became a twisted nightmare, a domain of endless agony ruled by Arnathlious.") time.sleep(0.5) print("No human was spared. No resistance remained. No hope endured.") time.sleep(0.5) print("\nAfter a single month, the human race was no more. The Abyss had won.") time.sleep(0.5) print("\nAnd at its throne, surrounded by an empire of darkness, the Demon King laughed.") time.sleep(1.5) global bad_ending_obtained bad_ending_obtained = True restart_game() return False if hero_mode == "unconquerable": unconquerable_turns -= 1 if unconquerable_turns <= 0: hero_mode = "blessed" print("🔄 Unconquerable Soul effect has ended. Hero reverts to Blessed mode.") time.sleep(1) turn_number += 1 return True def restart_game(): global hero_hp, demon_king_hp, turn_number, hero_mode, demon_king_abyss, flame_buff, shield_block_value, invictus_effect_turns, venom_damage, venom_turns, summoned_creature, summon_duration, damage_reduction_next_turn, unconquerable_turns, vanquisher_effect_turns, blessing_uses hero_hp = base_max_hero_hp demon_king_hp = 1000 turn_number = 1 hero_mode = "base" demon_king_abyss = False flame_buff = 0 shield_block_value = 0 invictus_effect_turns = 0 venom_damage = 0 venom_turns = 0 summoned_creature = None summon_duration = 0 damage_reduction_next_turn = 0 unconquerable_turns = 0 vanquisher_effect_turns = 0 blessing_uses = 2 # <-- This line resets your blessing uses. time.sleep(0.5) if bad_ending_obtained: print(f"\n{BOLD}{YELLOW}The gods have granted you another chance for the hero to be victorious once again!{RESET}\n") time.sleep(1.5) if good_ending_obtained: print(f"\n{BOLD}{YELLOW}There are a lot more possibilities in the world to see, and you can see it for yourself!{RESET}\n") time.sleep(1.5) choice = input(f"\nDo you want to restart the game? (Y/N): ").strip().upper() time.sleep(0.5) if choice == "Y": # If both endings have been experienced, show post-credits scene. if good_ending_obtained and bad_ending_obtained: time.sleep(0.5) print(f"\n{BOLD}{YELLOW}Post-Credits Scene: The Gathering of the Abyss{RESET}\n") time.sleep(1) print( "Deep within the heart of the Abyss, far from mortal eyes, the remaining lords of the Demon Empire convened.") time.sleep(0.5) print("Seated around an obsidian table, their faces twisted in rage and disappointment.") time.sleep(0.5) print("\n'This was not how it was meant to end,' a towering demon with jagged horns growled.") time.sleep(0.5) print("'Arnathlious was a fool to fall, but his vision shall not die with him,' another hissed.") time.sleep(0.5) print("\nA figure draped in dark robes, eyes gleaming with malice, stepped forward.") time.sleep(0.5) print("'The humans celebrate, thinking their nightmare is over. But we are still here.'") time.sleep(0.5) print("'The Abyss does not forget. And it does not forgive.'") time.sleep(0.5) print( "\nA slow, guttural laughter spread through the chamber, growing into a chorus of sinister amusement.") time.sleep(0.5) print( "'Let them have their peace,' the leader whispered. 'Soon, we shall take it from them... and much more.'") time.sleep(1.5) game_loop() else: print("Thanks for playing!") exit() def game_loop(): global hero_hp, demon_king_hp while combat_turn(): time.sleep(1) if demon_king_hp <= 0: time.sleep(1) print(f"\n{BOLD}{YELLOW}🏆 {random.choice(hero_win_dialogues)}{RESET}") time.sleep(1) # GOOD ENDING AFTERSTORY print(f"\n{BOLD}{YELLOW}GOOD ENDING: The Dawn of a New Era{RESET}\n") time.sleep(1) print("With a final, resounding strike, Lothar's blade cleaved through Arnathlious, the King of the Abyss.") time.sleep(0.5) print( "The demon let out an earth-shaking roar before his body crumbled into ash, his darkness vanquished at last.") time.sleep(0.5) print("\nThe world, long shrouded in despair, saw the first sunrise of true peace in decades.") time.sleep(0.5) print("The people of every kingdom rejoiced, singing Lothar’s name, hailing him as the Savior of Humanity.") time.sleep(0.5) print( "\nBut for Lothar, victory was bittersweet. He returned to the ruins of Solvieg, his homeland, now silent and lifeless.") time.sleep(0.5) print( "There, he built grand monuments for his fallen family and comrades, ensuring their sacrifice would never be forgotten.") time.sleep(0.5) print( "\nYears passed, and the world flourished in an era of prosperity. Lothar, though hailed as a hero, lived humbly,") time.sleep(0.5) print("spending his days aiding the people and ensuring that darkness would never rise again.") time.sleep(0.5) print("\nYet, as he gazed at the horizon one evening, a cold wind brushed against his skin.") time.sleep(0.5) print("A whisper, faint yet unmistakable, echoed in his mind.") time.sleep(0.5) print("\n'You think this is over...?'") time.sleep(0.5) print("\nLothar’s grip on his sword tightened. Peace had been restored, but for how long?") time.sleep(0.5) print("In the depths of the Abyss, something stirred, waiting... watching... preparing for its return.") time.sleep(0.5) global good_ending_obtained good_ending_obtained = True restart_game() break if __name__ == "__main__": print(f"{BOLD}⚔️ The battle begins! Hero vs Demon King. ⚔️{RESET}") time.sleep(1) print('[Demon King] "You dare stand before me!"') time.sleep(1) print('[Hero] "I\'ll defeat you and save the world!"') time.sleep(1) game_loop()
Editor is loading...
Leave a Comment