Compare commits

..

1 Commits

Author SHA1 Message Date
NewSoupVi
d729b00b22 CODEOWNERS: Move OoT to "unmaintained"
https://discord.com/channels/731205301247803413/1214608557077700720/1253206955879694336

Espeon might come back, but still, this world acts as unmaintained right now, so we should make this change, and then change it back if/when he's back.

@espeon65536 Just so you're aware of this change as well
2024-09-06 18:35:50 +02:00
6 changed files with 2147 additions and 942 deletions

1
.gitattributes vendored
View File

@@ -1,2 +1 @@
worlds/blasphemous/region_data.py linguist-generated=true
worlds/yachtdice/YachtWeights.py linguist-generated=true

View File

@@ -69,7 +69,7 @@
</tbody>
</table>
{% else %}
You have not generated any seeds yet!
You have no generated any seeds yet!
{% endif %}
</div>
</div>

View File

@@ -145,7 +145,7 @@ class EntityHuntPicker:
remaining_entities, remaining_entity_weights = [], []
for area, eligible_entities in self.ELIGIBLE_ENTITIES_PER_AREA.items():
for panel in sorted(eligible_entities - self.HUNT_ENTITIES):
for panel in eligible_entities - self.HUNT_ENTITIES:
remaining_entities.append(panel)
remaining_entity_weights.append(allowance_per_area[area])

View File

@@ -29,7 +29,7 @@ class Category:
mean_score = 0
for key, value in yacht_weights[self.name, min(8, num_dice), min(8, num_rolls)].items():
mean_score += key * value / 100000
return mean_score
return mean_score * self.quantity
class ListState:

File diff suppressed because it is too large Load Diff

View File

@@ -56,7 +56,7 @@ class YachtDiceWorld(World):
item_name_groups = item_groups
ap_world_version = "2.1.2"
ap_world_version = "2.1.1"
def _get_yachtdice_data(self):
return {
@@ -190,6 +190,7 @@ class YachtDiceWorld(World):
if self.frags_per_roll == 1:
self.itempool += ["Roll"] * num_of_rolls_to_add # minus one because one is in start inventory
else:
self.itempool.append("Roll") # always add a full roll to make generation easier (will be early)
self.itempool += ["Roll Fragment"] * (self.frags_per_roll * num_of_rolls_to_add)
already_items = len(self.itempool)
@@ -230,10 +231,13 @@ class YachtDiceWorld(World):
weights["Dice"] = weights["Dice"] / 5 * self.frags_per_dice
weights["Roll"] = weights["Roll"] / 5 * self.frags_per_roll
extra_points_added = [0] # make it a mutible type so we can change the value in the function
step_score_multipliers_added = [0]
extra_points_added = 0
multipliers_added = 0
items_added = 0
def get_item_to_add(weights, extra_points_added, multipliers_added, items_added):
items_added += 1
def get_item_to_add(weights, extra_points_added, step_score_multipliers_added):
all_items = self.itempool + self.precollected
dice_fragments_in_pool = all_items.count("Dice") * self.frags_per_dice + all_items.count("Dice Fragment")
if dice_fragments_in_pool + 1 >= 9 * self.frags_per_dice:
@@ -242,18 +246,21 @@ class YachtDiceWorld(World):
if roll_fragments_in_pool + 1 >= 6 * self.frags_per_roll:
weights["Roll"] = 0 # don't allow >= 6 rolls
# Don't allow too many extra points
if extra_points_added[0] > 400:
weights["Points"] = 0
if step_score_multipliers_added[0] > 10:
# Don't allow too many multipliers
if multipliers_added > 50:
weights["Fixed Score Multiplier"] = 0
weights["Step Score Multiplier"] = 0
# Don't allow too many extra points
if extra_points_added > 300:
weights["Points"] = 0
# if all weights are zero, allow to add fixed score multiplier, double category, points.
if sum(weights.values()) == 0:
weights["Fixed Score Multiplier"] = 1
if multipliers_added <= 50:
weights["Fixed Score Multiplier"] = 1
weights["Double category"] = 1
if extra_points_added[0] <= 400:
if extra_points_added <= 300:
weights["Points"] = 1
# Next, add the appropriate item. We'll slightly alter weights to avoid too many of the same item
@@ -267,10 +274,11 @@ class YachtDiceWorld(World):
return "Roll" if self.frags_per_roll == 1 else "Roll Fragment"
elif which_item_to_add == "Fixed Score Multiplier":
weights["Fixed Score Multiplier"] /= 1.05
multipliers_added += 1
return "Fixed Score Multiplier"
elif which_item_to_add == "Step Score Multiplier":
weights["Step Score Multiplier"] /= 1.1
step_score_multipliers_added[0] += 1
multipliers_added += 1
return "Step Score Multiplier"
elif which_item_to_add == "Double category":
# Below entries are the weights to add each category.
@@ -295,15 +303,15 @@ class YachtDiceWorld(World):
choice = self.random.choices(list(probs.keys()), weights=list(probs.values()))[0]
if choice == "1 Point":
weights["Points"] /= 1.01
extra_points_added[0] += 1
extra_points_added += 1
return "1 Point"
elif choice == "10 Points":
weights["Points"] /= 1.1
extra_points_added[0] += 10
extra_points_added += 10
return "10 Points"
elif choice == "100 Points":
weights["Points"] /= 2
extra_points_added[0] += 100
extra_points_added += 100
return "100 Points"
else:
raise Exception("Unknown point value (Yacht Dice)")
@@ -312,7 +320,7 @@ class YachtDiceWorld(World):
# adding 17 items as a start seems like the smartest way to get close to 1000 points
for _ in range(17):
self.itempool.append(get_item_to_add(weights, extra_points_added, step_score_multipliers_added))
self.itempool.append(get_item_to_add(weights, extra_points_added, multipliers_added, items_added))
score_in_logic = dice_simulation_fill_pool(
self.itempool + self.precollected,
@@ -340,7 +348,7 @@ class YachtDiceWorld(World):
else:
# Keep adding items until a score of 1000 is in logic
while score_in_logic < 1000:
item_to_add = get_item_to_add(weights, extra_points_added, step_score_multipliers_added)
item_to_add = get_item_to_add(weights, extra_points_added, multipliers_added, items_added)
self.itempool.append(item_to_add)
if item_to_add == "1 Point":
score_in_logic += 1