Prisoners

Prisoner system was implemented in 0.1.3 and it allows us to catch beings and keep them in the dungeon. It automatically checks if said enemy can be catched. It also allows us to visit the prisoner in the dungeon.

This system has safety features enabled, if you use the mod that adds prisoners, but delete it, your save will work. Even more! It’ll save your prisoner, so that when you install the mod again, your prisoner will be waiting for you in the dungeon. No need to catch him/her/it again.



Add new prisoner

You need to add your prisoner to available_prisoners at the init time. It’s here so that mods which adds them can be safely removed.

# Prisoner's image Enemy's class attribute (if catchable enemy),
available_prisoners.append("MyPrisoner")

Now let’s make prisoner’s NPC object, it’s required, thank to that prisoner will have trust, lust, submission etc. statistics.

init 11 python:
  # Make NPC object, name is the only required argument
  MyPris = NPC("John")

Now we need to create catch label using catch_MyPrisoner as a syntax. It should end with return, you can also jump somewhere if you know what you’re doing. If you jump remember to make sure player ends in a freeroam mode, also remember to change the music. You need to add prisoner to the prisoners dictionary as {"MyPrisoner": NPC_Object}.

You don’t need this label if you don’t want your prisoner to be caught after winning a fight, still if it’s an enemy you should make this label even if it only returns.

Dialogue and Narration

1label catch_MyPrisoner:
2  ... talk ...
3  ... event ...
4  ... or whatever you want to happen here ...
5
6  # $ allows to add one line python statement in renpy's labels or screens
7  #
8  $prisoners.update({"MyPrisoner": MyPris})
9  return

Next required label is talk_MyPrisoner. It’s called when you decide to talk to the prisoner in the dungeon. While you can make it into whatever you want, dialogue menu would be the best here. It shows dungeon cell as a background image.

 1label talk_MyPrisoner:
 2  show myprisoner calm
 3  ... dialogue / grettings ...
 4
 5  menu .menu1:
 6    "Option1":
 7      ... dialogue ...
 8      # Return to dialogue choosing menu
 9      jump .menu1
10
11    "Option2":
12      ... dialogue ...
13      jump .menu1
14
15    "Leave":
16      # Leave the talk, return to the dungeon freeroam
17      jump room_hotel_dungeon

That would be all for creating a prisoner.



Add new succubus

To add a succubus you need to add her as a prisoner, exactly like above, then simply append her to list_of_succubus list.

init 11 python:
  # Append the same thing you did to available_prisoners
  list_of_succubus.append("MySuccubusImage")