# === DARK LORD VISUAL NOVEL GAME ===
# Main script for a professional Ren'Py visual novel with cheat, power, morality,
and relationship systems
include definitions.rpy
# Game starts here
label start:
play music audio.bg_forest loop
scene forest with dissolve
"You awaken in a dense, eerie forest, your head pounding with fragmented
memories."
$ player_name = renpy.input("What is your name?", length=20).strip() or "Dark
Lord"
$ player_class = renpy.input("What is your class? (e.g., Sorcerer, Warrior)",
length=20).strip() or "Sorcerer"
p "I am [player_name], a [player_class]. But why am I here?"
scene forest_attack with dissolve
play sound audio.monster_roar
"A monstrous roar shakes the trees as a carriage is attacked nearby."
show amelia scared at right with moveinright
w "Help! Please, someone!"
show merchant neutral at left with moveinleft
m "My goods! My life’s work! Save us, stranger!"
menu:
"Use your power to intervene.":
$ add_power("Dark Ascension")
$ update_morality(10)
$ update_affection("Amelia", 10)
call monster_fight
"Stay hidden and watch.":
$ update_morality(-10)
hide amelia
hide merchant
"The monster slaughters the merchant and drags Amelia away."
scene forest with dissolve
jump forest_path
return
label monster_fight:
scene battlefield with dissolve
play sound audio.power_blast
show amelia neutral at right
show merchant neutral at left
p "Dark Ascension!"
"You unleash a torrent of dark energy, obliterating the monster."
$ stats["battles_won"] += 1
w "You... you saved us! Thank you, [player_name]!"
m "My goods are safe! Here, take this as thanks."
$ give_item("Bag", "A sturdy leather bag for carrying items.")
$ silver += 50
scene post_battle with dissolve
jump reward_path
label reward_path:
show amelia blushing at right
w "I’m Amelia, wife of the merchant. You’re our hero."
$ update_affection("Amelia", 5)
menu:
"Accept their gratitude humbly.":
$ update_morality(5)
p "I did what was right."
w "Such nobility! Please, visit us in town someday."
"Demand more rewards.":
$ update_morality(-10)
p "This bag isn’t enough. Give me something valuable."
m "Fine, take this enchanted collar."
$ give_item("Pet Collar", "A magical collar to bind someone to you.")
w "How greedy..."
$ update_affection("Amelia", -5)
scene forest_path with dissolve
hide amelia
hide merchant
jump forest_path
label forest_path:
"You continue through the forest, the path winding toward a distant castle."
scene castle_gate with dissolve
"You reach the gates of a dark, imposing castle."
menu:
"Enter the castle.":
p "This place feels... familiar."
call castle_entry
"Explore the surroundings.":
p "I’ll look around first."
"You find a hidden chest with silver."
$ silver += 100
jump castle_entry
return
label castle_entry:
"The gates creak open, revealing a grand hall."
menu:
"Use cheat menu to boost stats.":
scene terminal with dissolve
call cheat_menu
"Proceed without cheating.":
"You step forward, ready to uncover your destiny."
"To be continued..."
return
label cheat_menu:
menu:
"Add 1000 silver.":
$ silver += 1000
"Silver added."
call cheat_menu
"Max morality (+100).":
$ update_morality(100 - morality)
"Morality maxed."
call cheat_menu
"Max Amelia’s affection.":
$ update_affection("Amelia", 100 - relationship_points.get("Amelia",
0))
"Amelia’s affection maxed."
call cheat_menu
"Return to game.":
scene castle_gate with dissolve
return