Tanuki transform into prop ability #10
No reviewers
Labels
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
BUGJam/pounce-game!10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "alexisa"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Resolves: https://tasks.bugjam.dev/tasks/101
CoS:
Give the player the option to swap out for a random prop.
Press a button to turn into a prop, press a button again to turn back into the tanuki
c834fec114to72f50fe13172f50fe131tof5c4ed164ef5c4ed164eto477e9aba56477e9aba56toc46d558b63c46d558b63tocdab54151bcdab54151bto4b8051639a@ -210,10 +232,6 @@ func _handle_input(delta: float) -> void:MAX_OVERHEAD_CAMERA_SPRING_ARM_LENGTH,)if Input.is_action_just_pressed(&"jump") and not is_jumping:Was removing jump and the
_should_reset_camerabelow intentional?@ -44,2 +44,4 @@const JUMP_FORCE := 5.0## Add props to children of prop containerconst PROPS:Array[PackedScene]=[preload("uid://dvji7pdnf56c5"), preload("uid://cvnm45xvnr3ol")]This can be a
@exportfor easier management:then we can set them in-editor a lot easier
@ -160,3 +182,3 @@## If true, the player can move and look aroundfunc can_move() -> bool:return not GameState.game_finishedreturn trueWas this change intentional?
Following our discussion I removed the unrelated changes to the various
.importfiles throughout this branch.I also removed the broken and conflicting changes to
project.godotandaddons/phantom_camera/themes/theme.tresfrom the commit with subjectAdding Prop Mesh Container form Tanuki Transform Into Prop Ability/ 5ad0b48160979346235f87d402e53bc70b77a39d.There are still other unrelated or breaking changes and other merge conflicts that will need to be resolved before this can be successfully merged.
I'll take another stab at this in the morning.
@Alexis_Aurora how are the changes in the new commit you just added
light_fixtures:mport and scene creation/ 6ae72d610f48bc7af8d98df9386723c836932a3b related to this pull request?@TranquilMarmot I discovered why there were a bunch of modified
.importfiles in this PR.It was not because of an export template like we initially thought.
Evidently it was because the the project was erroneously opened with an old version of the Godot editor, and that version of the editor must have made all those changes.
After digging through the history of the branch for this PR I noticed that in the original version of the initial commit
Adding Prop Mesh Container form Tanuki Transform Into Prop Ability/ 64fd8134ed7a62611c1e792aade422d78ce75d00 inproject.godoton line 19 it shows that the editor version was changed from 4.6 to 4.3.64fd8134ed (diff-fc17da9c81)Now I am certain that all those modifications to the
.importfiles were incorrect and definitely needed to be removed from this PR.6ae72d610fto814b00e237@noahg wrote in #10 (comment):
I see the commit with subject
light_fixtures:mport and scene creation/ 814b00e2376d671eb7fea06b4c6d1102696eadcf was eventually added directly to thedevbranch in an amended commitlight_fixtures: import and scene creation/3502a87fb8.This seems to imply that this commit was not related to this PR, so I am not going to include it in my next attempt to finish resolving conflicts while rebasing this branch onto the
devbranch.814b00e237to4d2b13a3404d2b13a340to477b7f35a1477b7f35a1to7a6a6bff6d04af80a731to8d9ba2d85a8d9ba2d85atod62fc99f1a@Alexis_Aurora the new commit
Light Fixtures & Lamps: Fixed file import, added outdoor lamp/fixture mesh to zoo4d2b13a340that was just force pushed seems to be for an unrelated new feature.I created a new branch named
alexisa-light-fixtures-and-lampsfor you to use pointed at your most recent commit.I also added a branch protection rule to
alexisato block force pushes until we can finish fixing and reviewing the pull request for it.After I determined the cause of the unnecessary changes to
.importfiles I realized that there were additional unwanted changes in.tscn,.tresfiles and inproject.godot.Through a long series of forensic steps I was eventually able to differentiate the committed changes caused by mistakenly opening the project in Godot 4.3 and extracted the actual net change.
For posterity, here are my steps:
Created a new
alexisa/rebasebranch at the original parent commit for this branchbd1cf363e2.Returned to Godot 4.3 and opened the project to force it to reserialize all the assets.
Committed all the automatic changes from reverting to Godot 4.3 in 90706844784a1082c6c56a0b2fe570abc5e24f9e.
Opened
test_map.tscnand saved it to force reserializing with Godot 4.3.Committed the reserialized version of
test_map.tscnin b6781a9a6a27fef3428e84ae32e51728df97ce64.Cherry picked this branch's original first commit
Adding Prop Mesh Container form Tanuki Transform Into Prop Ability/ 64fd8134ed7a62611c1e792aade422d78ce75d00.Resolved conflicts by discarding unrelated changes to
project.godotand using this commit's version ofdev/nate/test_map.tscn.At this point the diff for the new version c395779e27b5bdc73e10c7f8e4e004391dd90ea1 of the cherry picked commit only contained the actual changes without unrelated noise.
Effectively the changes are just adding a
PropContainernode with two childrenPropOneandPropTwowith box meshes.Cherry picked this branch's original second commit
Tanuki Prop Transformation: input button mapped, prop toggle functions added/ 18e5372d89fd76d9af1845ef5325992250325b0e.Edited the cherry picked commit to remove the unrelated and unwanted
.tmpfiles leaving just the actual changes in the resulting commit 477b7f35a1412670eac96182e13a6dfeff4beb9a.Once I made it to this point I noticed that the changes to
dev/nate/test_map.tscnwere not in the later version pushed in commitFixed previous commit errors/ c834fec114940739fc9896ba9e361f9997a8bc5a.I looked deeper at what went wrong in this branch and discovered that at this point commits between
c37271dcc2and5bb7666603were pulled from thedevbranch.These commits should not have been pulled from the
devbrand into this branch. Instead this branch should have been rebased on thedevbranch.When the commits were pulled into this branch there were merge conflicts that were resolved incorrectly and ended up overwriting some of the changes and hid that fact inside large diffs with other people's changes.
Specifically, the commit
Laser paths/7dd1e62b8awas pulled in as commit 229d3109e4e120633d64bb841bc48e2d6ac3ae34 and overwrote this branch's earlier changes todev/nate/test_map.tscn.Similarly, the commit
Free-moving overhead camera/a48dcc97c6was pulled in as commit dca83fe1e451aac5d3dc85029faf82039a372230 and overwrote this branch's earlier change to add code for handling the transformation inentities/characters/player/player.gd.Lastly, the commit
Zoom camera in/out with mouse wheel/5b33d7d410was pulled in as commit aaa8c096fdbe33923df38cafae9de0a939de320b and overwrote this branch's earlier change to add a new input mapping inproject.godot.After these incorrectly rebased commits, a new commit
Fixed previous commit errors/ c834fec114940739fc9896ba9e361f9997a8bc5a was added that reintroduced similar changes todev/nate/test_map.tscninentities/characters/player/player.tscninstead.My next steps on the rebased branch were:
Drop the commits reserializing
test_map.tscnwith Godot 4.3 and returning to Godot 4.3 and resolved trivial merge conflicts.Resolve merge conflicts and reserialize
dev/nate/test_map.tscnwith Godot 4.6.1.Reset local
devbranch tofeat(export): Add default export templates for Windows and Linux/5bb7666603which coresponds to the commit that was last pulled into the branch beforeFixed previous commit errors/ c834fec114940739fc9896ba9e361f9997a8bc5a.Rebase
alexisa/rebaseon localdevbranch at that commit.Resolve trivial merge conflicts using VS Code's merge editor by applying current (
dev) then incoming (alexisa/rebase) occasionally having to manually resolve conflicts.Then resolved code parse errors in the editor.
Cherry pick
Fixed previous commit errors/ c834fec114940739fc9896ba9e361f9997a8bc5a.Resolved merge conflicts and duplicate changes from previous conflict resolutions and removed all unrelated changes to
.importfiles.Later in this PR's history the branch was force pushed from c834fec114940739fc9896ba9e361f9997a8bc5a to 72f50fe131ccb8164818b942c6e6c2cd05d10d92.
This seems to have been another attempt to rebase the changes, but it was still done incorrectly.
It also added a new commit
Basic working prop transform function (use P to switch between tanuki mesh and props)/ 72f50fe131ccb8164818b942c6e6c2cd05d10d92.That commit appears to make the final changes necessary to make this feature work.
The parent commit of the branch at this stage was
TOOL: New GAME_ENTRY.tscn entry point, to allow for easy level debugging from F5/3748760af0.My final steps on the rebased branch were:
Reset local
devbranch to the parent commit mentioned above.Rebase the
alexisa/rebasebranch onto localdevbranch.There were no merge conflicts this time.
Cherry pick
Basic working prop transform function (use P to switch between tanuki mesh and props)/ 72f50fe131ccb8164818b942c6e6c2cd05d10d92.Resolved merge conflicts and removed duplicate changes from previous conflict resolutions.
Then resolved code parse errors in the editor.
Reset local
devbranch toorigin/dev.Rebase the
alexisa/rebasebranch onto localdevbranch at the latest commit on origin.Resolve trivial merge conflicts using VS Code's merge editor by applying current (
dev) then incoming (alexisa/rebase) occasionally having to manually resolve conflicts.The branch was then caught up with the latest changes from the
devbranch and only contained its related changes.I did one final rebase to edit the commits and move conceptually related changes together and eliminated intermediate revisions that distract from understanding the outcome of this branch.
Conclusion
Now this feature branch is finally in a proper state to actually be reviewed for correctness.
@ -44,2 +44,4 @@const JUMP_FORCE := 5.0## Add props to children of prop containerconst PROPS: Array[PackedScene] = [preload("uid://dvji7pdnf56c5"), preload("uid://cvnm45xvnr3ol")]I think this would work better as
Then we can set them in the editor
I agree. I went ahead and made this change in the additional commits I just pushed.
@ -134,1 +144,4 @@func _add_props() -> void:for prop in PROPS:prop_container.add_child(prop.instantiate())Currently, the props that are being used here (
crate_wood.tscn,vase.tscn) are static bodies which means that when they get added to this container the character starts to collide with them and gets pushed into the air.It seems like we'd just want to take the visuals of those scenes to transform into, and not the static bodies themselves.
Good catch. I went ahead and made this change in the additional commits I just pushed.
d62fc99f1atodbf6391305Rebased on
dev@Alexis_Aurora after getting this into a state to be reviewed and addressing @TranquilMarmot's points above, I found some other things we need to consider with this feature.
Currently this is only a visual transformation and a movement control lock. There is currently no change to the guard robot detection behavior. My understanding of this feature is that by transforming the player would become undetectable by the guards.
There are also some issues with managing controls.
After transforming, the player cannot move and they cannot look around, but they can still jump.
Also, they can still zoom with the right mouse button which also reorients the player's position to face in the direction of the camera.
The control lock should only prevent the player from moving and jumping, but they should still be able to look around so they can see where the guards are around them.
Also, while transformed into a prop, the right click to zoom function probably should not reorient the player's position.
Both considerations will likely require a move to a state machine to manage player movement and whether they are detectable by the guards.
I also realized there is now a conflict with the pause menu key mapping in the
devbranch. The 'P' key is pretty far to reach from the WASD hand position. The 'T' key for transforming seems more appropriate, so I went ahead and made that change to eliminate the conflict and rebased ondevagain. There is also a new issue where even though the tanuki visual node'svisibleproperty is being set tofalseit is still visible. I'm guessing it has to do with the animation player forcing it back to being visible. Still investigating.0f93a5c18bto1dc819d2eb1dc819d2ebto09ce349bb3I found and fixed the tanuki mesh visibility toggling issue.
The original tanuki mesh node had a misspelled name
tankui_smwith thekand theutransposed.In #20 it was replaced by a correctly spelled name
tanuki_sk.When I rebased on
devI didn't notice the additional spelling fix and I only changed the last character frommtok.I fixed my mistake and rebased on
devagain.09ce349bb3toc493023c31Rebased on
devSuperseded by #35
Pull request closed