mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
85 lines
3.7 KiB
Plaintext
85 lines
3.7 KiB
Plaintext
#include "script_component.hpp"
|
|
|
|
//player sideChat format["overcast: %1", overcast];
|
|
if(GVAR(rain_period_count) > GVAR(rain_next_period)) then {
|
|
|
|
if(overcast >= 0.7) then {
|
|
_lastRain = GVAR(current_rain);
|
|
_rainOverCast = ((overcast-0.7)/0.3);
|
|
GVAR(rain_next_period) = ceil((1+random(10))/GVAR(overcast_multiplier));
|
|
|
|
GVAR(current_rain) = (GVAR(current_rain)+(((GVAR(current_rain)))*((_rainOverCast*(GVAR(overcast_multiplier)))/8)*GVAR(rain_current_range)));
|
|
GVAR(current_rain) = (GVAR(current_rain) max 0.01) min 1;
|
|
|
|
_transitionTime = (_rainOverCast*5)+(random (_rainOverCast*20));
|
|
GVAR(rain_current_range) = -1+(random 2);
|
|
|
|
// player sideChat format["lastRain: %1 currentRain: %2", _lastRain, GVAR(current_rain)];
|
|
// player sideChat format["_transitionTime: %1", _transitionTime];
|
|
|
|
|
|
ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime];
|
|
} else {
|
|
GVAR(current_rain) = 0;
|
|
_lastRain = GVAR(current_rain);
|
|
_rainOverCast = 1;
|
|
_transitionTime = (_rainOverCast*5)+(random (_rainOverCast*20));
|
|
ACE_RAIN_PARAMS = [_lastRain, GVAR(current_rain), _transitionTime];
|
|
TRACE_4("",_lastRain,_rainOverCast,_transitionTime, overcast);
|
|
};
|
|
|
|
GVAR(rain_period_start_time) = time;
|
|
publicVariable "ACE_RAIN_PARAMS";
|
|
};
|
|
|
|
if(GVAR(wind_period_count) > GVAR(wind_next_period)) then {
|
|
_startDir = GVAR(wind_current_dir);
|
|
_startSpeed = GVAR(wind_current_speed);
|
|
GVAR(wind_current_dir) = (GVAR(wind_current_dir)+(((GVAR(wind_current_dir)))*((overcast*(GVAR(overcast_multiplier)))/8)*GVAR(wind_current_range_dir)));
|
|
|
|
GVAR(wind_current_speed) = (GVAR(wind_current_speed)+(((GVAR(wind_current_speed)))*(overcast*(GVAR(overcast_multiplier))/12)*GVAR(wind_current_range_speed)));
|
|
GVAR(wind_current_speed) = GVAR(wind_current_speed) max 0.01;
|
|
|
|
if(GVAR(wind_current_dir) < 0) then {
|
|
GVAR(wind_current_dir) = GVAR(wind_current_dir)+360;
|
|
};
|
|
GVAR(wind_current_dir) = GVAR(wind_current_dir) % 360;
|
|
|
|
GVAR(wind_current_range_speed) = (-1)+(random 2);
|
|
|
|
GVAR(wind_current_range_dir) = (-1)+(random 2);
|
|
|
|
GVAR(wind_next_period) = ceil((2+random(5))/(GVAR(overcast_multiplier)));
|
|
GVAR(wind_period_count) = 0;
|
|
|
|
_gustCount = floor(random(GVAR(wind_next_period)*(overcast*((GVAR(overcast_multiplier)^3)))));
|
|
|
|
_time = GVAR(wind_next_period)*60;
|
|
_gusts = [];
|
|
if(_gustCount > 0) then {
|
|
_maxInterval = _time/_gustCount;
|
|
for "_i" from 0 to _gustCount-1 do {
|
|
_gustTime = (random (3 min _maxInterval));
|
|
_timeTillGust = (_maxInterval*_i)+(random (_maxInterval - _gustTime));
|
|
_gustSpeed = (random 1);
|
|
_gustDir = (GVAR(wind_current_dir)+(GVAR(wind_current_dir)*(-1+(random 2))))*(overcast*(GVAR(overcast_multiplier)));
|
|
_gusts set[(count _gusts), [_timeTillGust, _gustTime, _gustSpeed, _gustDir]];
|
|
};
|
|
};
|
|
// diag_log text "-------";
|
|
// diag_log text format["startDir: %1 endDir: %2", _startDir, GVAR(wind_current_dir)];
|
|
// diag_log text format["startSpeed: %1 endSpeed: %2", _startSpeed, GVAR(wind_current_speed)];
|
|
// diag_log text format["GVAR(wind_current_range_speed): %1", GVAR(wind_current_range_speed)];
|
|
// diag_log text format["GVAR(wind_current_range_dir): %1", GVAR(wind_current_range_dir)];
|
|
// diag_log text format["gusts: %1", _gusts];
|
|
// diag_log text format["next period: %1", GVAR(wind_next_period)];
|
|
GVAR(wind_total_time) = GVAR(wind_total_time) + GVAR(wind_next_period);
|
|
// diag_log text format["%1,%2,%3,%4", GVAR(wind_total_time), GVAR(wind_current_dir), GVAR(wind_current_speed), _gustCount];
|
|
|
|
ACE_WIND_PARAMS = [_startDir, GVAR(wind_current_dir), _startSpeed, GVAR(wind_current_speed), _time, _gusts];
|
|
|
|
GVAR(wind_period_start_time) = time;
|
|
publicVariable "ACE_WIND_PARAMS";
|
|
};
|
|
GVAR(rain_period_count) = GVAR(rain_period_count) + 1;
|
|
GVAR(wind_period_count) = GVAR(wind_period_count) + 1; |