How about making Perpentach more insane?

WarKirby

Arty person
Joined
Jul 13, 2006
Messages
5,317
Location
Glasgow, Scotland
A neat little idea just came to me about perpentach.

How about, he could have a relations modifier with other civs. Which would change randomly every 5-10 turns. Capped at +10 and -10, it would essentially make dealing with him random, and unpredictable. Could be your best friend one minute, and sticking a sword through your chest the next.

It could be named
+10 "We find you amusing"
-10 "We find you boring"
 
Maybe not +/- 10, but on a slightly lower scale it might work. I like the idea, but we don't want the comp player declaring war on all known people, then getting destroyed.
 
Sounds cool...

I think the +10 bonus is good but perhaps should the event that change this bonus occur less frequently than every 10-15 turns. (20 at least... should be be adapted with the speed you play BTW ;))

the leader it would be applied should be randomized as well as the fact it can be a bonus or a malus.
only one leader at a time of course.

we don't want the comp player declaring war on all known people, then getting destroyed.
It's a good point but IIRC the AI won't declare war if it's already at war with anyone else.
It shouldn't be a problem so.
 
Maybe make it a bell curve with extrema at +-10. That way, it is usually a less drastic effect, but can be severe. I just worry that with +10 half the time, you can just pump him for techs and cash while he likes you, and free XP when he doesn't.
 
This one would probably screw up the Balseraph more than anyone else IMO. It is too severe. Admittedly, it would be interesting. Maybe if Perpentach was buffed enough to compensate for his diplomatic volatility...
 
Would it be like randomly switching back and forth between +10 -10 and 0? Or would it be like each x turns he flips a coin whether to give +1 or -1 to his relations, so some leaders would end up with +10 some -10 and most around 0 most of the time.
 
The easiest and perhaps most thematic way would be to make his opinion change whenever his traits change.

Edit: I believe adding this to def doTraitInsane(argsList): in CvRandomEventInterface.py is all that is needed.

Code:
	for iLoopPlayer in range(gc.getMAX_PLAYERS()):
		pPlayer.AI_changeAttitudeExtra(iLoopPlayer, (CyGame().getSorenRandNum(20, "Insane")-10))

I'm about to test it now.
 
The easiest and perhaps most thematic way would be to make his opinion change whenever his traits change.

Edit: I believe adding this to def doTraitInsane(argsList): in CvRandomEventInterface.py is all that is needed.

Code:
	for iLoopPlayer in range(gc.getMAX_PLAYERS()):
		pPlayer.AI_changeAttitudeExtra(iLoopPlayer, (CyGame().getSorenRandNum(20, "Insane")-10))

I'm about to test it now.

That is a brilliant idea.
I like this implementation idea better.
 
I should note that it these attitude changes don't seem to be temporary, but cumulative. I tested it in The Momus scenario, and by the time I actually noticed the change it had given Perpentach a -19 opinion of me and somewhere between -3 and +8 opinions of all the other leaders. (That is only the opinion from events, not the overall opinion. There isn't really a way of telling if the case came only from this or also from events like the Dagda or Camulos Constellations.)

I remembered that the pseudorandom number generator picks a number less than the number you give it, so CyGame().getSorenRandNum(20, "Insane") would produce a number between 0 and 19 instead of 0 and 20 and (CyGame().getSorenRandNum(20, "Insane")-10) would on average come out to -1. It didn't seem right that he would tend towards hating everyone more as the game continued, and the overall values seemed a bit high in the end, so I changed (CyGame().getSorenRandNum(20, "Insane")-10) to (CyGame().getSorenRandNum(11, "Insane")-5)
 
Back
Top Bottom