Light, wait and summon
Dynamic Lighting and controllable light leaking
I'm using Dijkstra for the dynamic lighting, so lighting goes around corners really, to simulate indirect light arriving there by bouncing off other walls. It was correctly pointed out to me that there are no hard shadows anymore, and stealth game would be not very effective (can't try to hide in the dark behind some bookshelf, if light does reach there). On the other hand, I like light leaking. So, I thought I'd go for the best of both worlds: partial light leaking. Above is a video that shows the effect using a slider between full leaking (my previous version) and no leaking (hard edges). I'll probably leave it somewhere in the middle. The key approach here is instead of using just the Dijkstra cost, I also calculate if the step-wise distance to the light matches the cost. If it does, it means there were no obstacles, so it's fully lit. If the Dijkstra distance is greater than the step-wise distance, it means that the light arrived there while going around obstacles, so it was indirect light. IMO it's a pretty neat and cheap solution to the problem.Wait function
I've added some console command (and associated gameplay code) to wait some random time, any amount really. It's a true wait: simulation runs behind the scenes. Needless to say, if we wait for 10hours in a dungeon with enemies around, hero is toast. I've added that to test weather effects, time-of-day, and later on possibly some time-based puzzles/quests etc. The amount of time gets broken down to unequal parts. If for example we wait for 10 hours, we take an wait action of 80% of that (8 hours), then 80% of what remains (96 minutes), then 80% of that, etc, so we ease into the target time. Above is a video that shows the time-of-day light via waiting.Summon minions
I'm in the process of adding support for spawned minions, e.g. a dire wolf summoning some other wolves or an ooze spawning some more oozes, etc. Work still needs to be done in this department (configurable minion behaviour, actions based on the leader, etc) but it's moving forward.