Signs: I think I'm going to go with an inside corner like in Sergio's example. Ultigonio's example looks nice, but what happens on a dark background? A small, slow animation would help keep a tiny arrow noticeable. I may allow it to interfere with the final character in a message like Sergio's. I don't see designers filling message boxes up like that too often. If they're using advanced signs they can add more messages. If they're not using advanced signs the arrow wont show anyway.
Shift on last message: I thought of a way to do this that would be simple for designers. I could add a pause declaration to Shifts. Then add checks for special messages in the Signs.
Example | ShiftHold(A)=True Sign3(B)=Shift(A) |
Assuming all the other commands are in place, Shift A would be unusable until pushing down after the second message in Sign B. Internally, there are lots details to be worked out. I'm putting it on my to do list. Being on my to do list only means I'll attempt to implement it. If I feel it's too awkward, bulky, or impossible I'll drop it.
Knytt Character: Speaking of awkward and bulky, I've got full two-color adjustments working on the Knytt character and his hologram. I've also allowed you to change characters on Shift. Changing characters wouldn't be so bad if it weren't for the color changes. It all works perfectly but there are fat chunks of code that run on every load (reverts to color at last save) and every shift (must at least check for color and character changes.) Despite the bulk, I'm keeping it in the mod. I think they're a lot of fun, and I haven't been able to detect any loss in performance.
Child Objects: I've been contemplating how to put external graphics on dynamically created objects; rain, leaves, projectiles, etc. The engine could generate a custom object for each one, but this could be awful. Too many CO's cause noticeable slow down, so rain would be impossible. Declaring multiple sprite sheets for projectile-shooting enemies would be awkward for designers. My current solution is to allow color replacement on simple Child Objects. Instead of declaring an image, designers declare a color.
Example: | [Custom Object 21] Color=65535 Bank=7 Object=1
[Custom Object 22] Color=65535 Bank=7 Object=2 |
These would create bright yellow leaves. 7:1 is the leaf generator. 7:2 is the single leaf.
@ Sergiocornaga: The default behavior of a Trigger is to spawn an object at the 0:0 screen tile position. You declare TrigSpawnX(A) and TrigSpawnY(A) to pick a new location. If you declare TrigAbsoluteTraget(A)=False, then TrigSpawnX(A) and TrigSpawnY(A) indicate how many tiles from Trigger(A) to position the new object. The only offset commands you can declare are TrigEffectX(A) and TrigEffectY(A). These can move the spawn effect (same as shift effect) for creatures larger than 24x24 pixels.