December 15th, 2015, 20:48
Posts: 10,497
Threads: 395
Joined: Aug 2015
I've found traces of this feature in game code.
The corresponding text in the LBX file belongs to "Break Alliance with" and is used for that purpose.
The "War" version of this request is never queued up anywhere, but the target for it is calculated.
I have absolutely no idea if they wanted to add this to the game, or the code is just a leftover from Master of Orion, and they never planned to make it happen.
As far as I can tell in the code, it was supposed to be a simple yes/no, with Yes declaring war on the requested target, and no breaking the alliance with the wizard who asked you to declare the war.
In theory, it might be possible to replace the event text of something unused (like the "stop summoning your dwarf" one) with a proper request of DoW, but how much the rest of the code is functional, that I don't know, at first sight it looks like it can work.
I'm not sure about this feature but I'm leaning to ignore it, simply because it's pretty much punishing the player for making allies. You either go to war with someone you didn't want to, or lose your alliance with the other wizard. Compared to this choice, not forming an Alliance and keeping the Wizard Pact which cannot be lost just because your partner gets into a war somehow is a lot better. The benefits of the alliance don't really make up for the chance of getting dragged into a war with a random wizard, or your ally.
We also do not know if this feature was meant to be in the game. There are other things carried over from MoO in the code that do not belong here, like the unimplemented Final War which doesn't belong to the game for sure. As more than one player can cast the Spell of Mastery at the same time, everyone getting allied against only one of them would not be reasonable. In MoO, only one person was able to revolt against the final council decision, the human player.
One more thing to consider, even AI players are no longer forced to declare war due to their alliances, as that really dumbs down diplomacy a lot, by preventing peace completely (unless it's simultaneously made with every member of the alliance which is pretty much impossible to do, even for the human player, more for the AI). They still do help out allies at a pretty high random chance, but they won't ignore their peace treaties to do that, and it's possible in theory to always roll "not helping" every turn, although as time passes, this will be more and more unlikely.
Anyway, the question is, would you consider an ally asking you to declare war something that makes the game more fun to play, or something that's annoying and better to leave out?
December 15th, 2015, 21:25
Posts: 401
Threads: 31
Joined: May 2012
Considering MoM diplomacy really crippled I do not have much hope it will work.
I'm looking very favorably to your effort to fix it. Usually diplomacy in this kind of games is very important and I use it heavily, not in MoM.
My suggestion is to choose between:
A. implement it as a FEAT and let anyone try it.
B. mark the place where the code/text is as "free space" and use it for other stuff (put a big warning, just in case other modders are going to use it).
Only the people crazy enough to think they can change the world of Arcanus and Myrror can do it.
December 16th, 2015, 04:42
(This post was last modified: December 16th, 2015, 05:13 by Tiltowait.)
Posts: 488
Threads: 51
Joined: Apr 2012
Well...that's what an alliance is. My enemies are your enemies. You mess with one of us, you mess with all of us. And if you don't declare war on your ally's enemies, what's the point of having an alliance in the first place? I'm not really talking about MoM here, just in general.
That's why you can cross your ally's territory, to enable you to get at the enemy. Part of the negative of an alliance is getting dragged into your ally's wars. It's a double edged sword. Happened all the time in MoO. Either you get into an unwanted war, or you have an alliance declare war on you.
I don't see how it's "punishing" the player...you can ask your allies to declare war on your enemies, too.
December 16th, 2015, 05:09
(This post was last modified: December 16th, 2015, 06:04 by Seravy.)
Posts: 10,497
Threads: 395
Joined: Aug 2015
(December 16th, 2015, 04:42)Tiltowait Wrote: Well...that's what an alliance is. My enemies are your enemies. You mess with one of us, you mess with all of us. And if you don't declare war on your ally's enemies, what's the point of having an alliance in the first place? I'm not really talking about MoM here, just in general.
That's why you can cross your ally's territory, to enable you to get at the enemy. Part of the negative of an alliance is getting dragged into your ally's wars. It's a double edged sword. Happened all the time in MoO. Either you get into an unwanted war, or you have an alliance declare war on you.
True, but think about the gameplay indications.
Let's say you accept and both of you are at a war with the enemy.
Then the enemy wants to make peace with you.
If you say yes, your ally will ask you to start war again and you have to break the peace treaty (fortunately the consequences of this seems to be unimplemented).
If the enemy makes peace with your ally, he/she will declare war again immediately (not anymore though, but that was the default).
So even if every party involved wants peace, the peace will not happen (unless the AI rolls a peace offer to both players at the same turn, that's, like, extremely unlikely).
In the real world, the 3 countries involved sit down and form a peace treaty together, but in MoM, it has to be done separately, and the alliance DoW immediately breaks it, which is why this system isn't very suitable for the game. A war like this can never end. Which is awful experience if you are on the receiving end of the war, but it's not helping in making diplomacy richer even if not.
I don't mind adding the feature, but the immediate loss of the alliance on refusal sounds unacceptable for me. The AI is already not required to do the DoW for other AI allies (and they'll never break a peace treaty for it) and it works way better that way. They are required to to it if the player asks, though, but they can at least ask for money and refuse if they don't get it. The player wouldn't even have that option.
December 16th, 2015, 06:57
Posts: 10,497
Threads: 395
Joined: Aug 2015
I managed to make the function work.
We got very very lucky, it wouldn't have been possible if there wasn't an unused event with a "yes/no" question attached, due to space problems, but there was one!
Event 32h, "I pay you X for a peace treaty" was unused, as the game implemented the gold as a secondary offer inside the normal peace treaty request. The peace offer that starts with paying gold right away was unused.
I replaced this with the declaration of war request.
Currently, you do lose the alliance if you refuse, and you obviously declare war on the target if you accept.
However, it wasn't meant as an absolute must declare war immediately by the developers, unlike in AI to AI diplomacy. In AI to player, the (not functional) trigger for the event had a 10% chance included.
I believe, keeping the penalty of losing the alliance is acceptable, if and only if, the chance of the request coming up is low.
I would still prefer a simple loss of relationship points instead, but doubt there is space to code that.
I'll see what I can do. Even the refusal of breaking an alliance with that target has a less severe penalty than immediately losing the alliance, so a declaration of war request should be the same.
December 16th, 2015, 08:14
Posts: 10,497
Threads: 395
Joined: Aug 2015
Done, files up in the raid topic.
December 16th, 2015, 10:17
(This post was last modified: December 16th, 2015, 10:20 by Tiltowait.)
Posts: 488
Threads: 51
Joined: Apr 2012
(December 16th, 2015, 05:09)Seravy Wrote: True, but think about the gameplay indications.
Let's say you accept and both of you are at a war with the enemy.
Then the enemy wants to make peace with you.
If you say yes, your ally will ask you to start war again and you have to break the peace treaty (fortunately the consequences of this seems to be unimplemented).
I don't think this is necessarily so. It's not the sort of thing that needs to be checked every turn. But if 20-30 turns go by and your ally is still at war, then I'm sure they'll eventually notice and say, "hey, stop loafing and get back to work over there!" Do you actually click "agree to declare war" and then the swords icon appears? AFAIK there's no way to do that other than sneak attack.
Refusing a request for aid seems like immediate grounds for calling the alliance an thing of the past. Would Rohan and Gonder still be considered allies, if Rohan had not answered Gondor's call? Maybe it should downgrade to Wizard's Pact instead or something.
If it wrecks the gameplay then drop it, but if it makes things more interesting, then do it.
December 16th, 2015, 11:05
Posts: 10,497
Threads: 395
Joined: Aug 2015
(December 16th, 2015, 10:17)Tiltowait Wrote: (December 16th, 2015, 05:09)Seravy Wrote: True, but think about the gameplay indications.
Let's say you accept and both of you are at a war with the enemy.
Then the enemy wants to make peace with you.
If you say yes, your ally will ask you to start war again and you have to break the peace treaty (fortunately the consequences of this seems to be unimplemented).
I don't think this is necessarily so. It's not the sort of thing that needs to be checked every turn. But if 20-30 turns go by and your ally is still at war, then I'm sure they'll eventually notice and say, "hey, stop loafing and get back to work over there!" Do you actually click "agree to declare war" and then the swords icon appears? AFAIK there's no way to do that other than sneak attack.
Refusing a request for aid seems like immediate grounds for calling the alliance an thing of the past. Would Rohan and Gonder still be considered allies, if Rohan had not answered Gondor's call? Maybe it should downgrade to Wizard's Pact instead or something.
If it wrecks the gameplay then drop it, but if it makes things more interesting, then do it.
Fortunately, it wasn't an every turn thing. The same between AI was every turn and did make AI peace impossible, but I already made that use the chance based one instead, and observe peace treaties.
I've set it up to be a 1/40 chance for the request (original was 1/10) and it can only trigger on turns when there was nothing else.
Downgrading to wizard's pact would be good but it does not really penalize the player for refusing (unless they are actively hunting lairs in their territory) and is a boring solution. You face no risk whatsoever, you upgrade to Alliance whenever possible, and if a request comes, refuse and are still safe, and can upgrade to Alliance either right away, or very soon after.
I've decided to go with a -50 diplomatic point penalty, which cannot be altered by any modifier.
This solution is better because it does not take out the decision from the hand of the AI. If the player has 3 times stronger forces than themselves, breaking the alliance would be a suicide for them. Likewise, if they are peaceful, they should be interested in keeping the Alliance to ensure no accidental war breaks out. However, if they are expansionist and the player is weak, they will proceed to break the treaty soon if the relation level isn't enough to offset the effect. It's not an obvious decision because an ally that does nothing is still better than someone who can attack you whenever they want to. Especially during war with someone else.
At the same time, this provides the player with the option to give the AI money or spells as a tribute and help in the war indirectly, which can negate to DP loss.
Breaking the treaty comes with all sorts of nasty side effects, most importantly the AI not letting the player talk to them to repair the situation.
By the way, when the player asks the AI to DoW and they are allies, although the AI cannot outright say no, they can say "pay X or no". Even if the player does not have X gold, in which case it's an automatic refusal. In both cases the player can decide if they want to keep the Alliance going or not, and I don't want to take this choice away from the AI either.
We can keep this optional, but I think it improves the game a lot, and adds one more situation where offering tributes can be an important, useful thing to do. And the player better does so immediately, or they risk being asked again and losing another 50 points, in which case keeping the alliance will be quite hard if at all possible. There is no time limit, if you say no, you might get asked for it again next turn, at the same 1/40 chance.
Also, there is no "Sure I will but give me another 5 turns" answer. There are plenty of situations when you do want to go for the war but doing so immediately is not an option, for example if the target has a large stack near your capital and you need to fill it with defenders...or need 3 more turns to reach their capital with your forces for a surprise attack.
If you only lose 50 DP, unless extremely unlucky, you will have the time to launch the surprise attack, and if won, gain back the lost points (well some of them at least) for banishing the enemy.
|