Skip to content

Commit

Permalink
Merge pull request #1 from akdb/first-try
Browse files Browse the repository at this point in the history
  • Loading branch information
schwjm authored Jul 27, 2023
2 parents 6c33fb2 + b0260e9 commit 9bd4fdc
Show file tree
Hide file tree
Showing 17 changed files with 1,483 additions and 1 deletion.
34 changes: 34 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Lua CI

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
luaVersion: ["5.2.4"]

steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Use Node.js ${{ matrix.node-version }}
uses: leafo/gh-actions-lua@v10
with:
luaVersion: ${{ matrix.luaVersion }}
- run: |
lua squish
cp license.lua gs-encounter-notes-overlay.lua
cat gs-encounter-notes-overlay.inc >> gs-encounter-notes-overlay.lua
- uses: actions/upload-artifact@v3
with:
name: Encounter Notes Overlay
path: gs-encounter-notes-overlay.lua
if-no-files-found: error
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
gs-encounter-notes-overlay.inc
gs-encounter-notes-overlay.lua
gs-encounter-notes.csv
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 akdb
Copyright (c) 2023 Justin Schwartz

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
66 changes: 66 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,68 @@
# golden-sun-encounter-notes-overlay

Golden Sun practice tool: BizHawk Lua script that reads a notes CSV file and displays directives for each party member during an encounter

## Features

- Loads CSV files you can edit with your favorite spreadsheet program
- Automatically downloads notes you can use if you don't have any
- Allocates space for key words for each party member, as well as a general "extra" line of information
- Aligns notes to party member number whatever order they happen to be in (1 is always Isaac)
- Supports reverse encounters and adjusts targeting numbers appropriately
- Bugs

## Usage

Load `gs-encounter-notes-overlay.lua` from BizHawk 2.8's Lua Console while playing Golden Sun.

The `gs-encounter-notes.csv` file in the same folder, will drive the information displayed on-screen.
If the file does not exist, one will be downloaded automatically.

This has not been tested with any other emulator version.

This has not been tested with Golden Sun: The Lost Age, but support will come.

## Demo

https://github.com/akdb/golden-sun-encounter-notes-overlay/assets/20408541/8afa1b20-861d-465e-888c-5ae2a297fae6

## Notes Format

Comma-separated-values.
The first row, denoting the header, is key.
It does not matter what order the columns are in, but the following columns should be defined:

- `encounterKey` - Stores a set of enemies based on name (without numbers), comma separated e.g. `"Gnome,Gnome,Troll"`.
The system automatically can associate the reverse encounter to the correct key and adjust accordingly.
- `1` - Isaac's action. The first word is anything (but should be relatively short, 10 characters is probably too many to fit in the space available).
The second (optional) word is a targeting number denoting the 1-based enemy number from the left. e.g. `2` refers to the middle enemy in a group of 3.
- `2` - Garet's action, like above
- `3` - Ivan's action, like above
- `4` - Mia's action, like above
- `extra` - Any other stuff that doesn't fit but should be displayed on-screen
- `fileDescription` - Not actually associated with the encounter but will be text printed to the Lua console when the notes are loaded

Other columns are effectively ignored.

### Example

```text
area,encounterKey,4,1,2,3,extra,fileDescription
02 imil,"Gnome,Gnome,Gnome,Gnome",,ramses 2,atk 4,ray 2,T2:ray
```

## Special Thanks

- Thanks to those who taught me, directly or indirectly, about the internals of Golden Sun and helped solve certain challenges here
- Plexa
- Raphi
- Salanewt
- Tea
- zadeta656
- Thanks to ollie for putting together an amazing Golden Sun encounter notes spreadsheet resource that helped inform and inspire me

## License

Copyright (C) 2023 Justin Schwartz, except where otherwise noted.

This code is licensed under the [MIT License](LICENSE).
21 changes: 21 additions & 0 deletions license.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- MIT License
--
-- Copyright (c) 2023 Justin Schwartz (except where otherwise noted)
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in all
-- copies or substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
Loading

0 comments on commit 9bd4fdc

Please sign in to comment.