Hello.
when posting code, use the Insert/Code instead of spoiler. This is to make sure you are 'tabbing' your code correctly, as right now the code doesn't looked to be tabbed over, which means that it ignores the if and else statements.
as for why ep0madison_talking isn't being replaced, there's a few things going on, you are doing a few things at the same time, several assumptions at once. To be honest, trying to explain it is like when I first started as an engineer, where the place i worked was making schematics using 100 different techniques all mashed together because they didn't know what they were doing. It looks like you are doing something that seems simple to you, but as someone who does a lot of programming, I see you trying to do several things at once, and trying to get this to work 'as is' is more effort than just trying to recode it right.
First, what are you trying to do. it looks like you are trying to describe a scene with 2 people. you are using this scene sort of like a description, or definition, something you can reuse. either Richard is talking, or Richard is not talking (Madison is talking instead). this way you don't have to constantly use show and hide between each line of dialog. What might be easier is to make 2 separate scenes, and use them like some sort of dialog command, something like this
Python:
label start:
jump talk_with_richard_1 # this will be the scene
label talk_with_richard_1: # outline the scene
scene ep0_bg
show ep0madison casual with dissolve
show ep0richard casual
#scene set up complete
#now to do the actual scene, line by line
"""you did good here, having both start in a casual pose,
Noticed I removed the '_' underscore,
this way renpy can figure out that 'ep0madison' and
'ep0richad' are the subjects, and the 'casual' is the attribute
this will allow renpy to automatically replace one with the other.
this means you have to remove the _ when making the images
(this is a feature I've only seen in renpy, in all other cases
you would have to do something like what you did with the variable
richard_talk)
"""
#calling different scenes and passing in a parameter
# this way you have no need to set $richard_talking = True
call ep0madison_says("Hello")
call ep0richad_says("I like Cocaine")
call ep0madison_says("Uh... Ok")
call ep0richad_says("I'm going to do some cocain now, bye!")
call ep0madison_says("... wtf?")
#end scene/game
#if you still wanted to use $richad_talking then
label example:
if richard_talking == True #your if statement here, not mixed in with everyhting else
call ep0richad_says
return # this will skip all other code by forcing a return now
# else: not needed because of the above return
call ep0madison_says
return # something I need to double check, if a return is nessesary or not
# separate your code out so that you are not mixing everything in one block of code
# this is just an example of clean/good coding practices
label ep0richard_says(what): # from if richard_talking == true
hide ep0richard_casual
# TO DO (for me) figure out how to replace this with ep0richard casual
# and make sure that it auto replaces ep0richard talking, and vise versa
show ep0richard_talking
hide ep0madison_talking
show ep0madison_casual
richard what # makes richard say the text
label ep0madison_says(what): # from if richard_talking == false
hide ep0richard_talking
show ep0richard_casual
hide ep0madison_casual
show ep0madison_talking
madison what # makes madison say the text
Now I am very new to renpy as well, little over 2 weeks of code, but over a decade of C# so I don't know if the above is the best way to go about coding in renpy, as you'll see I'm not confident enough to know if simply removing the '_' and using the subject/attribute system of renpy will do the auto replace you are looking for, but this would be my intuition. Basically the point being, clean up the code by breaking it down into reusable parts, rather than trying to make a big block with lots of if statements.