Excessive Dawn 0.9.8 changelog

This files contains more detailed description related to some important changes

**** Config parser *****

Config parser was rewritten from scratch so here is main differences in it comparable to 0.9.7:

* Improved error detection and parsing speed
* inline exec commands ( i.e. "\say "hello" "\set myvar 10" etc ) now illegal, exec() function is introduced instead, use in form: exec("some_command");
* print() function - for debug printing, use form: print("some message");
* you can check/set custom variables by using $ symbol before them, for example: $myvar = 10; if ( $myvar >= 10 ) print("myvar is bigger or equal to 10");
* some parameters like Switch Time now have multiple values, described in form SwitchTime: 10, 12; - means that first SwitchTime value is 10 and second is 12. 
* include() functions - allows you to inherit other configs without copy-pasting them into your own, for example: include("excessive5r"); - will inherit excessive5r.cfg config
* if ( map == "q3ctf4" ) { ... } constructions now works
* all configs now loaded from rulesets/ folder
* add \sv_config - to save current config
* \reload - reloads current config
* DM Flags config parameter renamed to GameFlags
 valid GameFlags bits:
 1 - no self-damage
 2 - no falling damage
 4 - infinite health
 8 - infinite armor 
 16 - infinite ammo
 32 - disable drop // all following bits related to drop on death events not player initiated drops in game
 64 - drop weapons
 128 - drop holdable
 256 - drop powerups
* "Weapons" ruleset parameter value 1 now equal to Gauntlet not Machine Gun, this is done for unification with other weapon parameters
* SwitchTime (and individual weapon switch times) parameter now accepts 2 values in form: 
      SwitchTime: 10, 20;
  first value specifies time to drop weapon
  second values specifies time to raise weapon
  if second (third, etc) value is not specified then default will be used
  if you want to set only 2nd value but leave 1st untouched then write
      SwitchTime[2] = 20;

**** Updated FreezeTag system *****

Freeze Tag engine was seriously modified so now is time-factor based

Defaults is close enough to original system so you may skip it if you think that current gameplay is fine

If you get killed then you recieve some amount of lockTime you should wait until get unlocked.
By default lockTime decreased on 1 second each second, i.e. default factor is 1x
But there is also game factors (like teammates,emenies,environment) that may change direction 
and speed of lockTime flow.
For example:
    Freeze Tag { 
        Lock Time {
            BFG: 120;
        }
        Thaw Factor {
            Team: 29;
            Enemy: -1;
        }
        Flags {
            Team: 4;
        }

    }
    ^^^ means that you will be freezed on 120 seconds if gettting killed by BFG 
    LockTime will be decreased on 1 each second.
    If there is teammate near you then each second he staying near you 
    your lockTime be decreased +29 times faster (30x times including default 1x factor), 
    i.e. each second will be counted as 30 seconds, i.e. you will thaw in 120/30 = 4 seconds
    If there is 2 teammates when thaw speed will be 59 ( due to Flags{Team:4} ), 
    i.e. you will thaw in ~2 seconds, 3 teammates - thaw in ~1 second and so on.
    But if there is enemy near you then you will never thaw because 
    it will set ( -1x + 1x default ) 0 thaw factor for you.

Another important thing is elimination time - specified as second value in LockTime parameters
Its specifies LockTime limit after reaching that you will loose your body until next round.
For example:
    Freeze Tag { 
        Lock Time {
            BFG: 120,130;
        }
        Thaw Speed {
            Enemy: -2; // -2x + 1x (default) => -1x lock time decreasing --> 
                       // --> +1x lock time increasing!
        }
    }
    ^^^ means that you will be freezed on 120 seconds if getting killed by BFG. 
    Enemy need to stay 10 seconds near you to make your time 130 - after that you 
    will be eliminated until next round

**** Updated Accuracy accounting system *****

Now hits can be greater than shots but accuracy will never exceed 100% 
because its formula now changed from
accuracy = hits / shots
    to
accuracy = hits / ( shots + extra_shots )

extra_shot increased each time you hit more than 1 target per shot, i.e.
if you attack with RL and hit 3 people by missile splash then you will get: 
3 hits / (1 shots + 2 extra_shots ) = 100% accuracy 
If you miss next shot then you will have 
3 hits / ( 2 shots + 2 extra_shots ) = 75% accuracy 
and so on

***********

Read more about new parameters and defaults in files placed in rulesets/defaults/ folder

***********


