Update Raft for Final Chapter (#724)

This commit is contained in:
Sunny Bat 2022-07-05 19:37:08 -07:00 committed by GitHub
parent 7072c7bd45
commit ab2b635a77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 1080 additions and 666 deletions

View File

@ -8,5 +8,5 @@ lookup_id_to_name = {}
for item in location_table: for item in location_table:
lookup_id_to_name[item["id"]] = item["name"] lookup_id_to_name[item["id"]] = item["name"]
lookup_id_to_name[None] = "Tangaroa Next Frequency" lookup_id_to_name[None] = "Utopia Complete"
lookup_name_to_id = {name: id for id, name in lookup_id_to_name.items()} lookup_name_to_id = {name: id for id, name in lookup_id_to_name.items()}

View File

@ -37,6 +37,20 @@ class IslandFrequencyLocations(Choice):
option_anywhere = 3 option_anywhere = 3
default = 1 default = 1
class IslandGenerationDistance(Choice):
"""Sets how far away islands spawn from you when you input their coordinates into the Receiver."""
display_name = "Island distance"
option_quarter = 2
option_half = 4
option_vanilla = 8
option_double = 16
option_quadrouple = 32
default = 8
class ExpensiveResearch(Toggle):
"""Makes unlocking items in the Crafting Table consume the researched items."""
display_name = "Expensive research"
class ProgressiveItems(DefaultOnToggle): class ProgressiveItems(DefaultOnToggle):
"""Makes some items, like the Bow and Arrow, progressive rather than raw unlocks.""" """Makes some items, like the Bow and Arrow, progressive rather than raw unlocks."""
display_name = "Progressive items" display_name = "Progressive items"
@ -55,6 +69,8 @@ raft_options = {
"maximum_resource_pack_amount": MaximumResourcePackAmount, "maximum_resource_pack_amount": MaximumResourcePackAmount,
"duplicate_items": DuplicateItems, "duplicate_items": DuplicateItems,
"island_frequency_locations": IslandFrequencyLocations, "island_frequency_locations": IslandFrequencyLocations,
"island_generation_distance": IslandGenerationDistance,
"expensive_research": ExpensiveResearch,
"progressive_items": ProgressiveItems, "progressive_items": ProgressiveItems,
"big_island_early_crafting": BigIslandEarlyCrafting, "big_island_early_crafting": BigIslandEarlyCrafting,
"paddleboard_mode": PaddleboardMode "paddleboard_mode": PaddleboardMode

View File

@ -13,6 +13,9 @@ class RaftLogic(LogicMixin):
def raft_can_smelt_items(self, player): def raft_can_smelt_items(self, player):
return self.has("Smelter", player) return self.has("Smelter", player)
def raft_can_find_titanium(self, player):
return self.has("Metal detector", player)
def raft_can_craft_bolt(self, player): def raft_can_craft_bolt(self, player):
return self.raft_can_smelt_items(player) and self.has("Bolt", player) return self.raft_can_smelt_items(player) and self.has("Bolt", player)
@ -76,7 +79,7 @@ class RaftLogic(LogicMixin):
return self.raft_can_craft_battery(player) and self.raft_can_craft_reciever(player) and self.raft_can_craft_antenna(player) return self.raft_can_craft_battery(player) and self.raft_can_craft_reciever(player) and self.raft_can_craft_antenna(player)
def raft_can_drive(self, player): # The player can go wherever they want with the engine def raft_can_drive(self, player): # The player can go wherever they want with the engine
return self.raft_can_craft_engine(player) and self.raft_can_craft_steeringWheel(player) return (self.raft_can_craft_engine(player) and self.raft_can_craft_steeringWheel(player)) or self.raft_paddleboard_mode_enabled(player)
def raft_can_access_radio_tower(self, player): def raft_can_access_radio_tower(self, player):
return self.raft_can_navigate(player) return self.raft_can_navigate(player)
@ -92,24 +95,42 @@ class RaftLogic(LogicMixin):
def raft_can_access_balboa_island(self, player): def raft_can_access_balboa_island(self, player):
return (self.raft_can_complete_vasagatan(player) return (self.raft_can_complete_vasagatan(player)
and (self.raft_can_drive(player) or self.raft_paddleboard_mode_enabled(player)) and self.raft_can_drive(player)
and self.has("Balboa Island Frequency", player)) and self.has("Balboa Island Frequency", player))
def raft_can_complete_balboa_island(self, player): def raft_can_complete_balboa_island(self, player):
return self.raft_can_access_balboa_island(player) and self.raft_can_craft_machete(player) and self.raft_can_fire_bow(player) return self.raft_can_access_balboa_island(player) and self.raft_can_craft_machete(player)
def raft_can_access_caravan_island(self, player): def raft_can_access_caravan_island(self, player):
return self.raft_can_complete_balboa_island(player) and (self.raft_can_drive(player) or self.raft_paddleboard_mode_enabled(player)) and self.has("Caravan Island Frequency", player) return self.raft_can_complete_balboa_island(player) and self.raft_can_drive(player) and self.has("Caravan Island Frequency", player)
def raft_can_complete_caravan_island(self, player): def raft_can_complete_caravan_island(self, player):
return self.raft_can_access_caravan_island(player) and self.raft_can_craft_ziplineTool(player) return self.raft_can_access_caravan_island(player) and self.raft_can_craft_ziplineTool(player)
def raft_can_access_tangaroa(self, player): def raft_can_access_tangaroa(self, player):
return self.raft_can_complete_caravan_island(player) and (self.raft_can_drive(player) or self.raft_paddleboard_mode_enabled(player)) and self.has("Tangaroa Frequency", player) return self.raft_can_complete_caravan_island(player) and self.raft_can_drive(player) and self.has("Tangaroa Frequency", player)
def raft_can_complete_tangaroa(self, player): def raft_can_complete_tangaroa(self, player):
return self.raft_can_access_tangaroa(player) return self.raft_can_access_tangaroa(player)
def raft_can_access_varuna_point(self, player):
return self.raft_can_complete_tangaroa(player) and self.raft_can_drive(player) and self.has("Varuna Point Frequency", player)
def raft_can_complete_varuna_point(self, player):
return self.raft_can_access_varuna_point(player)
def raft_can_access_temperance(self, player):
return self.raft_can_complete_varuna_point(player) and self.raft_can_drive(player) and self.has("Temperance Frequency", player)
def raft_can_complete_temperance(self, player):
return self.raft_can_access_temperance(player)
def raft_can_access_utopia(self, player):
return self.raft_can_complete_temperance(player) and self.raft_can_drive(player) and self.has("Utopia Frequency", player)
def raft_can_complete_utopia(self, player):
return self.raft_can_access_utopia(player)
def set_rules(world, player): def set_rules(world, player):
regionChecks = { regionChecks = {
"Raft": lambda state: True, "Raft": lambda state: True,
@ -118,7 +139,10 @@ def set_rules(world, player):
"Vasagatan": lambda state: state.raft_can_complete_radio_tower(player) and state.raft_can_access_vasagatan(player), "Vasagatan": lambda state: state.raft_can_complete_radio_tower(player) and state.raft_can_access_vasagatan(player),
"BalboaIsland": lambda state: state.raft_can_complete_vasagatan(player) and state.raft_can_access_balboa_island(player), "BalboaIsland": lambda state: state.raft_can_complete_vasagatan(player) and state.raft_can_access_balboa_island(player),
"CaravanIsland": lambda state: state.raft_can_complete_balboa_island(player) and state.raft_can_access_caravan_island(player), "CaravanIsland": lambda state: state.raft_can_complete_balboa_island(player) and state.raft_can_access_caravan_island(player),
"Tangaroa": lambda state: state.raft_can_complete_caravan_island(player) and state.raft_can_access_tangaroa(player) "Tangaroa": lambda state: state.raft_can_complete_caravan_island(player) and state.raft_can_access_tangaroa(player),
"Varuna Point": lambda state: state.raft_can_complete_tangaroa(player) and state.raft_can_access_varuna_point(player),
"Temperance": lambda state: state.raft_can_complete_varuna_point(player) and state.raft_can_access_temperance(player),
"Utopia": lambda state: state.raft_can_complete_temperance(player) and state.raft_can_access_utopia(player)
} }
itemChecks = { itemChecks = {
"Plank": lambda state: True, "Plank": lambda state: True,
@ -143,15 +167,14 @@ def set_rules(world, player):
"Hinge": lambda state: state.raft_can_craft_hinge(player), "Hinge": lambda state: state.raft_can_craft_hinge(player),
"CircuitBoard": lambda state: state.raft_can_craft_circuitBoard(player), "CircuitBoard": lambda state: state.raft_can_craft_circuitBoard(player),
"PlasticBottle_Empty": lambda state: state.raft_can_craft_plasticBottle(player), "PlasticBottle_Empty": lambda state: state.raft_can_craft_plasticBottle(player),
"Shear": lambda state: state.raft_can_craft_shears(player),
"Wool": lambda state: state.raft_can_capture_animals(player) and state.raft_can_craft_shears(player), "Wool": lambda state: state.raft_can_capture_animals(player) and state.raft_can_craft_shears(player),
"HoneyComb": lambda state: state.raft_can_access_balboa_island(player), "HoneyComb": lambda state: state.raft_can_access_balboa_island(player),
"Jar_Bee": lambda state: state.raft_can_access_balboa_island(player) and state.raft_can_smelt_items(player), "Jar_Bee": lambda state: state.raft_can_access_balboa_island(player) and state.raft_can_smelt_items(player),
"Dirt": lambda state: state.raft_can_get_dirt(player), "Dirt": lambda state: state.raft_can_get_dirt(player),
"Egg": lambda state: state.raft_can_capture_animals(player), "Egg": lambda state: state.raft_can_capture_animals(player),
"TitaniumIngot": lambda state: state.raft_can_smelt_items(player) and state.raft_can_find_titanium(player),
# Specific items for story island location checks # Specific items for story island location checks
"Machete": lambda state: state.raft_can_craft_machete(player), "Machete": lambda state: state.raft_can_craft_machete(player),
"BowAndArrow": lambda state: state.raft_can_fire_bow(player),
"Zipline tool": lambda state: state.raft_can_craft_ziplineTool(player) "Zipline tool": lambda state: state.raft_can_craft_ziplineTool(player)
} }

View File

@ -39,8 +39,8 @@ class RaftWorld(World):
location_name_to_id = locations_lookup_name_to_id location_name_to_id = locations_lookup_name_to_id
options = raft_options options = raft_options
data_version = 1 data_version = 2
required_client_version = (0, 2, 0) required_client_version = (0, 3, 4)
def generate_basic(self): def generate_basic(self):
minRPSpecified = self.world.minimum_resource_pack_amount[self.player].value minRPSpecified = self.world.minimum_resource_pack_amount[self.player].value
@ -96,6 +96,11 @@ class RaftWorld(World):
slot_data = {} slot_data = {}
return slot_data return slot_data
def get_pre_fill_items(self):
if self.world.island_frequency_locations[self.player] in [0, 1]:
return [loc.item for loc in self.world.get_filled_locations()]
return []
def create_item_replaceAsNecessary(self, name: str) -> Item: def create_item_replaceAsNecessary(self, name: str) -> Item:
isFrequency = "Frequency" in name isFrequency = "Frequency" in name
shouldUseProgressive = ((isFrequency and self.world.island_frequency_locations[self.player].value == 2) shouldUseProgressive = ((isFrequency and self.world.island_frequency_locations[self.player].value == 2)
@ -132,13 +137,19 @@ class RaftWorld(World):
self.setLocationItem("Vasagatan Frequency to Balboa", "Balboa Island Frequency") self.setLocationItem("Vasagatan Frequency to Balboa", "Balboa Island Frequency")
self.setLocationItem("Relay Station quest", "Caravan Island Frequency") self.setLocationItem("Relay Station quest", "Caravan Island Frequency")
self.setLocationItem("Caravan Island Frequency to Tangaroa", "Tangaroa Frequency") self.setLocationItem("Caravan Island Frequency to Tangaroa", "Tangaroa Frequency")
self.setLocationItem("Tangaroa Frequency to Varuna Point", "Varuna Point Frequency")
self.setLocationItem("Varuna Point Frequency to Temperance", "Temperance Frequency")
self.setLocationItem("Temperance Frequency to Utopia", "Utopia Frequency")
elif self.world.island_frequency_locations[self.player] == 1: elif self.world.island_frequency_locations[self.player] == 1:
self.setLocationItemFromRegion("RadioTower", "Vasagatan Frequency") self.setLocationItemFromRegion("RadioTower", "Vasagatan Frequency")
self.setLocationItemFromRegion("Vasagatan", "Balboa Island Frequency") self.setLocationItemFromRegion("Vasagatan", "Balboa Island Frequency")
self.setLocationItemFromRegion("BalboaIsland", "Caravan Island Frequency") self.setLocationItemFromRegion("BalboaIsland", "Caravan Island Frequency")
self.setLocationItemFromRegion("CaravanIsland", "Tangaroa Frequency") self.setLocationItemFromRegion("CaravanIsland", "Tangaroa Frequency")
self.setLocationItemFromRegion("Tangaroa", "Varuna Point Frequency")
self.setLocationItemFromRegion("Varuna Point", "Temperance Frequency")
self.setLocationItemFromRegion("Temperance", "Utopia Frequency")
# Victory item # Victory item
self.world.get_location("Tangaroa Next Frequency", self.player).place_locked_item( self.world.get_location("Utopia Complete", self.player).place_locked_item(
RaftItem("Victory", ItemClassification.progression, None, player=self.player)) RaftItem("Victory", ItemClassification.progression, None, player=self.player))
def setLocationItem(self, location: str, itemName: str): def setLocationItem(self, location: str, itemName: str):
@ -152,6 +163,12 @@ class RaftWorld(World):
location = random.choice(list(loc for loc in location_table if loc["region"] == region)) location = random.choice(list(loc for loc in location_table if loc["region"] == region))
self.world.get_location(location["name"], self.player).place_locked_item(itemToUse) self.world.get_location(location["name"], self.player).place_locked_item(itemToUse)
def fill_slot_data(self):
return {
"IslandGenerationDistance": self.world.island_generation_distance[self.player].value,
"ExpensiveResearch": self.world.expensive_research[self.player].value
}
def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None): def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None):
ret = Region(name, RegionType.Generic, name, player) ret = Region(name, RegionType.Generic, name, player)
ret.world = world ret.world = world

View File

@ -5,10 +5,10 @@ The player settings page for this game is located <a href="../player-settings">h
you need to configure and export a config file. you need to configure and export a config file.
## What does randomization do to this game? ## What does randomization do to this game?
All of the items from the Research Table, as well as all the note/blueprint pickups from story islands, are changed to location checks. Blueprint items themselves are never given. The Research Table recipes will *remove* the researched items for that recipe once learned, meaning many more resources must be put into the Research Table to get all the unlocks from it. All of the items from the Research Table, as well as all the note/blueprint/character pickups from story islands, are changed to location checks. Blueprint items themselves are never given when receiving a blueprint.
## What is the goal of Raft when randomized? ## What is the goal of Raft when randomized?
The goal remains the same: To pick up the note that has the frequency for the next unreleased story island from Tangaroa. The goal remains the same: To complete the game by getting to the end of the game and finishing Utopia.
## Which items can be in another player's world? ## Which items can be in another player's world?
All of the craftable items from the Research Table and Blueprints, as well as frequencies. Since there are more locations in Raft than there are items to receive, Resource Packs with basic earlygame materials and/or duplicate items may be added to the item pool (configurable). All of the craftable items from the Research Table and Blueprints, as well as frequencies. Since there are more locations in Raft than there are items to receive, Resource Packs with basic earlygame materials and/or duplicate items may be added to the item pool (configurable).

View File

@ -8,7 +8,7 @@
## Installation Procedures ## Installation Procedures
1. Install Raft. The currently-supported Raft version is Update 13: The Renovation Update. If you plan on playing Raft mainly with Archipelago, it's recommended to disable Raft auto-updating through Steam, as there is no beta channel to get old builds. 1. Install Raft. The currently-supported Raft version is Version 1.0: The Final Chapter. If you plan on playing Raft mainly with Archipelago, it's recommended to disable Raft auto-updating through Steam, as there is no beta channel to get old builds.
2. Install RML. 2. Install RML.

View File

@ -7,335 +7,460 @@
{ {
"id": 47002, "id": 47002,
"progression": false, "progression": false,
"name": "Leather helmet" "name": "Big backpack"
}, },
{ {
"id": 47003, "id": 47003,
"progression": false, "progression": false,
"name": "Leather body armor" "name": "Leather helmet"
}, },
{ {
"id": 47004, "id": 47004,
"progression": false, "progression": false,
"name": "Leather greaves" "name": "Leather body armor"
}, },
{ {
"id": 47005, "id": 47005,
"progression": false, "progression": false,
"name": "Flippers" "name": "Leather greaves"
}, },
{ {
"id": 47006, "id": 47006,
"progression": false, "progression": false,
"name": "Head light" "name": "Flippers"
}, },
{ {
"id": 47007, "id": 47007,
"progression": false, "progression": false,
"name": "Oxygen bottle" "name": "Head light"
}, },
{ {
"id": 47008, "id": 47008,
"progression": false,
"name": "Advanced head light"
},
{
"id": 47009,
"progression": false,
"name": "Oxygen bottle"
},
{
"id": 47010,
"progression": true, "progression": true,
"name": "Zipline tool" "name": "Zipline tool"
}, },
{ {
"id": 47009, "id": 47011,
"progression": false,
"name": "Electric zipline tool"
},
{
"id": 47012,
"progression": true, "progression": true,
"name": "Empty bottle" "name": "Empty bottle"
}, },
{
"id": 47010,
"progression": false,
"name": "Clay bowl"
},
{
"id": 47011,
"progression": false,
"name": "Bucket"
},
{
"id": 47012,
"progression": false,
"name": "Healing salve"
},
{ {
"id": 47013, "id": 47013,
"progression": false, "progression": false,
"name": "Good healing salve" "name": "Empty canteen"
}, },
{ {
"id": 47014, "id": 47014,
"progression": false, "progression": false,
"name": "Cookingpot" "name": "Bucket"
}, },
{ {
"id": 47015, "id": 47015,
"progression": false, "progression": false,
"name": "Advanced grill" "name": "Clay bowl"
}, },
{ {
"id": 47016, "id": 47016,
"progression": false, "progression": false,
"name": "Advanced purifier" "name": "Drinking glass"
}, },
{ {
"id": 47017, "id": 47017,
"progression": false, "progression": false,
"name": "Electric purifier" "name": "Healing salve"
}, },
{ {
"id": 47018, "id": 47018,
"progression": false, "progression": false,
"name": "Medium crop plot" "name": "Good healing salve"
}, },
{ {
"id": 47019, "id": 47019,
"progression": false, "progression": false,
"name": "Large crop plot" "name": "Cookingpot"
}, },
{ {
"id": 47020, "id": 47020,
"progression": true, "progression": false,
"name": "Grass plot" "name": "Juicer"
}, },
{ {
"id": 47021, "id": 47021,
"progression": false, "progression": false,
"name": "Scarecrow" "name": "Advanced grill"
}, },
{ {
"id": 47022, "id": 47022,
"progression": false, "progression": false,
"name": "Sprinkler" "name": "Electric grill"
}, },
{ {
"id": 47023, "id": 47023,
"progression": false, "progression": false,
"name": "Honey" "name": "Advanced purifier"
}, },
{ {
"id": 47024, "id": 47024,
"progression": true, "progression": false,
"name": "Battery" "name": "Electric purifier"
}, },
{ {
"id": 47025, "id": 47025,
"progression": true, "progression": false,
"name": "Bolt" "name": "Advanced small crop plot"
}, },
{ {
"id": 47026, "id": 47026,
"progression": true, "progression": false,
"name": "Circuit board" "name": "Advanced medium crop plot"
}, },
{ {
"id": 47027, "id": 47027,
"progression": true, "progression": false,
"name": "Hinge" "name": "Advanced large crop plot"
}, },
{ {
"id": 47028, "id": 47028,
"progression": false, "progression": true,
"name": "Stationary anchor" "name": "Grass plot"
}, },
{ {
"id": 47029, "id": 47029,
"progression": false, "progression": false,
"name": "Engine controls" "name": "Medium crop plot"
}, },
{ {
"id": 47030, "id": 47030,
"progression": true, "progression": false,
"name": "Engine" "name": "Large crop plot"
}, },
{ {
"id": 47031, "id": 47031,
"progression": true, "progression": false,
"name": "Receiver" "name": "Scarecrow"
}, },
{ {
"id": 47032, "id": 47032,
"progression": true, "progression": false,
"name": "Antenna" "name": "Advanced Scarecrow"
}, },
{ {
"id": 47033, "id": 47033,
"progression": true, "progression": false,
"name": "Steering Wheel" "name": "Sprinkler"
}, },
{ {
"id": 47034, "id": 47034,
"progression": false, "progression": false,
"name": "Battery charger" "name": "Honey"
}, },
{ {
"id": 47035, "id": 47035,
"progression": false, "progression": true,
"name": "Hammock" "name": "Battery"
}, },
{ {
"id": 47036, "id": 47036,
"progression": false, "progression": false,
"name": "Beehive" "name": "Advanced Battery"
}, },
{ {
"id": 47037, "id": 47037,
"progression": false, "progression": true,
"name": "Biofuel refiner" "name": "Bolt"
}, },
{ {
"id": 47038, "id": 47038,
"progression": false, "progression": true,
"name": "Birds nest" "name": "Circuit board"
}, },
{ {
"id": 47039, "id": 47039,
"progression": true, "progression": true,
"name": "Smelter" "name": "Hinge"
}, },
{ {
"id": 47040, "id": 47040,
"progression": false, "progression": false,
"name": "Fuel tank" "name": "Stationary anchor"
}, },
{ {
"id": 47041, "id": 47041,
"progression": false, "progression": false,
"name": "Water tank" "name": "Advanced stationary anchor"
}, },
{ {
"id": 47042, "id": 47042,
"progression": false, "progression": false,
"name": "Simple collection net" "name": "Engine controls"
}, },
{ {
"id": 47043, "id": 47043,
"progression": false, "progression": true,
"name": "Fuel pipe" "name": "Engine"
}, },
{ {
"id": 47044, "id": 47044,
"progression": false, "progression": true,
"name": "Water pipe" "name": "Receiver"
}, },
{ {
"id": 47045, "id": 47045,
"progression": false, "progression": true,
"name": "Storage" "name": "Antenna"
}, },
{ {
"id": 47046, "id": 47046,
"progression": false, "progression": true,
"name": "Large Storage" "name": "Steering Wheel"
}, },
{ {
"id": 47047, "id": 47047,
"progression": false, "progression": false,
"name": "Trashcan" "name": "Battery charger"
}, },
{ {
"id": 47048, "id": 47048,
"progression": false, "progression": false,
"name": "Zipline" "name": "Wind turbine"
}, },
{ {
"id": 47049, "id": 47049,
"progression": false, "progression": false,
"name": "Firework" "name": "Hammock"
}, },
{ {
"id": 47050, "id": 47050,
"progression": false, "progression": false,
"name": "Metal axe" "name": "Beehive"
}, },
{ {
"id": 47051, "id": 47051,
"progression": false, "progression": false,
"name": "Binoculars" "name": "Biofuel refiner"
}, },
{ {
"id": 47052, "id": 47052,
"progression": false, "progression": false,
"name": "Metal fishing rod" "name": "Advanced biofuel refiner"
}, },
{ {
"id": 47053, "id": 47053,
"progression": false, "progression": true,
"name": "Scrap hook" "name": "Birds nest"
}, },
{ {
"id": 47054, "id": 47054,
"progression": false, "progression": false,
"name": "Metal detector" "name": "Simple collection net"
}, },
{ {
"id": 47055, "id": 47055,
"progression": true, "progression": false,
"name": "Shear" "name": "Advanced collection net"
}, },
{ {
"id": 47056, "id": 47056,
"progression": true, "progression": true,
"name": "Shovel" "name": "Smelter"
}, },
{ {
"id": 47057, "id": 47057,
"progression": false, "progression": false,
"name": "Sweep net" "name": "Electric Smelter"
}, },
{ {
"id": 47058, "id": 47058,
"progression": true, "progression": false,
"name": "Basic bow" "name": "Fuel tank"
}, },
{ {
"id": 47059, "id": 47059,
"progression": true, "progression": false,
"name": "Stone arrow" "name": "Water tank"
}, },
{ {
"id": 47060, "id": 47060,
"progression": false, "progression": false,
"name": "Metal arrow" "name": "Fuel pipe"
}, },
{ {
"id": 47061, "id": 47061,
"progression": false, "progression": false,
"name": "Metal Spear" "name": "Water pipe"
}, },
{ {
"id": 47062, "id": 47062,
"progression": false,
"name": "Recycler"
},
{
"id": 47063,
"progression": false,
"name": "Storage"
},
{
"id": 47064,
"progression": false,
"name": "Large Storage"
},
{
"id": 47065,
"progression": false,
"name": "Trashcan"
},
{
"id": 47066,
"progression": false,
"name": "Zipline"
},
{
"id": 47067,
"progression": false,
"name": "Firework"
},
{
"id": 47068,
"progression": false,
"name": "Metal axe"
},
{
"id": 47069,
"progression": false,
"name": "Titanium axe"
},
{
"id": 47070,
"progression": false,
"name": "Binoculars"
},
{
"id": 47071,
"progression": false,
"name": "Metal fishing rod"
},
{
"id": 47072,
"progression": false,
"name": "Scrap hook"
},
{
"id": 47073,
"progression": false,
"name": "Titanium hook"
},
{
"id": 47074,
"progression": true,
"name": "Metal detector"
},
{
"id": 47075,
"progression": true,
"name": "Shear"
},
{
"id": 47076,
"progression": true,
"name": "Shovel"
},
{
"id": 47077,
"progression": false,
"name": "Sweep net"
},
{
"id": 47078,
"progression": false,
"name": "Basic bow"
},
{
"id": 47079,
"progression": false,
"name": "Stone arrow"
},
{
"id": 47080,
"progression": false,
"name": "Metal arrow"
},
{
"id": 47081,
"progression": false,
"name": "Titanium arrow"
},
{
"id": 47082,
"progression": true,
"name": "Metal spear"
},
{
"id": 47083,
"progression": true, "progression": true,
"name": "Machete" "name": "Machete"
}, },
{ {
"id": 47063, "id": 47084,
"progression": false,
"name": "Titanium sword"
},
{
"id": 47085,
"progression": true, "progression": true,
"name": "Net launcher" "name": "Net launcher"
}, },
{ {
"id": 47064, "id": 47086,
"progression": true, "progression": true,
"name": "Net canister" "name": "Net canister"
}, },
{ {
"id": 47065, "id": 47087,
"progression": true, "progression": true,
"name": "Vasagatan Frequency" "name": "Vasagatan Frequency"
}, },
{ {
"id": 47066, "id": 47088,
"progression": true, "progression": true,
"name": "Balboa Island Frequency" "name": "Balboa Island Frequency"
}, },
{ {
"id": 47067, "id": 47089,
"progression": true, "progression": true,
"name": "Tangaroa Frequency" "name": "Tangaroa Frequency"
}, },
{ {
"id": 47068, "id": 47090,
"progression": true,
"name": "Varuna Point Frequency"
},
{
"id": 47091,
"progression": true,
"name": "Temperance Frequency"
},
{
"id": 47092,
"progression": true,
"name": "Utopia Frequency"
},
{
"id": 47093,
"progression": true, "progression": true,
"name": "Caravan Island Frequency" "name": "Caravan Island Frequency"
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +1,62 @@
{ {
"Healing salve": "progressive-salve", "Healing salve": "progressive-salve",
"Good healing salve": "progressive-salve", "Good healing salve": "progressive-salve",
"Backpack": "progressive-backpack",
"Big backpack": "progressive-backpack",
"Clay bowl": "progressive-containers",
"Drinking glass": "progressive-containers",
"Head light": "progressive-headlight",
"Advanced head light": "progressive-headlight",
"Biofuel refiner": "progressive-biofuel",
"Advanced biofuel refiner": "progressive-biofuel",
"Empty bottle": "progressive-bottle",
"Empty canteen": "progressive-bottle",
"Advanced grill": "progressive-grill",
"Electric grill": "progressive-grill",
"Advanced purifier": "progressive-purifier", "Advanced purifier": "progressive-purifier",
"Electric purifier": "progressive-purifier", "Electric purifier": "progressive-purifier",
"Medium crop plot": "progressive-crop-plot", "Medium crop plot": "progressive-crop-plot",
"Large crop plot": "progressive-crop-plot", "Large crop plot": "progressive-crop-plot",
"Advanced small crop plot": "progressive-crop-plot",
"Advanced medium crop plot": "progressive-crop-plot",
"Advanced large crop plot": "progressive-crop-plot",
"Battery": "progressive-battery", "Battery": "progressive-battery",
"Battery charger": "progressive-battery", "Battery charger": "progressive-battery",
"Advanced Battery": "progressive-battery",
"Wind turbine": "progressive-battery",
"Stationary anchor": "progressive-anchor",
"Advanced stationary anchor": "progressive-anchor",
"Engine": "progressive-engine", "Engine": "progressive-engine",
"Steering Wheel": "progressive-engine", "Steering Wheel": "progressive-engine",
"Engine controls": "progressive-engine", "Engine controls": "progressive-engine",
"Scarecrow": "progressive-scarecrow",
"Advanced scarecrow": "progressive-scarecrow",
"Simple collection net": "progressive-net",
"Advanced collection net": "progressive-net",
"Storage": "progressive-storage", "Storage": "progressive-storage",
"Large Storage": "progressive-storage", "Large Storage": "progressive-storage",
"Zipline tool": "progressive-zipline", "Zipline tool": "progressive-zipline",
"Zipline": "progressive-zipline", "Zipline": "progressive-zipline",
"Electric zipline tool": "progressive-zipline",
"Smelter": "progressive-metals", "Smelter": "progressive-metals",
"Metal detector": "progressive-metals", "Metal detector": "progressive-metals",
"Electric Smelter": "progressive-metals",
"Basic bow": "progressive-bow", "Basic bow": "progressive-bow",
"Stone arrow": "progressive-bow", "Stone arrow": "progressive-bow",
"Metal arrow": "progressive-bow", "Metal arrow": "progressive-bow",
"Titanium arrow": "progressive-bow",
"Metal axe": "progressive-axe",
"Titanium axe": "progressive-axe",
"Scrap hook": "progressive-hook",
"Titanium hook": "progressive-hook",
"Metal spear": "progressive-spear",
"Machete": "progressive-spear",
"Titanium sword": "progressive-spear",
"Vasagatan Frequency": "progressive-frequency", "Vasagatan Frequency": "progressive-frequency",
"Balboa Island Frequency": "progressive-frequency", "Balboa Island Frequency": "progressive-frequency",
"Caravan Island Frequency": "progressive-frequency", "Caravan Island Frequency": "progressive-frequency",
"Tangaroa Frequency": "progressive-frequency" "Tangaroa Frequency": "progressive-frequency",
"Varuna Point Frequency": "progressive-frequency",
"Temperance Frequency": "progressive-frequency",
"Utopia Frequency": "progressive-frequency"
} }

View File

@ -5,5 +5,8 @@
"Vasagatan": ["BalboaIsland"], "Vasagatan": ["BalboaIsland"],
"BalboaIsland": ["CaravanIsland"], "BalboaIsland": ["CaravanIsland"],
"CaravanIsland": ["Tangaroa"], "CaravanIsland": ["Tangaroa"],
"Tangaroa": [] "Tangaroa": ["Varuna Point"],
"Varuna Point": ["Temperance"],
"Temperance": ["Utopia"],
"Utopia": []
} }

View File

@ -8,5 +8,9 @@
"Thatch", "Thatch",
"Sand", "Sand",
"Raw_Beet", "Raw_Beet",
"Raw_Potato" "Raw_Potato",
"MetalOre",
"TitaniumOre",
"CopperOre",
"ExplosiveGoo"
] ]