Difference between revisions of "Category:Detection"

1,671 bytes removed ,  06:46, 9 November 2010
Simplified formula table, should be much easier to read
imported>Tejón
imported>JRoush
(Simplified formula table, should be much easier to read)
Line 1: Line 1:
Detection is Oblivion's stealth mechanic.  The concept isn't complicated: every actor has a degree of awareness of every other nearby actor, called a ''detection level''.  If this detection level is above a certain threshold then the searching actor (the "detector") is fully aware of the hiding actor (the "target").  The detector can then attack, offer a greeting, report the target's crimes, etc.  If the detection level falls below the threshold again, the detector "loses" the target and can no longer interact with it.
Detection is Oblivion's stealth mechanic.  The concept isn't complicated: every actor has a degree of awareness of every other nearby actor, called a ''detection level''.  If this detection level is above a certain threshold then the searching actor (the "detector") is fully aware of the hiding actor (the "target").  The detector can then attack, offer a greeting, report the target's crimes, etc.  If the detection level falls below the threshold again, the detector "loses" the target and can no longer interact with it.


Quite a few factors go into calculating detection levels.  They fall into three basic categories: Sight, Sound, and Sneak Skill.  Sight factors basically describe how well the detector can see the target, and only matter if the detector actually has a direct line-of-sight.  Sound factors measure how much noise the target is making, from movement and from being in combat.  Skill factors measure the ''relative'' sneak skill of the two actorsIn all three cases, the distance from the detector to target plays a very important role.  Whether or not the target has attacked the detector can make an enormous difference as well.
Quite a few variables go into calculating detection levels.  They fall into three basic categories: Sight, Sound, and Sneak Skill.  Sight basically describe how well the detector can see the target, and only matter if the detector actually has a direct line-of-sight.  Sound measures how much noise the target is making, from movement and from being in combat.  Skill measures the ''relative'' sneak skill of the detector & targetFor all three, the distance from the detector to target plays a very important role.  
   
   
The complete list of factors and their values is below.  Note that each factor is given a 'shorthand' name for use in other formulasAlso note that many of the factors are conditional - they take a "default" value some times and a more complicated value at others. Some formulas even have conditional parts - an extra multiplier or additive bonus that is used only under certain circumstances.  These conditions are given as clearly as possible in the formulas; just be sure to read them carefully.
The complete formula for Detection Level is given below.  Because the formula is so complicated, it is broken into smaller pieces and organized in a tableConditional terms are enclosed in square brackets, e.g. "[ + 400, if target is yellow]" means "add 400 if the target is yellow, otherwise ignore this term".
 
=== Detection Level Formula ===
{| cellpadding=3 cellspacing=0 border=1 style="text-align:center"
 
|- style="background:#efefef;"
! scope="col" width="100" | Factor
! scope="col" width="100%" | Value


{|border="1" cellpadding="5" cellspacing="0"
|-
|-
! style="background:#efefef;" | <center> Distance </center>
| '''Detection Level'''
! style="background:#efefef;" | <center> Shorthand </center>
| align="left" |  
! style="background:#efefef;" | <center> Value </center>
If target is farther from the detector than MaxDetectionRange, and has not attacked the detector:
0
If target is invisible or has 100% Chameleon:
-100
Otherwise:
[[fSneakBaseValue]]
[ + [[fSneakTargetAttackBonus]], if target attacked detector]
[ + SoundBonus, if target is not swimming]
[ + [[fSneakSleepBonus]], if detector is sleeping]
[ + SightBonus, if detector is awake and has line-of-sight to target]
+ SkillBonus
 
|-
| '''Sound Bonus'''
| align="left" |
[[fSneakSoundsMult]] * DistanceFactor *
(
&nbsp; [ MovementFactor, if target is moving]
&nbsp; [ + [[fSneakTargetInCombatBonus]], if target is in combat]
)
[ * [[fSneakSoundLosMult]], if detector has no line of sight to target]
 
|-
|-
| <center> Max Detection Distance </center>
| Movement Factor
| <center> maxDist </center>
| align="left" |
| [[fSneakMaxDistance]] * ([[fSneakExteriorDistanceMult]], for exterior cells)
(
|-
&nbsp; [[fSneakBootWeightBase]]
| <center> Distance Factor </center>
&nbsp; [ + [[fSneakBootWeightMult]] * (target boot weight), if tgt Sneak mastery < Journeyman]
| <center> distMult </center>
)
| 1 - (distance between detector and target) / maxDist
[ * [[fSneakRunningMult]], if target is running & target Sneak mastery < Expert]
|-
 
! style="background:#efefef;" | <center> Sound </center>
|-  
! style="background:#efefef;" | <center> Shorthand </center>
| '''Sight Bonus'''
! style="background:#efefef;" | <center> Value </center>
| align="left" |
|-
[[fSneakLightMult]] * DistanceFactor * LightFactor * ChameleonFactor * BlindnessFactor
| <center> Line-of-Sight Sound Factor </center>
[ * [[fSneakSwimmingLightMult]], if target is swimming] 
| <center> losSound </center>
| 1.0 if detector has line of sight to target
[[fSneakSoundLosMult]] otherwise
|-
| <center> Swimming Sound Factor </center>
| <center> swimSound </center>
| 0.0 if target is under water
1.0 otherwise
|-
| <center> Running Factor </center>
| <center> running </center>
| [[fSneakRunningMult]] if target is running
1.0 otherwise
|-
| <center> Movement Bonus </center>
| <center> moving </center>
|
[[fSneakBootWeightBase]] + [[fSneakBootWeightMult]] * (target boot weight) if target is moving
   
   
0.0 if target is stationary
|-
|-
| <center> In-Combat Bonus </center>
| Light Factor
| <center> combat </center>
| align="left" |
| [[fSneakTargetInCombatBonus]] if target is in combat
[[fDetectionSneakLightMod]] + (light level on target)
0.0 otherwise
[ * [[fDetectionNightEyeBonus]], if detector has Night Eye]
Light Factor is forced into the range [0 - 1]
 
|-  
| Chameleon Factor
| align="left" |
1 - (Chameleon level of target)/100
Chameleon Factor is forced into the range [0 - 1]
 
|-
| Blindness Factor
| align="left" |
1 - (Blindness level of target)/100
Blindness Factor is forced into the range [0 - 1]
 
|-
| '''Skill Bonus'''
| align="left" |
[[fSneakSkillMult]] *
(
&nbsp; (detector Sneak skill) * DistanceFactor
&nbsp; [ - target Sneak skill, if target is sneaking]
)
 
|-
|-
| <center> '''Overall Sound Bonus''' </center>
| '''Distance Factor'''
|
| align="left" |
| [[fSneakSoundsMult]] * distMult * losSound * swimSound * (running * moving + combat)
1 - (distance between detector and target) / MaxDetectionRange
|-
 
! style="background:#efefef;" | <center> Sight </center>
! style="background:#efefef;" | <center> Shorthand </center>
! style="background:#efefef;" | <center> Value </center>
|-
| <center> Line-of-Sight Factor </center>
| <center> losSight </center>
| 1.0 if detector has line of sight to target
0.0 otherwise
|-
| <center> Swimming Sight Factor </center>
| <center> swimSight </center>
| [[fSneakSwimmingLightMult]] if target is under water
1.0 otherwise
|-
| <center> Light Factor </center>
| <center> light </center>
| [[fDetectionSneakLightMod]] + (light level on target) * ([[fDetectionNightEyeBonus]], if detector has Night Eye)
Light Factor is capped at 100
|-
| <center> Invisiblity Factor </center>
| <center> invis </center>
| 0.0 if target has Invisibility
1.0 - (target's Chameleon level, max 100) / 100.0, otherwise
|-
| <center> Blindness Factor </center>
| <center> blind </center>
| 1.0 - (detector's Blindness level, from "Blindness" stat) / 100.0
|-
| <center> '''Overall Sight Bonus''' </center>
|
| [[fSneakSleepBonus]] if detector is sleeping
[[fSneakLightMult]] * distMult * losSight * swimSight * light * invis * blind, otherwise
|-
! style="background:#efefef;" | <center> Skill </center>
! style="background:#efefef;" | <center> Shorthand </center>
! style="background:#efefef;" | <center> Value </center>
|-
| <center> '''Overall Skill Bonus''' </center>
|
| [[fSneakSkillMult]] * [(detector's Sneak skill) * distMult - (target's Sneak skill, if target is sneaking)]
|-
|-
! style="background:#efefef;" | <center> Detection Level </center>
| '''Max Detection Range'''
! style="background:#efefef;" | <center> Shorthand </center>
| align="left" |  
! style="background:#efefef;" | <center> Value </center>
[[fSneakMaxDistance]]
|-
[ * [[fSneakExteriorDistanceMult]], if in exterior cell]
| <center> '''Overall Detection Level''' </center>
|
|
-100.0 if invis >= 100.0 (i.e. target has Invisibility or 100% Chameleon)


0.0 if target didn't attack detector -AND- (distance between target and detector) > maxDist
|}


otherwise: [[fSneakBaseValue]] + ([[fSneakTargetAttackBonus]], if target attacked detector) + '''Overall Sound Bonus''' + '''Overall Sight Bonus''' + '''Overall Skill Bonus'''
=== Detection Thresholds ===
|-
|}


If the '''Overall Detection Level''' is greater than a certain threshold, the detector can becomes aware of the target.  The thresholds are:
If the '''Detection Level''' is greater than a certain threshold, the detector can becomes aware of the target.  The thresholds are:
{|border="1" cellpadding="5" cellspacing="0"  
{|border="1" cellpadding="5" cellspacing="0"  
|-
|-
Anonymous user