Compare commits

...

10 Commits

Author SHA1 Message Date
NewSoupVi
3678d78cda space 2024-09-12 23:00:53 +02:00
NewSoupVi
8e3877f72f Update advanced_settings_en.md 2024-09-12 15:23:21 +02:00
NewSoupVi
b86e24c2df Update advanced_settings_en.md 2024-09-12 15:19:41 +02:00
NewSoupVi
ce862a67c7 Update advanced_settings_en.md 2024-09-12 15:18:58 +02:00
NewSoupVi
7d36c15ca0 Update BaseClasses.py 2024-09-12 15:13:09 +02:00
NewSoupVi
69245cb501 Docstrings 2024-09-12 15:12:14 +02:00
NewSoupVi
ca2306f54f Update Fill.py 2024-09-12 15:09:18 +02:00
NewSoupVi
785b405184 Update world api.md 2024-09-12 15:07:50 +02:00
NewSoupVi
44a0c7634d Update network protocol.md 2024-09-12 14:34:51 +02:00
NewSoupVi
793817957d Core: Reword item classification definitions to allow for progression + useful 2024-09-12 14:30:18 +02:00
5 changed files with 26 additions and 12 deletions

View File

@@ -1204,13 +1204,26 @@ class Location:
class ItemClassification(IntFlag):
filler = 0b0000 # aka trash, as in filler items like ammo, currency etc,
progression = 0b0001 # Item that is logically relevant
useful = 0b0010 # Item that is generally quite useful, but not required for anything logical
trap = 0b0100 # detrimental item
skip_balancing = 0b1000 # should technically never occur on its own
# Item that is logically relevant, but progression balancing should not touch.
# Typically currency or other counted items.
filler = 0b0000
""" aka trash, as in filler items like ammo, currency etc """
progression = 0b0001
""" Item that is logically relevant.
Protects this item from being placed on excluded or unreachable locations. """
useful = 0b0010
""" Item that is especially useful.
Protects this item from being placed on excluded or unreachable locations.
When combined with another flag like "progression", it means "an especially useful progression item". """
trap = 0b0100
""" Item that is detrimental in some way. """
skip_balancing = 0b1000
""" should technically never occur on its own
Item that is logically relevant, but progression balancing should not touch.
Typically currency or other counted items. """
progression_skip_balancing = 0b1001 # only progression gets balanced
def as_flag(self) -> int:

View File

@@ -529,7 +529,7 @@ def distribute_items_restrictive(multiworld: MultiWorld,
if excludedlocations:
raise FillError(
f"Not enough filler items for excluded locations. "
f"There are {len(excludedlocations)} more excluded locations than filler or trap items.",
f"There are {len(excludedlocations)} more excluded locations than excludable items.",
multiworld=multiworld,
)

View File

@@ -510,7 +510,7 @@ In JSON this may look like:
| ----- | ----- |
| 0 | Nothing special about this item |
| 0b001 | If set, indicates the item can unlock logical advancement |
| 0b010 | If set, indicates the item is important but not in a way that unlocks advancement |
| 0b010 | If set, indicates the item is especially useful |
| 0b100 | If set, indicates the item is a trap |
### JSONMessagePart

View File

@@ -248,7 +248,8 @@ will all have the same ID. Name must not be numeric (must contain at least 1 let
Other classifications include:
* `filler`: a regular item or trash item
* `useful`: generally quite useful, but not required for anything logical. Cannot be placed on excluded locations
* `useful`: item that is especially useful. Cannot be placed on excluded or unreachable locations. When combined with
another flag like "progression", it means "an especially useful progression item".
* `trap`: negative impact on the player
* `skip_balancing`: denotes that an item should not be moved to an earlier sphere for the purpose of balancing (to be
combined with `progression`; see below)

View File

@@ -131,8 +131,8 @@ guide: [Archipelago Plando Guide](/tutorial/Archipelago/plando/en)
the location without using any hint points.
* `start_location_hints` is the same as `start_hints` but for locations, allowing you to hint for the item contained
there without using any hint points.
* `exclude_locations` lets you define any locations that you don't want to do and forces a filler or trap item which
isn't necessary for progression into these locations.
* `exclude_locations` lets you define any locations that you don't want to do and prevents items classified as
"progression" or "useful" from being placed on them.
* `priority_locations` lets you define any locations that you want to do and forces a progression item into these
locations.
* `item_links` allows players to link their items into a group with the same item link name and game. The items declared