BASICTALE is a project I worked on to help me learn Lowerdash a year ago, and I also did this small thing because of how terrible somebody else did it when it could be easily done better.
Have fun!
Btw, there is an unfinished 0.2.0 version included, but you can't even fight or anything because that just freezes the game lol. It has the convenience of showing all of the included files and being able to select them, but I personally got bored of this project.
Instructions:
How to start a fight:
There is a dialog that appears that asks for a *.SB file, just input one of the files without writing the .SB extension.
- Samples include: EX.SB
Making a fight:
Add basic player and enemy data
The program uses a DICT program to parse the files inside of the *.SB files, there are two that are defined in the program and each field should be pretty self-explanatory.
@HUMAN
DATA "NAME", "FRISK"
DATA "HP, "99"
DATA "LV", "20"
DATA ""
@MONSTER
DATA "NAME", "SKELETON",
DATA "ATK", "10"
DATA "DEF", "10"
DATA "HP", "2000"
DATA "ACT", "CHECK*TALK"
DATA "WAVES", "6"
DATA "TEXT", "*IT IS THE END."
DATA "SPBASE", "1398"
DATA "SPANIM", "15,1398,15,1399"
DATA ""
Making waves/enemy sequences
You should have a command for every WAVE that you defined in the MONSTER data. Like, if you set WAVES to 2, you'd do the following:
DEF MONSTER_WAVE0000 C% OUT L%, T%:END
DEF MONSTER_WAVE0001 C% OUT L%, T%:END
Parameters of the command
C%: Internal timer, to help with doing sequences like trigonometric calculations for doing wonderful things.
L%: Length of the sequence in frames.
T%: How long till the WAVE command should be called again in frames.
Here is how to create a bullet in the form of an example:
DEF MONSTER_WAVE0000 C% OUT L%, T%
VAR STARTX% = 0, STARTY% = C% MOD 240
VAR ENDX% = 400, ENDY% = STARTY%
VAR SPEED% = ABS(ENDX% - STARTX%) * 2
BATTLE__WAVE_BULLET STARTX%, STARTY%, ENDX%, ENDY%, SPEED%
l% = 360
T% = 1
END
Adding BGM
It's simply as easy as adding
@BGM somewhere in the file and then the MML in a data string below it, if you are defining it at the beginning of a file, remember that you can stop the MML from parsing by putting a 0 as a data input. Example of BGM in action:
@BGM
DATA "T500L16:0[CDEFG]:1[GFEDC]"
DATA 0
Notes:
we now have screenshots