Project

General

Profile

Actions

Feature #614

closed

Tile relationship requirement

Added by Alina Lenk 7 months ago. Updated 7 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
General
Target version:
Start date:
05/13/2024
Due date:
% Done:

0%

Estimated time:

Description

Add new requirement type "TileRel" that checks relative placement of target tile and other tile (initially mostly for action enablers and #588). Initial simple values should be "Same Region" at tile/c/adjacent range (the other tile's continent/ocean is the same as that of some tile in the range), and "Only Other Region" at c/adjacent range (the other tile's continent/ocean is the only one in the range other than that of the target tile).


Files


Related issues 4 (0 open4 closed)

Blocked by Feature #613: requirements: Make other_player an entire req_contextClosedAlina Lenk05/13/2024

Actions
Blocks Feature #588: Unhardcode tile claimability rulesClosedAlina Lenk05/11/2024

Actions
Blocks Feature #654: TileRel requirement "Region Surrounded"ClosedAlina Lenk05/20/2024

Actions
Blocks Feature #678: TileRel requirement "Same Terrain Class"ClosedAlina Lenk05/24/2024

Actions
Actions #1

Updated by Alina Lenk 7 months ago

  • Blocked by Feature #613: requirements: Make other_player an entire req_context added
Actions #2

Updated by Marko Lindqvist 7 months ago

I see use-cases for generic "max distance between tiles" requirement type (e.g. trade route length). Unfortunately it couldn't distinguish between adjacent and cadjacent (both are distance 1), nor could it tell if the tiles are on the same continent.

Actions #3

Updated by Alina Lenk 7 months ago

Marko Lindqvist wrote in #note-2:

Unfortunately it couldn't distinguish between adjacent and cadjacent (both are distance 1)

Could do that with a "max squared distance" requirement; 0-1-2 would be tile-cadjacent-adjacent. That would leave just continent-related requirements (the simple "same continent" as well as the extra stuff required for border claiming logic) for a more specialized type. Yeah, that is a lot more versatile than what I was gonna do here.

Actions #4

Updated by Alina Lenk 7 months ago

Split max (squared) distance ~> Feature #616: MaxDistanceSq requirement

Actions #5

Updated by Alina Lenk 7 months ago

  • Blocks Feature #588: Unhardcode tile claimability rules added
Actions #6

Updated by Alina Lenk 7 months ago

  • Description updated (diff)

Given that the "same tile"-related stuff is now handled by #616, I'm reframing this to be about the things that can be directly implemented with information already available.

Actions #7

Updated by Alina Lenk 7 months ago

  • Blocks Feature #654: TileRel requirement "Region Surrounded" added
Actions #8

Updated by Alina Lenk 7 months ago

Patch depends on #602.

Actions #9

Updated by Alina Lenk 7 months ago

Updated patch to use #656 instead of using raw adjc_dirlist_iterate. Still depends on #602.

Actions #10

Updated by Alina Lenk 7 months ago

Updated patch: Minor fixes (indentation, strings that weren't marked for translation).

Actions #11

Updated by Alina Lenk 7 months ago

Updated patch: Added are_requirements_contradictions() code.

Actions #12

Updated by Alina Lenk 7 months ago

  • Blocks Feature #678: TileRel requirement "Same Terrain Class" added
Actions #13

Updated by Alina Lenk 7 months ago

Rebased patch on top of #696. Also sorted the tile rel types.

Actions #14

Updated by Alina Lenk 7 months ago

  • Status changed from In Review to Closed
Actions

Also available in: Atom PDF