MERP/RM Combat Program -====================- Introduction: This program is not meant to be the 'be all and end all' of combat programs but to contain enough information and do enough of the processes within a combat to enable the DM to do what they're meant to ... "Make the game enjoyable for all". It is currently targeted more for MERP but the internal structures and processes have all the 'bits' for doing RM. I'm trying to achieve a system that with the minimalist amount of information to give the most back. MERP/RM are both complex systems and most users do some form of tailoring to their needs and thus I really only wont to include standard information. Technical Stuff: It's written in C using Curses to do all the display stuff. I wrote all the Form/Menu/Menu Selection code. If you want this then I can/will send it to you. As for the 'other' code, I'm not sure about that .... ICE's copyright etc might not allow it. I'm using MSC v5.1 to compile it. Most of the code should be portable to other systems but it assumes that you've got a colour screen and some functions must be re-coded (2%). I've also ported it to DJGPP but it seems to have an unusual problem so I'm trying to get the latest version to fix this. Program Options: When you run the program you can pass various options (parameters) to the program. These are either filenames (with extensions of ".pty", ".mon" or ".xta") or options. The options currently available are: "/b" to switch it into Black&White mode "/d" for debug mode "/rnd" for it to save at the end of every round all the information into the file RNDxxx.PTY, RNDxxx.MON, RNDxxx.XTA Display Screens: The main screen that you'll see is two columns of information with the main screen in the middle. The two columns are all the active players/monsters and they have the following characteristics. The level of GREEN is how healthy they are (RED is damage taken, in blocks of 10%). If their name is RED and flashing then they've gone below 0 hits but if it's just all RED then it means that they're on their last 10%. The middle screen is where all the menus/forms etc are displayed. The current round no. is displayed in BROWN on the top right. The current time is on the bottom left. Saving/Loading of Information: To setup the filenames that you which to save information to is done by going into the "Setup" option and entering filenames into the three "Files:" fields there. Thus once you've configured the players and added all those monsters just press an "ALT-Q" and it's done. The other way is to go through the "File" Load/Save options. Both will allow you to select another file but you must Note: using "File-Load" will place the selected filename into the "Setup" option as this option will ALWAYS show the current files that you're using. If you select "NEW" it will then ask you for the new filename. It does NOT yet enforce filename extensions of ".pty", ".mon" & ".xta" but all of the routines will look for them. Standard Encounters: I've setup a 'standard' list of monsters that you can choose from. You can then say 'Give me 3 bandits, 2 leaders & 1 Kraken' and it will add those into the current monster list. This list can be changed by you. Upto 39 monsters can be setup. Encumbrance: A question/switch in the Setup option of the main menu turns this on/off. The calculation used is: M&M Penalty = ((other mass)/(10% character mass)) * 9. This is an approximation of the RM rule. Weapon Breakages: The code is ready but ICE may not allow me to include BF's and STR's for weapons. If so, you'll have to type them in. Armor Damage/Endurance: If you fill in the armor's "Dam: Max" field it'll start calculating damage on the armor. It will then adjust the criticals received as the damage passes each 20% break by the number of breaks. For example: Max = 1000, Cur = 250 which is at 25% and thus each critical would be adjusted by 1 level (A => B etc). Damage is 1 per hit taken and 10 per critical level ie. 5 hits & B critical is 25 points. Action Sequence: This is controlled by the "Init System" in the Setup option. B is the basic one by action type ie. Spells, Missile, Melee etc. T is mine: rnd(weapon_mass * 15) + level * 3 + Cur.M&M, other actions are based on a different rnd roll. I is Quickness Stat based, QU (bonus) + 1d10. L is Lorentz's system which is QU + AG + level. Note: with I & L you must complete the AG/QU field in the character's form with the correct information. Action Resolution: Spell Attack Form: This is used to enter in most things about a spell attack. The "Lvl" is the Spell Level (XP calc's), the "Adj" is Base Spell + Directed Spell (if required) + Charging value, the "Roll" is the attack roll, the "Crit" is the critical roll (if required) and the rest is filled by the program. You can adjust these as you see fit. The program will automatically roll an attack/ critical roll if it's a monster. You will see any messages appear on the bottom of the form. It will do a lookup on the "Roll" field for fumbles and UM values (UnModified). If nothing special then it will ADD the "Adj" value to this and do another lookup, filling all the appropriate fields. If a critical happens then this field in unprotected and a value entered. It will adjust the critical if the "Crit Adj" field on the defender's sheet has information. Melee Attack Form: As per the Spell Attack Form but without a "Lvl" field. The "Adj" is the attacker's OB - (Defender's Base DB + Shield + Parry). Note that if the defender is being attacked by more than one it will not include the shield and parry values. You must adjust the value DOWN by their split. Fear/Poison/Base Spell Attacks: in the Melee Attack form the "Roll" field now becomes "RR R" which is where you put in THEIR resistance roll. It will then calculate if they have resisted or not. You can then fill in the details of the attack. Base Spells work the same way as attacks but it will give you the adjusted Base RR they must roll over to resist. It will automatically roll the RR if a monster. Weapon Information: There are THREE special types of weapons. These are Fear, Poison & Disease. When used as an attack/weapon the OB is the attack level of the special weapon. Thus you can have a 10 level skeleton having a 5th level Fear attack. When these occur against someone in a round a special form will appear and they'll have to make an RR against the appropriate attack. The available MERP weapons are: 1-Javelin Bttle Axe Flail M Star Sht Sword 1-Spear Claw Grapple Mace Sling 2-Javelin Club Halbard Net Stinger 2-Spear Comp Bow Halbard Pincher Tackle 2H Sword Crossbow HandAxe Poison Tiny An B/Sword Crush Kick Qtr Staff Trample Bash Dagger Lance Scimitar W Hammer Bite Disease Long Bow Sht Bow Whip Bola Fear The available RM weapons are: Armored fist af Maine gauche mg Battle Axe ba Lance ml Bola bo Morning Star ms Broadsword bs Pole Arm pl Composite bow cb Quarterstaff qs Club cl Rapier ra Dagger da Short Bow sb Dart dt Scimitar sc Falchion fa Sling sl Flail fl Spear sp Hand axe ha Short sword ss Heavy Crossbow hc Two-Hand Sword th Javelin ja War Hammer wh Long Bow lb War Mattock wm Light Crossbow lc Whip wp Mace ma So, if you know the name and it does not appear in the selection list just over type it with the one you want. Prim. Crit & Sec. Crit: This contains the Critical type and any max value ie. Kc means Crush, C max. If the critical type is lower case then it's dropped TWO levels otherwise it has the same value as the primary. Values are: K - crush, S - slash, P - puncture, G - grapple, H - heat, E - electrical, I - impact, C - cold Crit Adj: This is used for special monsters that modify the critical received or the table the critical is looked up against. For example it could be -2 or SL for dropping the critical by TWO levels or looking up the critical against the SuperLarge table. Values are: +/-[1-5], LA, SL. NOTE: only usable for monsters. Ignore Atk: This field currently has only TWO valid options. S(stun) and B(bleeding) which when used remove any of those effects from an attack. NOTE: only usable for monsters. Spec. Mods: This field will be interpreted to adjust the OB of the attacking player or to tell the system when to allow the secondary crit. For example: IF PL | CH OB -15 If defender has Plate/Chain armor on the ajust the attacking OB by -15. IF CA If previous attack on this person was an A Crit or better do next attack. This will only apply to creatures with multiple attacks. I'm not sure if it should also control if the next attack should occur with primary/sec/ter attacks. And if so how to do it. As it's a left-right interpreter it will make: IF PL | CH & SD into IF (PL | CH) & SD. It is proposed to have such things as: AK - applies to person attacking DF - applies to person defending (default) OB - adjust OB SZ - size (TSMLH) LA - leg armor AA - arm armor HA - helm PL - Plate CH - Chain RL - Rigid Lthr SL - Soft Lthr SD - Shield NO - no armor A? - RM armor types ie. A1->A20 AP - Activity Penalty (could be -20 or -20 for 3 rnds) ST - Stun BL - Bleed HT - Hits DD - Dead ie. DD 6 is death in 6 rnds IA - Inactive CA - previous crit value of attack was A CB - previous crit value of attack was B CC - previous crit value of attack was C CD - previous crit value of attack was D CE - previous crit value of attack was E DA - delay attack 1 round OK - previous attack was successful ie. some damage resulted IF - IF IN - IF NOT | - OR & - AND : - range ie. AT1:AT10 EL - ELSE . - finish statement Data Files: tab_1c.dat - 1H concussion attack datafile tab_1e.dat - 1H edge attack datafile tab_2h.dat - 2H attack datafile tab_gr.dat - Grappling & Unbalancing attack datafile tab_ms.dat - Missile attack datafile tab_tc.dat - Tooth & Claw attack datafile tab_sa.dat - Spell: Ball attack datafile tab_sb.dat - Spell: Base attack datafile tab_so.dat - Spell: Bolt attack datafile tab_cXX.dat - Critical Tables tab_we.dat - Weapons/Spells datafile *.pty - Party datafile *.mon - Monster datafile *.xta - Extra's datafile (contains configuration information plus Modifiers & Triggers) Keyboard: Arrow Keys move the cursor around a screen/menu. ALT-Arrow Keys allow you to 'skip' around a form, any other key will activate the field that the cursor is on (this keystroke is not shown/used). F1/^W - Help F4/End/Esc - Exit form/menu/menu selection Insert/^P - push information right 1 space Delete/^O - 'gobble up' the character the cursor is on TAB/Enter - next field SFT-TAB/^U - previous field Page Up - top of form/menu/menu selection Page Dn - bottom of form/menu/menu selection