
*BE ADVISED: THIS README COULD BE LARGE ENOUGH TO MAKE YOUR BRAIN EXPLODE ;)*

======================================================================
Title                 : Naferia's Reign: The Invasion/Revenge of the Dark Mistress (v5.00)
Author                : Jack "Lord Misfit" Walker
E-mail                : clint20@neo.rr.com
Web Page              : http://www.zxdware.net/ [add either "Misfits", or "NR" on the end for both of my main pages, "NR" is for this game, "Misfits" is for my story project ]
Misc Author Info      : 23 Years old, from Ohio, yadda yadda...
Other Levels/Mods?    : No Standalone Levels for Duke, although I once made what ended up a very crappy Doom mod a long time ago I will not name :P
Future Levels?        : Yeah, the levels that will be made for this mod later :P

Description           : The most recent version of a [otherwise] 10 year modding project started long back in 1997. NR has been through many hardships and dire straits, but with certain sources of inspiration, I decided to reattempt making this mod back in late 2006, after a 3-4 year dead period after the unfortunate demise of version 3.x[which along with 2.x and 1.x died in HDD crashes/deaths]. This mod is a major alagmation of my modding and coding skills with CON files so far, but is not meant as a mere "blackbox" mod or an "enhancement" mod. There is a storyline in the works for this, else the sheer amount of coding[352,000+ compiled bytes] and features would be considered overboard even by my standards.

Storyline             : TO BE ANNOUNCED IN THE FUTURE, BUT THERE WILL BE ONE, TRUST ME. :P

Modification Taglines : "No hero or villain, no matter how cool, powerful, talented, skilled or charasmatic can do everything all by themself. Even they eventually hit their limits, whether it be the limit of their patience or the limit of their skill, power and talent..."
                        "Teamwork might feel like a drawback, but it's also the only way for even HIM to survive THIS war..."
                        "He who is corrupt and She who is almighty have joined forces against you. It's only fair you have friends of your own..."
                        "She Awaits You..."

Additional Credits to : Steamchip's "FEMCON" and "Operation Warehouse" for the basis of the civilian rescue code.
                        MBlackwell for giving me the basic skeleton for the character-switch system code.
                        Dr. Klystien for his EDukeWiki tutorial on making numeric keypads.
                        AND...
                        DeeperThought for... lots of stuff, where do I begin? Basically, the inventory displays were inspired by his own versions. Code for the mantling and the ladder/wall climbing is from the DukePlus modification of his. The double jumping ability is from his "Duke Nukem: Weapons of Mass Destruction" mod as well. Also, the biggest credit to him is the fact that said mod was what made me re-realize what EDuke was capable of after having not tried to work on this mod in nearly 5 years. The original 3 versions of NR[the first two of which sucked however] where lost to various Hard-Drive crashes. The third version had a lot of maps worked on, but little coding, which I sucked at back then. When I lost the third version originally, I got fed up and gave up on it, originally planning to make it a future fictional story project, but then last year I got inspired slowly by DNWMD and began adding some of my own features I found cool as well as stuff I would've used in the old NRs, and it suddenly made me wake up and want to do this mod again. Now the mod has gone further than it ever has, and I feel that if it were not for the creativity of DeeperThought's work that I'd have missed out on the chance to rebirth this mod. So thanks to you man. =)
                          
======================================================================

* Play Information *

Episode and Level #[s]: Eventually, it will span over the equalvalent of several episodes[although it will be one super-episode a la Doom 2], but it is mainly code, sounds and art for now, oh and !NR.MAP, which is a map with demonstrations of many of the mod's features and specialities. Also, WARP.MAP, WARP_SPE.WAP and WARP_ZOO.MAP are available to use to select skill levels higher than 4, or to go to specfic maps in an episode.
Single Player         : Yes, that's the entire point of this mod. :P
DukeMatch Level       : No, It will go Horribly out of Sync, and is not designed for MP
Difficulty Settings   : TEN Difficulty Levels exist in this modification, not just FOUR. XD
Plutonium Pak/Atomic? : Yes, it is necessary to have this
New Art?              : Yes, there's a lot, despite a lot of it not yet having an appearance in anything yet[future levels will be using this art, hence it's here as preparation]
New Music?            : Not Yet, as I've been using WinAmp during game plays. I have ideas for songs, and you can suggest or make me music of your own if you want to. :P
New Sounds?           : Yes
New .CON Files        : Yes, for without them, this mod is worth nothing. :P GAME, USER, DEFS, ENHANCE, SPECIAL, STATES, SCRIPTS, CHARACTERS, SHOPS are the con file names.
Demos Replaced        : No

* Construction *

Base                  : New level from scratch/Modified (Map name)
Level Editor(s) used  : Mapster32
Art Editor(s) used    : DukeRes(almost always) & EDITART(rarely)
Known Bugs            : Likely there will be plenty with the sheer number of features this mod has, but I always work to stomp the critters flat, so inform of me of bugs so I can do that! :D
Construction Time     : v4+ has taken over 13 months so far, however the original old-school NR [v1 to v3] has been in my mind for over 10 years, so if you add that, about 11 years. Original v1 to v3 were lost in a HDD crash many years ago and I almost gave up on this mod. See credits above to see why I restarted this. o_o

* Where to get this MAP file *

HTTP sites            : Main/Home - http://www.zxdware.net/NR/, ModDB - http://www.moddb.com/mods/9889/naferias-reign-the-dark-mistress

===========================================================================

Important Notes       : If you need, you can use code from the CONs if you can dicipher it, but I want you to contact me if you plan to use anything like the character-switching system so I at least know it's being used for something. Also, if you plan to use anything I have that belongs to another person, you need to let me and them know first and ask them. I don't mind if they don't mind, but if they do, I don't want you using their code without their permission.

                        ALSO: To activate the menus, press the "Inventory Left" key[usually "[" key]. This is important to do if this is your first time getting any 5.x version since the System Settings in the menu are now logged to your duke3d.cfg file and will default to 0[OFF]. You need to go into the menu to set the ones you want on.

===========================================================================

* HOW TO CREATE NR-SPECFIC EFFECTS IN YOUR OWN MAPS :P *

=I. Setting a Sector to alter the Skill/Difficulty=

1. Set the intended sector's lotag to 20001
2. Set the intended sector's hitag to 1000 PLUS the number representing the difficulty level [Skill 0 = hitag 1000, Skill 9 = hitag 1009, etc]
3. When you step into this sector, the Difficulty level will change with a quote on top of the screen telling you what your new difficulty level is called.

=II. Setting a Sector to warp to a certain episode and level=

1. Set the intended sector's lotag to 20000
2. Set the sector's lotag to #e#l#l. In other worlds if you want to go to Episode 1, Level 1, set the Hitag to 101. If you want to go to Episode 3, Level 17, set the hitag to 317. The Episode can be from 1 to 7 [1##/2##/3##/4##/5##/6##/7##], and the Level can be 1 to 32 [#01 to #32].
3. When you enter the sector, you will immediately go to the set Episode and Level except with no intermission screen.

=III. Setting a character to add/remove a specfic character to your team=

1. Set the intended sector's lotag to 20003
2. Set the intended sector's hitag to the character's ID number:
  1 = Duke
  2 = Jack
  3 = Bubsy
  4 = Ami
  5 = Higa
  6 = ESSence
  7 = Ted
  8 = Lisa
  9 = Cybanis
  10 = Christina/Nethra
  11 = Paula
  12 = Lori
  13 = Minako
  14 = "Mysterious Lady"
  15 = Maken
  16+ = Nothing
3. When you enter the sector, you'll gain that character if you didn't have him or her, or you'll lose that character if they were already in your group. Staying in the sector for a second will toggle them back and forth from "in your team" to "out of your team" if left in place.

=IV. Making a Ladder/Wallclimber=
*NOTE: This is actually a method based from DeeperThought's DukePlus modification. It is basically the same method as his version. However a different sprite is used to represent the ladder/wallclimber.

----

=V. Making numeric keypads=

1. Place a KEYPAD sprite[#3069] where you need it to be.
2. Give it a lotag in the same way you would a normal switch.
3. You can link the lotag to Forcefields, Activators, Respawn Sprites & ActivatorLocks like most switches.
4. Give the KEYPAD a hitag of 1 to 32767. The hitag is the "passkey" to successfully activate the KEYPAD's effects.

(Optional 1) 1. To add "security" damage to a KEYPAD[when you don't enter the correct code], set the "extra" of the keypad to 0, 1, 2 or 3. 0 will make the damage electric-elemental, 1 makes it freeze-elemental, 2 makes it fire-elemental, and 3 makes it poison-elemental(and will sometimes poison the recipient)].
(Optional 1) 2. Set the x-velocity [F8 in 2D mode] of the KEYPAD to any non-zero value. Positive numbers are exact damage [in HP], and negative numbers convert to a %-format[in HP, and out of 100.0%, so a xvel of -256 equals 25.6% HP damage).

(Optional 2) 1. To set a customized "error" sound for the KEYPAD, set the y-velocity [F8 in 2D mode] to the sound number you want to use [0 will default to the normal error sound however].
(Optional 2) 2. To set a customized "success" sound for the KEYPAD, set the z-velocity [F8 in 2D mode] to the sound number you want to use [0 will default to the normal success sound however].

=VI. Making handprint-scanners=

1. Place a HANDSCANNER sprite[#4082] or a HANDSCANNER2 sprite[#4084] where you need it to be.
2. Give it a lotag in the same way you would a normal switch.
3. You can link the lotag to Forcefields, Activators, Respawn Sprites & ActivatorLocks like most switches.
4. Give the HANDSCANNER/HANDSCANNER2 sprite a hitag of 1 to 65535. The hitag is a bitfield which determines which characters will be able to use the scanner.
 1 = Duke
 2 = Jack
 4 = Bubsy
 8 = Ami
 16 = Higa
 32 = ESSence
 64 = Ted
 128 = Lisa
 256 = Cybanis
 512 = Christina/Nethra
 1024 = Paula
 2048 = Lori
 4096 = Minako
 8192 = "Mysterious Lady"
 16384 = Maken
 Ex. hitag of 8492 = Bubsy, Ami, ESSence, Cybanis and "Mysterious Lady" can use the Handscanner

(Optional 1) 1. To add "security" damage to a HANDSCANNER/HANDSCANNER2[when you don't use it with the correct character(s)], set the "extra" of the keypad to 0, 1, 2 or 3. 0 will make the damage electric-elemental, 1 makes it freeze-elemental, 2 makes it fire-elemental, and 3 makes it poison-elemental(and will sometimes poison the recipient)].
(Optional 1) 2. Set the x-velocity [F8 in 2D mode] of the HANDSCANNER/HANDSCANNER2 to any non-zero value. Positive numbers are exact damage [in HP], and negative numbers convert to a %-format[in HP, and out of 100.0%, so a xvel of -59 equals 5.9% HP damage).

(Optional 2) 1. To set a customized "error" sound for the HANDSCANNER/HANDSCANNER2, set the y-velocity [F8 in 2D mode] to the sound number you want to use [0 will default to the normal error sound however].
(Optional 2) 2. To set a customized "success" sound for the HANDSCANNER/HANDSCANNER2, set the z-velocity [F8 in 2D mode] to the sound number you want to use [0 will default to the normal success sound however].

(Optional 3) 1. HANDSCANNER and HANDSCANNER2 sprites can be given specfic palettes to have different appearances, but it will not alter it's overall effect.

=VII. Making 'expanded' Keyscanners for keycards and using the 4 new keycard colors=

 * Keys *
1. Place an ACCESSCARD[#60] or ACCESSCARD2[#4086] sprite in the map. All ACCESSCARDS become ACCESSCARD2 upon load up though.
2. Palettes Supported:
  0 = Blue Keycard [classic]
  21 = Red Keycard [classic]
  23 = Red Keycard [classic]
  12 = Silver Keycard [new]
  15 = Brown Keycard [new]
  24 = Bloody Keycard [new]
  22 = Green Keycard [new]

 * Keyscanners *
1. Place an ACCESSSWITCH3[#4087, Earth-style] or ACCESSSWITCH4[#4088 Space-style] where it's needed.
2. Give the sprite a lotag between 10001 and 10128. You must use 10001 through 10128 for the syncing of multiple keyscanners with the same lotag to work properly when used, so you can only have 128 new-style ACCESSSWITCH groups per map[only? :P]
3. Palettes Supported:
  0 = Blue Keyscanner [classic, not recommended if you're low on keyscanner lotags]
  21 = Red Keyscanner [classic, not recommended if you're low on keyscanner lotags]
  23 = Red Keyscanner [classic, not recommended if you're low on keyscanner lotags]
  12 = Silver Keyscanner [new]
  15 = Brown Keyscanner [new]
  24 = Bloody Keyscanner [new]
  22 = Green Keyscanner [new]
4. You can link the lotag to Forcefields, Activators, Respawn Sprites & ActivatorLocks like most switches.
5. Like with the classic versions, the hitag represents the sound played when the Keyscanner is used.

=VIII. Making Various "Instant Death" sectors and "Pitfalls"=

 * Classic Pitfalls * [falling too low kills you instantly, i.e. falling into a pit with no bottom]
1. Create your pit, and make sure it's really deep to create a realistic effect
2. Place a DEATHPITFALL[#18] sprite in the pit sector/s.
3. Give the sprite[s] an extra of 0 [press 'M in 3D-Mode/ALT-M in 2D-Mode to change Extra]
4. Place the sprite[s] at the height you want the player to fall to/past to trigger the "instant death" feature.

 * Inversed Pitfalls * [going too high kills you instantly, i.e. flying too high out of a breathable atmosphere]
1. Place a DEATHPITFALL[#18] sprite in the sector/s.
2. Give the sprite[s] an extra of 1 [press 'M in 3D-Mode/ALT-M in 2D-Mode to change Extra]
3. Place the sprite[s] at the height you want the player to RISE to/past to trigger the "instant death" feature.

 * Instant Death * [entering sector kills you regardless of vertical/z position]
1. Place a DEATHPITFALL[#18] sprite in the sector/s.
2. Give the sprite[s] an extra of 2 [press 'M in 3D-Mode/ALT-M in 2D-Mode to change Extra]

=IX. Creating "Emulated/Disquised Damagefloors/sectors"=

1. Set the hitag of the intended sector[s] to one of the following
 5385 = NEWFLOORSLIME [weakest]
 5388 = NEWHURTRAIL
 5389 = NEWFLOORPLASMA
 5395 = NEWPURPLELAVA
 3796 = AMOEBAACID
 3780 = HOTLAVA
 4091 = MEGALAVA
 5401 = ULTRALAVA [strongest]
2. If you want the effect to only occur the normal way[standing on the ground], do NOT set the lotag of the sector to 2.
3. If you want the effect to occur anywhere vertically in the sector[like in a pool of a damaging subtance], make sure to set the lotag of the sector to 2[makes it an UNDERWATER sector with full-sector damage capabilities]

NOTE: Setting an Underwater Sector's ceiling tile to any of the above numbers for the emulated hitag will also make the entire sector able to damage you, just like being submerged in a hazardous liquid.

NOTE2: It is possible to COMBINE these methods together for up to two different damagetypes, or a double-effective varient of one damagefloor/sector type.

=X. Air-Bubbles and AirBubble Generators=

1. Place an AIRBUBBLEGENERATOR[#5375] sprite anywhere, although it will work best underwater.
2. There are multiple tags to give that can effect the interval rate of attempted bubble-spawns, the success rate of spawning a bubble at each interval, the amount of air[in tics] each spawned bubble gives to the player/actor who grabs it and other things:
   hitag = set from 1 to 256. This is the chance [out of 256] that a bubble will successfully spawn on each spawn interval. [defaults to 128 if not set, and will set to 256 if set above 256]
   lotag = set to the amount of time in tics between each attempt to spawn a bubble. 26 = 1 second. [defaults to 6 if not set]
   x-velocity [highlight sprite in 2D mode, press F8] = set to the base amount of air in each bubble[in airtime tics]. 26 is a second of restored airtime to whoever grabs the bubble spawned [defaults to 12 if not set]
   y-velocity [highlight sprite in 2D mode, press F8] = set to the first error value of air in each bubble [the value will be a random amount between the negative of this amount and the positive of this amount to give randomisity to each spawned bubble] [defaults to 3 if extra is -1]
   z-velocity [highlight sprite in 2D mode, press F8] = set to the second error value of air in each bubble [the value will be a random amount between the negative of this amount and the positive of this amount to give randomisity to each spawned bubble] [defaults to 3 if extra is -1]
   extra ['M in 3D mode/ALT-M in 2D Mode] = if left at -1, the y-vel and z-vel will default to 3 regardless of their original settings, otherwise the y-vel and z-vel will remain set to your customized values

=XI. "ELITE" Monsters=

1. Set the monster's z-velocity [highlight sprite in 2D mode, press F8], and include 512 in the number[like a bitfield].
2. You can also set a RESPAWN sprite to spawn an Elite monster by setting it's z-velocity in the same way.
3. Here are features of "ELITE" monsters.
  a. HP/AP/Attack/Defense/FirstAid/Airtime are multiplied by 4 times.
  b. Any powerups they wake up with have 4 times as much duration.
  c. Their armor absorbsion rate[if any] will be doubled [up to the full 100%].
  d. All damage done to ELITE monster is automatically cut by a random 50 to 75 percent.  
  e. All damage dealt to you by an ELITE monster is increased by a random 25 to 50 percent.
  f. All deflected damage[via Invulnerability/Triad Refractor] cut by 50 to 75 percent.
  g. The shrinker has a substantally lesser success rate against all ELITE monsters.
  h. All damagesector/floor damage is cut by 87.5 to 93.25 percent.
  i. Their level-icon is represented by a Nuke-symbol instead of a star.

=XII. Setting Specfic Vending Machine Limits=

1. Set any wall texture to tile #s 1212[VENDMACHINE], #1215[COLAMACHINE], #7665, #7666, #7667, #7668, #7669, #7670, #7672, #7673, #7674, #7675, #7676, #7677, #7678, or #7679.
2. Set the wall's hitag to any number. If left at 0, the vending quanity in the machine will default to 64 snacks/drinks.