[SCENARIO] Dungeon Adventure - the 133rd K.R.A.G.

Not sure about the screens- I like the current system of dungeons. The only thing I don't really like is that the game doesn't save your progress in one- you can't go directly from the surface to Level 9 after you fought down to Level 9 the first time. (But that would be fixed if the dynamic maps thing would work). Speaking of that...

I have gotten the Worldbuilder saving-and-loading of different scenarios to work. I made a WBS of the world map and then made the "go to World Map event" save the first map and load the world map over it.

There's only one real problem, which is that it's slower than it used to be. On my computer, it takes around 8 seconds to swap maps. (I timed it). I personally don't think that's too bad of a slowdown, but there is a noticeable pause between one map and the next.

The advantages of the system (which I think make up for the slow speed):

-You can have as many maps as you want
-It's pretty easy to swap between them, because I wrote a new function to do all map changes
-Data is saved when you leave a map and reloaded when you return to it
-It's easy to create or edit maps- you can just use the in-game Worldbuilder or another editing program that makes WBS files
 
Being able to use WB in that way would be huge bonus. I agree with you: 8 seconds to switch a map versus 1 second is really not that big a deal... especially if it allows persistent levels.

But is is possible to move persistent characters across maps?

For example, the hero character (Gorym) needs to move from level to level. So he would need to be removed from the map before the WB save of the previous level is made -- but have his data saved someplace so that he can be injected in to the new map.

Most NPCs are unchanging, although a few may need occassional updates. Random monsters can be wiped and regenerated with each instance of the map. Or have a hybrid system in which it is possible to "clear" a level, but still have chances for a few wandering monsters.

When moving from level to level, the python would first need to check to see if a WB file for level exists and if so, load it. If not, then generate a random level.

How would you recommend handling the need for persistence of the party members?
 
Being able to use WB in that way would be huge bonus. I agree with you: 8 seconds to switch a map versus 1 second is really not that big a deal... especially if it allows persistent levels.

But is is possible to move persistent characters across maps?

For example, the hero character (Gorym) needs to move from level to level. So he would need to be removed from the map before the WB save of the previous level is made -- but have his data saved someplace so that he can be injected in to the new map.

Most NPCs are unchanging, although a few may need occassional updates. Random monsters can be wiped and regenerated with each instance of the map. Or have a hybrid system in which it is possible to "clear" a level, but still have chances for a few wandering monsters.

When moving from level to level, the python would first need to check to see if a WB file for level exists and if so, load it. If not, then generate a random level.

How would you recommend handling the need for persistence of the party members?

After saving but before loading and applying, I moved your loop to delete all non-human and non-hero human units and made it do that. Then I made it flag all human hero units with script data. Then, after loading and applying I copied over the loop to delete all human units that aren't flagged, and move the ones that are flagged to the "starting point" (x and y coordinates of a plot that are passed to the switch map function).

So persistent characters are working.

I'm not sure how to check if a file exists in python, but I do like the idea to randomly generate maps, then save it, then be able to come back to it.


Unfortunately, it seems like I broke something. When I return to Shaft X using my system, plots aren't revealed like they should be- moving onto a Door only reveals the plots immediately around Gorym, not a large portion of the next room. I'm not sure why this is happening or even what I could have done that makes it happen.
 
Well while you're mentioning the levels of the dungeon I found a glitch.That if you for instance have 2 slaves and place gorym and the slaves on the staircase down there will be the question if you want to go down a level but it appears 3 times (Once gorym,and once for each slave) so you get from level 1 to lvl 4 instead of 2 and so skip 2 levels each time which speeds up the missions a lot and kind of spoils it.
 
Well while you're mentioning the levels of the dungeon I found a glitch.That if you for instance have 2 slaves and place gorym and the slaves on the staircase down there will be the question if you want to go down a level but it appears 3 times (Once gorym,and once for each slave) so you get from level 1 to lvl 4 instead of 2 and so skip 2 levels each time which speeds up the missions a lot and kind of spoils it.

It would also stop you from rescuing Torek, the prisoner who's on Level 3.

This also happens if you capture a Slave standing on a Mana Node.
 
Good catch! I'll have to go back into the event code for those two things and put in an extra check to make it not trigger if the unit is a slave. I think right now, I just have it checking to see if the unit is a member of Gorym's "team." :)

Of course, this will take away the option to have a slace loiter by an exit to immediately trigger the exit event if you find your self in deep water. Hmnnn. That's probably a good thing, too!
 
Hello, first time here. I'm playing your 133rd CRAG and here's some feedback.
I have no idea if my suggestions mean a few design clicks or thousands of lines of code, so forgive my boldness.

You did a remarkable work.

The first dungeon:
- triggering dialogue events should only happen for the hero or the first unit of a stack (stairs, veins of ore, opening chests, mana crystals). Currently, sending a group of hero + slaves allow to multiply the event.
Restricting mana crystals and stairs events to the hero only would be logical for the player.
Or, take away the slaves.

- Chests yield non duplicable items, so they stop being interesting by "market saturation" very soon, thus making meaningless the dungeon layout since it's less useful to hunt for loot.
Allow them to be gold convertible (don't directly make them less frequent favoring gold, as it would decrease variety).

- Add the map found event to the possible loot

- the perpetual fog of war is annoying. It would be more enjoyable to remember explored areas.

- Rare event suggested: found a minor prisoner, freeing him would add fame and gold when returning to town.

- Doors are too frequent and slow down the gameplay flow.

- mana crystal seem rare (I found one each 3 levels approximatively)


Magic:
- Some spells are useless. Make an idoneous spell for these cases, with adventuring utility in mind

- then offer your work for integration into Gregori 's gameplay mechanics.

- Put a tome in town, always triggering a summary display of all the spells.


Suggestions:
Fire I: light (greater light radius and sight range)
Sun I: Turn undead (fear upon undeads + 10% damage, up to 40%)
Mind I: ESP (show mindful units on map)
Mind II: Clairvoyance (Reveal the Whole map for 2 turns, thus revealing enemy move)
Spirit II: Summon Will o Wisp (Str 1, 50% retreat, last 2 turns, Lifeless)
Spirit III: Summon Ghost (Str 6, Channel I, Undead, Mind, Shadow, Hidden Nationality and 1 random pick between entropy, ice, water, fire, Earth (thus giving ice spirit, water spirit, etc)
Earth I: Earth Fusion (invisibility for 1 turn)
Air I: Winds Gulfs (throw away a unit)
Ice I: Slow (improved)Slowed+ vulnerability fire 25%+(25-str)%/turn chances to be paralyzed
Life I: Minor Heal +20%
Life III: Resurrect (improved)any disciple/adept/great person unit
Enchant II: Flaming arrow : same + 50% defensive strike (50% max damage, str 3)
Enchant III: Spellstaff (improved): + 1 first strike and +1 defensive strike (str 3)
Body III: Graft Flesh (improved)str 7 , absorb electricity, fearless, strong, magic resilient 50%, (even positive magic)
Etc.


So far, lots of fun! I'll give more feedback if you're interested.
 
Thank you very much for the feedback!

I suspect a hero-only trigger fix will be in the next release. This has already been identified as a bug.

This modmod was originally part of a scenario design contest, which severly limited the files that could be altered. Accordingly, none of the spells were changed, and a number of the mechanics for movement and dungeon generation were a bit clumsy.

As far as chests producing non-duplicable items -- if you mean multiple healing potions when the player can only carry one at a time, well that is where slaves come in handy! (Although the player is forced to start over with each level, as slaves do not travel from level to level.) I agree that it may be preferable to allow conversion to gold, but that would require creation of many new events and integration into the modmod. Not sure if that will be a part of the next release.

Yes, doors are quite random. I am experimenting with some new code that may do a better job of placing doors. I'll keep working on that.

Mana could be increased in frequency, but could only do so at the expense of the other things that are found in nooks.

Thanks again for your ideas. I will keep them in mind as I work on the next version!
 
Has anyone tried release 5 installed onto FfH2 atched to version "L" yet? Are the files that DA KRAG replaces the ones that cause breakgames?

In other words, do we need an updated release of DA KRAG to work with FfH2 "L"?

(I haven't had a chance to check this myself as I am currently enmeshed in a separate project.)
 
I have reengineered DA as a mapscript!

This mapscript generates a random labyrinth type dungeon for vanilla FfH2. The script will create a number of special rooms and areas of interest, but is limited to a single level.

The mapscript is used just like the erebus mapscript -- it does not require any modding to ffH2 whatsoever.

The release thread can be found here:

http://forums.civfanatics.com/showthread.php?t=352096
 
Forgot to mention- I took a look at the latest source code, and the code that was causing a crash in Dungeon Adventure isn't there anymore (the extra gold function no longer looks at the Khazad capital cities).

DA probably isn't directly compatible with the latest version of FFH, but I doubt it will need a custom DLL anymore.
 
That is good to know, TC01. Thank you for checking that out.

Have you tried out the DA mapscript yet?
 
That is good to know, TC01. Thank you for checking that out.

Have you tried out the DA mapscript yet?

I loaded it up although I didn't play a game with it. It looks good so far. I like all the unique features placed around the map.


I've attached the WB Mapswitching code I was working on, if you're interested. There are a few issues with it, I think, the first of which is that it's for 0.41j. But the main one is that on going back to Shaft X, I get several python exceptions and then doors don't reveal plots correctly, and I have no idea why (although I surmise they are connected). In theory, everything else should work- but in practice it probably won't.

All the work is done in an new DungeonAdventure.py file, which is called from ScenarioFunctions.py in several places. I also edited CvWBDesc.py to put a hack to rebuild terrain and plot graphics (probably an easier way but I couldn't find one), and added a Dungeons folder with the pre-created maps.

I set up a "game system" which creates a folder in XML\Dungeons for each successive game of Dungeon Adventure you start. The maps in XML\Dungeons are copied there and new maps that are randomly generated are put there also.
 

Attachments

  • WB Mapswitching.zip
    61.3 KB · Views: 240
TC01, thank for all of the work you did! I will check out the map switching system you created first and try to get a handle on those python exceptions.

Big question - do you know if it is possible to have a new map appear in a popup window sort of like Somnium does? I am thinking that their would be huge potential to make DA into a supercharged version of Marnok's explorable lairs. As a unit enters a dungeon, the focus would shift to the popup, but the main game would be "paused" in the background. The unit would resolve action in the dungeon, and then the results would be transferred back to the main map.

What do you think?
 
Big question - do you know if it is possible to have a new map appear in a popup window sort of like Somnium does? I am thinking that their would be huge potential to make DA into a supercharged version of Marnok's explorable lairs. As a unit enters a dungeon, the focus would shift to the popup, but the main game would be "paused" in the background. The unit would resolve action in the dungeon, and then the results would be transferred back to the main map.

What do you think?

It may be possible, but I know I couldn't do it.

I know it would be possible to create a dungeon exploration minigame in a popup. I wouldn't know how to do that either, though.

But I must admit I doubt it is possible to create an entirely new map in a popup window.
 
Hi Guys, I played this once during the scenario comp and found it to be a wonderful extension of the civ game engine. I am now playing it again with all the bits fixed/added in REL 5.

I know you said because of the comp you couldn't add a whole bunch of cool things like altering the spells etc... Any chance you are looking at expanding this whole scenario?

I would love to see it as a mod mod to FFH with random quests from a variety of sources.

I love the mana/spell engine but it does need the spell changes like what Pronoein suggests.

Will we see this extension at any stage?

How about recruiting some more help from other coders in the FFH forum?
I think anyone that plays this scenario will definitely see the potential in it. If you define a road map and break down what is required, I am sure you can poach some help. Maybe even post in the main Civ forum.

With your random map script, I think this is a great idea but it does not lend itself well to the normal civ/ffh game dynamics.
It would be great if it was like an other mod/mod where other civs exist as surface towns (4-5) and associated heroes (maybe 2 per civ but only one active), have peaceful zones for trade, maybe some sort of random civ creation like the revolutions stuff, the surface map should have a variety of dungeon entrances (3-4).
Combat needs to be re-worked for this type of game play, having a single battle that defines an outcome is no good, you need to have rounds that cause certain amounts of damage to each party based on results. This way you can use a variety of spells/tactics during a battle. Also there needs to be more ranged options, 1 - 2 plot ranged weapons and spells, like a bow/sling/throwing knives etc....
This all may be too much for just one of you, but with recruits... Just think how amazing it could be... Almost like a real D&D engine.

I'll stop my blah blah now... :)

Love your work.

Cheers
 
@giddion:

Thank you for your kind words! DA KRAG is in a holding pattern for the forseeable future -- but I am glad that you are enjoying it!

For the time being, my focus is on a DA themed mapscript, which can be found here:

http://forums.civfanatics.com/showthread.php?t=352096

I just recently found the source of some errors in that mapscript and am fixing them, so it should be much more playable now! ;) Please check out the mapscript and let me know what you think.

If I ever do get back to DA KRAG, I will definitely turn it over to a team -- I have WAAAAY too much going on in RL right now to ever be able to spend the time on coding that I did back then. :crazyeye:

Thank you again for your interest and I hope that I will see you over at the mapscript thread!
 
Top Bottom