-
Notifications
You must be signed in to change notification settings - Fork 17
Feature: Custom Placement
By creating a file called custom-placement.txt in the folder where you run the randomizer jar, you can specify some item placement details for the randomizer.
For easier usage, a template file has been created with everything placed in its original location and then disabled. The file should have additional comments for clarification if needed.
Map (Surface)=Pepper
Origin Seal=reader.exe
Putting these lines in the file will cause the randomizer to place Pepper as the item you receive for scanning the Map-giving skeleton on the Surface, and will cause you to receive the Glyph Reader from the Origin Seal chest.
Shop 7 (Graveyard) Item 1=Weights
Shop 12 Alt (Spring) Item 3=Pistol Ammo
Shop inventories can also be determined. You'll need to indicate the name of the shop and which slot (numbered left to right). Use the name of the subweapon followed by " Ammo" if you want a shop to sell a specific type of subweapon ammo.
Shop 7 (Graveyard) Item 1=Weights {20}
Shop 12 Alt (Spring) Item 3=Pistol Ammo {1, 400}
It's also possible to declare the amount and price for a shop item. If only one number is specified, it will be the price, and the count will be the default for that item (5 for Weights, 2 for Chakram Ammo, 1 clip for Pistol Ammo, 10 for other subweapon ammo, and 1 for anything else).
Keep in mind that Pistol Ammo is specified in clips, not bullets.
The randomizer should provide an error message if you use an invalid item or location name. The names used by the randomizer can be found in the following files:
- https://github.com/thezerothcat/LaMulanaRandomizer/blob/master/src/main/resources/lmr/randomizer/all/all_items.txt
- https://github.com/thezerothcat/LaMulanaRandomizer/blob/master/src/main/resources/lmr/randomizer/all/coin_chests.txt
Trap items are not listed in a file, but there are only 4 of them:
- Trap: Graveyard
- Trap: Inferno Orb
- Trap: Twin Ankh
- Trap: Exploding
Items appearing in a shop cannot be used as a location; instead, you should use the shop inventory name for items appearing in this file:
Shop names can be found here:
The shop names are, unfortunately, not very friendly; the shops in Temple of the Sun are particularly ambiguous. Shop 8 is the one tied to the Aim and Shoot puzzle, Shop 9 is the one at the bottom of the area which has no requirements for access, and Shop 10 is the one which requires the Death Seal.
A future update may eventually provide an alternate naming scheme for shops, but at this time, using the existing names is the only option.
NPC: Modro=Philosopher Fobos
The randomizer allows specifying which NPCs (conversation or shop) can be found at a door. The above example would put Fobos inside Modro's tent on the Surface.
NPC names match what gets recorded by TextTrax software.
Weapon: Axe
This determines which starting weapon will be used for the seed. Subweapons can be used if enabled, and Chain Whip and Flail Whip are also valid options, even though you can't get them randomly.
Start: move.exe
This gives the declared item immediately at the start of the game, as if you'd selected "Given at start" for the item on the "Things to randomize" tab. Any item is valid here, even if it doesn't appear on the randomizer normally.
Location: Gate of Time (Surface)
This determines the starting location for those using a random starting location. Not all locations are supported at this time. It's expected to use the name of the area (Inferno Cavern, Gate of Illusion, etc.) or in some cases a shortened form (such as Illusion).
!Sacred Orb (Gate of Guidance)
will ensure that the Sacred Orb normally found in Gate of Guidance is treated as a removed item.
Removed items cannot be given by NPCs or torude.exe scans, so if you declare an item removed, make sure to place it in a chest, as a floating item, or in a shop. If you prefer not to keep track of that, feel free to let the randomizer decide on the location for you.
Curse Coin: Guidance (Trap)
will turn the coin chest below the trapdoor in Gate of Guidance into a cursed chest.
Although the game normally only contains 4 cursed chests, custom placements ignore this count. Instead all chests declared cursed in the file will be cursed, and no additional random cursed chests will be added.
Shuriken=Trap: Inferno Orb {Feather}
If you want your trap item to look like a specific item, you may declare it surrounded by {}. In this example, the fake Sacred Orb from Inferno Cavern is placed at the location of the Shuriken and given the appearance of the Feather. When touched, it will turn into bats.
The behavior of trap item chests is a bit different when trap items are placed in this manner. The exploding chest remains the same and will simply explode when the chest is opened, but the other three trap items, rather than immediately spawning bats when opened, will spawn a fake item when opened which turns into bats when touched.
Alternate Mother Ankh
This introduces an extra Ankh Jewel into the shuffle (shops will have one more item than usual). Mother's ankh will be changed to require an Ankh Jewel instead of the usual empowered Key Sword.
Skip Mantras
This automatically recites mantras for you, so your Key Sword is powered up as soon as you receive it.
Fill Vessel Yellow
With this included, you will receive the yellow Medicine of the Mind in place of the Vessel. You can do the same with Green or Red medicine (which forces talking to Fobos in Dimensional Corridor to reset).
Many invalid combinations of item placements and user settings will trigger an error message, but the randomizer will not catch everything for you. If you attempt to create a custom seed and it takes an unusually long time to resolve, there may be a problem with your placement logic.
If the randomizer's logic is too strict for your liking, you can add your own logic by creating a file called custom-reqs.txt in the folder where you run the randomizer jar. The file format matches that of other requirements files. Existing logic will not be replaced, but you could provide alternate logic, such as glitches not recognized by the randomizer, or override a more generous requirement, such as allowing a boss to be fought with fewer Sacred Orbs.
If the randomizer's logic is not strict enough for your liking, you can add your own logic to custom-reqs.txt and additionally include a line in custom-placement.txt to remove the randomizer's provide logic.
Remove Logic: Event: Tiamat Defeated
The above would remove all logic for defeating Tiamat, allowing you to provide your own. Note that if you do this but do not provide any alternative logic of your own, the randomizer will be unable to determine a valid seed.