diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2016-05-30 14:42:09 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2016-05-30 14:42:09 -0400 |
| commit | 2736f498f30220b858fc6fac23e7ddc4a597df6d (patch) | |
| tree | 374ceadedb654b00e09dac321620a8320830f734 /gamemode/events/fallout.lua | |
| download | redead-2736f498f30220b858fc6fac23e7ddc4a597df6d.tar.gz redead-2736f498f30220b858fc6fac23e7ddc4a597df6d.tar.bz2 redead-2736f498f30220b858fc6fac23e7ddc4a597df6d.zip | |
Inital commit
Diffstat (limited to 'gamemode/events/fallout.lua')
| -rw-r--r-- | gamemode/events/fallout.lua | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/gamemode/events/fallout.lua b/gamemode/events/fallout.lua new file mode 100644 index 0000000..b316523 --- /dev/null +++ b/gamemode/events/fallout.lua @@ -0,0 +1,84 @@ + +local EVENT = {} + +EVENT.Chance = 0.50 +EVENT.Type = EVENT_BAD +EVENT.TimeText = { "30 seconds", "1 minute" } +EVENT.Times = { 30, 60 } + +function EVENT:Start() + + local num = math.random(1,2) + + EVENT.Delay = CurTime() + 15 + EVENT.RadTime = CurTime() + EVENT.Times[ num ] + 15 + EVENT.RadDelay = 0 + + for k,v in pairs( team.GetPlayers( TEAM_ARMY ) ) do + + v:Notice( "Nuclear fallout contamination is imminent", GAMEMODE.Colors.White, 7 ) + v:Notice( "Enter a building to avoid radiation poisoning", GAMEMODE.Colors.White, 7, 2 ) + v:Notice( "The atmospheric fallout will subside in " .. EVENT.TimeText[ num ], GAMEMODE.Colors.White, 7, 15 ) + v:Notice( "Atmospheric radioactivity levels are now safe", GAMEMODE.Colors.White, 7, EVENT.Times[ num ] + 15 ) + + end + + timer.Simple( 15, function() SetGlobalBool( "Radiation", true ) end ) + +end + +function EVENT:Think() + + if EVENT.Delay < CurTime() then + + if EVENT.RadDelay < CurTime() then + + EVENT.RadDelay = CurTime() + 1 + + for k,v in pairs( team.GetPlayers( TEAM_ARMY ) ) do + + if not v:IsIndoors() then + + if math.random(1,2) == 1 then + + v:EmitSound( table.Random( GAMEMODE.Geiger ), 100, math.random(90,110) ) + + end + + if math.random(1,5) == 1 then + + v:AddRadiation( 1 ) + + end + + else + + if math.random(1,6) == 1 then + + v:EmitSound( table.Random( GAMEMODE.Geiger ), 100, math.random(120,140) ) + + end + + end + + end + + end + + end + +end + +function EVENT:EndThink() + + return EVENT.RadTime < CurTime() + +end + +function EVENT:End() + + SetGlobalBool( "Radiation", false ) + +end + +event.Register( EVENT ) |
