From: Joshua Sean Bell Subject: Combat Date: Thu, 18 Nov 93 13:30:35 MST Whee, Combat is nearly here. If you aren't interested, ignore this. If you're not creative, ignore this too, as it isn't "how to slay thy neighbor". What I need are submissions from people for three things: Weapons and Armour including: - Hand-to-hand weapons, eg: Swords, Clubs, Polearms, etc. - Ranged weapons eg, slings, bows, crossbows, etc. - Shields, armor (plate, chain, etc) Natural Weapons and Natural Armour i.e., thing you are born with. - Punching, kicking, biting, clawing, goring, flaming, talons - Scales, quills, etc. Genus Stats - Statistics for various groups of species. The first two are identical, actually, except that weapons and armour will be sold and/or made by the users, while natural weapons and armour will be part of the global system and "built in" to registered players. Here is the format for weapons and armour: @@ WEAPON/ARMOUR PROTOTYPE: @@ @@ Conventions: {a|b|c} - one of a, b or c must be selected @@ - fill in custom information, do not include <> @@ {#} - a number must be selected (usu. 0, 1, 2 ...) @@ /* ... */ - comments @@ /* All types */ @@ &CS_TYPE Object={armour|weapon {short|long}} @@ /* SET BY WEAPONSMITH */ @@ /* long range weapons cannot be parried */ @@ /* Eg, Shield = armour, Sword = weapon short, Bow = weapon long */ @@ &UB_DEF Object={#} @@ /* SET BY WEAPONSMITH */ @@ /* Percentage of upper body protection given by object. */ @@ /* In general, worst case */ @@ /* Eg, Mail = 50, Sword = 10, Shield = 30 */ @@ &LB_DEF Object={#} @@ /* SET BY WEAPONSMITH */ @@ /* Percentage of lower body protection given by object. */ @@ /* In general, worst case */ @@ /* Eg, Mail = 20, Sword = 5, Shield = 10 */ @@ &BLOCK-{#} Object= @@ /* Randomly selected from among BLOCK-{#} attribs */ @@ /* Attacker dbref# in %0, defender dbref# in %1, weapon is %#*/ @@ /* Weapons only: */ @@ /* short range weapons only: */ @@ &SWING-{#} Object= @@ /* Randomly selected from among SWING-{#} attribs */ @@ /* Attacker dbref# in %0, defender dbref# in %1, weapon is %# */ @@ /* Long range weapons only: */ @@ &FIRE-{#} Object= @@ /* Randomly selected from among FIRE-{#} attribs */ @@ /* Attacker dbref# in %0, defender dbref# in %1, weapon is %# */ @@ /* %3 is the direction fired OR "at Target_Name". */ @@ /* All weapons */ @@ &ATTACK_PROB Object={#} @@ /* SET BY WEAPONSMITH */ @@ /* Probability of a successful attack. Should be worst case. */ @@ /* Eg, Sword = 20, Bow = 10, Club = 30 */ @@ &DAMAGE Object=< # or function> @@ /* SET BY WEAPONSMITH */ @@ /* Worst case damage with strong, agile attacker, */ @@ /* vs. weak, slow defender */ @@ /* Pillow = 0, Rapier = 15, Club = 10 */ @@ &MISS-{#} Object= @@ /* Randomly selected from among MISS-{#} attribs */ @@ /* Attacker dbref# in %0, defender dbref# in %1, weapon is %#*/ @@ &HIT-{#} Object= @@ /* Selected in numeric order based on blow severity (0 low). */ @@ /* If blow hits but no damage, 0 is selected. */ @@ /* Attacker dbref# in %0, defender dbref# in %1, weapon is %#*/ And here's an example of a Rapier: &CS_TYPE Rapier=weapon short &DAMAGE Rapier=add(2,rand(10)) &ATTACK_PROB Rapier=30 &UB_DEF Rapier=20 &LB_DEF Rapier=10 &SWING-0 Rapier=[name(%0)] lunges at [name(%1)] with [poss(%0)] rapier &SWING-1 Rapier=[name(%0)] jabs at [name(%1)] &SWING-2 Rapier=[name(%0)] swings at [name(%1)] &SWING-3 Rapier=[name(%0)] strikes at [name(%1)] &MISS-0 Rapier=, but the tip goes wide. &MISS-1 Rapier=, but [name(%0)] manages to back away. &MISS-2 Rapier=, missing completely. &MISS-3 Rapier=, narrowly missing the target. &BLOCK-0 Rapier=, but [name(%1)] parries the blow with [poss(%1)] rapier. &BLOCK-1 Rapier=, but [name(%1)] deflects the attack with [poss(%1)] rapier. &BLOCK-2 Rapier=, but [name(%1)] sidesteps and parries with [poss(%1)] rapier. &BLOCK-3 Rapier=, but [name(%1)] ducks and parries the attack with [poss(%1)] rapier. &HIT-0 Rapier=, but the blow lands on [poss(%1)] %2 without [switch(rand(4),0,doing any harm,1,drawing blood,2,leaving a mark,3,much force)]. &HIT-1 Rapier=, giving [name(%1)] a nasty [switch(rand(3),0,scratch on,1,cut on,2,gash across)] the %2. &HIT-2 Rapier=, drawing blood from [poss(%1)] %2. &HIT-3 Rapier=, gouging [poss(%1)] %2. &HIT-4 Rapier=, cutting [name(%1)] cruelly on the %2. &HIT-5 Rapier=, stabbing [poss(%1)] in the %2. Here's an example of a Bow &CS_TYPE Bow=weapon long &UB_DEF Bow=5 &LB_DEF Bow=0 &BLOCK-0 Bow=, but [name(%1)]'s bow is hit instead. &BLOCK-1 Bow=, [name(%1)]'s bow taking the blow. &ATTACK_PROB Bow=20 &DAMAGE Bow=add(5,rand(5)) &FIRE-0 Bow=[name(%0)] notches an arrow and fires %3 &FIRE-1 Bow=[name(%0)] shoots an arrow %3 &FIRE-2 Bow=[name(%0)] fires an arrow %3 &FIRE-3 Bow=[name(%0)] takes aim and shoots an arrow %3 &MISS-0 Bow=, but the arrow falls short. &MISS-1 Bow=, but the arrow goes wide. &MISS-2 Bow=, but the arrow clatters harmlessly to the ground. &HIT-0 Bow=, but the missile scrapes past [poss(%1)]'s %2 without [switch(rand(4),0,doing any harm,1,drawing blood,2,leaving a mark,3,much force)]. &HIT-1 Bow=, giving [name(%1)] a nasty [switch(rand(3),0,scratch on,1,cut on,2,gash across)] the %2. &HIT-2 Bow=, drawing blood from [poss(%1)]'s %2. &HIT-3 Bow=, sticking [name(%1)] in the %2. &HIT-4 Bow=, impaling [name(%1)] in the %2. And here's an example shield. &CS_TYPE Shield=armour &UB_DEF Shield=30 &LB_DEF Shield=10 &BLOCK-0 Shield=, but [name(%1)]'s shield takes the force of the blow. &BLOCK-1 Shield=, [name(%1)]'s shield blocking the blow. &BLOCK-2 Shield=, but [name(%1)]'s stops the attack. &BLOCK-3 Shield=, [poss(%1)] shield taking the blow. **** IMPORTANT **** You need to include the attacking syntax. Ie, "jab *" or "strike *". Keep these as specific and creative as possible. If holding a cutlass and a knife, you don't want both going off at once. The format for Long Range weapons (Eg, bows) may change. I certainly haven't finished the code for that yet, so I can't promise things. Best to avoid them for now. There is also no point on making any weapons up on the MUSH. What I'm requesting are *email* submissions of weapon prototypes. You aren't able to set a lot of the attributes on object (DAMAGE, etc) so doing it on the MUSH won't work. Weapons should be (1) Gender inspecific, and (2) Species inspecific. Do not assume the target has arms, hands, feet, a nose, hair, or anything else. Blood is a safe assumption, however. You may also want to note that UseLocks can be suggested. See below, but you can do add things like "Should be usable only by handed creatures", or some such thing. Natural Weapons and Armour are exactly the same, but won't be held by the user. They should be fairly generic (ie, a badger bite should be the same as a beaver bite, a human punch the same as a giant punch). Damages based on size/strength are figured in separately. ... The next things I need are genus definitions. For the Combat System, you'll pick a Genus that is as close as possible to your species, and it defines your abilities. Here are the ones I have already made: Size (aka height/mass): 1 = mouse, rat 2 = badger, beaver 3 = human, dryad 4 = centaur, unicorn, horse 5 = giant, dragon Agility and Strength are "percentages" (from "dead" to "god") Agility: Giant = 10 Human = 50 Mouse = 90 Strength: Mouse = 10 Human = 50 Giant = 90 In general these should be fairly balanced. Creatures like drayds will be relatively low in both, however. UBODY and LBODY are body parts in the upper and lower parts of the body. These should fit into the sentence, "George was hit on the ____." So "haunches" is okay but "hips" is not. The more the better (these don't "increase" your likelyhood of getting hit.) &SIZE-MOUSE #1200=1 &AGILITY-MOUSE #1200=90 &STRENGTH-MOUSE #1200=10 &LBODY-MOUSE #1200=tail leg leg foot hip &UBODY-MOUSE #1200=head arm arm chest hand &SIZE-DRAGON #1200=5 &AGILITY-DRAGON #1200=50 &STRENGTH-DRAGON #1200=90 &LBODY-DRAGON #1200=tail talon leg leg haunches &UBODY-DRAGON #1200=head foreleg foreleg side talon &SIZE-CENTAUR #1200=3 &AGILITY-CENTAUR #1200=40 &STRENGTH-CENTAUR #1200=60 &LBODY-CENTAUR #1200=tail leg leg leg leg haunches hoof flank &UBODY-CENTAUR #1200=head arm arm side hand chest &SIZE-HUMAN #1200=3 &AGILITY-HUMAN #1200=50 &STRENGTH-HUMAN #1200=50 &LBODY-HUMAN #1200=hip leg leg foot &UBODY-HUMAN #1200=head arm arm chest hand &SIZE-DEER #1200=3 &AGILITY-DEER #1200=40 &STRENGTH-DEER #1200=35 &LBODY-DEER #1200=leg leg leg leg hoof &UBODY-DEER #1200=head antler shoulder haunches &SIZE-GIANT #1200=5 &AGILITY-GIANT #1200=10 &STRENGTH-GIANT #1200=90 &LBODY-GIANT #1200=foot leg leg hip knee &UBODY-GIANT #1200=head arm arm hand chest &SIZE-CAT #1200=1 &AGILITY-CAT #1200=90 &STRENGTH-CAT #1200=20 &LBODY-CAT #1200=tail leg leg foot haunches &UBODY-CAT #1200=head foreleg foreleg back paw Again, please send these in in roughly this format, via email. The sooner we get these things in my files, the sooner we'll have a working combat system. Joshua aka Tash, God of Death and Violence, and Patron Deity of LA.