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...

Bug #874937

Unlimited incoming airlifts fail to check that airlift is enabled

Added by Marko Lindqvist about 2 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Category:
General
Sprint/Milestone:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Comment by Lexxie L in Bug #874123:

For incoming airlifts, the unlimited setting nullifies the standard behaviour of needing a positive value for this effect:
i.e., for incoming cities, airlifts are enabled and absolutely unlimited, regardless of the value of this effect.


Related issues

Blocks Freeciv - Task #673656: S3_1 datafile format freeze (d3f)Closed

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

History

#1 Updated by Lexxie L about 2 years ago

Still don't know how to submit patches, or I would. Sorry...

The link to this commit from RhueOfL is provided below. This patch:
#1. fixes Bug #874937
#2. puts a new flag into the setting airliftingstyle for "Destination Divisor" which:
  1. if off, keeps everything identical to classic mechanics (except the bug is fixed of course)
  2. if set, then cities who are airlift-enabled will have their incoming airlift capacity augmented, proportionate to the population of their city, with the ratio being set by airliftdestdivisor (ALDD). e.g., if ALDD==1, a size 20 city would get 20 airlifts; if ALDD==2, it would get 10 airlifts, if ALDD=10, it would get 2 airlifts, etc.

Regarding feature #2, this solves an age-old very serious problem: airlift capacity of 1 being used up by either an incoming or outgoing airlift, it's much too limiting for the transportational issues on large multiplayer maps. But infinite capacity creates an OP situation of massive armies too easily teleporting to battle fronts, breaking any kind of balanced game of tactical integrity.

Apologies that the patched files also include changes to FCW client, one can simply ignore all the .js and .css files and take the .c and .h files.

Note: this patch has been running smoothly without issues for almost a year on FCW. It's great, we're never looking back!

#3 Updated by Marko Lindqvist about 2 years ago

Lexxie L wrote:

Still don't know how to submit patches

Yeah, it seems nobody has managed to update http://www.freeciv.org/wiki/How_to_Contribute since we migrated to git. I'll try to find time.

Meanwhile 'git help format-patch' might help you a bit.

#4 Updated by Marko Lindqvist about 2 years ago

  • Category set to General
  • Sprint/Milestone set to 3.1.0

- Supplied rulesets document that both ends need airlift capacity, but they do it in context of limited airlift (i.e., they don't disagree with unlimited airlift working without capacity in the dest city)

- Documentation about airliftingstyle server setting says that DEST_UNLIMITED does not need any airlift capacity, matching the implementation

- civ2 ruleset uses limited airlift, and thus its compatibility is not affected

-> it seems that it works as intended, and we should not touch it in stable (d3f) branches.

- I don't like how DEST_UNLIMITED is not symmetric with SRC_UNLIMITED in this respect. One checking only one of them will have wrong assumption about the other

- I've been informed that there are both rulesets that want current behavior and rulesets that would want behavior changed.

-> we should build ruleset controlled support for both in master

#5 Updated by Marko Lindqvist about 2 years ago

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

#6 Updated by Marko Lindqvist about 2 years ago

In stable branches one could try workaround of not using unlimited airlift, but to give very high value for the airlift effect. That should limit airlift between Airports only while allowing a lot of airlifts. The same capacity applies both to source and destination, so can't make src limited & destination unlimited that way.

#7 Updated by Sveinung Kvilhaugsvik about 2 years ago

Marko Lindqvist wrote:

-> we should build ruleset controlled support for both in master

Suggestion: Move Airlift (per city) to the ruleset as a counter. (See Feature #859061 and Feature #859052) Require at least one in the action enablers for "Airlift Unit". Rulesets can replace it with "Take Offs" and "Landings" counters, "Take Offs" and "Can Land At All" counters etc. ("Landings" would be decreased on a landing, "Can Land At All" would not.) I do have more details for this suggestion written down somewhere.

#8 Updated by Lexxie L about 2 years ago

ok there are rulesets who want some kind of airliftdestdivisor that makes capacity not static but earned by having a legitimate population correlating to more infrastructure, so i hope we don't abandon and punish the people who see and fix the problem again, by making them less compatible and in more tech debt

#9 Updated by Marko Lindqvist over 1 year ago

Sveinung Kvilhaugsvik wrote:

Marko Lindqvist wrote:

-> we should build ruleset controlled support for both in master

Suggestion: Move Airlift (per city) to the ruleset as a counter.

That sounds like a right to way to implement it, but will the counters work finish in time for 3.1?

#10 Updated by Marko Lindqvist over 1 year ago

Marko Lindqvist wrote:

Sveinung Kvilhaugsvik wrote:

Marko Lindqvist wrote:

-> we should build ruleset controlled support for both in master

Suggestion: Move Airlift (per city) to the ruleset as a counter.

That sounds like a right to way to implement it, but will the counters work finish in time for 3.1?

Counters won't be implemented for 3.1, so we need some other solution for this, or we need to postpone it.

#11 Updated by Marko Lindqvist over 1 year ago

Lexxie L wrote:

ok there are rulesets who want some kind of airliftdestdivisor that makes capacity not static but earned by having a legitimate population correlating to more infrastructure, so i hope we don't abandon and punish the people who see and fix the problem again, by making them less compatible and in more tech debt

It's not static even at the moment. You can adjust the airlift capacity by having multiple Airlift effects with different requirements. Don't know if one can create exactly what you want that way, though.

#12 Updated by Marko Lindqvist over 1 year ago

My proposal for a patch attached. It adds ruleset entries airlift_from_always_enabled and airlift_to_always_enabled to control this.
The defaults are equivalent to old hardcoded behavior.

#13 Updated by Sveinung Kvilhaugsvik over 1 year ago

Marko Lindqvist wrote:

My proposal for a patch attached. It adds ruleset entries airlift_from_always_enabled and airlift_to_always_enabled to control this.

I like your proposal. Should be easy to transform into counters after 3.1.

#14 Updated by Marko Lindqvist over 1 year ago

  • Status changed from Resolved to Closed
  • Assignee set to Marko Lindqvist

Also available in: Atom PDF