ElDoomMoose Posted May 11, 2013 Share Posted May 11, 2013 Forgive me if this has already been created or suggested, I looked around for about ~30 minutes today and couldn't find anything. In vanilla FNV, Cass will get mad at you for being evil. Which is fine, but the way it works is extremely awkward- as far as I can tell, she gets mad at you if your karma is under a certain level and asks you to "change." However, if you talk to her again, it doesn't matter if you "changed" because she just seems to do another karma check for an arbitrary morality. So, in effect, if you're playing a kind of evil character, you can talk to her 3 times before she leaves regardless of whether or not you tried to change for the better. So after I hear her first speech I can go and help as many people as I want, and gain a ton of karma, but if it's still in the evil zone your progress doesn't matter and she's going to call you a jerk anyway.So I want one of these two things to happen instead: 1.) Cass gives one of her speeches each time she sees you commit a crime immediately. This is probably the best option as it seems to be fairest and most immersive. I just can't think of any way to do it eloquently, since it seems like you would have to have a script constantly looping to check if you just lost karma. If you could edit the method that lowers karma, you could just have it check something like this: if( [Cass in Party] ){ Cass.giveSpeech(); } //Where "Give Speech" is a method that makes her get mad at you, and [Cass in Party] checks the contents of the party for Cass and returns a Boolean. But I didn't think you could edit something contained in the base engine that easily.2.) Cass performs a check whenever you talk to her to see if you've gained karma or lost it since the last time you talked to her. Not as good/immersive but it seems pretty easy and would get the job done. Link to comment Share on other sites More sharing options...
devinpatterson Posted May 15, 2013 Share Posted May 15, 2013 1.) Cass gives one of her speeches each time she sees you commit a crime immediately.... if( [Cass in Party] ){ Cass.giveSpeech(); } Fair warning, I'm not a scripting guy. I would go right to the source since you have to tap into/alter it regardless. Add a additional condition to her dialog (it performs the karma check, vDialogueCass performs the karma check. vDialogueCass->Greeting->Warning 1, Warning 2, Warning 3). That condition could vary depending on whether your looking more for time or a positive change in Karma, but preferably both. If your looking for time add a simple timer to VDialogueCassSCRIPT and a comparison of that var. as another condition to warning 1. The var could be >= to 3 days (or whatever you think is appropriate), maybe 6 days for warning 2 etc. This would give you 3 days between each check, but wouldn't check for a positive increase in Karma, just the same karma values (warning 1 < -99, warning 2 < -174, warning 3 < -249) If your looking for a positive change in karma, you could create a pair of vars in the script storing your karma value when you first talked to her and a current karma value check. Then make another condition that is <= to whatever you think falls short of a significant improvement. ie gained 70 or lost -100 etc, but the condition calls for <= 75 so you haven't improved enough since your last discussion and warning 1 fires off. If your karma is 76 more than when your first met, warning 1 won't fire. But I'd also add in the condition for time above or you could talk to her 3 times in 5 minutes without an opportunity to increase your karma, and be on her S-list pretty quick. Link to comment Share on other sites More sharing options...
Recommended Posts