Open leo60228 opened 4 years ago
What I meant by repo wiki was a wiki on the repo containing explanation and documentation for all the new features.
Suggestions:
mapimage()
(and custom maps in general) not working with gamemode(teleporter)
.mapimage()
multiple times.mapimage()
in succession by loading images incrementally, eg mapimage(graphics/filename$.png,000,134,5)
, with $ being replaced with 000-134 automatically, and putting a 5-frame delay between each usage of mapimage. Maybe this is too crazy, but it'd be cool for animations using gamemode(teleporter)
.In hindsight, just implementing variables that can be used combined with filenames in CE commands would do the same job as the last one.
Fix mapimage() (and custom maps in general) not working with gamemode(teleporter).
Implement a command that shows all the coordinates on the map permanently.
Fix the memory leakage from using mapimage() multiple times.
Done. (new command is disablefog
)
Implement a command that shows all the coordinates on the map temporarily (perhaps until the script ends.)
Does using disablefog
and enablefog
work?
In hindsight, just implementing variables that can be used combined with filenames in CE commands would do the same job as the last one.
@AllyTally Are you planning this?
Implement a command that loops mapimage() in succession by loading images incrementally, eg mapimage(graphics/filename$.png,000,134,5), with $ being replaced with 000-134 automatically, and putting a 5-frame delay between each usage of mapimage. Maybe this is too crazy, but it'd be cool for animations using gamemode(teleporter).
I'd rather just use variables if possible.
Wait, I haven't pushed yet.
Done.
markmap(roomx,roomy,tiles1 tile id), kind of self explanatory - it isn't imo
What I think pixelator meant by this was that you should be able to make a map marker (like the T's representing teleporters or S's representing trinkets in the main game) using any tile from tiles1.
Thanks for the fixes, btw!
In hindsight, just implementing variables that can be used combined with filenames in CE commands would do the same job as the last one.
@AllyTally Are you planning this?
If you set the variable this
to green
, then something like changeplayercolour(%this%)
would turn the player green. It's basically just a simple find/replace, so it'll most likely work with commands that need filenames. If not, that's a huge bug!
More suggestions:
Fix green enemies in gray Warp Zone tileset
As of c47061d9d8c384ed287b9689178b56fe2bf63035, this is fixed.
placeable upsidedown terminals
As of ca9867e09ce45a8dbb39cd0457a1ca7f244b10f9 and 02c267eeae0a466cff3e571b67be4a21f7ea7c6c, this is added.
Fix cutscene bars appearing on one-time scripts with say or reply
I am interested in figuring out a good theoretical solution to this. I don't have a good one yet.
I was thinking to insert the cutscene bars before the first say/reply and remove them after the last one.
btw @InfoTeddy, if you have owner perms in an organization you can edit other people's comments
More suggestions:
onkeypress()
is implemented, maybe add a second scriptable action button mapped to the X key (and the X button on an Xbox controller - that is, the left action button).%player_x%
and %player_y%
drawtext()
with a border (i.e. with dwgfx.bprint()
)drawtext()
is the border, type "true" to draw border@leo60228 Oh, okay.
Fix cutscene bars appearing on one-time scripts with say or reply
As of a3cd8f765f1c7a59f347fcc09b106e0aeec22ede, you can use nobars()
to disable automatic cutscene bar placement.
Reload scripts in room without affecting entities
As of a62adec85549e95e9ae7c8e60e4fdf80f8bde78d, you can use reloadscriptboxes()
.
Gray Warp Zone tileset in editor
Added in b989857b9cb6b96a275ab8df4b37554beca1da06.
Mode for flipping in mid-air/disabling flipping/jumping
Both added in a332ed36cbbdeb232db64bfbbfa8cc87afebf1fb and 05f8e715928b33aa4d3578cafe9f0098bc80543a for toggling flipping, and d2479b357583ad646c98dfea8d5b9a61de313192 and e14ac342bb2952f4b81aef0ccc8a20bb8d08be86 for toggling mid-air flipping. Use disableflip
and enableflip
for toggling flipping and enableinfiniflip
and disableinfiniflip
for toggling mid-air flipping.
untilmusic(), to wait until the music has fully faded in/out, but the only real usefulness that would have is covered by nicefade()
Whatever this nicefade()
is supposed to be, I can't find it anywhere and it's not in the Discord. So I can't tell what Pixelator wants a nicefade()
to do.
Proper
stopscript
command
Do we need this? loadscript(stop)
works fine.
untilmusic()
, to wait until the music has fully faded in/out, but the only real usefulness that would have is covered bynicefade()
This is useful apart from a not-yet-added nicefade()
because a while ago a second optional argument to play()
was added, being the fade-in time for the track in milliseconds.
And as of 2f8ef9213c223c093a2c02c64ed8d27132d87fff, untilmusic()
has been added, along with puntilmusic()
.
I'm guessing it was a typo of niceplay.
Labels and
goto
command
As of 66cbae3bb1765a144e755af39b99e6c45f4b309e, this is added. Define a label using $label$
, then to jump to it, use it as a script name in a command like iftrinkets
, e.g. iftrinkets(0,$label$)
. If you're in another script, simply use scriptname$label$
as a script name instead.
creatergbcrewman
should be a thing. also should we use hex codes instead of three separate arguments for r, g, and b - unsure of the status on this
Why should we use hex codes instead?
Fix delay when immediately loading a script when entering a room
As of a2fda687b806893f3cb8942aa9dc7da3198f7f66, this is fixed.
I personally checked with libTAS that the script executes immediately upon entering a room, btw.
Enemy speed
Please elaborate on this one, @Stelpjo. Do you mean you want a room property to control the room's edentity enemy speed just like the platv room property?
Enemy speed
Please elaborate on this one, @Stelpjo. Do you mean you want a room property to control the room's edentity enemy speed just like the platv room property?
Yes, that would be nice!
Discord bot to automatically upload levels - bot at https://github.com/leo60228/levelbot, client not implemented
also an inverse
endtextfast
, maybespeak_fast
andspeak_active_fast
As of 54925bb2f6e175ff75fb300ef76aee893e9a8d1e, these have been added.
Variables have been added (they've already mostly been added, I just added support for saving and loading them from a quicksave).
Use setvar(name [, contents])
to set a variable to either the given argument or to what's on the next line. Use addvar(name [, value])
to add or subtract an amount from a number, or to concatenate a string to a variable, using either the given argument or whatever's on the next script line.
More suggestions:
ifvar(name,less/lesseq/greater/greatereq,value,script)
font2.png
and font2.txt
(possibly 3, 4, etc as well) - this would be helpful for levels to be able to add additional custom characters while still allowing font.png
and font.txt
to be appended to in updatesBesides that and fixing automatic custom asset loading, I think a lot's already been good enough for me.
Suggestions:
[
and ]
keys,
/.
(mnemonic: Ctrl+<
/>
) when placing them downteleportscript(custom_<script>)
ifinvincible(script)
- checks if the player has enabled invincibility or not, if yes go to scriptwarpdir(x,y,0)
switch to the correct background (lab, tower, WZ)settile
thing from all rooms where it happens but exactly (12,8) 1-indexed which is prize for the recklesstiles.png
/tiles2.png
to avoid breaking any levelsremove the settile thing from all rooms where it happens but exactly (12,8) 1-indexed which is prize for the reckless
If we're fixing this (which I don't really plan on doing anyway), I'd rather we just make it so it only happens in the main game. I don't think we need this hardcoded behavior anywhere in custom levels.
Extend the 20x20 map limit to 30x30 or 25x25
As of b1bfe2e8a7c1270e7234a785189e3c4e5d173e4d, this limit has been raised to 100x100.
why hello, it is I, the person who made an account to comment on this
creatergbcrewman
should be a thing. also should we use hex codes instead of three separate arguments for r, g, and b - unsure of the status on thisWhy should we use hex codes instead?
i just didn't want to raise the number of arguments the command has to around 10(!). seeing as it would be more consistent to use three separate arguments instead, that should be what's done, but that will make it 100% impossible to refer to the crewmate in other commands
anyway, i'm putting some more suggestions:
prompt(left/right/action)
. it's basically a prompt to continue the script without having to use a text box - planned, but only for actionp_prompt(input,script,frames)
, which will go to the specified script if you perform the input in the specified number of frames, but continue the script if time runs out - onkey() is planned for when async scripts happentextrgb
. cmon i know the color is theresetspeed
and setvelocity
for the Y direction - unsure of statuson
or off
- unsure of statusdrawrect()
More suggestions:
- Enemy speed
As of 022b2f50123158a2736370494aa1344e545464c7, this has been implemented. Use [
and ]
to change the speed of enemies you're about to place in the editor.
some incredibly specific suggestions of my own!
typewritertext(on,speed)
, alternatively typewritertext(speed)
: for textboxes. instead of the whole content of the textbox appearing at once, each character would appear one by one, until all characters are visible. maybe would show a ▼
afterward that blinks to indicate that its done. speed
would be the frames to wait between each character.typewritertext(off)
: turns the above off. alternatively, could just be typewritertext(0)
starspeed(speed,direction)
, alternatively starspeed(speed,directionx,directiony)
sets the speed of the scrolling star background. speed
would be the speed (with 0 as static). direction
would be 0 (right to left), 1 (down to up), 2 (left to right), 3 (up to down). alternatively, directionx and directiony could be how fast it moves in each direction, for diagonal scrolling.setbackground(image,speed,direction)
, alternatively setbackground(image,speed,directionx,directiony)
: sets the background of the room (of all rooms until you use it again???) image
would be the image file. speed
, direction
, directionx
, and directiony
would have the same behavior as they would for starspeed.(again, these are incredibly specific and mildly implausible so if none of them are possible/are extremely low priority thats OK)
starspeed()
would have to be a speed multiplier instead, because the stars move at varying (random) speeds.
huh, it always seemed to me that there were two "groups" of stars, one with a set faster speed and the other with a set slower speed. though, that gives me an idea for a command -
starcol(r,g,b,r2,g2,b2,r3,etc...)
sets the rgb color of the background stars. if more than one color is entered, it could be randomized between all of them. for the further bg stars, either you could make them be a darker multiple of the normal ones, or make a separate command for ithuh, it always seemed to me that there were two "groups" of stars, one with a set faster speed and the other with a set slower speed.
There is, in a sense, two "groups". One of them is light-colored, the other is dark-colored. If a star's speed is less than 7 pixels per frame, it becomes the dark-colored speed. But within these two groups, they all have varying random speeds.
But within these two groups, they all have varying random speeds.
Due to the star speed being an int
, there's really only three speeds
usable orange text boxes without
textrgb
. cmon i know the color is there
Not sure if you just misremembered, but the command to create a text box with RGB values is textcolor
or textcolour
, not textrgb
.
usable orange text boxes without
textrgb
. cmon i know the color is there
As of 6162d4bf983dd7f69dfb1239fa14070d593d53b1, this has been added.
i just didn't want to raise the number of arguments the command has to around 10(!). seeing as it would be more consistent to use three separate arguments instead, that should be what's done, but that will make it 100% impossible to refer to the crewmate in other commands
It's really cumbersome to have to refer to crewmates by saying (115,200,5) all the time, no matter if it's collapsed into one argument by saying 0x73C805 instead. Plus, there's still the problem of being unable to neatly refer to multiple crewmates with the same color.
A better solution would just be being able to name crewmates instead.
Show pixel coords (multiples of 8, like in ved) while hovering over a tile (while not in tower mode) - to the right of the room coords
The right space of the room coordinates is already reserved for denoting the current alt state if you are not in the main state and denoting the current tower if you are in one. We can't add pixel coordinates to the right of the room coordinates or they'd most certainly go offscreen.
@InfoTeddy "A better solution would just be being able to name crewmates instead." this is already implemented lmao
Then the remaining problem with such a creatergbcrewman
is the fact that the colour
attribute of entities always goes through the Graphics::setcol()
system.
stelpjo:
Non-repeating scripts without using flags- done, hold down X when placing a script box to make it run only onceFix cutscene bars appearing on one-time scripts with say or reply- done, usenobars()
to disable automatic barsFix looping playfile continuing after exiting level (playtesting or otherwise)- doneMode for flipping in mid-air/disabling flipping/jumping- done, usedisableflip
,enableflip
,enableinfiniflip
, anddisableinfiniflip
Command to go back to last checkpoint without dying- doneProper- done, usestopscript
commandstop()
Labels and-goto
command@AllyTally is working on this@InfoTeddy did it instead - define a label with$label$
, then go to it using something likeiftrinkets(0,$label$)
, if you're in another script doiftrinkets(0,scriptname$label$)
insteadVariables-@AllyTally is working on this- done, usesetvar(name [, contents])
to set a variable to the argument or the next line, andaddvar(name [, value])
to add/subtract an amount or concatenate a string, using the argument or the next lineReload scripts in room without affecting entities- done, usereloadscriptboxes()
Fix delay when immediately loading a script when entering a room- donepixelator:
placeable upsidedown terminals- done- done, also addeduntilmusic()
, to wait until the music has fully faded in/out, but the only real usefulness that would have is covered bynicefade()
puntilmusic()
- donemarkmap(roomx,roomy,tiles1 tile id)
, kind of self explanatory- doneunmarkmap(roomx,roomy)
: removes all map markers from the specified room on the mapinverse- equivalent feature added, optional parameter ofstopmusic
. sometimes i want my track to start instantly yknowplay
sets fade in time in ms (just pass 0)also an inverse- doneendtextfast
, maybespeak_fast
andspeak_active_fast
do()
modifier that will repeat for the duration that the player's hitbox is inside the script box. as a failsafe, maybe make it do nothing if the player has no control when they get to the loop command - not planneddestroy(crewman,<color>)
is implemented, give it an extra argument for the crewman to be killed like the player (0 or 1) - not plannedcreatergbcrewman
should be a thing. also should we use hex codes instead of three separate arguments for r, g, and b - unsure of the status on this