Understated Ur-Drakon Celtic Minstrel Posted May 18, 2009 Share Posted May 18, 2009 There aren't a whole lot of changes to be made to monsters. Certainly nothing as drastic as I'm doing with terrain and planning with items. One thing I thing would be nice is a "special to call when first seen", giving the ID of a scenario special which is called the first time the party sees a monster of this type. (I got this idea from some of the E3 relics in the code. I'm not sure if E3 has this ability, but there is a relic function that checks if a monster has been seen and if not, marks it as seen. I think it uses the Scry Monster list for that, though, so I'd have to divorce it from that.) It'd be nice to have a few more species: Nephil, Slith, and Vahnatai, for starters (so that we can merge the PC races with the monster races, allowing joined PCs of unusual races to retain their race). Also Plant and maybe Other. Other ideas would be welcome. Also I'm not sure if any of the races have special features, but it might be nice (eg Stone immune to Capture Soul). Then again it may be better not to. There are a few abilities I want to get rid of: Invisible, Mindless, and Guard. Oh, and Invulnerable I guess. I'd also like to add some abilities: Death gaze Fiery touch Steals Gold when hits Cursing Touch? Shocking Touch (magic damage) Poison Spit Cold Ray Energy Ray (magic damage) Slowing Ray Cursing Ray Disease Spit Dumbfounding Ray Sleep Ray Throws Knives Reflect Spells? (The target of the spell is redirected either a. to the caster or b. to a point of the monster's choice. Missile would fly to monster, then fly from monster to new target.) Call scenario special node Call local special node (Most of these are simply for completeness.) And for radiate abilities, I'd like to add Radiate blade walls (for completeness). Radiate webs might be interesting, too – it would have to incur immunity to webs though. I'd also like to extend the summon abilities to be able to select at random from a specified group of monsters. One way to do this would be to specify a town wandering group (the number of the town and the number of the group, or maybe use the same structure to create some such groups at the scenario level). Another way would be to specify the ID of the first monster and the total number of consecutive monsters to choose from. Adding these abilities would require additional extra fields, of course. I'd like to add one more summon type, to distinguish "No summon, useless" monsters from "No summon, unique/very powerful" monsters. I'd like to change around the monster immunities. For example, why is it possible to be both immune and resistant to something? I'd like to add immunities for mental effects (to replace the Mindless ability, but possibly also protecting from one or two other things such as sleep), acid (either combined with poison or separate from it), melee (which would actually deprecate the Invulnerable ability, maybe?), maybe even spell, missile (ie based on the source rather than the type). I'd also like a set of... mobility?... flags: Walk, Swim, Fly, Guard. The first indicates that the monster can move through terrains with a blockage of 0 or 1. The second indicates it can cross terrains with a "Can boat over" set to true. The third indicates it can cross terrains with "Can fly over" set to true. And the fourth replaces the Guard special ability. And finally, I'd like PC graphics to be usable for monsters – for example, 400 + slot. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Prince of Kitties Posted May 18, 2009 Share Posted May 18, 2009 This sounds nice, but it might break compatibility with some scenarios... The Grinches in Falling Stars come to mind, for instance. (Without the Invuln flag they'd be pathetic.) Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 18, 2009 Author Share Posted May 18, 2009 The Invulnerable ability is the one I'm not sure about removing; however, if I do remove it, I'll make sure its effect is replicable by setting the monster immune to everything. So I am considering backwards compatibility. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon The Almighty Doer of Stuff Posted May 19, 2009 Share Posted May 19, 2009 I'm a bit confused about something. Do you intend to go through all the old scenarios and change them? That's the idea I'm getting, and I don't like the idea of changing another person's scenarios without their explicit consent. I saw talk in another thread of changing the way old scenarios look through the changes in the way roads, walkways, and other frills work. I think those should have a compatibility switch as well, in the form of the program functions exactly the way it always did for old-format scenarios, with the sole exception of fixing minor bugs. That's what seems to have been happening at first, but that attitude seems to be shifting lately. Maybe I'm misunderstanding things. Also, are we close to having a stable release with bugs fixed but without new-format changes yet? Are we still keeping the new-format code separate enough that this is possible? Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 19, 2009 Author Share Posted May 19, 2009 Originally Posted By: The Almighty Doer of Stuff Do you intend to go through all the old scenarios and change them? No, but when an old-format scenario is loaded it will be automatically converted. Originally Posted By: The Almighty Doer of Stuff That's what seems to have been happening at first, but that attitude seems to be shifting lately. Maybe I'm misunderstanding things. I'm making no attempt to include compatibility switches in the actual scenario format. Compatibility is instead being preserved by the conversion process. If the conversion process does something that makes scenarios behave differently or significantly changes the look of scenarios, that counts as a bug. Of course compatibility is important – that's why for every monster ability I have proposed removing, there's an alternate mechanism to achieve the same behaviour. The conversion process will map the ability onto that alternate mechanism, hence preserving behaviour. If it doesn't, again, that counts as a bug. Originally Posted By: The Almighty Doer of Stuff Also, are we close to having a stable release with bugs fixed but without new-format changes yet? Are we still keeping the new-format code separate enough that this is possible? Sorry, no. I got too carried away with the new-format stuff to do that. It would probably be possible to create a branch off before when I disabled saving (or thereabouts), but I'm personally more interested in the new-format stuff. If another programmer wants to do that, they're welcome to. I'd give them repository access and create the branch for them. I answered the rest of your post in the terrain thread. Quote Link to comment Share on other sites More sharing options...
Easygoing Eyebeast *i Posted May 19, 2009 Share Posted May 19, 2009 Quote: There are a few abilities I want to get rid of: Invisible, Mindless, and Guard. Oh, and Invulnerable I guess. I'd also like to add some abilities: Keep invisible. Many scenarios (including my own) make use of this ability. What is the alternative to preserve compatibility? I don't particularly like switching the graphic to some other blank placeholder. Fix petrification touch again. It's broken and needs to work. If you are going to change things so radically, I would just restructure the way abilities are done altogether. There are a few major types: 1) Touches 2) Rays 3) Missile 4) Defensive Like before, user gets to pick one of these and then specify the type. All status effects and damage types would be possible for touches and rays. For missile, allow a type and then to specify a damage amount in n dice of k sides. For defensive, may just need to do something special (permanent martyr's shield). Also, the code I worked on calls specials in monster abilities. I think the best place for that one is with the summoning and field abilities. I tested it and it works quite well. If you are drastically changing resistances, may as well just make it be a number between 0 and 100 percent. It's a tricky change, but should not be impossible. Also, one thing to consider is allowing us to modify the death noise and stain. With species, just open up a bunch of blank spaces for custom types. This gives the designer maximum control. Might be nice to structure items in such a way that we can link a protect/damage to any arbitrary type. Custom types would need to lose their ability upon leaving the scenario. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 19, 2009 Author Share Posted May 19, 2009 Originally Posted By: *i Keep invisible. Many scenarios (including my own) make use of this ability. What is the alternative to preserve compatibility? I don't particularly like switching the graphic to some other blank placeholder. Heh, the default bladbase makes use of it. I was going to include it in the flags along with Walk, Swim, Fly, Guard, but I forgot to mention that. Oops. I thought about simply replacing it with a blank graphic, but that has a major disadvantage: you can't see where they are in the editor. So I'm not going to do that. Originally Posted By: *i Fix petrification touch again. It's broken and needs to work. That may have been done already. If not, it's on the list. Originally Posted By: *i If you are going to change things so radically, I would just restructure the way abilities are done altogether. There are a few major types: 1) Touches 2) Rays 3) Missile 4) Defensive Like before, user gets to pick one of these and then specify the type. All status effects and damage types would be possible for touches and rays. For missile, allow a type and then to specify a damage amount in n dice of k sides. For defensive, may just need to do something special (permanent martyr's shield). Sure, that sounds like a great idea. It's just like the sort of thing I'm in the process of doing for terrain! Well, I'm mostly done, but anyway... it would require complete restructuring of the dialog, so I'll need to get the new engine working. (I'm arranging it so that it should be possible to use the new and the old engine at the same time – making a gradual transition.) I think I'd have Status Ray, Damage Ray, Petrification Ray, and Death Ray and Special Ray, and the same for touches. Also Steals Food/Gold when hits would be an additional pair. "Specials" include Death, Petrification, Spell Point Draining, Experience Draining, and Experience Draining + Damage (though that last could be a separate ability...). Then we'd need Splits when Hit, Permanent Martyr's Shield, and Absorb Spells. Also maybe my proposed Reflect Spells, though that would probably be hard to implement. The hardest would be the Missiles. I guess we'd need to specify which missile, the sound to play (no, that's be for damage/status ray), the number of dice, the sides per dice, and somehow also the name of the ability. The latter could be a new string field in the monster, though, I suppose. That would allow people to give monsters an Icy Touch ability and claim it's a Death Touch ability, though, which I don't much like. Or we could have one ability for each of the existing names (throws darts, throws knives, throws rocks, shoots arrows, throws spears, throws razordisks, shoots spines, maybe one or two extra) and then let the designer specify damage but not let them specify missile graphic. Originally Posted By: *i Also, the code I worked on calls specials in monster abilities. I think the best place for that one is with the summoning and field abilities. I tested it and it works quite well. Sure, in truth it matters little where it goes. There could also be a special called when the monster is targeted. One thing, though – can the special called by a monster as part of its turn target someone? If so, how would it select? It might be easier to make two call special abilities – one for which the monster must first select a target (which will be passed in the location pointers something like you implemented in your code) and one where it doesn't have to. Originally Posted By: *i If you are drastically changing resistances, may as well just make it be a number between 0 and 100 percent. It's a tricky change, but should not be impossible. Sure, might as well. I'd have to determine what "resistant" maps to in the conversion, though – 50% maybe? Originally Posted By: *i Also, one thing to consider is allowing us to modify the death noise and stain. Ooh, yes, good one. I completely forgot about that, though I think I've thought about it before (obviously not recently). Originally Posted By: *i With species, just open up a bunch of blank spaces for custom types. This gives the designer maximum control. Hmmm.... this would be hard, I think. I'll think about it though. I think it may be good to keep the list of species fairly small, though... Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted May 19, 2009 Share Posted May 19, 2009 Originally Posted By: The Almighty Doer of Stuff I'm a bit confused about something. Do you intend to go through all the old scenarios and change them? That's the idea I'm getting, and I don't like the idea of changing another person's scenarios without their explicit consent. Celtic Minstrel is rewriting the game inner structures (monsters, terrains, ...) so changes are deepers (and don't requires) than changing legacy scenarios. Originally Posted By: The Almighty Doer of Stuff I saw talk in another thread of changing the way old scenarios look through the changes in the way roads, walkways, and other frills work. I think those should have a compatibility switch as well, I've already implemented a (manual though) compatibility switch in the current version of the Win32 code for surface frills (roads and walkways have been left alone). However, as Celtic Minstrel said, the overall look of the scenario won't change much given how the new functions will work ... Originally Posted By: The Almighty Doer of Stuff in the form of the program functions exactly the way it always did for old-format scenarios, with the sole exception of fixing minor bugs. That's what seems to have been happening at first, but that attitude seems to be shifting lately. Maybe I'm misunderstanding things. Things didn't really changed : Celtic Minstrel have always said he was planning a major revision of the code with a release "when it will be done". Bugfix are also not his priority and he will apply them when (or during the writing of) the new code will work well enough. Such a revision, is, of course, something that needs to be done ... On the other hand, I'm mainly focused on bug fixing and didn't incorporate much of his changes yet (some switches in the save/load functions, ...). So my version of the code behaves almost exactly like the original BoE, with bugs being fixed and compatibility switches being present when a feature may break legacy compatibility (waterfalls in towns, funky old day reached function, surface trills, resurrection of absent PC via Resurrect Node, ...). So, our work will, in the end, benefit to both of us ... Originally Posted By: Celtic Minstrel Also, are we close to having a stable release with bugs fixed but without new-format changes yet? Are we still keeping the new-format code separate enough that this is possible? (Note that everything that follow apply to the Win32 version of OBoE.) Absolutely, the only bugs i would really like to fix are those in http://www.ironycentral.com/forum/ubbthreads.php?ubb=showflat&Number=167242#Post167242 . Actually, only the Empty bug remains, as others are supposely fixed, but, having no example of bad behavior, i can't test them ... On the other hand, if you see an unfixed bug that is to be fixed before release, don't hesitate... I don't know on what stage of development is the Scenario Editor given that Ishad Nha is the one working on it, but if he allows us/wants to i can grab a copy of his last code and upload it to the repository (incorporating the custom graphics/animations code i've tested on my side) as it seems pretty functional to me ... The Character Editor is already up and running (bug fixed, gets custom items from scenario, ...) and can be found in the openexile repository. Originally Posted By: Celtic Minstrel from the terrain type thread That leaves the wall-rounding, which is something that I suspect may not have worked in the original BoE I'm pretty sure the original code is indeed non-functionnal (comparaison with Exile III). Originally Posted By: *i Fix petrification touch again. It's broken and needs to work. It's fixed. Originally Posted By: *i Also, one thing to consider is allowing us to modify the death noise and stain. That would be fairly easy to implement, as the sound played is hardcoded in the first lines of the kill_monst() function (and a pointer is passed to the monster structure, so everything is basically done). The stain placement is done a few lines later (search make_sfx). Originally Posted By: *i Also, the code I worked on calls specials in monster abilities. I think the best place for that one is with the summoning and field abilities. Yup, plently of unused space here Originally Posted By: *i If you are drastically changing resistances, may as well just make it be a number between 0 and 100 percent. It's a tricky change, but should not be impossible. Actually the immunities field in the monster_record_type structure is an unsigned char and is used by comparaison with 2^n work to see if the monster is immuned/resistant to something (hence the possibility to be resistant (e.g xxxxxxx1) and immune (e.g xxxxxx1x)). That's the only significant thing to change; giving a variable resistance would be easily done in damage_monst() then (actually immune negates the damages and resistant divides them by 2). Oh, and i may add that the res1, res2 and res3 fields are unused in the monster_record_type structure Hope it helps, Chokboyz Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 19, 2009 Author Share Posted May 19, 2009 Originally Posted By: Chokboyz Celtic Minstrel is rewriting the game inner structures (monsters, terrains, ...) so changes are deepers (and don't requires) than changing legacy scenarios. Correct. At present I'm only working on changing the format of the in-memory structures. Once that's done I'll work on the file format. Originally Posted By: Chokboyz compatibility switches being present when a feature may break legacy compatibility (waterfalls in towns, funky old day reached function, surface trills, resurrection of absent PC via Resurrect Node, ...). I already have a compatibility switch for Resurrection Balm, but not for any of these. I might add the waterfall in town switch and the surface frills switch, but I think I'm going to make resurrection of absent PCs a legitimate option when I work on special nodes, so the conversion will simply map to that option. Originally Posted By: Chokboyz if he allows us/wants to i can grab a copy of his last code and upload it to the repository (incorporating the custom graphics/animations code i've tested on my side) as it seems pretty functional to me ... That would be great. In fact, since the game is almost ready, it would be great if you'd put that in the repository too. Originally Posted By: Chokboyz The Character Editor is already up and running (bug fixed, gets custom items from scenario, ...) and can be found in the openexile repository. It's also available in the downloads section. Originally Posted By: Chokboyz Originally Posted By: *i Also, one thing to consider is allowing us to modify the death noise and stain. That would be fairly easy to implement, as the sound played is hardcoded in the first lines of the kill_monst() function (and a pointer is passed to the monster structure, so everything is basically done). The stain placement is done a few lines later (search make_sfx). So there could just be a set of LEDs: Blood, Slime, Bones, Rubble, Ash. Does the code ever specifically place medium or large bloodstains, or is that only when placing a bloodstain on a square that already has one? I think that's how it's supposed to work. Originally Posted By: Chokboyz Originally Posted By: *i Also, the code I worked on calls specials in monster abilities. I think the best place for that one is with the summoning and field abilities. Yup, plently of unused space here Well, we can always add more empty space to the other one. Originally Posted By: Chokboyz Originally Posted By: *i If you are drastically changing resistances, may as well just make it be a number between 0 and 100 percent. It's a tricky change, but should not be impossible. Actually the immunities field in the monster_record_type structure is an unsigned char and is used by comparaison with 2^n work to see if the monster is immuned/resistant to something (hence the possibility to be resistant (e.g xxxxxxx1) and immune (e.g xxxxxx1x)). That's the only significant thing to change; giving a variable resistance would be easily done in damage_monst() then (actually immune negates the damages and resistant divides them by 2). Yes, we'd have to get rid of that field altogether and replace it with something else. Maybe an array. Originally Posted By: Chokboyz Oh, and i may add that the res1, res2 and res3 fields are unused in the monster_record_type structure Yes, I know. I'll probably delete or rename them eventually. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted May 19, 2009 Share Posted May 19, 2009 Originally Posted By: Celtic Minstrel Does the code ever specifically place medium or large bloodstains, or is that only when placing a bloodstain on a square that already has one? I think that's how it's supposed to work. The code automatically augment the quantity of blood/slime on a given square, but you can place a larger bloodstain directly (see for example large monster vs small monsters). The function that does that is make_sfx(). Chokboyz Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 19, 2009 Author Share Posted May 19, 2009 So, there should also be Medium/Large Bloodstain options, and a Large Slime option? Or is that based on the monster's dimensions? Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted May 19, 2009 Share Posted May 19, 2009 There should, indeed, be Medium/Large Bloodstain and Large Slime option if the idea is to give the designer the choice of the "bloodstain" to place; the only thing that would change is the third argument when calling make_sfx() (in fact, in the original code large monsters give larger bloodstains, but the make_sfx function is basically ready for a designer-defined bloodstains). Note that the make_sfx() creates not only blood/slime pools but also bones (skeletons), rocks (golems) and even ashes (fireballs) ... Hope it helps, Chokboyz Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 19, 2009 Author Share Posted May 19, 2009 Originally Posted By: Chokboyz Note that the make_sfx() creates not only blood/slime pools but also bones (skeletons), rocks (golems) and even ashes (fireballs) ... Yeah, I know, hence my original proposal: Originally Posted By: Celtic Minstrel So there could just be a set of LEDs: Blood, Slime, Bones, Rubble, Ash. But extending it to add the other three seems fine. In fact, we could actually use the Choose Graphic dialog for that! Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 20, 2009 Author Share Posted May 20, 2009 Anyone feel like making/finding attack graphics for old Exile graphics? I need one for the female merchant and the green Robin-Hood-y peddlar guy from Exile 1, the Spider Lord (?) and Demon Lord (?) also from Exile 1, the Lava Bat and Garzahd from Exile 2, the old Gazer from Exile 1, and the giant king (?) and ogre king (?) from Exile 2. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 21, 2009 Author Share Posted May 21, 2009 Another thing we could add is "sound to play when in sight" – specify the number of a sound that will have a chance of being played whenever a monster of this type is in sight of the party. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 31, 2009 Author Share Posted May 31, 2009 Well, I added code to display one or two strings and/or call a special the first time the party sees a particular type of monster. From Exile 3, I determined that the chance of (for example) a cat "meowing" is likely no more than 10%. Should I make the chance of a "sound to play in sight" a fixed 10%, or should I let the designed choose? It's not like it's a significant thing... anyway, I added the code for that too, with a 10% chance per step of playing. Next, what resistances should be added? Obviously fire, cold, magic, and poison (well, they're already there). I'd certainly also add acid, fear, mental (dumbfounding or sleep or both). Does resistance to magic also confer resistance to curse and slow? What about petrification? And what exactly does the Invulnerable ability do? Does it block even unblockable damage? I'd assume so, which is a little problematic and may mean I need to retain Invulnerable as is instead of mapping it to full resistances. And does Invulnerable also confer resistance to fear? I don't think there are any other negative effects in the game for monsters, other than possible demon and undead damage. Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted May 31, 2009 Share Posted May 31, 2009 Originally Posted By: Celtic Minstrel And what exactly does the Invulnerable ability do? Does it block even unblockable damage? I'd assume so, which is a little problematic and may mean I need to retain Invulnerable as is instead of mapping it to full resistances. And does Invulnerable also confer resistance to fear? Invulnerable: * negates all direct damage from spells completely (even unblockable damage, eg. Wound) * reduces weapon damage, poison damage and (I think) field damage by about 90%. I'm not sure if this is before or after armour is applied. * has no effect on bonus damage from physical attacks (i.e. Flaming Weapon, Lightning or Assassination abilities) Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 31, 2009 Author Share Posted May 31, 2009 And what about fear? Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted May 31, 2009 Share Posted May 31, 2009 I don't think it affects the processing of anything besides actual damage, but I could be wrong. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted May 31, 2009 Share Posted May 31, 2009 Originally Posted By: Celtic Minstrel And what about fear? Fear and morale work on them ... (In fact, the invulnerable skill divide the main damage done to the monster by 10 (doesn't affect how_much_spec special damage). Chokboyz Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted May 31, 2009 Share Posted May 31, 2009 Invulnerability has a few quirks. If you cast a damaging spell on an invulnerable monster, a damage number will appear in the animation, but the creature's health won't go down at all. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted May 31, 2009 Author Share Posted May 31, 2009 Hmm, okay, I think it'll be easier just to keep the ability as is then. But that "quirk" looks like a bug to me – I'll see if I can fix it so that the number does not appear. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted May 31, 2009 Share Posted May 31, 2009 Originally Posted By: Thuryl Invulnerability has a few quirks. If you cast a damaging spell on an invulnerable monster, a damage number will appear in the animation, but the creature's health won't go down at all. Yup, i've noticed that too and ... Originally Posted By: Celtic Minstrel But that "quirk" looks like a bug to me – I'll see if I can fix it so that the number does not appear. The problem is that for spells the damage_monst() function is called two times : the first time is to calculate damages, add the result to monster_marked_damage[monst_num] and display the animation; the second time (called by handle_marked_damage() ) is to process the damage as usual: nothing is done to the amount of damage since the type is now marked ... except that Quote: // Rentar-Ihrno? if (victim->m_d.spec_skill == 36) how_much = how_much / 10; as you can see, the invulnerability check applies to all damage type; the spell damages are so divided by 100. But, since the animation is drawn the first time the function is called, it may display the remains of dam/10 (hence the number appearing); the damage being processed on the second time, the health does goes down despite damages being shown. How should we fix this ? Do we align the spell damage with the other damage (i.e they're divided by 10, not 100) or do we keep the current behavior, but have the animation display with dam/10 instead of dam ? I've also noticed, trying to tackle the graphical corruption bug, that the 50 first terrains are always stored in the storage sheet. Is there a reason to keep that ? For information, the current size of the storage sheet is 240 pictures (24 lines, 10 columns) and terrains/monsters pictures are stored on the sheet when entering/leaving places, if needed ... Chokboyz Edit : i've found a bug with the current kill_pc() function : in a combat, if a pc is killed by backshots (i.e when running away from monsters), the first pc alive is set active with 0 AP, thus having a free extra action. To avoid this, set the done_something variable to TRUE after pc_combat_move() call (in the handle_action() function) if the pc is dead (a possible way to see if it's the case, is to check if the current_pc variable has changed ...). Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted June 1, 2009 Share Posted June 1, 2009 Originally Posted By: Chokboyz How should we fix this ? Do we align the spell damage with the other damage (i.e they're divided by 10, not 100) or do we keep the current behavior, but have the animation display with dam/10 instead of dam ? My instinct is to do the latter; given that some scenarios use invulnerable monsters and expect you to kill them while others use them and expect you not to kill them, I think anything we do to change the way invulnerability behaves risks breaking compatibility. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted June 1, 2009 Share Posted June 1, 2009 Originally Posted By: Thuryl My instinct is to do the latter; given that some scenarios use invulnerable monsters and expect you to kill them while others use them and expect you not to kill them, I think anything we do to change the way invulnerability behaves risks breaking compatibility. Then, we agree on this one, compatibility being (for the moment ?) one of the key word (but the community opinion is always something to ask ). I've thus make a special case (if monster has invulnerability skill, then add_explosion(...,how_much/10,...) that will display the actual damage done (likely to be at most 1 since doing more than 200 damage is quite hard) if the monster is invulnerable. Chokboyz Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted June 1, 2009 Author Share Posted June 1, 2009 Originally Posted By: Chokboyz Originally Posted By: Celtic Minstrel Thuryl Invulnerability has a few quirks. If you cast a damaging spell on an invulnerable monster, a damage number will appear in the animation, but the creature's health won't go down at all. Yup, i've noticed that too and ... Hey, you misattributed that quote! Originally Posted By: Chokboyz How should we fix this ? Do we align the spell damage with the other damage (i.e they're divided by 10, not 100) or do we keep the current behavior, but have the animation display with dam/10 instead of dam ? I think this is what Thuryl already said, but we should change the display rather than the actual mechanism; and if the damage is divided by 100, than that's the value that should be shown. Originally Posted By: Chokboyz I've also noticed, trying to tackle the graphical corruption bug, that the 50 first terrains are always stored in the storage sheet. Is there a reason to keep that ? For information, the current size of the storage sheet is 240 pictures (24 lines, 10 columns) and terrains/monsters pictures are stored on the sheet when entering/leaving places, if needed ... Hmm, I haven't looked into this much. Are you saying that the graphics are actually copied onto the storage sheet rather than being drawn directly from their sheet of origin? If that's the case, I see no reason why the storage sheet is needed at all. I'll most likely do away with it at some point, since it's rather useless (it may have provided a speed boost when the game was originally released, but I don't think there's any advantage to it now). Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted June 1, 2009 Author Share Posted June 1, 2009 I arbitrarily decided to merge the two lists of monster special abilities, so a monster will be able to have (for example) a radiate ability and a summon ability, or a special node ability and a radiate ability, or even two abilities that are the same. This is just in the planning stage, though – I haven't implemented anything towards this yet apart from the enum which isn't currently used: Code: enum eMonstAbil { MONST_NO_ABIL = 0, // Missile abilities MONST_THROWS_DARTS = 10, MONST_SHOOTS_ARROWS, MONST_THROWS_SPEARS, MONST_THROWS_ROCKS, MONST_THROWS_RAZORDISKS, MONST_GOOD_ARCHER, MONST_SHOOTS_SPINES, MONST_THROWS_KNIVES, // Ray abilities MONST_DAMAGE_RAY = 20, MONST_STATUS_RAY, MONST_PETRIFY_RAY, MONST_DRAIN_SP_RAY, MONST_DRAIN_XP_RAY, MONST_DRAIN_XP_DAMAGE_RAY, MONST_KILL_RAY, MONST_STEAL_FOOD_RAY, MONST_STEAL_GOLD_RAY, // Touch abilities MONST_DAMAGE_TOUCH = 30, MONST_STATUS_TOUCH, MONST_PETRIFY_TOUCH, MONST_DRAIN_SP_TOUCH, MONST_DRAIN_XP_TOUCH, MONST_DRAIN_XP_DAMAGE_TOUCH, MONST_KILL_TOUCH, MONST_STEAL_FOOD_TOUCH, MONST_STEAL_GOLD_TOUCH, // Summon abilities MONST_SUMMON_ONE = 40, MONST_SUMMON_TYPE, MONST_SUMMON_SPECIES, MONST_SUMMON_RANDOM, MONST_MASS_SUMMON, // Misc abilities MONST_SPLITS = 50, MONST_FIELD_MISSILE, MONST_MARTYRS_SHIELD, MONST_ABSORB_SPELLS, MONST_INVULNERABLE, MONST_RADIATE, MONST_CALL_LOCAL_SPECIAL, MONST_CALL_GLOBAL_SPECIAL,}; It would require changing anywhere that checks either of the monster abilities to instead check both of them, though I could probably wrap that in a member function to simplify things a little. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted June 1, 2009 Share Posted June 1, 2009 Originally Posted By: Celtic Minstrel Hey, you misattributed that quote! Damn copy/paste buffer ! Originally Posted By: Celtic Minstrel I think this is what Thuryl already said, but we should change the display rather than the actual mechanism; and if the damage is divided by 100, than that's the value that should be shown. That's what i've done : if the monster has the invulnerability skill, then display the boom with damage divided by 100 as how_much (that is with argument how_much/10 since it has already been divided earlier). The other cases are left untouched. Originally Posted By: Celtic Minstrel Hmm, I haven't looked into this much. Are you saying that the graphics are actually copied onto the storage sheet rather than being drawn directly from their sheet of origin? If that's the case, I see no reason why the storage sheet is needed at all. I'll most likely do away with it at some point, since it's rather useless (it may have provided a speed boost when the game was originally released, but I don't think there's any advantage to it now). Yes, the graphics are stored in a temporary (deleted on shutdown) 240 graphics bitmap. I agree with you : we should draw graphics directly on the screen (i've already changed that with the boom animation, while fixing the "red dots appearing on map" (windows only) bug). When i will have better understanding of the whole graphic process (and found the issue 17 bug), i'll probabily change this ... Doing so would also remove the actual limitation concerning the maximum number of differents terrains/monsters graphics in a game area (ever been attacked by a dreaded cave floor ? Quite spooky ... ). Chokboyz Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted June 1, 2009 Author Share Posted June 1, 2009 Any comments on that list of abilities a few posts up? Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Prince of Kitties Posted June 18, 2009 Share Posted June 18, 2009 Idea for a new monster ability... Mindduel. If a party contains spellcasters, the monster has a chance of selecting one within twelve spaces and invoking Mindduel (as with the spell, but no Smoky Crystals needed). For this Mindduel would have to be working correctly, of course... Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted June 18, 2009 Author Share Posted June 18, 2009 Hm, so a monster can initiate a mindduel... I'm pretty sure Mindduel in not in the monster spell set, so that's fine. It might require duplicating and altering the mindduel code though... Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted June 19, 2009 Share Posted June 19, 2009 Actually, being able to customise monster spell lists in general would be pretty nice. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted June 19, 2009 Author Share Posted June 19, 2009 Hmm... I'm not sure if I'll do that. Maybe. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted July 11, 2009 Author Share Posted July 11, 2009 I think I'll change the name of the Invulnerable ability, since it doesn't really do what it says it does. I think "Highly Protected" could work – isn't that what Rentar-Ihrno's ability in Exile 3 was listed as? Then true invulnerability could be granted by giving 100% resistance to all damage types. Quote Link to comment Share on other sites More sharing options...
Rotghroth Rhapsody Chokboyz Posted July 11, 2009 Share Posted July 11, 2009 Originally Posted By: Celtic Minstrel I think "Highly Protected" could work – isn't that what Rentar-Ihrno's ability in Exile 3 was listed as? It was exactly that, "Highly Protected". Chokboyz Quote Link to comment Share on other sites More sharing options...
Garrulous Glaahk Cryolemon Posted August 13, 2009 Share Posted August 13, 2009 Originally Posted By: Miramor Idea for a new monster ability... Mindduel. If a party contains spellcasters, the monster has a chance of selecting one within twelve spaces and invoking Mindduel (as with the spell, but no Smoky Crystals needed). For this Mindduel would have to be working correctly, of course... Cool idea. On the subject of monsters, is there a list of exactly which spells monsters of different levels can cast? It would be quite cool to be able to choose which spells a monster could cast, but I'm not sure that would be easy to implement. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted August 13, 2009 Author Share Posted August 13, 2009 Here's the relevant data from the source.. Code: char *m_mage_sp[] = {"Spark","Minor Haste","Strength","Flame Cloud","Flame", "Minor Poison","Slow","Dumbfound","Stinking Cloud","Summon Beast", "Conflagration","Fireball","Weak Summoning","Web","Poison", "Ice Bolt","Slow Group","Major Haste","Firestorm","Summoning", "Shockstorm","Major Poison","Kill","Daemon","Major Blessing", "Major Summoning","Shockwave"};char *m_priest_sp[] = {"Minor Bless","Light Heal","Wrack","Stumble","Bless", "Curse","Wound","Summon Spirit","Disease","Heal", "Holy Scourge","Smite","Curse All","Sticks to Snakes","Martyr's Shield", "Bless All","Major Heal","Flamestrike","Summon Host","Heal All", "Unholy Ravaging","Summon Guardian","Pestilence","Revive All","Avatar", "Divine Thud"};short monst_mage_cost[27] = {1,1,1,1,2, 2,2,2,2,4, 2,4,4,3,4, 4,4,5,5,5, 5,6,6,6,7, 7,7};short monst_mage_area_effect[27] = {0,0,0,0,0, 0,0,0,1,0, 1,1,0,1,0, 0,0,0,1,0, 1,0,0,0,0, 0,0};short monst_priest_cost[26] = {1,1,1,1,2, 2,2,4,2,3, 3,3,4,4,4, 5,5,5,10,6, 6,10,8,8,8, 8};short monst_priest_area_effect[26] = {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 1}; There's also variables monst_mage_spell and monst_cleric_spell, but they appear to be unused so I've omitted them. With help from the code, my interpretation is as follows: Code: Mage SpellsSpell SP Cost Area Effect?Spark 1Minor Haste 1Strength 1Flame Cloud 1Flame 2Minor Poison 2Slow 2Dumbfound 2Stinking Cloud 2 XSummon Beast 4Conflagration 2 XFireball 4 XWeak Summoning 4Web 3 XPoison 4Ice Bolt 4Slow Group 4Major Haste 5Firestorm 5 XSummoning 5Shockstorm 5 XMajor Poison 6Kill 6Daemon 6Major Blessing 7Major Summoning 7Shockwave 7Priest SpellsSpell SP Cost Area Effect?Minor Bless 1Light Heal 1Wrack 1Stumble 1Bless 2Curse 2Wound 2Summon Spirit 4Disease 2Heal 3Holy Scourge 3Smite 3Curse All 4Sticks to Snakes 4Martyr's Shield 4Bless All 5Major Heal 5Flamestrike 5 XSummon Host 10Heal All 6Unholy Ravaging 6Summon Guardian 10Pestilence 8Revive All 8Avatar 8Divine Thud 8 X There are at least two spells that are unavailable to PCs. I'm not sure what level is required to cast each spell, but I would assume that they require the same level as a PC would. Quote Link to comment Share on other sites More sharing options...
Garrulous Glaahk Cryolemon Posted August 13, 2009 Share Posted August 13, 2009 Which are the ones that are unavailable to PCs? Wrack is one, but I can't figure out the other one. Would it be possible to be able to specify which spells a monster knows in the editor? It would be cool to be able to make a monster that could only cast say fire spells. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon The Almighty Doer of Stuff Posted August 13, 2009 Share Posted August 13, 2009 Haneda Yoshiyuki had the list on his old website, although I think his website is down. The other spell unavailable to the party is Unholy Ravaging, at any rate. Quote Link to comment Share on other sites More sharing options...
Garrulous Glaahk Cryolemon Posted August 13, 2009 Share Posted August 13, 2009 Any idea why those spells aren't available to PCs? It always struck me as a bit odd. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted August 13, 2009 Author Share Posted August 13, 2009 Sorry, I have no idea why they are unavailable. I always thought it odd too. It would certainly be possible to set available spells in the editor as you suggest. It would require creating a new dialog or modifying the existing spell selection dialog (used in the character editor, I believe). Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Mea Tulpa Posted August 14, 2009 Share Posted August 14, 2009 I thought Yoshiyuki's lists were from Exile 1 and 2. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon The Almighty Doer of Stuff Posted August 14, 2009 Share Posted August 14, 2009 They could have been. Anyway, they're not there anymore, so it doesn't matter much. Quote Link to comment Share on other sites More sharing options...
Seasoned Roamer Crynsos Posted September 22, 2009 Share Posted September 22, 2009 The invulnerable ability shouldn't get removed, just fixed. (see my report in another thread) Mindless has some uses now and then (undead, fearless soldiers, etc.) and probably should stay here. But it would be of more use if monsters could use fear as a magic spell and possibly even as a gaze ability. I guess invisible could be removed and replaced with simply transparent monster pictures, but then again the character could find the enemy by simply "looking" at it, unless that is disabled when using a certain pre-set transparent monster picture. Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted September 23, 2009 Share Posted September 23, 2009 Some scenarios (such as At the Gallows, I believe) have "invulnerable" enemies that you're expected to kill, so "fixing" the ability is definitely not the way to go. Quote Link to comment Share on other sites More sharing options...
Garrulous Glaahk Cryolemon Posted September 23, 2009 Share Posted September 23, 2009 Originally Posted By: Thuryl Some scenarios (such as At the Gallows, I believe) have "invulnerable" enemies that you're expected to kill, so "fixing" the ability is definitely not the way to go. Wouldn't it be possible to keep the current behaviour, and call it something different, then add a "fixed" version. Quote Link to comment Share on other sites More sharing options...
Seasoned Roamer Crynsos Posted September 23, 2009 Share Posted September 23, 2009 Hm, yeah I guess that would be the better version... maybe call the old invulnerable something like "Highely Protected" (as seen in the Exile Trilogy, Rentar-Ihrno) and call the new Invulnerable version just what is is supposed to do? Quote Link to comment Share on other sites More sharing options...
Garrulous Glaahk Cryolemon Posted September 23, 2009 Share Posted September 23, 2009 Originally Posted By: Crynsos Hm, yeah I guess that would be the better version... maybe call the old invulnerable something like "Highely Protected" (as seen in the Exile Trilogy, Rentar-Ihrno) and call the new Invulnerable version just what is is supposed to do? As discussed above, I think "highly protected" makes the most sense. Quote Link to comment Share on other sites More sharing options...
Understated Ur-Drakon Celtic Minstrel Posted September 23, 2009 Author Share Posted September 23, 2009 Originally Posted By: Crynsos I guess invisible could be removed and replaced with simply transparent monster pictures, but then again the character could find the enemy by simply "looking" at it, unless that is disabled when using a certain pre-set transparent monster picture. I'll probably remove Invisible as an ability, but add it as a separate option. So, you can have an invisible monster that also has two abilities. Originally Posted By: Cryolemon Wouldn't it be possible to keep the current behaviour, and call it something different, then add a "fixed" version. This is pretty much the plan, I believe. Rename Invulnerable to Highly Protected, then add a new way (not necessarily an ability) to confer true invulnerability. Quote Link to comment Share on other sites More sharing options...
Hatchling Cockatrice Lilith Posted September 24, 2009 Share Posted September 24, 2009 Originally Posted By: Celtic Minstrel This is pretty much the plan, I believe. Rename Invulnerable to Highly Protected, then add a new way (not necessarily an ability) to confer true invulnerability. I think the most generally useful way to do this would be to extend the resistance system to include all damage types, including physical and "unblockable" damage. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.