Just wanted to get some comments on my project to overhaul the perform_violence routine. Any suggestion to improve my proposal would be greatly appreciated. I have always thought the perform_violence was very basic. It appears that every damaging skills (ie. kill, backstab, spells etc) will cause the char to be added to the combat_list, which then gets processed every PULSE_VIOLENCE. This means, every round, your attacks will be processed in the same order, and for those with multiple attacks, those attacks will all come at once. Your stats, weapon type, attack type etc do not come into play - just the order in which you were added into combat_list. Worse still, whenever a char enters a new offensive command (ie. kick, spells, etc), these are counted as an extra attack and is processed separately, and so, it appears that the solution to balance this "extra" attack is to add in WAIT_STATE. My current solution? From the combat_list, I have sorted it into a new list of chars that are in the same room. In each room, all chars (including mobs) involved in fighting are then rolled for initiatives, with dex bonuses, weapon speeds or spell time for incantation etc calculated into the equation. Extra attacks are checked for as well and added in by adding weapon speeds. Finally, all the different attacks are then sorted for the order in which they should proceed. To illustrate:- room1- Fighter1(3 attacks) with longsword, mage(1 attack) with dagger, thief(2 attacks) with shortsword fights a dragon with 4 attacks (2* talons, 1*bite, 1*tail whip) Fighter1 rolls initiative of 4, adds dex bonus of -1 (fast bugger), and adds weapon speed of 8 for longsword. So first attack = 11, second attack = 19 (add weapon speed), third attack = 27 mage rolls iniative of 5, no dex bonus, weapon speed of 4 for dagger. So first attack = 9 thief rolls iniative of 6, dex bonus of -3 (speedy gonzales), adds weapon speed of 6. First attack = 9, second attack = 15 dragon rolls initiative of 2, adds different speed of attack for each ty pe. Hence, talon attack 1 = 10, talon 2 = 18, bite = 22; tail whip = 30 Soooooo, the combat will proceed as follows:- Thief slashes his shortsword at the dragon - whoosh! Mage vainly plunges his dagger into the dragon. Dragon claws at Fighter1, ripping into his flesh. Fighter1 slashes his longsword at the dragon. Thief slashes his shortsword at the dragon. Dragon claws at Fighter1. Fighter1 slashes Dragon. etc etc, I hope you get the picture. And yes, I love dungeons and dragons and yes, these are based on its rules. For the above example, the dragon may kill the fighter before he gets his second or third attack off, which is a bit more realistic than the current version where all the attacks of the fighter goes off before the dragon gets processed, or maybe, the dragon gets all its attack off first and the fighter is dead before he knows it. Eventually, all offensive skills will be used in lieu of one attack, so a mage can decide to cast a spell instead of using his puny dagger. The mage can then decide to really let fly with one big humdinger of a damage spell which will take an extremely long time, or let rip with weaker damaging spells that may take off first. A warrior can decide to use a bash instead of one of his attacks so he can disrupt the spellcasters, or perhaps even using a smaller weapon so he can attack faster. And if his weapon is much faster than his opponent, he may gain an extra attack because of its speed. So a bit more strategy is required and lower level spells become useful again. Of course, this would mean all my builders will have to add extra stats to mobs and objects, but I am blessed with hard working builders :) PS: What is up with authors who dont like MUDs promoting their products? (ie. AD&D third edition) Its not like we are taking revenue away from them, in fact, we are encouraging the mudders to go out and get the books from the exposure! -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST