I have a few feature requests, which I decide to post here to get some feedback too (according to the
documentation, we need at least two or more possible games that might use this in order to implement them, so perhaps the community can help shaping these requests better).
1. A color transparent, useful to make markers, so you can simply type
SomeRandomMarker
transparentinstead of
SomeRandomMarker
black
.....
.....
.....
.....
.....2. Okay, this is not a feature request and more of a question. Why is there a limit on the number of objects and the number of layers? I think I never knew about the reason although I saw there are some limits... If it's because of the possibility of lagging, just give a warning "More than 32 objects; the game might lag" or something, but still allow the entire thing to compile. If you have a few markers, you usually need a layer for each marker, and if you want a nice decimal counter, you have to use at least 11 objects (10 digits + carry marker); some elaborate games might easily crash the limit. Okay, complex games shouldn't be coded in PuzzleScript, but I'm still curious about the reason of the limits.
3. A kind of reference to a particular object? Because I don't seem to be able to express this in words, let me show you a few examples:
[Object(1) | Object(2)] -> [Object(2) | Object(1)]swaps two Object's. (Probably with something else to avoid infinite loop, like
[NotProcessed] [Object(1) | Object(2)] -> [Processed] [Object(2) | Object(1)], but you get the idea.)
[orthogonal(1) Player] [WeirdFollower] -> [orthogonal Player] [counterclockwise(1) WeirdFollower]makes the WeirdFollower to follow the Player's movement but rotated 90 degrees to the left, so if the Player moves up, then the WeirdFollower moves left, and so on. Yes, I know this is possible using
[> Player] [WeirdFollower] -> [> Player] [^ WeirdFollower], but examples.
orthogonal(1) [Knight | | (2)] perpendicular(1) [(2) | Enemy] -> [| |] [| Knight]captures an Enemy in the Knight's range (as like the knight in chess).
I'm not sure how useful this will be, and how difficult this is to implement, but it can open up a lot of other things. Like, bullets moving diagonally right-downward? Just do
right [Bullet | (1)] down [(1) |] -> [|] [| Bullet], no need of making a new object for the bullet's temporary place while it "turns".
Checking two walls next to a player while there are a few players present? [Player(1) | Wall(2)] [Player(1) | Wall(no 2)] -> [Player |] [Player |] might be possible. Yes, this is really hackish and bad, but throwing my ideas out.
That's all I have right now. Opinions?