[WIP] Port to 3.1.1 (latest stable version) #107
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Most of the porting is complete and the game starts, here are some notes on what's left.
Fixes #107
Breaking issues:
The map is completely dark and I'm not sure why, all the objects are there and the player can move and grab and fight, but the map itself is not visible at all. Could it be a FOV issue?
I had to redo the dungeon tileset manually because the file wasn't being loaded, so as a result the tile ids will no longer match the hardcoded themes, BUT the good news is I renamed all the tiles to the format "tile_typeX" so it will be simple to rewrite the theming to go over slabX, cobble_bloodX, sandstone_wallX, etc where X is the number of such tile types from 0 to (size -1)
The particle effects need to be redone because of the new particle system. I can do this easily by opening the 2.1 version and working side by side.
Minor issues/notes:
I need to re-attach all the normal maps to the tiles again.
There was a line of gdscript that had an error:
var days_into_phase = ((ages[(year + 1) % 19] + ((day + offsets[month-1]) % 30) + (int(year < 1900))) % 30)
becauseyear<1900
does not parse to an integer, did you mean that the value should be 1 if true and 0 if false? For now I forced it to an int usingint( year < 1900)
but not sure if that's the same resultIn the game save/loading section I had to change a json call to use the new
JSON.print
to convert an object to a string, but the linedata.parse_json(file.get_line())
inrestore_game
I wasn't sure how to convert because I'm not sure what it does or whether it's still working 😆I renamed all usages of
owner
toparent
since "owner" is a reserved property in godot 3 (it refers to the instanced node that this node was loaded with). It might make less sense but it can be changed if desired to something like "ob_owner". Similary I changedname
toob_name
since "name" is reserved for all nodes now, as a result some of the exportedname
properties will need to to be set again manually.The buttons in the title screen aren't being selected properly, for now I just made it start a new game after running the game.