In the final dialogue with the solar (FINSOL01.dlg), the solar comments on the PC's alignment before his/her possible ascending to godhood, judging it into "evil", "not specified", and "good". Also, this is the same trigger the game uses to definde whether the Pocket Plane Challenges are for a "good" or "evil" behaving PC, and also for the ending it shows.
So, if you are designing an NPC who would not object to the actions the PC did to obtain the negative judgment, but you want him to react to the PC being an evil god, it is probably sufficient to include different interjections at the ascending dialogue and /or provide different epilogues in case the PC got corrupted using the triggers as used in the final solar's dialogue (as listed below).
But, if your NPC is a paladin or any other personality who you would wish to react to the ongoing corruption, the game provides triggers for that, too, although it is a bit more complex - unless you can live with a small disadvantage. This is what the game uses for it:
There exist two counters in ToB. The one used for tracking the PC's corruption is "PPEvilChoices", but there is also an (unused) "PPGoodChoices". Either of them is incremented at the same instance, so both could be used for tracking, theoretically.
These tracking variables are incremented after each of the Pocket Plane Challenges, but it's not the behavior in the challenges, but PC responses in certain dialogues that trigger this.
So, we have another set of tracking variables that define, whether the finished challenge will result into an increase of "PPEvilChoices" or "PPGoodChoices".
In the following, I will list the triggers I found and where they are set, sorted by the challenge it is used for:
First PP Challenge
For the first challenge, the game uses the PC's alignment and/or reputation points. So:
- "PPEvilChoices" +1, if for evil alignment OR rep < 8
- "PPGoodChoices" + 1, if not evil alignment and rep > 7
Second PP Challenge
- "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream1","GLOBAL",1)
- "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream1","GLOBAL",0)
The count "Bhaal25Dream1" is set in the dialogue with the solar, befor the second challenge (SOLAR.dlg): in the dialogue about his/her mother.
- the variable is decreased, if the PC is selfish and/or denies the dept towards Gorion for not being at Sarevok's place
- the varaible gets increased, if the PC is sorry for his/her mother, and acknowledges that Gorion's actions made an impact on the PC's outcome
Third PP Challange
- "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream2","GLOBAL",1)
- "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream2","GLOBAL",0)
The count "Bhaal25Dream2" is set in the dialogue with the solar (SOLAR.dlg), before the 3rd challenge: the dialogue with the "innocent" PC.
- the variable is decreased, if the PC shows no interest in what the prophecy means to him/her or (s)he states to want the father's power, or shows selfish reasons for stopping the prophecy, or doesn't take the question seriously.
- the variable is increased if the PC states the wish to avoid his/her destiny, or answeres righteously if asked for his/her motivation to prevent the prophecy.
4th PP Challenge
- "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream3","GLOBAL",1)
- "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream3","GLOBAL",0)
The count "Bhaal25Dream3" is set in the solar's dialogue (SOLAR.dlg), when the killed Yaga Shura will be summoned.
- the variable will be decreased for selfish / brutal answeres of the PC and the wish to take on Bhaal's throne
- the variable will be increased for the PC's asking for the Solar's help or stating to hold on to what is good and righteous, or states that he wants to prevent Bhaals raising.
5th PP Challenge
- "PPEvilChoices" +1, if GlobalLT("Bhaal25Dream5","GLOBAL",1)
- "PPGoodChoices" +1, if GlobalGT("Bhaal25Dream5","GLOBAL",0)
The count "Bhaal25Dream5" is set in Melissan's dialogue (MELISS01.dlg), after she revealed her true nature, before she goes to the throne essence to await the PC there.
- The variable gets decreased if the PC claims the throne himself or threatens Melissan for using him/her, or gives reply options that imply that she is no match for him/her.
- The variable gets decreased for the PC wanting to stop Melissan or calling her evil.
The "Bhaal25DreamX" conditions are also used to trigger the different cutscenes etc. for the PP Challenges.
Final solar dialogue - ascending
And with the "PPEvilChoices" count, the Solar judges the PC's alignment before ascending to godhood (FINSOL01.dlg, state no. 16):
- for GlobalLT("PPEvilChoices","GLOBAL",2), the solar is impressed how the PC restrained the evil divine heritage and offers his further company
- for ~GlobalGT("PPEvilChoices","GLOBAL",1) GlobalLT("PPEvilChoices","GLOBAL",4)~, the solar asserts the PC a great taint and that time will tell how corrupted the PC will become;
- for ~GlobalGT("PPEvilChoices","GLOBAL",3) GlobalLT("PPEvilChoices","GLOBAL",6)~, the solar is disgusted by the PC's evilness and expects the other gods to interfere.
So what does this help me for my NPC creation?
If you want your NPC only to react to the NPC's corruption at the end of the game, this would be the triggers for different interjections / epilogues:
- GlobalLT("PPEvilChoices","GLOBAL",2): the game treats the PC to be good and righteous, fighting the evil taint of Bhaals heritage in godhood
- ~GlobalGT("PPEvilChoices","GLOBAL",1) GlobalLT("PPEvilChoices","GLOBAL",4)~: no corruption showed (yet) - neutral ending
- ~GlobalGT("PPEvilChoices","GLOBAL",3) GlobalLT("PPEvilChoices","GLOBAL",6)~: the game treats the PC as a corrupted, evil god, regardless of the PC's alignment at this moment.
If you want your NPC to react while playing, noticing the slow corruption of, e.g. a good-aligned PC, the variables "Bhaal25Dream1", "Bhaal25Dream2", "Bhaal25Dream3", and "Bhaal25Dream5" would probably be the ones to consider (in addition to a low rep at the beginning of ToB, of course) - if you want your NPC to react right after the PC showed the signs.
The game uses them as follows ("X" stands for 1,2,3, or 5, accordingly):
- GlobalLT("Bhaal25DreamX","GLOBAL",1): PC gets corrupted
- GlobalGT("Bhaal25DreamX","GLOBAL",0): PC withstands the evil taint and shows righteous tendencies
Using these variables is fine if your NPC should react right after the dialogue where the evil tendencies showed. But if you want to track the tendencies, and only want your NPC to react if the PC accumulated, say, two or three "evil counting points", this gets messy, triggering-wise.
The overall triggers "PPEvilChoices" or "PPGoodChoices" could be used during the game, too, and it's much simpler for triggering reactions if the PC accumulates evil tendencies. In practice, this would mean that your NPC's reaction to the ongoing PC's corruption would not show after the dialogue(s) with the solar/Melissan, but only after the PP challenge was done, but the question is whether anyone would actually notice the time lag. I guess this is a design choice.
The variables could also be used to track "righteous" behavior of an evil PC, of course.
Edited by jastey, 31 October 2014 - 02:24 AM.