Skip to content

Commit

Permalink
Merge branch 'main' into mlss
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesbrq authored May 6, 2024
2 parents 54f8ab1 + 2aa3ef3 commit 99e3031
Show file tree
Hide file tree
Showing 16 changed files with 1,023 additions and 489 deletions.
1 change: 1 addition & 0 deletions WebHostLib/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ def host_room(room: UUID):
if cmd:
Command(room=room, commandtext=cmd)
commit()
return redirect(url_for("host_room", room=room.id))

now = datetime.datetime.utcnow()
# indicate that the page should reload to get the assigned port
Expand Down
32 changes: 32 additions & 0 deletions worlds/celeste64/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,38 @@
# Celeste 64 - Changelog


## v1.2

### Features:

- New optional Location Checks
- Friendsanity
- Signsanity
- Carsanity
- Move Shuffle
- Basic movement abilities can be shuffled into the item pool
- Ground Dash
- Air Dash
- Skid Jump
- Climb
- Logic Difficulty
- Completely overhauled logic system
- Standard or Hard logic difficulty can be chosen
- Badeline Chasers
- Opt-in options which cause Badelines to start following you as you play, which will kill on contact
- These can be set to spawn based on either:
- The number of locations you've checked
- The number of Strawberry items you've received
- How fast they follow behind you can be specified

### Quality of Life:

- The maximum number of Strawberries in the item pool can be directly set
- The required amount of Strawberries is now set via percentage
- All items beyond the amount placed in the item pool will be `Raspberry` items, which have no effect
- Any unique items placed into the `start_inventory` will not be placed into the item pool


## v1.1 - First Stable Release

### Features:
Expand Down
60 changes: 23 additions & 37 deletions worlds/celeste64/Items.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,43 +16,29 @@ class Celeste64ItemData(NamedTuple):
type: ItemClassification = ItemClassification.filler


item_data_table: Dict[str, Celeste64ItemData] = {
ItemName.strawberry: Celeste64ItemData(
code = celeste_64_base_id + 0,
type=ItemClassification.progression_skip_balancing,
),
ItemName.dash_refill: Celeste64ItemData(
code = celeste_64_base_id + 1,
type=ItemClassification.progression,
),
ItemName.double_dash_refill: Celeste64ItemData(
code = celeste_64_base_id + 2,
type=ItemClassification.progression,
),
ItemName.feather: Celeste64ItemData(
code = celeste_64_base_id + 3,
type=ItemClassification.progression,
),
ItemName.coin: Celeste64ItemData(
code = celeste_64_base_id + 4,
type=ItemClassification.progression,
),
ItemName.cassette: Celeste64ItemData(
code = celeste_64_base_id + 5,
type=ItemClassification.progression,
),
ItemName.traffic_block: Celeste64ItemData(
code = celeste_64_base_id + 6,
type=ItemClassification.progression,
),
ItemName.spring: Celeste64ItemData(
code = celeste_64_base_id + 7,
type=ItemClassification.progression,
),
ItemName.breakables: Celeste64ItemData(
code = celeste_64_base_id + 8,
type=ItemClassification.progression,
)
collectable_item_data_table: Dict[str, Celeste64ItemData] = {
ItemName.strawberry: Celeste64ItemData(celeste_64_base_id + 0x0, ItemClassification.progression_skip_balancing),
ItemName.raspberry: Celeste64ItemData(celeste_64_base_id + 0x9, ItemClassification.filler),
}

unlockable_item_data_table: Dict[str, Celeste64ItemData] = {
ItemName.dash_refill: Celeste64ItemData(celeste_64_base_id + 0x1, ItemClassification.progression),
ItemName.double_dash_refill: Celeste64ItemData(celeste_64_base_id + 0x2, ItemClassification.progression),
ItemName.feather: Celeste64ItemData(celeste_64_base_id + 0x3, ItemClassification.progression),
ItemName.coin: Celeste64ItemData(celeste_64_base_id + 0x4, ItemClassification.progression),
ItemName.cassette: Celeste64ItemData(celeste_64_base_id + 0x5, ItemClassification.progression),
ItemName.traffic_block: Celeste64ItemData(celeste_64_base_id + 0x6, ItemClassification.progression),
ItemName.spring: Celeste64ItemData(celeste_64_base_id + 0x7, ItemClassification.progression),
ItemName.breakables: Celeste64ItemData(celeste_64_base_id + 0x8, ItemClassification.progression),
}

move_item_data_table: Dict[str, Celeste64ItemData] = {
ItemName.ground_dash: Celeste64ItemData(celeste_64_base_id + 0xA, ItemClassification.progression),
ItemName.air_dash: Celeste64ItemData(celeste_64_base_id + 0xB, ItemClassification.progression),
ItemName.skid_jump: Celeste64ItemData(celeste_64_base_id + 0xC, ItemClassification.progression),
ItemName.climb: Celeste64ItemData(celeste_64_base_id + 0xD, ItemClassification.progression),
}

item_data_table: Dict[str, Celeste64ItemData] = {**collectable_item_data_table, **unlockable_item_data_table, **move_item_data_table}

item_table = {name: data.code for name, data in item_data_table.items() if data.code is not None}
182 changes: 61 additions & 121 deletions worlds/celeste64/Locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,127 +16,67 @@ class Celeste64LocationData(NamedTuple):
address: Optional[int] = None


location_data_table: Dict[str, Celeste64LocationData] = {
LocationName.strawberry_1 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 0,
),
LocationName.strawberry_2 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 1,
),
LocationName.strawberry_3 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 2,
),
LocationName.strawberry_4 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 3,
),
LocationName.strawberry_5 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 4,
),
LocationName.strawberry_6 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 5,
),
LocationName.strawberry_7 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 6,
),
LocationName.strawberry_8 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 7,
),
LocationName.strawberry_9 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 8,
),
LocationName.strawberry_10 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 9,
),
LocationName.strawberry_11 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 10,
),
LocationName.strawberry_12 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 11,
),
LocationName.strawberry_13 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 12,
),
LocationName.strawberry_14 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 13,
),
LocationName.strawberry_15 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 14,
),
LocationName.strawberry_16 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 15,
),
LocationName.strawberry_17 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 16,
),
LocationName.strawberry_18 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 17,
),
LocationName.strawberry_19 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 18,
),
LocationName.strawberry_20 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 19,
),
LocationName.strawberry_21 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 20,
),
LocationName.strawberry_22 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 21,
),
LocationName.strawberry_23 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 22,
),
LocationName.strawberry_24 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 23,
),
LocationName.strawberry_25 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 24,
),
LocationName.strawberry_26 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 25,
),
LocationName.strawberry_27 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 26,
),
LocationName.strawberry_28 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 27,
),
LocationName.strawberry_29 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 28,
),
LocationName.strawberry_30 : Celeste64LocationData(
region = "Forsaken City",
address = celeste_64_base_id + 29,
)
strawberry_location_data_table: Dict[str, Celeste64LocationData] = {
LocationName.strawberry_1: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x00),
LocationName.strawberry_2: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x01),
LocationName.strawberry_3: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x02),
LocationName.strawberry_4: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x03),
LocationName.strawberry_5: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x04),
LocationName.strawberry_6: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x05),
LocationName.strawberry_7: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x06),
LocationName.strawberry_8: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x07),
LocationName.strawberry_9: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x08),
LocationName.strawberry_10: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x09),
LocationName.strawberry_11: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x0A),
LocationName.strawberry_12: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x0B),
LocationName.strawberry_13: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x0C),
LocationName.strawberry_14: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x0D),
LocationName.strawberry_15: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x0E),
LocationName.strawberry_16: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x0F),
LocationName.strawberry_17: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x10),
LocationName.strawberry_18: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x11),
LocationName.strawberry_19: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x12),
LocationName.strawberry_20: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x13),
LocationName.strawberry_21: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x14),
LocationName.strawberry_22: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x15),
LocationName.strawberry_23: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x16),
LocationName.strawberry_24: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x17),
LocationName.strawberry_25: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x18),
LocationName.strawberry_26: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x19),
LocationName.strawberry_27: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x1A),
LocationName.strawberry_28: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x1B),
LocationName.strawberry_29: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x1C),
LocationName.strawberry_30: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x1D),
}

friend_location_data_table: Dict[str, Celeste64LocationData] = {
LocationName.granny_1: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x00),
LocationName.granny_2: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x01),
LocationName.granny_3: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x02),
LocationName.theo_1: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x03),
LocationName.theo_2: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x04),
LocationName.theo_3: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x05),
LocationName.badeline_1: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x06),
LocationName.badeline_2: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x07),
LocationName.badeline_3: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x100 + 0x08),
}

sign_location_data_table: Dict[str, Celeste64LocationData] = {
LocationName.sign_1: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x200 + 0x00),
LocationName.sign_2: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x200 + 0x01),
LocationName.sign_3: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x200 + 0x02),
LocationName.sign_4: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x200 + 0x03),
LocationName.sign_5: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x200 + 0x04),
}

car_location_data_table: Dict[str, Celeste64LocationData] = {
LocationName.car_1: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x300 + 0x00),
LocationName.car_2: Celeste64LocationData("Forsaken City", celeste_64_base_id + 0x300 + 0x01),
}

location_data_table: Dict[str, Celeste64LocationData] = {**strawberry_location_data_table,
**friend_location_data_table,
**sign_location_data_table,
**car_location_data_table}

location_table = {name: data.address for name, data in location_data_table.items() if data.address is not None}
6 changes: 6 additions & 0 deletions worlds/celeste64/Names/ItemName.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
strawberry = "Strawberry"
raspberry = "Raspberry"

dash_refill = "Dash Refills"
double_dash_refill = "Double Dash Refills"
Expand All @@ -9,3 +10,8 @@
traffic_block = "Traffic Blocks"
spring = "Springs"
breakables = "Breakable Blocks"

ground_dash = "Ground Dash"
air_dash = "Air Dash"
skid_jump = "Skid Jump"
climb = "Climb"
22 changes: 22 additions & 0 deletions worlds/celeste64/Names/LocationName.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,25 @@
strawberry_28 = "Feather Arches Cassette Strawberry"
strawberry_29 = "North-East Tower Cassette Strawberry"
strawberry_30 = "Badeline Cassette Strawberry"

# Friend Locations
granny_1 = "Granny Conversation 1"
granny_2 = "Granny Conversation 2"
granny_3 = "Granny Conversation 3"
theo_1 = "Theo Conversation 1"
theo_2 = "Theo Conversation 2"
theo_3 = "Theo Conversation 3"
badeline_1 = "Badeline Conversation 1"
badeline_2 = "Badeline Conversation 2"
badeline_3 = "Badeline Conversation 3"

# Sign Locations
sign_1 = "Camera Sign"
sign_2 = "Skid Jump Sign"
sign_3 = "Dash Jump Sign"
sign_4 = "Lonely Sign"
sign_5 = "Credits Sign"

# Car Locations
car_1 = "Intro Car"
car_2 = "Secret Car"
Loading

0 comments on commit 99e3031

Please sign in to comment.