Important! Upcoming changes to the scripting language (0.7.0)

So, lots of changes in Dagon lately, both on in the inside and the outside. I took the opportunity to tidy up the GitHub repo within the past couple of days and create issues for my own personal todos and all the things you requested. It’s very complete, and as a result we may have for the first time a very clear idea of the future of the engine.

You can peruse the issues here:

And a rough idea of the milestones here:

As you can see, 0.7.0 will bring some breaking changes to your current scripts, though nothing terrible. My priority remains implementing things that are mandatory for Asylum, but in the process I’m always thinking forward and trying to make the language more generic and suitable for as many cases as possible. The two major changes will be the way feedback texts are handled and how objects are attached to spots. Please, take a look at these two issues which are self-explanatory:

And discuss here if the new approach makes sense. The changes I propose can be replicated with a fairly simple search & replace.

BTW you can browse all the issues I have assigned to 0.7.0 here:

So you can now keep a close eye on everything I’m doing. I feel so exposed :stuck_out_tongue:

Now seriously, the most critical task is finalizing the NPC system but you can also see the upcoming fixes and improvements.

Agustin, what a great list, I can see several issues that would be helpful, especially the ability to easily change the effects per room (#91). I think we can do that now via the spot linking the rooms, but have not tried it. Are you thinking about having “sets” of effects in the Main.lua file and then adding them at the top of each room like we do the footsteps, music, etc.? – City:setDefaultFootstep("step_concrete_l")

I dusted off the Hotel room last weekend and RF2 is going to fix the inventory, journal, and menu screen. She’s been really busy, but we hope to get that to you soon (#100).

Yes, terrific if we can get one example! I already have something down the loop, and it will feature a new room from Asylum :wink:

As for the effects, I meant setting up individual structures per room. Right now there’s a global effects library where you do things like this:

effects.motionBlur = 700 effects.sharpen = 50 ...

Now imagine if you can do something like this:

[code]effects.copy(cafeteriaEffects) – Copies the current global effects
cafeteriaEffects.dustColor = 0x8880eeee – Overrides whatever was global
cafeteriaEffects.dust = 30 – Same here

Cafeteria = Room(“Cafeteria”)
As you can see, the engine would understand there’s a set of custom effects for the cafeteria and automatically loads that whenever you enter the room. When you leave, it falls back to global effects (provided the new room doesn’t require other custom effects).

Handy, right?