summary refs log tree commit diff stats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Added a debug consoleKelly Rauchenberger2021-02-2113-2/+148
| | | | | | | | Open it by pressing backtick, close it by hitting escape. Pressing backtick does not open it in release builds. Current shortcomings: opening it for the first time also types a backtick for some reason, but not on subsequent times. Also, it doesn't create a coroutine, so any script function that yields is going to fail. This also added a "is gameplay paused" flag to Game, which will be useful for adding a pause menu.
* Added sprite pausingKelly Rauchenberger2021-02-214-3/+11
| | | | | | All sprites are now paused when a cutscene starts and unpaused when it ends. Pausing means that the CharacterSystem and BehaviourSystem will not process them in their tick. This allows specific sprites to be unpaused during cutscenes if movement is needed. The player character is halted and made non-controllable by the script when the cutscene starts and made controllable again when it ends. It is important to remember that if interacting with a sprite that might be moving, you have to manually call Halt() on them in their script to make them stop moving.
* Added variable movement speedKelly Rauchenberger2021-02-209-12/+22
| | | | Ionia now moves at half Lucas's speed, which I think is good for NPCs.
* Added enclosure zonesKelly Rauchenberger2021-02-205-0/+60
| | | | A sprite with an enclosure zone will collide with it if it attempts to leave the area defined by the zone. This is used to make sure that wandering sprites don't end up in weird places.
* Added a randomly wandering Ionia to the mapKelly Rauchenberger2021-02-209-5/+82
|
* Spawnblocked map sprites with already-used namesKelly Rauchenberger2021-02-181-0/+4
| | | | i.e. Map prototypes and triggers will not be instantiated upon loading the map if there is a persistent sprite with the same name. This is important because the Claus that joins your party is originally a map prototype.
* Started adding event where Claus joins the partyKelly Rauchenberger2021-02-183-2/+16
|
* Made some sprites persist between map changesKelly Rauchenberger2021-02-1712-85/+108
| | | | | | The player party characters are now initialised at the start of the game and are no longer re-created after every map change. The script system takes care of moving the player into the correct position on the new map. Deleted sprite IDs are now reused the next time a sprite is created, instead of throwing out everything between maps.
* Added expressions (currently just surprise)Kelly Rauchenberger2021-02-171-1/+9
|
* Added scriptable camera panningKelly Rauchenberger2021-02-163-14/+79
|
* Added camera shake to lightning eventKelly Rauchenberger2021-02-154-3/+52
|
* Added map fadeoutsKelly Rauchenberger2021-02-148-14/+165
| | | | Screen fadeouts and map fadeouts are now handled by the effect system.
* Added lightning sprite to mailbox eventKelly Rauchenberger2021-02-1316-33/+135
| | | | | | | | Sprites can be destroyed now, which really just means that their index is removed from the list of active sprites. The actual memory is not freed until all sprites are deleted on map change. Sprite layers are introduced. All sprites by default are on layer 0 (Normal) which renders them in between the lower and upper map layers. There is also a layer 1 (Above) that renders above the upper map layer, and the sprite for the lightning strike uses this layer in order to not be hidden by the trees. Fixed a bug where waiting for the end of a non-looping animation would trip the flag immediately upon the final frame activating, instead of waiting the length of the last frame.
* Added non-looping animationsKelly Rauchenberger2021-02-134-11/+31
| | | | Lucas can get electrocuted now.
* Player is a bit lower on screen nowKelly Rauchenberger2021-02-131-1/+1
|
* Added sprite shadowsKelly Rauchenberger2021-02-135-0/+15
|
* Got correct sprites for message arrowsKelly Rauchenberger2021-02-122-13/+18
|
* Added sfx for selecting message choicesKelly Rauchenberger2021-02-121-0/+8
|
* Added tile-sized invisible spritesKelly Rauchenberger2021-02-122-1/+18
| | | | These are used when you want a solid, interactable object that is part of the map instead of sprite animated (e.g. the mailboxes).
* Scripts are organised per-map nowKelly Rauchenberger2021-02-127-19/+20
|
* Added message bulletsKelly Rauchenberger2021-02-123-13/+32
|
* Added choice promptsKelly Rauchenberger2021-02-115-38/+110
| | | | "A presses" are also no longer special values in the lines list, but are rather a field on the MessageLine object.
* Player movement/input is halted during cutscenesKelly Rauchenberger2021-02-103-1/+16
|
* Player is no longer controllable during map transitionsKelly Rauchenberger2021-02-104-4/+7
|
* Removed out-of-bounds tile collisionKelly Rauchenberger2021-02-101-4/+10
| | | | This allows running off screen for a map transition to happen without bumping into something that isn't there.
* loadMap requires a direction now, so party trails are set up correctlyKelly Rauchenberger2021-02-105-6/+14
|
* Running is preserved across screen transitionsKelly Rauchenberger2021-02-103-13/+32
|
* Direction is preserved across map transitions nowKelly Rauchenberger2021-02-101-1/+25
|
* Fixed running sound looping infinitely after running into map changeKelly Rauchenberger2021-02-103-4/+14
|
* Added fade out around map changeKelly Rauchenberger2021-02-104-3/+20
| | | | Also moved script system first in the loop so that the camera can catch up before rendering. Also added a map change from map 2 back to map 1.
* When changing map, place whole party at the warpKelly Rauchenberger2021-02-101-4/+6
|
* Fixed issue with walking vertically into solid spritesKelly Rauchenberger2021-02-101-6/+6
|
* Map changing!Kelly Rauchenberger2021-02-0916-66/+119
| | | | Also removed some dependencies on the Renderer. More changes need to be made. Fading to black before the change would be good. And making sure the characters are facing the right direction. Maybe that code shouldn't live in Game, either. Later we also want to combine the tilesets for these two maps (and any others that are on Tanetane).
* Added trigger zones to the mapKelly Rauchenberger2021-02-098-18/+76
| | | | Walking into a trigger zone runs a script.
* Maps can contain named points of interest called warpsKelly Rauchenberger2021-02-093-1/+11
|
* Fixed issue with single-line messagesKelly Rauchenberger2021-02-091-0/+4
| | | | Including the "no problem here" message. Problem was introduced with the \f change.
* Entity prototypes can be stored in the map file nowKelly Rauchenberger2021-02-093-5/+49
|
* Added newlines that don't require A pressesKelly Rauchenberger2021-02-092-8/+26
| | | | \n in a text message just indicates a newline. \n\f is a newline with an A press.
* Added "no problem here"Kelly Rauchenberger2021-02-071-0/+13
|