? BASICTALE ● SmileBASIC Source

Sign In

Register
*Usernames are case-sensitive
Forgot my password
💀

BASICTALE

Submitted
Updated
Author
AnswerXOX
Public Key
ZBL4NE8V
Min. Compat.
All
Version
0.1.0
Rating
0 votes
Description 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 ' PLAYER DATA DATA "NAME", "FRISK" DATA "HP, "99" DATA "LV", "20" ' LEVEL DATA "" ' ENDS DICT @MONSTER ' ENEMY DATA DATA "NAME", "SKELETON", '// THE NEXT 2 DONT MATTER DATA "ATK", "10" DATA "DEF", "10" '// DATA "HP", "2000" DATA "ACT", "CHECK*TALK" ' ACT OPTIONS SEPARATED BY ASTERISKS DATA "WAVES", "6" ' WAVES, AS IN, ENEMY FIGHT SEQUENCES I GUESS DATA "TEXT", "*IT IS THE END." ' TEXT DISPLAYED IN TEXT BOX, SEPARATED BY ASTERISKS DATA "SPBASE", "1398" ' SPRITE INDEX DATA "SPANIM", "15,1398,15,1399" ' SPRITE INDEX ANIMATION, DATA SEPARATED BY COMMAS DATA "" ' ENDS DICT

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% ' SPAWN PLACE OF THE BULLET VAR STARTX% = 0, STARTY% = C% MOD 240 ' END DESTINATION OF THE BULLET VAR ENDX% = 400, ENDY% = STARTY% ' SPEED THAT THE BULLET REACHES THE DESTINATION IN FRAMES VAR SPEED% = ABS(ENDX% - STARTX%) * 2 BATTLE__WAVE_BULLET STARTX%, STARTY%, ENDX%, ENDY%, SPEED% l% = 360 ' LENGTH OF SEQUENCE IN FRAMES T% = 1 ' NUMBER OF FRAMES BEFORE MONSTER_WAVE0000 IS CALLED AGAIN 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 no screenshots lol
Categories
Keywords
  • rpg
  • engine
  • sans
  • undertale
0 Comment(s)