theg-meister / pkc-mms-rando Goto Github PK
View Code? Open in Web Editor NEWRandomises the map, music and story of Pokémon Crystal disassemblies
License: GNU General Public License v3.0
Randomises the map, music and story of Pokémon Crystal disassemblies
License: GNU General Public License v3.0
Probably meant to say "every instance"
A fragmented overworld is one in which areas intended to be accessible become inaccessible as they can only be accessed from other inaccessible maps. For example, if the player's room led to Elm's lab and vice versa, these maps would be unable to access any others, and no other maps would be able to access them (as long as no other warps lead to those maps).
All existing warp randomisers make no attempt to stop this, and may straight up link two dead end rooms together such as in the case above.
However, a fragmented overworld is also guaranteed to generate if too many warps are randomised to lead to other warps which can be accessed in other ways. For instance, if it is known that the player can walk between two warps during the randomisation process, having these warps access each other decreases the number of warps available to lead to dead end warps, such as houses. Towards the end of randomisation, these houses have to lead to each other instead of the main overworld as there are no warps left within it to link to.
This is a problem in all existing warp randomiser code, including the main one, shuffleWarpGroups
Gonna leave this link here as a test too:
During randomisation:
Sorry if this sounds a bit dumb of me, but I'm still new to the language (only really worked with it in the context of UPR-ZX before), however upon trying to compile I get one of two errors:
Either it fails because it can't find the com.gmeister.temp.maps:maps:jar:0.0.1-SNAPSHOT
artifact, or can't find the com.gmeister.temp.maps
package, I did get the Maven script working and am using the correct JDK version for sure.
The project also seems to reference files that aren't in the repo, specifically the map tile randomization part. (though I only really want to get warp, music pointer, sfx pointer and script randomization to work, to see how it all plays like and if these options are enjoyable in their current form).
I'm not sure what I'm doing wrong, maybe there's a hardcoded filepath I didn't notice, though the notes aren't exactly clear.
IllegalArgumentException
s should be thrown if the provided node is null, is already part of the network, or contains nodes that are already part of other nodes. The final condition is true if the nodeMap
contains a key of any node within the provided NodeGroup
.
Inaccessible hills occur when any terrain intended to be accessed cannot be accessed as it is blocked by ledges. For example, if Elm's Lab was only accessible from the Route 4 entrance to Mt. Moon and vice versa, it would be inaccessible.
Overworld softlocks occur when a player makes a 1-way movement, such as hopping a ledge, dropping down a pit or surfing down a waterfall, and not being able to escape without the use of an escape rope, teleport, dig, blacking out or other unconventional techniques.
These are caused by 1-way overworld movement, much like many vanilla softlocks. Map culprits include ledges, pits and waterfalls, and even things like escape ropes, teleport, dig and blocking out can get players softlocked too. The randomiser does not account for these.
An IllegalArgumentException
should be thrown if the MimickedEdge source node does not contain the original edge's source node, and similarly for target nodes.
An explicit IllegalArgumentException
should be thrown if the provided node is null
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.