home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / lotrbfme2_demo.exe / INI.big / data_ini_default_victorysystem.ini < prev    next >
Text File  |  2006-01-31  |  8KB  |  132 lines

  1. ; VictorySystem.ini
  2. ; This file controls the behavior of the Victory System for LOTR RTS.
  3. ; Overview:
  4. ; The victory system is designed to do the following:
  5. ;    a. Detect when a player wins a large battle. Multiple battles can happen on a single map.
  6. ;    b. Give a bonus to the units belonging to the winning player that were involved in the battle 
  7. ; How the victory system does this is by dividing the map up into cells. Each cell keeps track of the number
  8. ; of 'deaths' and 'kills' for each player that happen in that cell. The system also keeps track of the total
  9. ; number of 'kills' and 'deaths' for the entire map. When a threshold for the entire map (formula explained 
  10. ; further down) is reached then the cells are scaned to see if any cells qualify for Victory Status. For each
  11. ; cell that Qualifies for Victory status all of the units within a radius of that cell are given a 'Victory' bonus.
  12. ;
  13. ; There are 2 types of INI blocks
  14. ; 1.    VictorySystemData : Controls variables that deal with common aspects of the victory system.
  15. ; 2.    FactionVictoryData : Controls how a faction determines a victory, this facilitates factions being able
  16. ;        to have unique methods of determining what a 'victory' is. E.G. Evil factions may place less value
  17. ;        on losing its own units than Good factions. 
  18. ;    SEE Comments in the INI blocks for a detailed explantation of hot the values are used.
  19. ;-------------------------------------------------------------------------------------------------------------------------------
  20.  
  21.  
  22. VictorySystemData default
  23.     CellSize            = 450        ; This value controls the resolution of the Cells in the Victory system. Each cell is a 
  24.                                     ; square of this width/height. The number of cells in a map is the determined by the 
  25.                                     ; extents of the map and this value. So if our cell size was 450, a map that is 3150 units 
  26.                                     ; wide and 2250 units high would have ((3150 / 450) = 7 * (2250 / 450) = 5) or 35 cells.
  27.                                     ; IMPORTANT: Do not make this value to small, as it could quickly eat up a lot of memory as 
  28.                                     ; well as degrade performance. 
  29.                                     
  30. ; The following variables control frame to frame erosion of the stats store in each cell. The frame to frame erosion is done so 
  31. ; that over time the stats fade down. This allows the system to discriminate an intense battle from a lot of small battles over a long
  32. ; period of time.
  33.     ScalePerLogicFrame = 1.0        ;  Each stat stored in a cell is scaled by this amount every logic frame. It should be greater than
  34.                                     ; 0 and less than or equal to 1.0. With the practical range being 0.7 - 0.999. The smaller the number
  35.                                     ; the 'faster' the system 'forgets'. Values above 1.0 are treated as 1.0
  36.                                     
  37.     SubtractPerLogicFrame = 0.0        ; Each logic frame this value is subtracted from the stats in each cell. This value is here to 
  38.                                     ; allow greater control over how the system 'Erodes' the stats in a cell. The value must be positive
  39.                                     ; and should not be greater than 2 or 3. For reference a single uint is worth 1.0 stat points from
  40.                                     ; the perspective of the Victory system. So if SubtractPerLogicFrame was set 1.0, 1 'death' and one
  41.                                     ; 'Kill' would be 'forgotten' per logic frame. 
  42.     
  43.     CellBonusRadius = 1.0            ; This value controls the range from the center of a cell in which units are give a victory bonus.
  44.                                     ; This actual range is a function of CellBonusRadius and CellSize, such that a value of 1.0 would
  45.                                     ; be a circle that completely contains 1 cell where the edge of the circle intersects the corners of
  46.                                     ; the cell. This value should not be below 1.0 to ensure that all the units that contributed to a 
  47.                                     ; 'victor' are rewarded. Also making the value to large should be avoided. The formula for 
  48.                                     ; the radius is; radius = (sqrt(2) * ((CellSize / 2) * CellBonusRadius).
  49.                                     ; NOTE: IF WE FIND PROBLEMS WITH UNITS GETTING MORE THAN 1 VICTORY BONUS AT A TIME
  50.                                     ; CHECK THIS VALUE FOR BEING TO LARGE. 
  51.     
  52. End
  53.  
  54. ; The following INI Blocks control how a faction decides when a 'Victory' has happened. Each faction has the following values
  55. ;    AllyDeathScaleFactor
  56. ;    EnemyKillScaleFactor
  57. ;    VictoryThreshold
  58. ;    MajorUnitValue
  59. ;    MapToCellVictoryRatio
  60. ;
  61. ; Determining a victory for a given player is done as follows.
  62. ; if (NumberOfKillsOnMap * EnemyKillScaleFactor) - (NumberOfDeaths * AllyDeathScaleFactor) > VictoryThreshold
  63. ;    then if (NumberOfKillsInCell * EnemyKillScaleFactor) - (NumberOfDeaths * AllyDeathScaleFactor) > (VictoryThreshold * MapToCellVictoryRatio)
  64. ;        then give bonus to units in that cell.
  65.  
  66. ; Gondor
  67. FactionVictoryData Gondor
  68.     AllyDeathScaleFactor  = 1.0            ; Value this faction places on the loss of its own units. 
  69.     EnemyKillScaleFactor  = 1.1            ; Value this faction places on 'kills' of enemy units that it gets.
  70.     VictoryThreshold      = 100.0        ; Thereshold needed for a 'Victory' 
  71.     MajorUnitValue          = 10.0        ; Value placed on special/major units (normal units are worth 1.0)
  72.     MapToCellVictoryRatio = 0.8            ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 
  73.                                         ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory'
  74. End
  75.  
  76. ; Rohan
  77. FactionVictoryData Rohan
  78.     AllyDeathScaleFactor  = 1.0            ; Value this faction places on the loss of its own units. 
  79.     EnemyKillScaleFactor  = 20.1        ; Value this faction places on 'kills' of enemy units that it gets.
  80.     VictoryThreshold      = 100.0        ; Thereshold needed for a 'Victory' 
  81.     MajorUnitValue          = 10.0        ; Value placed on special/major units (normal units are worth 1.0)
  82.     MapToCellVictoryRatio = 0.8            ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 
  83.                                         ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory'
  84. End
  85.  
  86. ; Mordor
  87. FactionVictoryData Mordor
  88.     AllyDeathScaleFactor  = 1.0            ; Value this faction places on the loss of its own units. 
  89.     EnemyKillScaleFactor  = 1.1            ; Value this faction places on 'kills' of enemy units that it gets.
  90.     VictoryThreshold      = 100.0        ; Thereshold needed for a 'Victory' 
  91.     MajorUnitValue          = 10.0        ; Value placed on special/major units (normal units are worth 1.0)
  92.     MapToCellVictoryRatio = 0.8            ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 
  93.                                         ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory'
  94. End
  95.  
  96. ; Isengard
  97. FactionVictoryData Isengard
  98.     AllyDeathScaleFactor  = 1.0            ; Value this faction places on the loss of its own units. 
  99.     EnemyKillScaleFactor  = 1.1            ; Value this faction places on 'kills' of enemy units that it gets.
  100.     VictoryThreshold      = 10.0        ; Thereshold needed for a 'Victory' 
  101.     MajorUnitValue          = 10.0        ; Value placed on special/major units (normal units are worth 1.0)
  102.     MapToCellVictoryRatio = 0.8            ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 
  103.                                         ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory'
  104. End
  105. ; neutral - CURRENTLY HAS NO EFFECT.
  106. FactionVictoryData neutral
  107.     AllyDeathScaleFactor  = 1.0            
  108.     EnemyKillScaleFactor  = 1.1            
  109.     VictoryThreshold      = 100.0        
  110.     MajorUnitValue          = 10.0        
  111.     MapToCellVictoryRatio = 0.8            
  112.                                         
  113. End
  114.  
  115. ; Observer - CURRENTLY HAS NO EFFECT.
  116. FactionVictoryData Observer
  117.     AllyDeathScaleFactor = 0.1
  118.     EnemyKillScaleFactor = 0.2
  119.     VictoryThreshold     = 3.0
  120.     MajorUnitValue         = 4.0
  121. End
  122.  
  123. ; Civilian - CURRENTLY HAS NO EFFECT.
  124. FactionVictoryData Civilian
  125.     AllyDeathScaleFactor = 0.1
  126.     EnemyKillScaleFactor = 0.2
  127.     VictoryThreshold     = 3.0
  128.     MajorUnitValue         = 4.0
  129. End
  130.