Shadowrun: Awakened 29 September 2011 - Build 871
SrConstants.h
Go to the documentation of this file.
00001 #ifndef __SRCONSTANTS_H
00002 #define __SRCONSTANTS_H
00003 
00004 #include "SraTypes.h"
00005 
00006 //As of 6/20/2010, this is a legacy file that may need to be re-implemented in UnrealScript as needed
00007 
00009 //This file was created as a compilation of constant modifiers 
00010 //and multipliers from the Shadowrun 4th edition manual
00011 //They are presented in the order they can be found in the book 
00012 //and with references to corresponding page numbers
00013 //
00014 //The constants defined in this file must act based on only:
00015 //Race, Attributes, and ad hoc qualities of the game
00016 //
00017 //Constants defined in this file should try to NOT deal with:
00018 //Skills, Creatures, Spells, Adept Abilities, Programs, etc
00019 //These things will each be covered with an extensible system of scripting
00020 //to define behavior; going in-depth here would be too difficult
00022 
00023 namespace SraLogic
00024 {
00026     //Game Concepts
00028 
00029     //penalty to roll for defaulting to a skill, pg. 54
00030     const int DEFAULTING_PENALTY = -1;
00031 
00032     //Difficulty table, pg. 56
00033     //For some tests, just divide the number of dice by this number to calculate hits
00034     const int AUTO_SUCCESS_DIVISOR = 4; 
00035     //(number of successes required to succeed == difficulty level)
00036     const int THRESHOLD_EASY = 1;
00037     const int THRESHOLD_AVERAGE = 2;
00038     const int THRESHOLD_HARD = 3;
00039     const int THRESHOLD_EXTREME = 4;
00040 
00041     //Calculating Condition Monitor, pg. 65
00042     //The base number of a character's stun damage track, enhanced by Will
00043     const int STUN_DMG_BASE = 8;
00044     //the number which divides a character's will to add to STUN_DMG_BASE
00045     const int STUN_DMG_DIVISOR = 2;
00046     //The base number of a character's physical damage track, enhanced by Bod
00047     const int PHYSICAL_DMG_BASE = 8;
00048     //the number which divies a character's bod to add to PHYSICAL_DMG_BASE
00049     const int PHYSICAL_DMG_DIVISOR = 2;
00050 
00052     //Creating a Shadowrunner
00054 
00055     //Attribute min/max per races, pg 73
00056     //MIN - The minimum a character can ever posses, at any time, EVER!
00057     //MINSTART - The minimum a character can possess during char gen
00058     //MAXSTART - The maximum a chracter can possess during char gen
00059     //MAX - The maximum a chracter can ever possess, at any time, EVER!
00060     //NOTE: Resonance & Magic are optional to start
00061     const int MIN_RESONANCE = 0;
00062     const int MAXSTART_RESONANCE = 6;
00063     const int MAX_RESONANCE = 6;
00064 
00065     const int MIN_MAGIC = 0;
00066     const int MAXSTART_MAGIC = 6;
00067     const int MAX_MAGIC = 6;
00068 
00069     //Humans should add HUMAN_EDGE_BONUS to MINSTART_EDGE and MAX_EDGE 
00070     const int MIN_EDGE = 0;
00071     const int MINSTART_EDGE = 1;
00072     const int MAXSTART_EDGE = 6;
00073     const int MAX_EDGE = 6;
00074 
00075     //Essence starts at INITIAL_ESSENCE and is bought down by cyberware
00076     const int INITIAL_ESS = 6;
00077     const int MIN_ESS = 0;
00078 
00079     //Human
00080     const int HUMAN_MIN_BOD = 1;
00081     const int HUMAN_MIN_AGI = 1;
00082     const int HUMAN_MIN_REA = 1;
00083     const int HUMAN_MIN_STR = 1;
00084     const int HUMAN_MIN_CHA = 1;
00085     const int HUMAN_MIN_INT = 1;
00086     const int HUMAN_MIN_LOG = 1;
00087     const int HUMAN_MIN_WIL = 1;
00088     const int HUMAN_MIN_INI = 2;
00089 
00090     const int HUMAN_MAXSTART_BOD = 6;
00091     const int HUMAN_MAXSTART_AGI = 6;
00092     const int HUMAN_MAXSTART_REA = 6;
00093     const int HUMAN_MAXSTART_STR = 6;
00094     const int HUMAN_MAXSTART_CHA = 6;
00095     const int HUMAN_MAXSTART_INT = 6;
00096     const int HUMAN_MAXSTART_LOG = 6;
00097     const int HUMAN_MAXSTART_WIL = 6;
00098     const int HUMAN_MAXSTART_INI = 12;
00099 
00100     const int HUMAN_MAX_BOD = 9;
00101     const int HUMAN_MAX_AGI = 9;
00102     const int HUMAN_MAX_REA = 9;
00103     const int HUMAN_MAX_STR = 9;
00104     const int HUMAN_MAX_CHA = 9;
00105     const int HUMAN_MAX_INT = 9;
00106     const int HUMAN_MAX_LOG = 9;
00107     const int HUMAN_MAX_WIL = 9;
00108     const int HUMAN_MAX_INI = 18;
00109 
00110     const int HUMAN_EDGE_BONUS = 1;
00111     const Vision HUMAN_VISION = NormalVision;
00112 
00113     //pg. 138, in meters per turn, varies by race
00114     const int HUMAN_WALK_SPEED = 10;
00115     const int HUMAN_RUN_SPEED = 25;
00116 
00117     //Ork
00118     const int ORK_MIN_BOD = 4;
00119     const int ORK_MIN_AGI = 1;
00120     const int ORK_MIN_REA = 1;
00121     const int ORK_MIN_STR = 3;
00122     const int ORK_MIN_CHA = 1;
00123     const int ORK_MIN_INT = 1;
00124     const int ORK_MIN_LOG = 1;
00125     const int ORK_MIN_WIL = 1;
00126     const int ORK_MIN_INI = 2;
00127 
00128     const int ORK_MAXSTART_BOD = 9;
00129     const int ORK_MAXSTART_AGI = 6;
00130     const int ORK_MAXSTART_REA = 6;
00131     const int ORK_MAXSTART_STR = 8;
00132     const int ORK_MAXSTART_CHA = 5;
00133     const int ORK_MAXSTART_INT = 6;
00134     const int ORK_MAXSTART_LOG = 5;
00135     const int ORK_MAXSTART_WIL = 6;
00136     const int ORK_MAXSTART_INI = 12;
00137 
00138     const int ORK_MAX_BOD = 13;
00139     const int ORK_MAX_AGI = 9;
00140     const int ORK_MAX_REA = 9;
00141     const int ORK_MAX_STR = 12;
00142     const int ORK_MAX_CHA = 7;
00143     const int ORK_MAX_INT = 9;
00144     const int ORK_MAX_LOG = 7;
00145     const int ORK_MAX_WIL = 9;
00146     const int ORK_MAX_INI = 18;
00147 
00148     const Vision ORK_VISION =(Vision)(NormalVision | LowLightVision);
00149 
00150     const int ORK_WALK_SPEED = 10;
00151     const int ORK_RUN_SPEED = 25;
00152 
00153     //Dwarf
00154     const int DWARF_MIN_BOD = 2;
00155     const int DWARF_MIN_AGI = 1;
00156     const int DWARF_MIN_REA = 1;
00157     const int DWARF_MIN_STR = 3;
00158     const int DWARF_MIN_CHA = 1;
00159     const int DWARF_MIN_INT = 1;
00160     const int DWARF_MIN_LOG = 1;
00161     const int DWARF_MIN_WIL = 2;
00162     const int DWARF_MIN_INI = 2;
00163 
00164     const int DWARF_MAXSTART_BOD = 7;
00165     const int DWARF_MAXSTART_AGI = 6;
00166     const int DWARF_MAXSTART_REA = 5;
00167     const int DWARF_MAXSTART_STR = 8;
00168     const int DWARF_MAXSTART_CHA = 6;
00169     const int DWARF_MAXSTART_INT = 6;
00170     const int DWARF_MAXSTART_LOG = 6;
00171     const int DWARF_MAXSTART_WIL = 7;
00172     const int DWARF_MAXSTART_INI = 11;
00173 
00174     const int DWARF_MAX_BOD = 10;
00175     const int DWARF_MAX_AGI = 9;
00176     const int DWARF_MAX_REA = 7;
00177     const int DWARF_MAX_STR = 12;
00178     const int DWARF_MAX_CHA = 9;
00179     const int DWARF_MAX_INT = 9;
00180     const int DWARF_MAX_LOG = 9;
00181     const int DWARF_MAX_WIL = 10;
00182     const int DWARF_MAX_INI = 16;
00183 
00184     const Vision DWARF_VISION = (Vision)(NormalVision | ThermographicVision);
00185     const int DWARF_PATHOGEN_BONUS = 2;
00186 
00187     const int DWARF_WALK_SPEED = 8;
00188     const int DWARF_RUN_SPEED = 20;
00189 
00190     //Elf
00191     const int ELF_MIN_BOD = 1;
00192     const int ELF_MIN_AGI = 2;
00193     const int ELF_MIN_REA = 1;
00194     const int ELF_MIN_STR = 1;
00195     const int ELF_MIN_CHA = 3;
00196     const int ELF_MIN_INT = 1;
00197     const int ELF_MIN_LOG = 1;
00198     const int ELF_MIN_WIL = 1;
00199     const int ELF_MIN_INI = 2;
00200 
00201     const int ELF_MAXSTART_BOD = 6;
00202     const int ELF_MAXSTART_AGI = 7;
00203     const int ELF_MAXSTART_REA = 6;
00204     const int ELF_MAXSTART_STR = 6;
00205     const int ELF_MAXSTART_CHA = 8;
00206     const int ELF_MAXSTART_INT = 6;
00207     const int ELF_MAXSTART_LOG = 6;
00208     const int ELF_MAXSTART_WIL = 6;
00209     const int ELF_MAXSTART_INI = 12;
00210 
00211     const int ELF_MAX_BOD = 9;
00212     const int ELF_MAX_AGI = 10;
00213     const int ELF_MAX_REA = 9;
00214     const int ELF_MAX_STR = 9;
00215     const int ELF_MAX_CHA = 12;
00216     const int ELF_MAX_INT = 9;
00217     const int ELF_MAX_LOG = 9;
00218     const int ELF_MAX_WIL = 9;
00219     const int ELF_MAX_INI = 18;
00220 
00221     const Vision ELF_VISION = (Vision)(NormalVision | LowLightVision);
00222 
00223     const int ELF_WALK_SPEED = 10;
00224     const int ELF_RUN_SPEED = 25;
00225 
00226     //Trolls
00227     const int TROLL_MIN_BOD = 5;
00228     const int TROLL_MIN_AGI = 1;
00229     const int TROLL_MIN_REA = 1;
00230     const int TROLL_MIN_STR = 5;
00231     const int TROLL_MIN_CHA = 1;
00232     const int TROLL_MIN_INT = 1;
00233     const int TROLL_MIN_LOG = 1;
00234     const int TROLL_MIN_WIL = 1;
00235     const int TROLL_MIN_INI = 2;
00236 
00237     const int TROLL_MAXSTART_BOD = 10;
00238     const int TROLL_MAXSTART_AGI = 5;
00239     const int TROLL_MAXSTART_REA = 6;
00240     const int TROLL_MAXSTART_STR = 10;
00241     const int TROLL_MAXSTART_CHA = 4;
00242     const int TROLL_MAXSTART_INT = 5;
00243     const int TROLL_MAXSTART_LOG = 5;
00244     const int TROLL_MAXSTART_WIL = 6;
00245     const int TROLL_MAXSTART_INI = 11;
00246 
00247     const int TROLL_MAX_BOD = 15;
00248     const int TROLL_MAX_AGI = 7;
00249     const int TROLL_MAX_REA = 9;
00250     const int TROLL_MAX_STR = 15;
00251     const int TROLL_MAX_CHA = 6;
00252     const int TROLL_MAX_INT = 7;
00253     const int TROLL_MAX_LOG = 7;
00254     const int TROLL_MAX_WIL = 9;
00255     const int TROLL_MAX_INI = 16;
00256 
00257     const Vision TROLL_VISION = (Vision)(NormalVision | ThermographicVision);
00258     const int TROLL_REACH_BONUS = 1;
00259     const int TROLL_ARMOR_BONUS = 1;
00260 
00261     const int TROLL_WALK_SPEED = 15;
00262     const int TROLL_RUN_SPEED = 35;
00263 
00265     //Skills
00267     
00268     //The skill ratings for a given magnitude of skill
00269     //Using these instead of the rating for NPC generators may help tweak difficulty in the future
00270     //pg. 108 & 109
00271     const int SKILL_RATING_UNTRAINED = 0;
00272     const int SKILL_RATING_BEGINNER = 1;
00273     const int SKILL_RATING_NOVICE = 2;
00274     const int SKILL_RATING_PROFESSIONAL = 3;
00275     const int SKILL_RATING_VETERAN = 4;
00276     const int SKILL_RATING_EXPORT = 5;
00277     const int SKILL_RATING_ELITE = 6;
00278     const int SKILL_RATING_LEGENDARY = 7;
00279 
00280     //Bonus added to rolls when character has a specialization
00281     //NOTE: Not likely to be used in 1.0!
00282     //pg. 109
00283     const int SKILL_SPECIALIZATION_BONUS = 2;
00284 
00285     //This is the modifiers to perception tests pg. 117
00286     const int PERCEIVER_DISTACTED_PENALTY = -2;
00287     const int PERCEIVER_ALERT = 0;
00288     const int PERCEIVER_ACTIVELY_LOOKING = +3;
00289     const int PERCEIVER_USING_VIRTUAL_REALITY = -6;
00290 
00291     const int SOUND_IMMEDIATE_VICINITY = 0;
00292     const int SOUND_NOT_IMMEDIATE_VICINITY = -2;
00293     const int SOUND_FAR_AWAY = -3;
00294 
00295     const int SOUND_INTERFERING = -2;
00296 
00297     const int SIGHT_IMMEDIATE_VICINITY = 0;
00298     const int SIGHT_NOT_IMMEDIATE_VICINITY = -2;
00299     const int SIGHT_FAR_AWAY = -3;
00300 
00302     //Combat
00304 
00305     //pg. 155, ad hoc bonus for being previously aware or the surprise on a surprise test
00306     const int AWARE_SURPRISE_TEST = 3;
00307 
00308     //Ranged combat modifiers pg. 140
00309     const int RANGED_AIMED_SHOT_BONUS = 1;
00310     const int RANGED_ATTACKER_RUNNING = -2;
00311     const int RANGED_ATTACKER_IN_MELEE = -3;
00312     const int RANGED_ATTACKER_IN_VEHICLE = -3;
00313     const int RANGED_ATTACKER_HAS_SMARTLINK = 2;
00314     const int RANGED_ATTACKER_HAS_LASERSIGHT = 1;
00315     const int RANGED_ATTACKER_HAS_OFFHANDWEAPON = -2;
00316 
00317     const int RANGED_ATTACKER_HAS_COVER = -1;
00318     const int RANGED_TARGET_PARTIAL_COVER = -2;
00319     const int RANGED_TARGET_GOOD_COVER = -4;
00320     const int RANGED_TARGET_TOTAL_COVER = -6;
00321 
00322     const int RECOIL_FIRST_SEMIAUTO = 0;
00323     const int RECOIL_SECOND_SEMIAUTO = -1;
00324     const int RECOIL_FIRST_BURST = -2;
00325     const int RECOIL_SECOND_BURST = -3;
00326     const int RECOIL_FIRST_LONGBURST = -5;
00327     const int RECOIL_SECOND_LONGBURST = -6;
00328     const int RECOIL_FULLAUTO = -9;
00329     const int RECOIL_HEAVY_MULTIPLIER = 2;
00330 
00331     //pg. 139, range types (out of order with above to reference RANGED_TARGET_HIDDEN) 
00332     //This number should be added to the number of dice
00333     //a ranged attacker rolls on their attack
00334     const int RANGE_PENALTY_SHORT = 0;
00335     const int RANGE_PENALTY_MEDIUM = -1;
00336     const int RANGE_PENALTY_LONG = -2;
00337     const int RANGE_PENALTY_EXTREME = -3;
00338     const int RANGE_PENALTY_BEYOND_EXTREME = RANGED_TARGET_TOTAL_COVER;
00339 
00340     //Visibility table pg. 140
00341     const int VISIBILITY_FULLDARK_NORMAL = -6;
00342     const int VISIBILITY_FULLDARK_LOWLIGHT = -6;
00343     const int VISIBILITY_FULLDARK_THERMOGRAPHIC = -3;
00344     const int VISIBILITY_FULLDARK_ASTRAL = 0;
00345 
00346     const int VISIBILITY_PARTIALLIGHT_NORMAL = -2;
00347     const int VISIBILITY_PARTIALLIGHT_LOWLIGHT = 0;
00348     const int VISIBILITY_PARTIALLIGHT_THERMOGRAPHIC = -2;
00349     const int VISIBILITY_PARTIALLIGHT_ASTRAL = 0;
00350 
00351     const int VISIBILITY_GLARE_NORMAL = -1;
00352     const int VISIBILITY_GLARE_LOWLIGHT = -1;
00353     const int VISIBILITY_GLARE_THERMOGRAPHIC = -1;
00354     const int VISIBILITY_GLARE_ASTRAL = 0;
00355 
00356     const int VISIBILITY_LIGHTFOG_NORMAL = -2;
00357     const int VISIBILITY_LIGHTFOG_LOWLIGHT = -1;
00358     const int VISIBILITY_LIGHTFOG_THERMOGRAPHIC = 0;
00359     const int VISIBILITY_LIGHTFOG_ASTRAL = 0;
00360 
00361     const int VISIBILITY_HEAVYFOG_NORMAL = -4;
00362     const int VISIBILITY_HEAVYFOG_LOWLIGHT = -2;
00363     const int VISIBILITY_HEAVYFOG_THERMOGRAPHIC = -2;
00364     const int VISIBILITY_HEAVYFOG_ASTRAL = 0;
00365 
00366     const int VISIBILITY_THERMALSMOKE_NORMAL = -4;
00367     const int VISIBILITY_THERMALSMOKE_LOWLIGHT = -2;
00368     const int VISIBILITY_THERMALSMOKE_THERMOGRAPHIC = -6;
00369     const int VISIBILITY_THERMALSMOKE_ASTRAL = 0;
00370 
00371     //melee combat modifiers, pg 148
00372     const int MELEE_ATTACKER_FRIENDS_IN_MELEE = 1;
00373     //const int MELEE_ATTACKER_SUPERIOR_POSITION = 2;
00374     const int MELEE_ATTACKER_CHARGING = 2;
00375     const int MELEE_ATTACKER_OPPONENT_PRONE = 3;
00376     //const int MELEE_DEFENDER_RECEIVING_CHARGE = 1;
00377     const int MELEE_TOUCH_ONLY_ATTACK = 2;
00378 
00379     
00380     //defense modifiers pg. 151
00381     const int AVAILABLE_DICE_WHEN_DEFENDER_UNAWARE = 0;
00382     const int DEFENDER_PRONE = -2;
00383     
00384     //ranged attacks ONLY
00385     const int DEFENDER_RUNNING = 2;
00386     const int DEFENDER_IN_MELEE_AGAINST_RANGED = -3;
00387     const int DEFENDER_AGAINST_WIDE_BURST = -2;
00388     const int DEFENDER_AGAINST_LONG_WIDE_BURST = -5;
00389     const int DEFENDER_AGAINST_FULL_AUTO_WIDE_BURST = -9;
00390     const int DEFENDER_AGAINST_SHOTGUN_MEDIUM_SPREAD = -2;
00391     const int DEFENDER_AGAINST_SHOTFUN_WIDE_SPREAD = -4;
00392     const int DEFENDER_AGAINST_AREA_ATTACK = -2;
00393 
00394     //Wound modifier, pg 153
00395     const int WOUNDMODIFIER_DIVISOR = 3;
00396 
00397     //materials armor ratings, pg 157
00398     //standard glass
00399     const int MATERIAL_FRAGILE = 1;
00400     //drywall, plaster, interior door
00401     const int MATERIAL_CHEAP = 2;
00402     //tree, furniture, plastiboard, ballistic glass
00403     const int MATERIAL_AVERAGE = 4;
00404     //hardwood, dataterm, lightpost, chain link
00405     const int MATERIAL_HEAVY = 6;
00406     //densiplast, security door, armored glass, kevlar wallboard
00407     const int MATERIAL_REINFORCED = 8;
00408     //brick, plastcrete
00409     const int MATERIAL_STRUCTURAL = 12;
00410     //concrete, metal beams
00411     const int MATERIAL_HEAVY_STRUCTURAL = 16;
00412     //reinforced concrete
00413     const int MATERIAL_ARMORED_REINFORCED = 24;
00414     //blast bunker
00415     const int MATERIAL_HARDENED = 32;
00416 
00417     //damage against barrier, pg 158
00418     //When rolling resistance for materials, multiply armor rating by this
00419     //value against non-explosive, non-spell attacks
00420     const int BARRIER_RESISTANCE_MULTIPLIER = 2;
00421     //dmg per attack
00422     const int BARRIER_DMG_MELEE = 1;
00423     //dmg per projectile
00424     const int BARRIER_DMG_PROJECTILE = 1;
00425     //dmg per bullet
00426     const int BARRIER_DMG_BULLET = 2;
00427     //dmg multiplier per explosion dmg (multiple normal DV)
00428     const int BARRIER_DMG_EXPLOSIVE_MULTIPLIER = 2;
00429     //dmg multiplier per rocket dmg (multiple normal DV)
00430     const int BARRIER_DMG_AVROCKET_MULTIPLIER = 3;
00431     //dmg multiplier per combat spell dmg (multiple normal DV)
00432     const int BARRIER_DMG_COMBATSPELL_MULTIPLIER = 1;
00433 
00434     //Vehicle combat omitted for future versions
00435 
00437     //The Awakened World
00439 
00440     //Object Resistance, pg. 174
00441     //trees, soil, unprocessed water
00442     const int OBJECTRESISTANCE_NATURAL_OBJECT = 1;
00443     //brick, leather, simple plastics
00444     const int OBJECTRESISTANCE_LOWTECH = 2;
00445     //advanced plastics, allows, electronics
00446     const int OBJECTRESISTANCE_HIGHTECH = 3;
00447     //computers, toxic waste, drones, vehicles
00448     const int OBJECTRESISTANCE_ULTATECH = 4;
00449 
00450     //Assensing table, pg. 183
00451     //Each of these is a feature defined in the table, its assigned
00452     //value is the number of successes required to extract its information
00453     const int ASSENSING_GENERALHEALTH = 1;
00454     const int ASSENSING_GENERALEMOTIONS = 1;
00455     const int ASSENSING_MUNDANREORAWAKENED = 1;
00456 
00457     const int ASSENSING_BASIC_CYBERWARE = 2;
00458     const int ASSENSING_CLASSOFMAGIC = 2;
00459     const int ASSENSING_SEENAURABEFORE = 2;
00460 
00461     const int ASSENSING_ALPHA_CYBERWARE = 3;
00462     const int ASSENSING_MAGIC_HIGHERORLOWER = 3;
00463     const int ASSENSING_GENERAL_DISEASEORTOXIN = 3;
00464 
00465     const int ASSENSING_BETA_CYBERWARE = 4;
00466     const int ASSENSING_BIOWARE = 4;
00467     const int ASSENSING_MAGIC_EXACT = 4;
00468     const int ASSENSING_EXACT_DISEASEORTOXIN = 4;
00469 
00470     const int ASSENSING_TECHNOMANCER = 5;
00471     const int ASSENSING_CAUSEOFEMOTION = 5;
00472 
00473     //Mapping of astral attributes, pg 184
00474     const Attribute ASTRAL_AGILITY = Logic;
00475     const Attribute ASTRAL_BODY = Willpower;
00476     const Attribute ASTRAL_REACTION = Intuition;
00477     const Attribute ASTRAL_STRENGTH = Charisma;
00478     const Attribute ASTRAL_INITIATIVE = Intuition;
00479     //astral initiative is rating of ASTRAL_INITIATIVE 
00480     //attribute times ASTRAL_INITIATIVE_MULTIPLIER
00481     const int ASTRAL_INITIATIVE_MULTIPLIER = 2;
00482     const int ASTRAL_INITIATIVE_PASSES =3;
00483 
00485     //The Wireless World
00487 
00488     //Signal ranges in meters, pg. 212
00489     const int SIGNAL_RANGE_0 = 3;
00490     const int SIGNAL_RANGE_1 = 40;
00491     const int SIGNAL_RANGE_2 = 100;
00492     const int SIGNAL_RANGE_3 = 400;
00493     const int SIGNAL_RANGE_4 = 1000; //1km
00494     const int SIGNAL_RANGE_5 = 4000; //4km
00495     const int SIGNAL_RANGE_6 = 10000; //10km
00496     const int SIGNAL_RANGE_7 = 40000; //40km
00497     const int SIGNAL_RANGE_8 = 100000; //100km
00498     const int SIGNAL_RANGE_9 = 400000; //400km
00499 
00500     //Device rating, pg. 214
00501     //general appliance, bodyware
00502     const int DEVICE_RATING_DUMB = 1;
00503     //public terminal, entertainment system
00504     const int DEVICE_RATING_SIMPLE = 2;
00505     //standard personal electronics, headware, vehicles, drones, home/business terminals
00506     const int DEVICE_RATING_AVERAGE = 3;
00507     //security vehicles, alphaware, research terminal, security device
00508     const int DEVICE_RATING_COMPLEX = 4;
00509     //high-end devices, betaware, security terminals, military vehicles
00510     const int DEVICE_RATING_SMART = 5;
00511     //deltaware, credsticks
00512     const int DEVICE_RATING_CUTTINGEDGE = 6;
00513 
00514     //search table, number of successes for a computer search, pg. 220
00515     const int SEARCH_EASY = 2;
00516     const int SEARCH_AVERAGE = 4;
00517     const int SEARCH_HARD = 8;
00518     const int SEARCH_EXTREME = 16;
00519 
00520     //Living persona table, pg. 233
00521     const Attribute PERSONA_FIREWALL = Willpower;
00522     const Attribute PERSONA_RESPONSE = Intuition;
00523     const int PERSONA_RESPONSE_FULLVRBONUS = 1;
00524     //Persona signal is
00525     //(rating of PERSONA_SIGNAL /PERSONA_SIGNAL_DIVISOR) round up
00526     const Attribute PERSONA_SIGNAL = Resonance;
00527     const int PERSONA_SIGNAL_DIVISOR = 2;
00528     const Attribute PERSONA_SYSTEM = Logic;
00529     const Attribute PERSONA_BIOFEEDBACKFILTER = Charisma;
00530     //VR Matrix INI = 
00531     //(rating of PERSONA_MATRIX_INI x PERSONA_MATRIX_INI_MULTIPLIER) + PERSONA_MATRIX_INI_BONUS
00532     const Attribute PERSONA_MATRIXINI = Intuition;
00533     const int PERSONA_MATRIXINI_MULTIPLIER = 2;
00534     const int PERSONA_MATRIXINI_BONUS = 1;
00535     const int PERSONA_MATRIXINI_PASSES = 3;
00536 
00538     //Running the Shadows
00540 
00541     //Healing table, die penalties in healing situations, pg. 244
00542     //hospital
00543     const int HEALING_CONDITIONS_GOOD = 0;
00544     //indoors
00545     const int HEALING_CONDITIONS_AVERAGE = -1;
00546     //street or wilderness
00547     const int HEALING_CONDITIONS_POOR = -2;
00548     //combat, bad weather, swamp
00549     const int HEALING_CONDITIONS_BAD = -3;
00550     //fire, severe storm
00551     const int HEALING_CONDITIONS_TERRIBLE = -4;
00552 
00553     const int HEALING_NOMEDKIT = -3;
00554     const int HEALING_REMOTELY = -2;
00555     const int HEALING_ASSISTANT = 1;
00556     const int HEALING_PATIENT_UNCOOPERATIVE = -2;
00557     const int HEALING_PATIENT_MAGICIAN = -2;
00558     const int HEALING_PATIENT_ADEPT= -2;
00559     const int HEALING_PATIENT_TECHNOMANCER = -2;
00560     //-1 per 2 essence points lost
00561     //(INITIAL_ESSENCE - current essence)/HEALING_ESSENCE_MULTIPLIER
00562     const int HEALING_ESSENCE_MULTIPLIER = 2;
00563 
00564     //Karma costs, all improvement multipliers go against new rating, pg. 264
00565     const int KARMA_NEW_SPECIALIZATION = 2;
00566     const int KARMA_NEW_KNOWLEDGE = 2;
00567     const int KARMA_NEW_ACTIVE = 4;
00568     const int KARMA_NEW_GROUP = 10;
00569     const int KARMA_NEW_SPELL = 5;
00570     const int KARMA_NEW_COMPLEXFORM = 2;
00571 
00572     const int KARMA_IMPROVE_KNOWLEDGE_MULIPLIER = 1;
00573     const int KARMA_IMPROVE_ACTIVE_MULIPLIER = 2;
00574     const int KARMA_IMPROVE_GROUP_MULIPLIER = 5;
00575     const int KARMA_IMPROVE_ATTRIBUTE_MULIPLIER = 3;
00576     const int KARMA_IMPROVE_COMPLEXFORM_MULTIPLIER = 1;
00577 
00578     const int KARMA_ADD_POSITIVE_QUALITY_MULTIPLIER = 2;
00579     const int KARMA_REMOVE_NEGATIVE_QUALITY_MULTIPLIER = 2;
00580 
00582     //Friends and Foes
00584 
00585     //Minor NPC damage track multiplier, pg. 272
00586     //NPCs have fewer boxes than PCs
00587     //They only possess MINORNPC_DMG_BASE + MINORNPC_DMG_MULTIPLIER * (the higher of body or will)
00588     const float MINORNPC_DMG_MULTIPLIER = 1.5f;
00589     const int MINORNPC_DMG_BASE = 8;
00590     const int MAJORNPC_DMG_BASE = 8;
00591 
00592     //Professional Rating, pg. 272
00593     const float PROFESSIONALRATING_ACCEPTABLELOSSES_UNTRAINED = 0.25f;
00594     const float PROFESSIONALRATING_ACCEPTABLELOSSES_SEMITRAINED = 0.5f;
00595     const float PROFESSIONALRATING_ACCEPTABLELOSSES_TRAINED = 0.75f;
00596     const float PROFESSIONALRATING_ACCEPTABLELOSSES_ELITE = 1.0f;
00597 
00599     //Street Gear
00601 
00602     //Concealability Modifiers, pg. 302
00603     //RFID tag, bug, slap patch, micro-drone
00604     const int CONCEALABILITY_MINISCULE = -6;
00605     //holdout pistol, monowhip, ammo, credstick, chips
00606     const int CONCEALABILITY_TINY = -4;
00607     //light pistol, knife, sap, microgrenade, flash-pack, jammer, mini-drone
00608     const int CONCEALABILITY_SMALL = -2;
00609     //heavy pistol, taster, grenade, goggles, commlink
00610     const int CONCEALABILITY_MEDIUM = 0;
00611     //machine pistol, medkit, club
00612     const int CONCEALABILITY_BIG = 2;
00613     //SMG, stun baton, sword
00614     const int CONCEALABILITY_LARGE = 4;
00615     //Assault Rifle, Katana
00616     const int CONCEALABILITY_HUGE = 6;  
00617 }
00618 
00619 #endif

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net