Well my ears are ringing
First, I don't think that importing external text from files is really your biggest problem.
I went to read the wikipedia page on Alpha Protocol. I think you'll have a lot of work to find a good reusable associative syntaxe.
With only 2min of thought, I think your character could have some parameters like "charisma, sensibility, coldness, etc" and each answer could add some point on these parameter and some dialog pieces could be locked or unlocked depending on these parameters.
You could have a list of interlocutor dialogs for the whole game with a syntaxe like :
ID_DIALOG [range or charisma, range of sensibility, range of coldness] "actual dialog" ID_ANSWER[/code:1qwst2bf]
example :[code:1qwst2bf]120 [0-20,20-50,50-100] "Er.. What do you want?" 241
120 [0-30,60-80,0-5] "Don't look at me like that!" 242
120 [50-100,0-50,0-10] "I.. oh you are right" -1
120 [0-100,0-100,0-100] "yes?" 244[/code:1qwst2bf](note the 0-100 range for the 3 values makes it the default dialog and -1 would mean no possible answer)
And your possible answer
[code:1qwst2bf]ID_ANSWER [tonality] [charisma,sensibility,coldness] "actual answer" ID_DIALOG[/code:1qwst2bf]
example:[code:1qwst2bf]241 [gentle] [+1,+2,-2] "Oh don't worry, I just wanted to see if you were fine" 121
241 [cold] [-1,-3,+2] "Nothing" 122
241 [smart] [+2,-2,+1] "Do you have something to hide?" -1[/code:1qwst2bf](note -1 would mean end of dialog)
So following this example, if you are an insensible bastard, when you reach the moment of the game when you trigger the dialog with ID 120, you will be asked
"Er.. What do you want?"
Then you'll be able to choose either gentle, cold or smart tone, if you choose cold (as the insensible bastard you are) you'll trigger the answer
"Nothing" you will lose 1 point of charisma, 3 point of sensibility and earn 2 point of coldness.
And then trigger the dialog ID 122
Basically if you do that the external file way, you'll have 2 file, one for dialog and one for answers, you'll load them on start of layout and fill a 2 dimensionnal Array
By parsing the whole string (like tokenat(dialog,index,newline))
for our example it would be
Dialog(120,0) = [0-20,20-50,50-100] "Er.. What do you want?" 241
Dialog(120,1) = [0-30,60-80,0-5] "Don't look at me like that!" 242
Dialog(120,2) = [50-100,0-50,0-10] "I.. oh you are right" -1
Dialog(120,3) = [0-100,0-100,0-100] "yes?"
Answer(241,0) = [gentle] [+1,+2,-2] "Oh don't worry, I just wanted to see if you were fine" 121
Answer(241,1) = [cold] [-1,-3,+2] "Nothing" 122
Answer(242,2) = [smart] [+2,-2,+1] "Do you have something to hide?" -1
After that it's just a matter of calling the dialog, parsing the first part of the string to see what match the parameters of your player (might have to be more exclusive than what I did) and then displaying the corresponding sentence.
And using the end of the string for possible answers. etc.
So for my test on string loading it's right here :
But remember, it won't work on preview since js can only call stuff from the same domain, and on preview you are in localhost and the txt file is on dropbox.com.