summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Simplified collision detection outputKelly Rauchenberger2021-03-115-87/+75
| | | | It is no longer split into horizontal and vertical results. Also, the collision detection routine now does the work of calculating an adjusted position, instead of the caller (CharacterSystem) having to do it. This will be useful for #3.
* Fixed improperly calculated sprite hitboxesKelly Rauchenberger2021-03-113-14/+14
| | | | | | Also made sprite hitboxes bigger. #15
* switch_claus starts talking when he gets yaKelly Rauchenberger2021-03-096-0/+28
| | | | | | Kumatora, Duster, and Boney had to be given hitboxes, but they are not considered solid. #10
* Added text for "yes" path of "let's switch places"Kelly Rauchenberger2021-03-091-0/+1
| | | | #10
* Added "let's switch places!" Claus spriteKelly Rauchenberger2021-03-093-16/+25
| | | | | | He will wander randomly until you get close, and will then run at you. Talking to him or bumping into him does nothing currently. If you move out of his range of interest he will go back to wandering at a walking pace. #10
* Split collision detection into two phases, horizontal and verticalKelly Rauchenberger2021-03-081-1/+24
| | | | | | The whole function should probably be refactored at some point, possibly like therapy5's but that may be too complicated. #14
* Added connection between mirror map and hallucination_interiorKelly Rauchenberger2021-03-071-2/+2
|
* Idling in front of the mirror faces you toward itKelly Rauchenberger2021-03-061-1/+8
|
* The mirror reflection changes to Claus, Ionia, and WessKelly Rauchenberger2021-03-061-0/+3
|
* Added MirrorSystemKelly Rauchenberger2021-03-059-0/+93
| | | | This is really just for letting one sprite mirror another's movement and animation. I tried doing it in the BehaviourSystem, but you get stuttering if you do it earlier in the loop than the CharacterSystem, so I ended up having to make a new system just for this thing that will not happen very often.
* Added the mask sprite layerKelly Rauchenberger2021-03-057-5/+49
| | | | This layer is below the normal sprite layer. Sprites on it are only rendered within the area of a zone that is defined per-map.
* Implemented circle transition effect (for exit area)Kelly Rauchenberger2021-03-054-1/+90
|
* Set default collision bounds for map spritesKelly Rauchenberger2021-03-031-2/+2
| | | | Since it's always the same ones anyway, might as well set defaults and allow them to be overridden.
* Handled case where a pathfollowing sprite overshoots its destinationKelly Rauchenberger2021-03-022-0/+16
| | | | This may happen due to lag or due to debugging with lldb. What happens is that 60 times a second, the engine will check whether the direction toward the current endpoint is equal to the direction in the pathfinding instruction, and if it isn't (because the sprite has gone past the endpoint) then it sets the sprite's position to the endpoint instantly so that the pathfinding can continue.
* Fixed inverted Y coordinate of directionFacingPoint functionsKelly Rauchenberger2021-03-011-2/+2
| | | | It's because the game's coordinate system has Y increasing downward, whereas the coordinate system used by the trig functions has Y increasing upward.
* Started writing the Mixolydia scene!Kelly Rauchenberger2021-03-015-3/+27
| | | | | | Looking pretty good so far. TODO: direction facing functions have inverted Y coordinate. confusion expression doesn't exist yet. rest of scene.
* Added (human) Mixolydia spriteKelly Rauchenberger2021-03-013-0/+4
|
* Simplified "animation" map sprite parameterKelly Rauchenberger2021-02-281-1/+1
| | | | The filenames for these are fairly regular, and we're gonna want to abstract it away further later on anyway.
* Pathfinding should be more biased toward straight lines nowKelly Rauchenberger2021-02-281-2/+4
|
* Added A* pathfindingKelly Rauchenberger2021-02-2710-9/+221
|
* Pressing M mutes/unmutes musicKelly Rauchenberger2021-02-271-0/+6
| | | | (except when the debug console is open)
* Added background music (defined on a per-map basis)Kelly Rauchenberger2021-02-276-4/+123
|
* Exposed loadMapScripts to scripting engineKelly Rauchenberger2021-02-261-0/+6
| | | | This allows common functions to be stored in not per-map script files. Which is useful for code that we're going to want in a lot of places -- i.e. how every underwater map is going to have a copy of the same exit area function.
* Added animation slowdown effect (for Lucas underwater)Kelly Rauchenberger2021-02-263-1/+15
|
* Added sprite bobbing (for Lucas underwater)Kelly Rauchenberger2021-02-266-2/+35
|
* Disabled crouching/running in the underwater mapKelly Rauchenberger2021-02-263-2/+5
|
* Added first underwater mapKelly Rauchenberger2021-02-262-1/+6
| | | | Also spruced up the event that takes you there. Also fixed an issue where transplantParty wouldn't take the medium of the new position into consideration. Also added a constructor to the lua version of vec2i.
* Lucas wades into hot spring alone when Ionia is thereKelly Rauchenberger2021-02-253-0/+17
|
* Ionia randomly appears in the waterKelly Rauchenberger2021-02-251-0/+6
|
* Fixed issue where debug console could be rendered onto message textKelly Rauchenberger2021-02-251-1/+10
| | | | In the renderer, it's important to set the render target properly before any copying or drawing operations, especially if it's after a call to renderMessageLine, since that changes the render target.
* Added map init scriptsKelly Rauchenberger2021-02-243-2/+22
| | | | Map scripts also now actually run in their own lua thread.
* Ionia is in the water!Kelly Rauchenberger2021-02-243-0/+6
|
* Added animation for being in a hot springKelly Rauchenberger2021-02-243-3/+25
|
* Added running sound for vine laddersKelly Rauchenberger2021-02-241-1/+4
|
* Fixed party trails when running on a ladderKelly Rauchenberger2021-02-243-36/+61
|
* Removed more manual animation stuffKelly Rauchenberger2021-02-241-8/+0
|
* Made it so you can use shift to stop running on a ladderKelly Rauchenberger2021-02-241-4/+4
|
* Removed sprite shadow while on a ladderKelly Rauchenberger2021-02-244-5/+8
|
* Added variable animation frame ratesKelly Rauchenberger2021-02-243-15/+33
| | | | Lucas's climbing animation now accurately uses 60fps and looks correct finally!
* Added shorthand for repeated frames in animationsKelly Rauchenberger2021-02-241-2/+10
|
* Removed manual animation stuffKelly Rauchenberger2021-02-244-20/+1
|
* Started working on laddersKelly Rauchenberger2021-02-249-35/+182
| | | | | | | | | | | TODO: * all the animations are weird. we will need to have an adjustable framerate bc the climbing animation does not look right at the current rate. (also remove the manual animation stuff ig) * does the medium stuff seem good and right? i am kinda not satisfied with it. * running onto a ladder causes the characters to bunch up bc the movement speed is slowed down but the trails are not doubled * no ladder running sound * shadows should vanish while on a ladder * uhh if you end a cutscene while on a ladder it resets the animation to "still" which is wrong. will this ever happen? idk * adding a sprite to your party while you are on a ladder??
* Added a clipping mode (for testing!)Kelly Rauchenberger2021-02-233-4/+6
| | | | This allows walking through solid objects. It can be enabled and disabled using StartClipping() and StopClipping() in the debug console. It should not be used in any actual scripts.
* Generalized upper/lower layer map renderingKelly Rauchenberger2021-02-224-40/+70
| | | | | | Map layers can have a flag on them that specifies that they should be rendered as part of the upper set (rendered above the normal sprite layer but below the above sprite layer). Also added map connections between hallucination_interior and hallucination_cliff. And named the layers in the map files bc why not.
* Fixed issue with double counting collisionsKelly Rauchenberger2021-02-221-4/+4
| | | | | | | | Because of an issue with how collision checking with sprites worked, it was possible that you could collide with a boundary twice (once when moving up to it, and once when moving from it to past it, instead of just one or the other) when moving up or left as long as the colliding sprite had the ID zero. This was causing a fun issue where the map change script from hallucination_interior to hallucination_cliff was getting triggered twice, but only every other time. Because we're using integers and not real numbers, we can make the boundary exclusive by adding one. The issue was also technically possible in the down and right directions, but only if the sprite ID was INT_MAX, which is unlikely to occur. It was decided that the former collision is the real one (if you start away from the boundary and then move into it).
* Re-dumped hallucination map/tilesetKelly Rauchenberger2021-02-221-1/+1
| | | | | | The hallucination cliff area and the hot spring map have also been dumped now, but they have not been tested and likely need work because they use a third layer, which is not yet supported. However these all share a tileset now, yay! I added collision and run sounds back to the tiles and hopefully it matches up with what it was before. Also the maps have nicer names now. i.e. big change with no noticeable effects
* Entering an invalid debug command fails gracefullyKelly Rauchenberger2021-02-211-0/+5
|
* Multiple scripts can be run at onceKelly Rauchenberger2021-02-212-18/+28
| | | | And they're all on their own threads again. This is mostly so debug commands can be run during execution of other scripts. But it can also be useful for map init scripts (if we want a script to run whenever a map is loaded, even though map loading is usually done by a script).
* Debug commands run inside a coroutine now yay!Kelly Rauchenberger2021-02-212-6/+16
| | | | Also it turns out you totally don't need the runner thread.
* Added copy-pasting into the debug consoleKelly Rauchenberger2021-02-211-0/+5
|