#define AFFECTED_BY_POISON_CASTABLE ALL -MACHINE -STRUCTURE -SHIP ;// this needed because th poison weapon also does damage, which we still want to be able to do on poison-immune units
#define ELVEN_MIRKWOOD_ARCHER_HORDE_VISION_RANGE 550 ; Slightly shorter than the archer's actual weapon range / this should be considered the actual range of the unit. -GB
#define ELVEN_LORIENARCHER_HORDE_VISION_RANGE 350 ; Slightly shorter than the archer's actual weapon range / this should be considered the actual range of the unit. -GB
;----------------------Balrog of Morgoth!!!---------------
#define BALROG_HEALTH 4000
#define BALROG_SWORD_SWIPE_DAMAGE_NORMAL 1000 ;Normal attack with knockback
#define BALROG_SWORD_SWIPE_DAMAGE_FLAME 800 ;1000
#define BALROG_SWORD_CHOP_DAMAGE_STRUCTURAL 600 ;1000 ;Chop against buildings and some monsters
#define BALROG_SWORD_CHOP_DAMAGE_FLAME 1000 ;1000
#define BALROG_DAMAGE_DISPLAY 2000 ; In the hero tooltip, how much damage I say I do
#define BALROG_WHIP_DAMAGE 2000
#define BALROG_WHIP_DAMAGE_FLAME 1000
#define BALROG_BREATH_DAMAGE 3000
#define BALROG_BREATH_RADIUS 210
#define BALROG_JUMP_DAMAGE 400
#define BALROG_SUMMONING_DAMAGE 1000
#define BALROG_IGNITE_AURA_DAMAGE 100
#define BALROG_LIFETIME 90000
#define SHROUD_CLEAR_BALROG 800
#define VISION_BALROG 400
#define WATCHER_LIFETIME 30000
#define WATCHER_CALDERA_LIFETIME 32000 ; This number should be bigger than LurkerLifetime by the "DestructionDelay" in "ModuleTag_HatchProcess" in "LurkerEgg"
#define WATCHER_ARM_HEALTH 2000
;-------------- Wyrm ---------------
#define WYRM_HEALTH 5000
#define WYRM_FIRE_PREATTACKDELAY 800
#define WYRM_FIRE_DELAYBETWEENSHOTS 1000
#define WYRM_FIRE_FIRINGDURATION 1000
#define WYRM_FIRE_DAMAGE 2000
#define WYRM_FIRE_RADIUS 80
#define WYRM_APPEAR_DAMAGE 100 ; The damage when we erupt through the ground.
#define WYRM_APPEAR_RADIUS 50
#define WYRM_APPEAR_SH_RADIUS 75
;-------------- Gollum ---------------
#define GOLLUM_PREATTACKDELAY 1000
#define GOLLUM_DELAYBETWEENSHOTS 0
#define GOLLUM_FIRINGDURATION 1000
#define GOLLUM_DAMAGE 10
;----------------------ARMY OF THE DEAD - OATHBREAKERS ----
#define GOOD_MEN_HORDE_SIZE 10 ; Actually any infantry right now
#define GOOD_MEN_SMALL_HORDE_SIZE 5 ; Actually any infantry right now
#define GOOD_MEN_GIANT_HORDE_SIZE 15 ; ??? It actually looks like a mistake that this and GOOD_MEN_HORDE_SIZE are different; may need to collapse the two
#define GOOD_RIDER_HORDE_SIZE 5
#define GOOD_RIDER_SMALL_HORDE_SIZE 3 ; Actually any infantry right now
#define GOOD_RIDER_LARGE_HORDE_SIZE 10 ; ??? Another one where it looks like having two numbers was a mistake (since the alternate formation horde has the other number)
#define OATHBREAKER_HORDE_SIZE 40
#define OATHBREAKER_SMALL_HORDE_SIZE 16
;----------------------------CRUSHING AND BEING CRUSHED-----------------------------------
CameraTerrainSampleRadiusForHeight = 1.0 ;Controls how sensitive the camera height adjust is to nearby terrain. If you move the camera near a mountain, it'll raise up sooner with a large value.
;;OK TO UNCOMMENT ;; CameraEaseFactor = 0.2 ;for softening the tethered camera (while locked to an object or a drawable)
;These figures are compatible with the new 25-degree projection angle
;MaxCameraHeight = 750.0 ;230.0
;MinCameraHeight = 430.0
UseCameraInReplay = No ;Not working, don't use it yet.
CameraAdjustSpeed = 0.3 ; between 0 and 1 - this is how fast the camera snaps to the desired height
ScrollAmountCutoff = 50.0 ; arbitrary units - above this value, we don't update height while scrolling
EnforceMaxCameraHeight = No ; Obey max camera height while scrolling?
TerrainHeightAtEdgeOfMap = 100.0
UnitDamagedThreshold = 0.65
UnitReallyDamagedThreshold = 0.4
GroundStiffness = 0.8
StructureStiffness = 0.3
; acceleration due to gravity, in dist/sec^2
; note that our distance units are roughly one foot, so
; this corresponds to earth-normal gravity (32 ft/sec^2)
AttributeModifierArmorMaxBonus = 75% ; ARMOR type bonuses in AttributeModifier.ini are summed, so this is the cap for them to prevent invincibility
; Audio parameters
; VolumeDistribution = Linear ; for linear falloff
; VolumeDistribution = MuLaw ; for S-Curve falloff
; VolumeMuValue = 6.0 ; defines the steepness of the S, must be >=0, higher is steeper.
GroupSelectMinSelectSize = 5
GroupSelectVolumeBase = 0.5
GroupSelectVolumeIncrement = 0.02
MaxUnitSelectSounds = 8
DamageRadiusMinimumForSplash = 4.0 ; Need to be more than this in order to hurt more than a single target. Fixes "projectiles explode at radius 2" vs "our guys overlap a lot"
SelectionFlashSaturationFactor = 0.5 ; zero leaves color unaffected, 4.0 is purely saturated
SelectionFlashHouseColor = No ; if 'No', selection flashes white
CameraAudibleRadius = 201 ; defines the radius that we can hear when the camera is looking up.
GroupMoveClickToGatherAreaFactor = 0.5; if you take all the selected units and calculate the smallest possible rectangle
; that contains them all, and click within that, all the selected units will break
; formation and gather at the point the user clicked (if the value is 1.0). If it's
; 0.0, units will always keep their formation. If it's <1.0, then the user must
; click a smaller area within the rectangle to order the gather.
ShakeSubtleIntensity = 0.5
ShakeNormalIntensity = 1.0
ShakeStrongIntensity = 2.5
ShakeSevereIntensity = 5.0
ShakeCineExtremeIntensity = 7.5 ;Cinematic reserved -- don't use for game stuff because it can change.
ShakeCineInsaneIntensity = 10.0 ;Cinematic reserved -- don't use for game stuff because it can change.
MaxShakeIntensity = 10.0
MaxShakeRange = 150.0
SellPercentage = 50% ; You get this percentage back of the cost to build
BaseRegenHealthPercentPerSecond = 0.3% ;You get this % of max health back per second from auto base regeneration
BaseRegenDelay = 3000 ;in MS, delay in frames we must be damage free before we can auto heal from base regeneration
SpecialPowerViewObject = SuperweaponPing ; Name of the object created for superweapons to let you watch what happens
; this is a list of bones that will always be exposed to Logic.
; please note that this is really here for quick backwards compatibility with old code,
; which didn't require declaring which bones you wanted to be able to use from logic...
; so PLEASE DO NOT ADD TO THIS LIST; if you need to expose new bones for a particular
; unit, please use the "ExtraPublicBone" INI keyword on a per-unit basis instead
; (see the airfields for an example).
StandardPublicBone = FirePoint
StandardPublicBone = Target_Left
StandardPublicBone = Target_Right
StandardPublicBone = ExitStart
StandardPublicBone = ExitEnd
StandardPublicBone = Muzzle
StandardPublicBone = PARA_COG
StandardPublicBone = PARA_ATTCH
StandardPublicBone = PARA_MAN
StandardPublicBone = ExitStart
StandardPublicBone = DockStart
StandardPublicBone = DockAction
StandardPublicBone = DockEnd
StandardPublicBone = DockWaiting
StandardPublicBone = WeaponA
StandardPublicBone = Smoke
StandardPublicBone = Fire
StandardPublicBone = WaterSpray
StandardPublicBone = Spray
StandardPublicBone = WaterSprayBig
StandardPublicBone = Steam
StandardPublicBone = Propeller
StandardPublicBone = SpawnPoint
StandardPublicBone = FireS
StandardPublicBone = FireM
StandardPublicBone = FireL
StandardPublicBone = SmokeS
StandardPublicBone = SmokeM
StandardPublicBone = SmokeL
StandardPublicBone = Aflame
StandardPublicBone = SIEGETOWER
DefaultStartingCash = 1500 ;The amount of cash the player starts with by default.
UnlookPersistDuration = 1 ; How long after you stop looking until the fog grows back
ShroudColor = R:255 G:255 B:255
ClearAlpha = 255
FogAlpha = 127
ShroudAlpha = 0 ; 0 is opaque, 255 is clear. Unsigned Byte
TaintOn = Yes
TaintColor = R:120 G:90 B:80
TaintAlpha = 0 ;
ElvenWoodColor = R:70 G:120 B:50
; Network timing settings. Don't mess with these unless you know what you're doing!
; If you are tempted to mess with these, please let me know.
; This does not imply that I know what I'm doing.
NetworkFPSHistoryLength = 30 ; The number of fps history entries.
NetworkLatencyHistoryLength = 200 ; The number of ping history entries.
NetworkRunAheadMetricsTime = 5000 ; The number of miliseconds between run ahead metrics things
NetworkCushionHistoryLength = 10 ; The number of cushion values to keep.
NetworkRunAheadSlack = 10 ; The amount of slack in the run ahead value. This is the percentage of the calculated run ahead that is added.
NetworkKeepAliveDelay = 20 ; The number of seconds between when the connections to each player send a keep-alive packet.
NetworkDisconnectTime = 15000 ; The number of milliseconds between when the game gets stuck on a frame for a network stall and when the disconnect dialog comes up.
NetworkPlayerTimeoutTime = 60000 ; The number of milliseconds between when a player's last keep alive command was recieved and when they are considered disconnected from the game.
NetworkDisconnectScreenNotifyTime = 15000 ; The number of milliseconds between when the disconnect screen comes up and when the disconnect notification is sent to the other players.
KeyboardCameraRotateSpeed = 0.1 ; How fast the camera rotates when rotated via keyboard controls.
UserDataLeafName = "My Battle for Middle-earth 2 Files"
DefaultVoiceAttackChargeTimeout = 10000 ; Default for milliseconds after using VoiceAttackCharge before VoiceAttackCharge will used again
DefaultMaxDistanceForEngaged = 33 ; Default for Object's MaxDistanceForEngaged
DefaultEngagedStateTimeout = 1000 ; Default for Object's EngagedStateTimeout
AnimationSharingCap = 100 ; share at most 100 animations. This is a target only. It can go above it if it has no choice.
AnimationSharingFrameTolerance = 5 ; 5 frames of animation difference to accept for sharing
AnimationSharingSpeedTolerance = 0.1f ; the speed differential of animation to accept for sharing
AnimationSharingWorryThreshold = 0.25f ; threshold before we start to take some measures to share more animations
AnimationSharingDrasticThreshold = 0.50f ; threshold before we start to take drastic measures to share more animations