The EXSP Lab

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
User avatar
Diarmuid
Posts: 807
Joined: Thu Nov 22, 2012 6:59 am
Location: Montreal, Canada
Contact:

The EXSP Lab

Post by Diarmuid »

In a deep underground complex, mad alchemists are tampering with the fabric of magic, conducting forbidden experiences, creating new spells. Are you ready to visit the Laboratory?

Image


Here's the EXSP Lab
a testing playground for my spell creations.
Download the latest .dat here:
https://docs.google.com/folder/d/0B-rVm ... FEMUU/edit

This dungeon contains a series of Test Rooms where you can experiment with the different new spells I am creating, with the help of others on the forum. I thought that videos were fun, but actually experimenting this live is even better. I will update this regularly as new ideas come - all spells shown are included in the latest packaging of exsp: viewtopic.php?f=14&t=4459.

Here's what's contained in the Lab right now:

Test Room 01 : Grimwold's Magic Pack
- Healing
- Push Monster
- Hold Monster
- Burn Monster
- Freeze Monster
- Fire Storm
- Ice Cone
- Lightning Storm
- Poison Burst
- Antimagic Zone

Grimwold has given me permission to adapt his magic pack for exsp, and I cannot state how invaluable this was. Porting his spells allowed me to debug and streamline the framework, and create many useful functions that will be reusable in the future. Exsp allowing for more powerful scripting, his spells were slightly enhanced in the process. Here's Grimwold's and my notes:
SpoilerShow
To Use
======
Grimwold: New spells will automatically be available to wizards of the appropriate skill and level. Scrolls for each spell can be added through the editor. Anti-magic Zone objects can be placed using the editor. Add them to any space(s) in the dungeon and the party will be unable to cast spells if they stood in that space.
Diarmuid: You can select which spells to load by setting the variables below to true or false (all spells are loaded by default).

New Spells
==========

Combined Healing - Spellcraft level 16/24 based on caster's level will either heal champion with lowest percentage health or, above level 24, heal all champions.

Push Monster - Air magic level 5. Will cause a monster in front of the party to be teleported one space away if able.

Hold Monster - Earth magic level 5. A monster infront of the party is held and unable to move, turn or attack for a number of seconds based on the casters skill.

Burn Monster - Fire magic level 5. A monster infront of the party is burnt every 2 seconds, with duration and damage based on the caster's skill.

Freeze Monster - Ice magic level 5. A monster infront of the party is frozen. Duration is based on the caster's skill.

Fire Storm - Sample spell from Grimwold's Area of Effect System. Damages all tiles around the party.

Ice Cone - Sample spell from Grimwold's Area of Effect System. Damages monsters in a triangle of spaces in front of the party.

Lightning Storm - Sample spell from Grimwold's Area of Effect System. Damages monsters in a large square around the party.

Poison Burst - Sample spell from Grimwold's Area of Effect System. Damages monsters in the 3 spaces (orthogonally and diagonally) in front of the party.


Grimwold's Credits
==================
All scripts in this pack are written by myself. However there are a few people without whom this pack would not have been possible.

JKos - for explaining the damageTile() function in great detail.
Cromcrom and Akroma222 - for the initial idea of Area Effect spells.
Edsploration - for his idea of a teleport probe.


Diarmuid notes on EXSP adaptation:
==================================
- Healing:
* Added description to spell scroll.
- Hold Monster:
* Spell now works with monster groups, holding each individual monster.
* You can now hold multiple monsters on different tiles independently with their own delays and effects.
* Spell is now cast as a "BurstSpell" with light, sound & particle effect.
* Added new sustained FX to Hold Monster to avoid abrupt disappearing/reappearing smoke.
* Duration has been toned down a bit for balance(duration = skill instead of skill *2 ) and takes into account monster health: duration is reduced by 1s for each 100hp the monster has, stronger monsters will be less affected.
* Added description to spell scroll.
- Push Monster:
* Spell now uses exsp.getCollisionAhead to check for a free tile beyond the monster. It's more error-free than the probe (which could push a monster through a door, or trigger a pressure plate by mistake for example).
* Spell is now cast as a "BurstSpell" with light, sound & particle effect.
* Monster is now held for 0.2s after being pushed. to allow party to move in the square if desired.
* If monster is held by Hold Monster spell, the hold FX gets pushed as well.
* Added description to spell scroll.
- Burn Monster:
* Spell now works properly with monster groups, as the "group" will continue to burn even if some of the monsters in it die.
* Spell is now cast as a "BurstSpell" with light, sound & particle effect.
* Spell power is properly modelled after skill (skill/2).
* Added description to spell scroll.
- Freeze Monster:
* Spell is now cast as a "BurstSpell" as Grimwold originally intended it, in line with the rest of the cycle.
* Spell doesn't do any damage anymore, it just freezes.
* Duration has been aligned with that of Hold Monster for balance (duration = skill) and takes into account monster health: duration is reduced by 1s for each 100hp the monster has, stronger monsters will be less affected.
* Monster is now frozen at an exact (1s) duration according to skill, not in increments of 5s.
* Added description to spell scro ll.

Enjoy!
- Fire Storm
* Added light to visual effect.
* Toned down damage for balance (now power = skill*3) and raised skill requirement (20)
* Radius augments with skill level (base = 1, 2 after level 30, 3 after level 40 and 4 after level 50)
* Added description to spell scroll.
- Ice Cone
* The ice_shards effect now doesn't do damage, only the actual spell does.
* Toned down damage for balance (now power = skill*2, because it has a freeze chance) and raised skill requirement (20)
* Cone length augments with skill level (base = 2, 3 after level 30, 4 after level 40 and 5 after level 50)
* Spell has a 25% chance to freeze any monster it hits.
* Added description to spell scroll.
- Lightning Storm
* Added light to visual effect.
* Toned down damage for balance (now power = skill*3) and raised skill requirement (20)
* Changed chape to "diamond" from exsp.areaOfEffect, to differentiate from Fire Storm.
* Radius augments with skill level (base = 2, 3 after level 30, 4 after level 40 and 5 after level 50)
* Added description to spell scroll.
- Poison Burst
* Toned down damage for balance (now power = skill*2, because it also leaves the poison cloud) and raised skill requirement (20)
* Burst size augments with skill level (base = 1, 2 after level 30, 3 after level 40 and 4 after level 50)
* Added description to spell scroll.
- Anti-Magic Zone
* Spells which fly through an anti-magic zone are now destroyed.
Test Room 02 : Spell Spinners

Have fun with spell spinning!
http://www.youtube.com/watch?v=eil8ehFe304
http://youtu.be/gdD003Vqp5g

Test Room 03 : Wandering Lights

Spells that wander around, preying on unaware champions : http://youtu.be/HFFEfWZ-rjc

Test Room 04 : Diarmuid's Offensive Spells
- Chain Lightning : http://www.youtube.com/watch?v=zCWCfHaz-8k
- Elemental Storm : http://youtu.be/YJS_USBE3mk
- Flame Carpet : http://www.youtube.com/watch?v=w29n3evXES0
- Energy Beam (original idea by hyteria)

These show some of my spell creations. Brand new are Flame Carpet, a "fire" version of Ice Shards, something I've seen frequently requested on the forum, and Energy Beam, a spell that I created on request for hyteria. He supplied the wonderful idea of creating a beam of sustained energy that would drain the caster's mana for as long as he keeps his concentration, I did the execution.


Test Room 05 : Diarmuid's Utility Spells
- Zo Spell (Open Doors) : http://www.youtube.com/watch?v=kRtOYEHqh2s
- Reach Spell : http://www.youtube.com/watch?v=EITsiQxMlsU
- Spell Shield : http://www.youtube.com/watch?v=5yQWdIf0sXc

Test Room 06 : Portals!

From Aperture Laboratories to Mount Grimrock, the real thing: http://youtu.be/Xb7JpoInmmg
Last edited by Diarmuid on Sat Jan 19, 2013 10:31 am, edited 2 times in total.
hyteria
Posts: 266
Joined: Sat Dec 29, 2012 8:22 pm

Re: The EXSP Lab

Post by hyteria »

very good job !!!!!!!
User avatar
Grimwold
Posts: 511
Joined: Thu Sep 13, 2012 11:45 pm
Location: A Dungeon somewhere in the UK

Re: The EXSP Lab

Post by Grimwold »

Awesome stuff. A privilege to have my spells incorporated in your framework.
User avatar
Komag
Posts: 3658
Joined: Sat Jul 28, 2012 4:55 pm
Location: Boston, USA

Re: The EXSP Lab

Post by Komag »

Very cool, I like the idea of showcase things like this :)
Finished Dungeons - complete mods to play
xbdj
Posts: 32
Joined: Sun Dec 30, 2012 7:43 pm

Re: The EXSP Lab

Post by xbdj »

Very nice!

However the game crashes when I cast freeze monster on the snail in test room 1
User avatar
Diarmuid
Posts: 807
Joined: Thu Nov 22, 2012 6:59 am
Location: Montreal, Canada
Contact:

Re: The EXSP Lab

Post by Diarmuid »

Aha! A bug... :twisted: I'm going to check it out, thanks for the feedback!

EDIT: It was a small thing I commented out while testing and forgot to reactivate. I've updated the Lab file and added the bugfix for next release of exsp.

The freeze function was anyway one really tricky to get going. For those interested, what is happening is:

1. monster:freeze(duration) gets a list of all monster ids in a tile (in case it's a group)
2. it makes all those monsters invulnerable to damage (so that the frostbolts below only freeze, no damage)
3. it fires 4 invisible frostbolts from the center of the tile outwards (this is to catch the monster if it's moving between two tiles). There are actually 60 cloned frostbolts with durations from 1s to 60s, named "exsp_freezeHelper_1" to "exsp_freezeHelper_60".
4. 0.2 seconds later, it destroys all invisible frostbolts that haven't hit a monster to avoid them flying away and it makes monsters vulnerable to damage again.

That way you can just freeze a monster instantly anywhere. I've tested it with a lever for example, very funny. You pull the lever and a skeleton freezes cold in the middle of the room :).
Bluefire3366
Posts: 13
Joined: Tue Jan 15, 2013 10:35 pm

Re: The EXSP Lab

Post by Bluefire3366 »

#logfw_init:6: attempt to call global 'getMaxLevels' (a nil value)
stack traceback:
[C]: in function 'error'
[string "ScriptInterface.lua"]: in function 'close'
#logfw_init:6: in function <#logfw_init:4>
[string "ScriptEntity.lua"]: in function
'onMessageRecieved'
[string "MessageSystem.lua"]: in function
'sendMessageToEntity'
[string "MessageSystem.lua"]: in function
'broadcastMessage'
[string "TriggerEvents.lua"]: in function 'fire'
[string "Timer.lua"]: in function 'update'
[string "Map.lua"]: in function 'updateEntities'
[string "Dungeon.lua"]: in function 'updateLevels'
[string "GameMode.lua"]: in function 'update'
[string "Grimrock.lua"]: in function 'display'
[string "Grimrock.lua"]: in main chunk


This is the error message that I received upon opening the file for EXSP Lab in game.
User avatar
Diarmuid
Posts: 807
Joined: Thu Nov 22, 2012 6:59 am
Location: Montreal, Canada
Contact:

Re: The EXSP Lab

Post by Diarmuid »

Aaah sorry, that's because I'm developping another super secret spell in the lab, and forgot to unload the WIP spell before exporting, here we go again... The working .dat will be up in 1 min.
User avatar
Darklord
Posts: 2001
Joined: Sat Mar 03, 2012 12:44 pm
Location: England

Re: The EXSP Lab

Post by Darklord »

Nice! :)

Daniel.
A gently fried snail slice is absolutely delicious with a pat of butter...
User avatar
germanny
Posts: 530
Joined: Sat Apr 07, 2012 10:52 pm
Location: Kiel, Germany

Re: The EXSP Lab

Post by germanny »

Just tested the lab. This is all really wonderful! Great work. i love it!
And no errors found so far.
Dungeon Master Resource Pack worker and passionated Beer drinker
Post Reply