Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Feature #873295

Casus_Belli_Success for all actions

Added by Sveinung Kvilhaugsvik about 2 years ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Category:
-
Sprint/Milestone:
Start date:
Due date:
% Done:

0%

Estimated time:

the_easy_part.patch (4.82 KB) the_easy_part.patch Sveinung Kvilhaugsvik, 2020-05-13 10:15 PM

Related issues

Related to Freeciv - Feature #874197: Make Casus_Belli_Success support pillageClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Feature #874199: sandbox: make "Pillage" casus belliClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Bug #874200: Documentation for Casus_Belli_Success and for Casus_Belli_Caught can give the impression that all actions are supportedClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Feature #874201: Non destructive unit transfer for bribe and captureNew

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Feature #875465: Post activity Casus BelliClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Freeciv - Feature #875910: dai_incident(): differentiate action reactionClosed

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Blocks Freeciv - Task #939772: S3_2 datafile format freeze (d3f)New

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Subject changed from Casus_Belli_Success for all actions to Casus_Belli_Success for all (not unit stack targeted) actions

#2 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Subject changed from Casus_Belli_Success for all (not unit stack targeted) actions to Casus_Belli_Success for all actions

See Lexxie L's question in Feature #870905

Can probably be auto-added to all non stack targeted actions without having to mess with each action performer function.

Auto adding Casus_Belli_Caught is more difficult.

#3 Updated by Sveinung Kvilhaugsvik about 2 years ago

This is how far I typically get when I try to implement this.

TODO:
  • go over each unit stack targeted action and check that they all call action_consequence_success()
  • go over each action_consequence_success() in non unit stack targeted actions, carefully read them to make sure that removing them won't cause a subtle rule change and that the messages won't be broken and remove them.
  • update documentation
  • test each action performer function that had its action_consequence_success() call removed and at least one action of each target kind with Casus_Belli_Success.

#4 Updated by Lexxie L about 2 years ago

OK there is "the easy part" patch here.

Is there a hard part? Well I see a TODO list

I'm VERY interested in this feature because so many complaints we get over unrealistic/stupid casus belli. For example, "I'm a Republic with a Senate, now I have to allow this Monarchy I made peace with to come in and pillage all my roads and mines, and my stupid Senate won't let me do anything about it!" We know very well, in real life if we went to ancient Rome and started pillaging their things, the Senate would be shouting and demanding for legions to come kill us.

I'm interested to see an example of how this is programmed in the ruleset, that it causes casus belli just for the nation who is getting their tile pillaged.

#5 Updated by Sveinung Kvilhaugsvik about 2 years ago

Lexxie L wrote:

Is there a hard part? Well I see a TODO list

The hard (time consuming) part is going over the current casus belli on success actions and fix the cases were the easy part would cause bugs or unintentional rule changes.

One example is that bribe unit and capture units use a function that deletes the original target unit and creates a new one. Its deletion has side effects like updating loss statistics, cargo saving, transport unloading, emission of the unit_lost signal and player death if the unit is GamleLoss.

I have started and then posponed this feature multiple times over the years. Not sure if it was worth the time investment. Your feed back has caused me to increase its priority.

I'm VERY interested in this feature because so many complaints we get over unrealistic/stupid casus belli. For example, "I'm a Republic with a Senate, now I have to allow this Monarchy I made peace with to come in and pillage all my roads and mines, and my stupid Senate won't let me do anything about it!"

A work around to fix this specific case (without adding casus belli to all actions) could be to add a action_consequence_success() call to the pillage action. Care would have to be taken that it is triggered when the pillage order is given as an activity.

#6 Updated by Sveinung Kvilhaugsvik about 2 years ago

If activity set via an actvity order in a unit orders packet, an activity set via the activity packet and activities set via the action packet still use different code paths when this is done the_easy_part.patch needs additions for casus belli when the activity is set via the activity packet or via an activity order in unit orders.

#7 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Related to Feature #874197: Make Casus_Belli_Success support pillage added

#8 Updated by Sveinung Kvilhaugsvik about 2 years ago

Sveinung Kvilhaugsvik wrote:

A work around to fix this specific case (without adding casus belli to all actions) could be to add a action_consequence_success() call to the pillage action. Care would have to be taken that it is triggered when the pillage order is given as an activity.

Now Feature #874197

#9 Updated by Sveinung Kvilhaugsvik about 2 years ago

#10 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Related to Bug #874200: Documentation for Casus_Belli_Success and for Casus_Belli_Caught can give the impression that all actions are supported added

#11 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Related to Feature #874201: Non destructive unit transfer for bribe and capture added

#12 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Blocks Task #673656: S3_1 datafile format freeze (d3f) added

#13 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Assignee set to Sveinung Kvilhaugsvik

the_easy_part.patch needs additions for casus belli when the activity is set via the activity packet or via an activity order in unit orders.

I'll probably delay this until we are at the point were setting enabler controlled activities via non action mechanisms (like the activity unit order and PACKET_UNIT_CHANGE_ACTIVITY) has been replaced by action mechanisms.

#14 Updated by Sveinung Kvilhaugsvik about 2 years ago

#15 Updated by Sveinung Kvilhaugsvik about 2 years ago

  • Related to Feature #875910: dai_incident(): differentiate action reaction added

#16 Updated by Marko Lindqvist 7 months ago

It's over 18 months since last activity in this ticket, and this is one of the remaining S3_1 d3f blockers. Is there such a breakage that it makes it impossible to postpone this to 3.2? If yes, how can we make something suitable for 3.1 soon? Other thoughts?

#17 Updated by Marko Lindqvist 5 months ago

  • Sprint/Milestone set to 3.2.0

Another two months + some days passed, with no comments. Postponing.

#18 Updated by Marko Lindqvist 5 months ago

  • Blocks Task #939772: S3_2 datafile format freeze (d3f) added

#19 Updated by Marko Lindqvist 5 months ago

  • Blocks deleted (Task #673656: S3_1 datafile format freeze (d3f))

Also available in: Atom PDF