Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Neverwinter Nights: Enhanced Edition has been released! Visit nwn.beamdog.com to make an order. NWN:EE FAQ is available.
Soundtracks for BG:EE, SoD, BG2:EE, IWD:EE, PST:EE are now available in the Beamdog store.
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

Faiths and Powers: Gods of the Realms (Kitpack and divine caster/spell tweaks)

134689111

Comments

  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015
    Update: I have it working but it takes forever and a day to install. Every spell in every sphere causes this to run:
    COPY_EXISTING_REGEXP GLOB ~.*\.spl~ ~override~
    LPF CLONE_EFFECT match_resource = EVAL ~%spell_res%~ resource = EVAL ~d5_%spell_num%~ END
    BUT_ONLY
    So, loop through ~1500 spells and check every effect in every extended header, and do that ~250 times, that's 375,000 iterations... hang on, the installer has been running the entire time I've been typing this, and it's not done yet. I'll update the post when it finishes.

    EDIT - 20 minutes and the installer is still chugging away...

    EDIT2 - Now it's been more than half an hour, with my processor at 100% and my battery deep in the red.

    I don't think players will put up with a mod that takes 35 minutes to install...

    Post edited by subtledoctor on
    SereverusGrammarsaladBrer_Rabbit
  • GrammarsaladGrammarsalad Member Posts: 2,433

    Update: I have it working but it takes forever and a day to install. Every spell in every sphere causes this to run:

    COPY_EXISTING_REGEXP GLOB ~.*\.spl~ ~override~
    LPF CLONE_EFFECT match_resource = EVAL ~%spell_res%~ resource = EVAL ~d5_%spell_num%~ END
    BUT_ONLY
    So, loop through ~1500 spells and check every effect in every extended header, and do that ~250 times, that's 375,000 iterations... hang on, the installer has been running the entire time I've been typing this, and it's not done yet. I'll update the post when it finishes.

    EDIT - 20 minutes and the installer is still chugging away...
    @subtledoctor

    I am not familiar with that command, but can you use READ to limit it to just priest spells?

    Man, I'm going to regret posting this without testing, but what about something like:
    COPY_EXISTING_REGEXP GLOB ~.*\.spl~ ~override~
    READ_SHORT ~0x1c~ ~type~ //If I have my READ correct, should read the spell type
    PATCH_IF (~%type%~ = ~2~) BEGIN //Only patch prest spells
    LPF CLONE_EFFECT match_resource = EVAL ~%spell_res%~ resource = EVAL ~d5_%spell_num%~ END
    //May need an additional END...
    BUT_ONLY

  • subtledoctorsubtledoctor Member Posts: 10,703
    Yeah it definitely wants some optimization. :tongue: I could spend 2 hours combing through NI and come up with a list of spells that need to be modified; that might reduce install time from 45 minutes to 45 seconds. But if some mod introduces a new spell protect from Finger of Death - or, say, makes a wizard version of Death Ward - then F&P will miss it.

    We're definitely talking about edge cases here... but any spell that uses opcode 206 or 321 or another one that operates by .spl resource is a potential problem. Opcode 321 especially has been popping up all over the place more and more.

    So right now I'm painting with a very, very, very broad brush. I'll think about ways to be more selective. An obvious idea is, before any of these loops run, fashion a check for any spell using opcode 206 or 321 in its effects, and add it to an array. If we can procedurally generate a list at install time of ~150 spells and run the macro against that list instead of against the ~1500 files in ~.*\.spl~, then it should be 10 times faster. So 4.5 minutes instead of 45 minutes. Improvement!

    It might also be possible to just pull this function out of the iterating ACTION_PHP_EACH loop and just run it once. That would be far, far faster... but also a lot trickier. I'll investigate.

  • kjeronkjeron Member Posts: 1,845
    @subtledoctor
    I am not familiar with "CLONE_EFFECT", but my understanding from your post on g3 relevant to this:

    You find the spell you want through SPELL.IDS, copy and rename it using your prefix (d5_XXX), and then modify it as desired now or later.
    You then want to search through every spell in the game, check each of their effects for an immunity/removal opcode (206/318/321/324) that matches the original spells resource, and duplicate that effect with your spells resource.

    Is that correct? I think I could help if your still having issues.

  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015
    @kjeron Yes, in a nutshell that's right. (Btw CLONE_EFFECT is awesome, an incredibly useful macro.) The spheres component currently does this:

    1) We create an array of various priest, wizard, innate, and new spells, with names derived from SPELL.IDS.

    2) We iterate through every item in the array, doing the following:

    2a) Derive the spell's filename and IDS number.

    2b) Make two copies of the spell, using a modder prefix and the IDS number in the new filename, and setting the spell type to "priest."

    2c) Perform some more operations on the copies, such as modifying spell descriptions to reflect the proper sphere assignment, and occasionally changing the spell's level.

    2d) Add a 171 effect referencing this spell to a different spell (the different spell will then go into the CLAB of every kit that has access to this spell's sphere, in step 4).

    2e), or 3) Check every spell in the game that uses opcodes 206/318/321/324 to refer to one of the spells in our array, and duplicate the effect so as to also refer to our new copies of the original spell.

    4) Add the sphere spells with 171 effects to the appropriate kits.

    Everything works great except for the italicized bit. Right now I have it as 2e) - it has to check every spell in our array, and step 2 is already iterating through those spells, so it's a convenient place to do it. But, it takes forever. (It can also miss some spells, as it turns out.)

    Now I'm thinking, since we have a nice predictable formula for renaming our spell copies (RES --> prefix + NUM), the process can be un-linked from step 2, and it will still be dependable. So I can make it step 3: Run through REGEXP GLOB ~.*\.spl~ a single time (instead of 400 times), check for opcodes 206/318/321/324, and make a duplicate effect, running the renaming formula on the .spl resource in each such effect.

    It should work fine, and should be orders of magnitude faster. But actually setting it down in Weidu seems to be very tricky. If you have any suggestions, feel free to post here or over at G3, or PM me in either forum.

  • GrammarsaladGrammarsalad Member Posts: 2,433
    Okay, I see the issue...

    Well, there has to be a way of narrowing it down

  • GrammarsaladGrammarsalad Member Posts: 2,433
    edited September 2015
    I'll look through them this weekend to see what spells with these effects g have in common

    Edit: thinking about this, that could be a nightmare! It's not just a 'protection from thing...'

  • kjeronkjeron Member Posts: 1,845
    @subtledoctor

    2e), or 3) Check every spell in the game that uses opcodes 206/318/321/324 to refer to one of the spells in our array, and duplicate the effect so as to also refer to our new copies of the original spell.
    Everything works great except for the italicized bit. Right now I have it as 2e) - it has to check every spell in our array, and step 2 is already iterating through those spells, so it's a convenient place to do it. But, it takes forever. (It can also miss some spells, as it turns out.)

    Now I'm thinking, since we have a nice predictable formula for renaming our spell copies (RES --> prefix + NUM), the process can be un-linked from step 2, and it will still be dependable. So I can make it step 3: Run through REGEXP GLOB ~.*\.spl~ a single time (instead of 400 times), check for opcodes 206/318/321/324, and make a duplicate effect, running the renaming formula on the .spl resource in each such effect.

    It should work fine, and should be orders of magnitude faster. But actually setting it down in Weidu seems to be very tricky. If you have any suggestions, feel free to post here or over at G3, or PM me in either forum.

    Here is what I tried, note it is only set up to copy the priest spells, and I am sure there is a better way to derive the spells number than what I did. Using the entire IWDEE priest spell list as [list], it takes about 4 seconds to run through on my laptop:

    ACTION_FOR_EACH spell_label IN [list] BEGIN
    OUTER_SPRINT $label(~%spell_label%~) ~1~
    END
    COPY_EXISTING ~SPELL.IDS~ ~override~ COUNT_2DA_ROWS 2 row_cnt
    FOR(cur_row = 0; cur_row < row_cnt; ++cur_row) BEGIN
    READ_2DA_ENTRY cur_row 1 2 spell_id
    READ_2DA_ENTRY cur_row 0 2 ~spell_num~
    PATCH_IF (VARIABLE_IS_SET $label(~%spell_id%~)) BEGIN
    convert = ~%spell_num%~
    convert += 9998000
    TEXT_SPRINT spell_num ~%convert%~
    INNER_PATCH_SAVE spell_res ~%spell_num%~ BEGIN REPLACE_TEXTUALLY EXACT_MATCH ~9999~ ~SPPR~ END
    INNER_PATCH_SAVE spell_num ~%spell_num%~ BEGIN REPLACE_TEXTUALLY EXACT_MATCH ~9999~ ~~ END
    INNER_ACTION BEGIN
    OUTER_SPRINT $old_spell(~%spell_num%~) ~%spell_res%~
    COPY_EXISTING ~%spell_res%.spl~ ~override/d5_%spell_num%.spl~
    END
    END
    END
    BUT_ONLY
    COPY_EXISTING_REGEXP GLOB ~.*\.spl~ ~override~
    READ_LONG 0x64 ab_off
    READ_SHORT 0x68 ab_num
    READ_LONG 0x6a fx_off
    FOR (i = 0; i < ab_num; ++i) BEGIN fx_add = 0
    READ_SHORT (ab_off + i * 0x28 + 0x1e) fx_num
    READ_SHORT (ab_off + i * 0x28 + 0x20) fx_idx
    FOR (k = 0; k < fx_num; ++k) BEGIN
    READ_SHORT (fx_off + (fx_idx + k) * 0x30) opcode
    PATCH_IF ((opcode = 206) OR (opcode = 318) OR (opcode = 321) OR (opcode = 324)) BEGIN
    READ_ASCII (fx_off + (fx_idx + k) * 0x30 + 0x14) resource
    SNPRINT 4 resource_class ~%resource%~
    PATCH_IF (~%resource_class%~ STRING_EQUAL_CASE ~SPPR~) BEGIN
    INNER_PATCH_SAVE old_spell_num ~%resource%~ BEGIN REPLACE_TEXTUALLY EXACT_MATCH ~SPPR~ ~~ END
    PATCH_IF(VARIABLE_IS_SET $old_spell(~%old_spell_num%~)) BEGIN
    READ_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x2) target
    READ_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x3) power
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x4) param1
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x8) param2
    READ_BYTE (fx_off + (fx_idx + k) * 0x30 + 0xc) timing
    READ_BYTE (fx_off + (fx_idx + k) * 0x30 + 0xd) resist
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0xe) duration
    READ_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x12) prob1
    READ_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x13) prob2
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x1c) dicenum
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x20) dicetype
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x24) savetype
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x28) savebonus
    READ_LONG (fx_off + (fx_idx + k) * 0x30 + 0x2c) unknown
    INSERT_BYTES (fx_off + (fx_idx + k) * 0x30) 0x30
    WRITE_SHORT (fx_off + (fx_idx + k) * 0x30) opcode
    WRITE_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x2) target
    WRITE_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x3) power
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x4) param1
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x8) param2
    WRITE_BYTE (fx_off + (fx_idx + k) * 0x30 + 0xc) timing
    WRITE_BYTE (fx_off + (fx_idx + k) * 0x30 + 0xd) resist
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0xe) duration
    WRITE_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x12) prob1
    WRITE_BYTE (fx_off + (fx_idx + k) * 0x30 + 0x13) prob2
    WRITE_EVALUATED_ASCII (fx_off + (fx_idx + k) * 0x30 + 0x14) ~d5_%old_spell_num%~ #8 //resource
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x1c) dicenum
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x20) dicetype
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x24) savetype
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x28) savebonus
    WRITE_LONG (fx_off + (fx_idx + k) * 0x30 + 0x2c) unknown
    ++fx_add
    ++k

    END
    END
    END
    END
    fx_num += fx_add
    WRITE_SHORT (ab_off + i * 0x28 + 0x1e) fx_num
    FOR (j = i + 1; j < ab_num; j += 1) BEGIN
    READ_SHORT (ab_off + j * 0x28 + 0x20) fx_idx
    WRITE_SHORT (ab_off + j * 0x28 + 0x20) (fx_idx + fx_add)
    END
    END
    BUT_ONLY

    Any use?

  • Brer_RabbitBrer_Rabbit Member Posts: 159
    ... (looks for download link)

    (leaves disappointed and cries quietly to herself)

  • subtledoctorsubtledoctor Member Posts: 10,703

    ... (looks for download link)

    (leaves disappointed and cries quietly to herself)

    The sphere system is a skeleton; it is almost finished and will be awesome (it's really fun in my tests when I see the huge variations between priests of Lathander/Helm/Talos and druids, and see that they all still have totally useful and powerful spellbooks) but it's just the backbone (or maybe, one of the thighbones) of this mod. The meat of the mod is in the kits, and creating dozens of kits is going to take a while. Look for a proper release sometime around this holiday season.

    Brer_RabbitGrammarsalad
  • GrammarsaladGrammarsalad Member Posts: 2,433

    ... (looks for download link)

    (leaves disappointed and cries quietly to herself)

    The sphere system is a skeleton; it is almost finished and will be awesome (it's really fun in my tests when I see the huge variations between priests of Lathander/Helm/Talos and druids, and see that they all still have totally useful and powerful spellbooks) but it's just the backbone (or maybe, one of the thighbones) of this mod. The meat of the mod is in the kits, and creating dozens of kits is going to take a while. Look for a proper release sometime around this holiday season.
    It's definitely more than a thighbone

  • subtledoctorsubtledoctor Member Posts: 10,703
    kjeron said:

    Any use?

    Very interesting. The first section, I've already got covered (I PM'ed you a link to an alpha build (also hey @Brer_Rabbit I'm looking for a beta tester, so if you want a link to just the sphere system, PM me and I'll give you one), so mostly I'm looking at the section after the COPY_EXISTING_REGEXP GLOB.

    A lot of that is over my head, it's going to take a bit to really process it. But superficially, a lot of it also looks very very similar to CamDawg's CLONE_EFFECT macro, except less generalized. I'm very impressed you could re-create something like that on such short notice!

    One thing I think I notice is that %spell_num% from the first section will have 4 digits (because the IDS number of e.g. CLERIC_BLESS is "1101") whereas it looks like %old_spell_num% from the later section will only have 3 digits (the spell res minus SPPR - thank you SNPRINT - so for Bless, just "101"). Is that right? I mean, easy enough to add the "1" - I just want to know if I'm reading the code correctly.

    Brer_Rabbit
  • kjeronkjeron Member Posts: 1,845
    edited September 2015


    One thing I think I notice is that %spell_num% from the first section will have 4 digits (because the IDS number of e.g. CLERIC_BLESS is "1101") whereas it looks like %old_spell_num% from the later section will only have 3 digits (the spell res minus SPPR - thank you SNPRINT - so for Bless, just "101"). Is that right? I mean, easy enough to add the "1" - I just want to know if I'm reading the code correctly.

    The number saved and checked for in the array is 3 digits.

    edit - after installing your mod, I see your question differently, my version assumes copies named d5_XXX, not d5_XXXX. I dropped the preceeding number thinking you were only interested in priest spells. - /edit

    Before saving it to the array, I took the 4 digit number(1101) in SPELL.IDS, added 999800 to it = 9999101, then textually replaced ~9999~ with ~(empty)~ = 101. A Wizard spell would replace ~10000~. SPELL.IDS should not have any spell number that high, as anything over 3999 has no meaning.
    I know there has to be a better way, but I just don't know how else to easily remove the preceeding 1 or 2, it probably can be done with regexp replacement, but I struggle with that.

    If you're going to be making copies of both priest and wizard spells, you would need to replace the $old_spell() with $old_prs_spell() and $old_wiz_spell() to differentiate them, as they would have the same 3 digit numbers

    Grammarsalad
  • subtledoctorsubtledoctor Member Posts: 10,703
    Okay, thanks to the timely and generous intervention of @kjeron I have this working in two different ways.

    The first way simply injects kjeron's code directly into the sphere system .tp2. It works for spells and it takes about 20 seconds to install on my laptop. :smile:

    The second way uses a couple lines of kjeron's code, injected into a version of the CLONE_EFFECT macro that I violently mangled. :naughty: It takes about 40 seconds to install. But, it works for items as well as spells :smiley:

    So we're in good shape. One more addition to the code - which should be, relatively to this, extremely easy to implement - and I'm going to call it finished and hand it off to @Grammarsalad.

    Grammarsalad
  • GrammarsaladGrammarsalad Member Posts: 2,433
  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015
    Okay everyone, sorry for that very technical detour. But it was very helpful and will make this work much better and be more compatible with different games and different mods. Now on to more substantive issues. I have two questions for discussion, one quick and one a bit more involved.

    1) Now that I'm just a few hours away from finalizing a more-or-less fully functional sphere system, should we release it as a public beta for people to play with, while we work on the kits?

    2) I'm working on druids now, and I'm not sure what to do about the vanilla Totemic Druid. I'm not sure it really fits with our current kit concepts. At the moment, for me, those concepts are:

    - Forest Druid. Neutral/Neutral Good. Follows Sylvanus. Primary sphere: Plant. Shapeshifts: rat, wolf, bear, shambling mound.

    - Mountain/Northern Druid. Neutral. Follows Chauntea (?). Primary sphere: Earth. Shapeshifts: beetle, bear, troll(?), earth elemental(?)

    - Avenger/Jungle Druid. Neutral/Neutral Evil. Into poison and decay. Primary sphere: Affliction. Shapeshifts: spider, beetle, sword spider, wyvern(?)

    - Shapeshifter/Lycanthropic Druid. Neutral/Neutral Evil. Follows Malar. Primary sphere: Animal. Shapeshifts: wolf, dire wolf, werewolf, wolfwere.

    - Maybe, a new Desert Druid. Neutral. Primary sphere: Light/Sun. Shapeshifts: lion, wyvern(?), air elemental(?)

    So, one thing we can do is abolish the Totemic kit and distribute its summonses to the others:
    - Forest Druid = Spirit Wolf
    - Mountain Druid = Spirit Bear
    - Jungle Druid = Spirit Snake
    - Desert Druid = Spirit Lion
    - Arctic Druid = Spirit Bear
    - Lycanthropic Druid = Spirit Wolf

    This would really make Druids shine: interesting spell access (much better spell lists than vanilla BGEE) + powerful, at-will shapeshifting + a summonable spirit animal, should = really well-rounded and fun kits.

    The alternative is to keep the Totemic Druid as its own kit, maybe something to do with spirits, maybe have access to the sphere of Death... but Beamdog is adding a Shaman to the game, I feel like the Shaman can play that role. Plus we can do something else like a Spirit Mystic.

    Personally, I would rather split up the Totemic summonses to make the other druid kits better. But what does everyone else think?

    Post edited by subtledoctor on
  • KamigoroshiKamigoroshi Member Posts: 4,713
    edited September 2015
    Totemic Druid, if anything, would be right at home with the Shaman. Just call it something other than "Druid". Totemic Shaman, Spirit Whisperer or something along those lines might all work.

    Returning the Shapeshifter to its non-lycanthropic days would perhaps make more sense here. As this allows for other animal deities to be included into the mix as well.

    If possible, I don't like to see using sentient humanoid/giant races such as Trolls shapeshifting forms for druids. This would make as little sense as an "Elf", "Cyclope", or "Djinn" form. Better to instead focus only on animals, vermin, plants/myconids and possibly magical animals. My take would be something like this:


    - Forest Druid
    Any Neutral.
    Followers of Sylvanus, Chautea, Mielikki, Angharradh, Rillifane Rallathil, Baervan Wildwanderer, Sheela Peryroyl.
    Primary spheres: Plant/Animal.
    Shapeshifts: Ferret, Wolf, Deer, Bear.

    - Mountain Druid
    Any Neutral.
    Followers of Grumbar, Geb, Urdlen, Gwaeron Windstrom, Uthgar, Aerdrie Faenya.
    Primary spheres: Earth/Air.
    Shapeshifts: Hare, (Mountain) Lion, Bear, Cave Bear.

    - Arctic Druid
    Any Neutral.
    Followers of Auril, Ulutiu, Bahamut.
    Primary spheres: Cold/Animal
    Shapeshifts: Chicken (ptarmigans), Ice Wolf, Polar Bear. "Maybe" Yeti if they're considered primates.

    - Jungle Druid (Avenger)
    Any Neutral.
    Followers of Ubtao, Thard Harr.
    Primary spheres: Affliction/Plant.
    Shapeshifts: Cat, Giant Spider, Panther, Giant Snake, Ankheg.

    - Swamp Druid
    Any Neutral.
    Followers of Talona, Sebek.
    Primary spheres: Water/Affliction.
    Shapeshifts: Rat, Giant Spider, Giant Snake. Maybe Otyugh.

    - Plains Druid (was Shapeshifter).
    Any Neutral.
    Followers of Nobanion, Malar, Lurue, Selûne.
    Primary spheres: Animal/Light.
    Shapeshifts: Ferret, Wolf, Horse, Lion. Maybe Werewolf.

    - Gray Druid
    Any Neutral.
    Followers of Ghaunadaur, Moander, Callarduran Smoothhands, Dumathoin, Segojan Earthcaller, Shar.
    Primary Spheres: Earth/Deception. Or even better "Cavern" (earth with some funghi and darkness mixed in)
    Shapeshifts: Carrion Crawler, Giant Beetles, Myconid. Perhaps Hooked Horror.

    Post edited by Kamigoroshi on
    JuliusBorisov
  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015
    On troll and non-animal forms:

    I don't think of trolls as an intelligent race in the same way that orcs, ogres, goblins and gnolls are. Trolls are bipedal, sure, but definitely more on the "monsters" side of the equation, than on the "humanoid" side.

    And I'm not sure a druid shapeshifting into troll form is necessarily taking on the form and attributes of a species, so much as "hulking out". Trolls with their size, strength, and immune-system-in-overdrive constitution always struck me as somewhat close to nature... but nature run amok, or nature corrupted.

    Basically, in addition to animal forms I'm trying to think of themed "ultimate" forms for various druids to use, basically to replace the Elemental Transformation HLAs. Not necessarily matching the animals whose animations we use. So I guess they're kind of distinct from the animal shapeshifts. Something like:
    Forest Druid: shambling mound
    Mountain Druid: earth elemental how about... an umber hulk form??
    Jungle Druid: giant troll-like form
    Desert Druid: air elemental
    Arctic Druid: ice elemental
    (Lycanthropic: greater wolfwere)

    On lycanthropy:

    Getting rid of the whole lycanthropy thing is an interesting idea. It definitely doesn't fit with the rest of the druids here. On the one hand, it fits followers of Malar - animal sphere focus, innate Beast Claw, truly being half-man, half-beast... plus I have the various werewolf forms and they work well, so it seems like a shame to completely toss them aside. BUT, they could be re-used. Maybe I'll add a "Lycanthropic Ranger" to Might & Guile. [EDIT - done!] I could probably get that done this weekend. Then we can decide if those abilities are more appropriate for a druid, or a ranger, or possibly let both coexist.

    Animal shapeshifting:

    Those are all great ideas, but some are probably impossible to do and others will be impossible to do well, at least on any kind of reasonable timetable. We are very, very resource-constrained at the moment ("resource" meaning time.) A Gray Druid and a Lost Druid will likely have to wait for a point update some time after the release. Right now I have the following shapeshift abilities working:
    - rat
    - wolf
    - dire wolf
    - brown/cave bear
    - small spider
    - sword spider
    - wyvern
    - troll
    - werewolf
    - wolfwere
    - greater wolfwere
    - earth elemental
    - air elemental
    - fire elemental

    I could probably adapt/create the following without too much trouble, in time for release:
    - winter wolf
    - black bear
    - polar bear
    - panther
    - giant beetle
    - water elemental
    - rabbit
    - ferret
    - cat (maybe)

    So apportioning those, the (non-HLA) list could maybe look something like:
    - Forest Druid: ferret, wolf, black bear
    - Mountain Druid: rat, mountain lion, cave bear
    - Jungle Druid: panther, giant spider, wyvern
    - Desert Druid: hare, leopard, ???
    - Arctic Druid: hare, winter wolf, polar bear
    - (Lycanthrope: wolf, dire wolf, werewolf, wolfwere)

    I want to get to where each form has distinct utility, instead of just being less-powerful-to-more-powerful. Im the list above, the forms would be for stealth, for speed, and for power, respectively. (With the exception of the Lycanthrope, of course, whose forms just have better and better ways to tear stuff apart. So that is definitely an odd man out.)

    Post edited by subtledoctor on
    Brer_RabbitJuliusBorisov
  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015
    Sorry, more thinking out loud here:

    I'm focused on druids right now but I also have mystics in the back of my head, I'll turn to them soon(ish).

    I sort of have Mystics conceptualized around the idea of a single sphere of focus. So, we'll have a mystic with focus access to the sphere of Light, who will venerate, while not being a true priest of, Lathander. We'll have a Firewalker with focus access to the sphere of Fire. Other sphere that seem like they might work for mystics:
    - Earth
    - Air
    - Water
    - Thought
    - Vigor
    - ...Magic? (maaaaybe...)

    Since the druids I described above are concerned with balance within whole ecosystems, the "lycanthropic druid" would be very much the odd man out. So maybe it would work better as a mystic.

    They wouldn't care about ecology or balance, just about tapping into their primal bestial nature. Not priests of Malar, per se, but definitely a sect whom Malar would support and encourage. Focus access to the Animal sphere, no true animal shapechanging like druids but hybrid transformation with innate Beast Claw and werewolf form... that could work.

    If all that works out we would have 5 druids, 6-9 mystics, a few alienists and an ur-priest. So, about 15 brand new kits to replace the 4 vanilla druid kits. Figure we'll have about 20 cleric/priest/incarnate kits, 5+ champion kits, and a few multiclass kits... That's 45 total, and it might be a conservative estimate. This is gonna be so great. :smiley:

    Post edited by subtledoctor on
    Brer_Rabbit
  • KamigoroshiKamigoroshi Member Posts: 4,713


    - Jungle Druid (Avenger)
    Any Neutral.
    Followers of Ubtao, Thard Harr.
    Primary spheres: Affliction/Plant.
    Shapeshifts: Cat, Giant Spider, Panther, Giant Snake, Ankheg.

    - Swamp Druid
    Any Neutral.
    Followers of Talona, Sebek.
    Primary spheres: Water/Affliction.
    Shapeshifts: Rat, Giant Spider, Giant Snake. Maybe Otyugh.

    After some more thinking, the Swamp and Jungle Druid appear to be tied too closely to one another. Perhaps it would be better to just broaden up its ecosystem by including marshes, bogs and fens as well. This would at the very least allow "true" freshwater deities to be accessible to druids. And make it more distinctive from the Jungle Druid in the process;

    - Jungle Druid
    Any Neutral.
    Followers of Ubtao, Talona, Thard Harr.
    Primary spheres: Affliction/Plant.
    Shapeshifts: Small Spider, Panther, Giant/Sword Spider, Wyvern (According to the Monstrous Manual, they're living in warm forests and jungles).

    - Wetland Druid
    Any Neutral.
    Followers of Eldath, Isis, Sebek.
    Primary spheres: Water/Life. (Water is life, no?)
    Shapeshifts: Water Vole (Rat), Wild Dog, Snake, Basilisk (given their crocodile-like features).
    HLA: Water Elemental (?)

    That branch, together with the Gray Druid, would from the looks of it not make it in the initial mod release. But that's ok. We have to save stuff for further updates after all. Thinking out loud now: I'd *love* to have a "Sea/Coastal Druid" here. But the lack of marine, semi-aquatic creatures makes this regretable an impossible task. :frowning:

    Brer_Rabbit
  • subtledoctorsubtledoctor Member Posts: 10,703
    edited October 2015
    Okay I have two kits working in my internal build of the mod:

    FOREST DRUID:
    Forest Druids delight in the regions where soil is nutritious, plant life is abundant and animals thrive. Tall forests are a paradise in many ways: they provide shade from the sun, food and homes for animals and people, and wood for tools. While other wildlands can be wondrous escapes, forests are incessantly under threat of being torn down and subjugated by careless humans and demihumans. Forest druids therefore often live with a constant low-grade paranoia, which informs the stereotype of druids being hostile to civilization.

    Abilities:
    - Major access to the following spheres: Life, Vigor, Affliction, Animal, Plant, Light.
    - Minor access to the following spheres: Knowledge, Thought, Earth, Air, Water, Fire, Deception.
    - At 1st level, may summon a Spirit Wolf. The HD of the spirit animal increases to match the druid's level at 3rd, 5th, 7th and 10th level.
    - At 2nd level, may shapeshift into the form of a wolf. At 7th level this grows to a stronger dire wolf form.
    - At 5th level, may shapeshift into the form of a ferret.
    - At 9th level, may shapeshift into the form of a black bear.

    WOLF: In wolf form the druid can detect hidden enemies. He can attack 1.5 times per round for 2d3 slashing damage.

    FERRET: In ferret form the druid is initially hidden from view. He can attack once per round, causing 1d2 damage; if the target fails a save vs. death, the wound causes disease that saps the targets strength for one turn, and distraction that causes a 10% chance of spell failure.

    BLACK BEAR: In bear form, the Druid has 19 strength. He can attack twice per round with claws that cause 1d6 crushing damage and 1d6 slashing damage.


    MOUNTAIN DRUID:
    Mountain druids occupy and protect the high places where the stony earth reaches up to touch the sky. Like their homes and the creatures that share them, mountain druids tend to be hardy and remote, and difficult to know well. Comfortable climbing dangerous cliffs and delving into deep caves, they develop a fearlessness that makes them tenacious opponents.

    Abilities:
    - Major access to the following spheres: Life, Vigor, Animal, Earth, Air, Light.
    - Minor access to the following spheres: Knowledge, Thought, Affliction, Plant, Water, Fire.
    - At 1st level, may summon a Spirit Bear. The HD of the spirit animal increases to match the druid's level at 3rd, 5th, 7th and 10th level.
    - At 2nd level, may shapeshift into the form of a mountain lion.
    - At 5th level, may shapeshift into the form of a rat.
    - At 9th level, may shapeshift into the form of a grizzly bear.

    MOUNTAIN LION: In lion form the druid can attack 1.5 times per round for 2d3 slashing damage. If the target fails a save vs. death, the ragged wound is particularly savage, causing another 2 points of damage per round for 3 rounds.

    RAT: In rat form the druid is initially hidden from view. He can attack once per round, causing 1d2 damage; if the target fails a save vs. death, the wound causes disease that saps the targets strength for one turn, and distraction that causes a 10% chance of spell failure.

    GRIZZLY BEAR: In bear form, the Druid has 20 strength. He can attack twice per round with claws that cause 1d6 crushing damage and 1d6 slashing damage.


    I still need a 3rd shapeshift form for the desert/plains druid... leopard, hare, and ________. Any suggestions?

    Post edited by subtledoctor on
    KamigoroshiGrammarsaladbrus
  • bob_vengbob_veng Member Posts: 2,241
    edited September 2015
  • KamigoroshiKamigoroshi Member Posts: 4,713

    I still need a 3rd shapeshift form for the desert/plains druid... leopard, hare, and ________. Any suggestions?

    If you're looking for something in-between the weak hare and powerful leopard, then how about the wild/war dog? This canid would thematically also fit the plains druid, given the African wild dog is native Sub-Saharan Africa. Other fitting plains animals could include the snake, basilisk, or even a painted cow (aurochs, bisons, ect.).

    Regarding the Mountain Druid's shapeshift; I just remembered that there's also the "Mountain Bear". Kind of looks like a dirty polar bear. And while I haven't looked at its stats now, it could fit this Druid branch better than the brown bear or cave bear. Just a thought.

    Brer_Rabbit
  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015
    The thing about snakes is, there's no good animation. (I hate the "slithering figure-8" thing.)

    I suppose we could have a dog for the early shapeshift (with invisibility detection and the same power level as a wolf) and leopard/lion as the powerful one (similar in power to the bear forms). Basilisk strikes me as too much of a magical creature than a natural creature. Though, if anyone disagrees let's certainly talk it through. I could be convinced, and basilisk is definitely at the right power level for an interesting ~10th level shapechange.

    The bear animations in the game are black bear, brown bear, cave bear and polar bear. I'll probably switch the mountain druid over to the cave bear animation and rename it "grizzly bear." But it's kind of arbitrary - the stats will be the same, and we can name it whatever we want.

    Post edited by subtledoctor on
  • KamigoroshiKamigoroshi Member Posts: 4,713
    edited September 2015
    image
    The mountain bear does indeed appear as a summoning through Summon Animal III. But if all bears have the same stats anyway, then we can just as well stay with the brown or cave bear for that druidic branch. At least they won't look like dirt. :p

    The basilisk is indeed a brutish reptilian monster with animal intelligence. One could say they are very similar to wyverns in that regard. Only that they are not related to dragons (with the exeption of dracolisks). In D&D there's also a basilisk variant with a poison gaze that could be adopted for this shapeshift. If petrification is deemed as too powerful, that is.

    JuliusBorisov
  • bob_vengbob_veng Member Posts: 2,241
    in ad&d, the explanation for how the gaze works for example is pretty naturalistic:

    Dragon #81
    "Precisely how the creatureís gaze works is
    a mystery; most learned observers agree
    that the creatureís eyes emit a radiation that
    if absorbed by the eyes of other creatures ó
    or even itself, if its gaze is reflected back
    upon it ó causes an inexplicable chemical
    change in the bloodstream, altering living
    flesh to stone. "

    more natural sounding stuff:

    "Like other reptilian creatures, basilisks
    are cold-blooded. They derive much of their
    energy from the heat of the sun, and spend
    much time sunning themselves on rocks or
    heights to gather this heat. (They will also
    often creep up to campfires at night for the
    same reason.) But unlike most reptiles,
    basilisks can tolerate a fairly wide range of
    temperature, and can also store heat effi-
    ciently in their coiled digestive organs;"

    JuliusBorisov
  • subtledoctorsubtledoctor Member Posts: 10,703
    edited September 2015

    The mountain bear does indeed appear as a summoning through Summon Animal III. But if all bears have the same stats anyway, then we can just as well stay with the brown or cave bear for that druidic branch.

    Just to clarify a bit: if you look at the file for the "mountain bear" from ASIII and Conjure Animals, it's called BEARPOSU.CRE (short for "bear" "polar" "summoned") and its animation is "polar bear." So it's really just a polar bear that Bioware renamed to account for the fact that it's in a non-polar setting.

    When I say that stats are the same, I don't mean the stats for all bears are the same; just that we will decide on appropriate stats for the Mountain Druid shapechange regardless of what name or animation it uses. The Mountain Druid's shapechange forms are slightly more powerful than the Forest Druid's in part because the Forest Druid has access to more/better spell spheres.

    Basilisks definitely straddle the fence between D&D beasts that are imaginary but potentially "natural" (wyverns, dire wolves) and those that are completely unnatural and magically derived (chimera, sphinx). Basilisk form would deviate from the "fast" theme of the Desert Druid's other shapeshifts (hare, leopard). But I suppose the point of having different kits from the bog-standard Forest Druid is to have more exotic choices, and this would definitely be exotic. (No at-will petrification though... instead maybe a stun/hold gaze.)

    While we're on the subjects of exotic shapeshifting and Hold abilities... I've been thinking about the Gray Druid (perhaps to be renamed "Cave Druid.") For shapeshifting I'm thinking maybe myconid, small spider, and Otyugh. Myconid actually seems a little weird, because it's a biped. But maybe as a special trait, due to its spongy body it would be resistant to crushing damage? It needs something special. Crushing resistance would make it a golem-killer.

    Or maybe scrap myconid and use a different form, maybe an ooze or jelly. But I'm not sure I want to do that, since we'll likely have a proper Oozemaster in the Alienists category, which will be able to do this.

    Another question is, what would be a Gray/Cave Druid's spirit summon? I think it should be either a Spirit Snake, or we should make up a reason why that kit doesn't have one.

    Thoughts?

    Post edited by subtledoctor on
    Brer_Rabbit
  • GrammarsaladGrammarsalad Member Posts: 2,433
    Regarding aquatic/sea druids, does anybody know if there is any infinity engine game that has sufficient animations? We might be able to work something that requires extended animations if so...

    Also, apologies for the absence. I need to catch up on the posts here

  • KamigoroshiKamigoroshi Member Posts: 4,713
    edited September 2015

    While we're on the subjects of exotic shapeshifting and Hold abilities... I've been thinking about the Gray Druid (perhaps to be renamed "Cave Druid.") For shapeshifting I'm thinking maybe myconid, small spider, and Otyugh. Myconid actually seems a little weird, because it's a biped. But maybe as a special trait, due to its spongy body it would be resistant to crushing damage? It needs something special.

    Or maybe scrap myconid and use a different form, maybe an ooze or jelly. But I'm not sure I want to do that, since we'll likely have a proper Oozemaster in the Alienists category, which will be able to do this.

    Another question is, what would be a Gray/Cave Druid's spirit summon? I think it should be either a Spirit Snake, or we should make up a reason why that kit doesn't have one.

    Thoughts?

    Myconids are indeed sentient beings, not unlike treants. So I believe shriekers/gas spore funghi to be better alternatives for the Gray Druid. Weren't spiders already setteld for the Jungle Druid? I'm still thinking beetle and carrion crawler is the way to go here. The more unique from the surface druids, the better.

    As for oozes: the Gray Druid in AD&D can control oozes, puddings and molds in a similar fashion of how evil clerics can control undead. So some sort of amorphous shapeshift may fit in as well. On the other hand we already got the Alienist (Oozemaster). Having two kits with the same flavor might feel repetitive.

    How about a Spirit Boring Beetle? Or a Bonebat (they're in Siege of Dragonspear)? Sounds quite fun! In any case I believe we should go for a non-mammalian one here.

    Alternative names for the Gray Druid may include; Cavern Druid, Underdark Druid or Subterranean Druid. Anything's better than "Cave" imho. That one sounds too much like a caveman.

    Regarding aquatic/sea druids, does anybody know if there is any infinity engine game that has sufficient animations? We might be able to work something that requires extended animations if so...

    Other than that blurry Aboleth in a tank and the deformed clones in Irenicus' dungeon? None. Even the water elemental looks like a golem. And the marine fishes and that one whale in Whyrm's Tooth are part of the background art.

    Closests shapeshift forms for a Sea/Coastal Druid would probably be the polar bear (being maritime bears and all). Well, there's also the Nymph/Sirene and perhaps even the water elemental. Theoretically we could create a "Saltwater Scrag" (an ocean dwelling troll) shapeshift form. But, well, they're sentient giants of low intelligence. *shrugs*

    Brer_Rabbit
Sign In or Register to comment.