2015-01-16 02:36:31 +00:00
|
|
|
/*
|
2015-03-24 04:18:00 +00:00
|
|
|
* Author: Commy2 and esteldunedain
|
2015-01-17 06:13:05 +00:00
|
|
|
* Displays the weapon temperature
|
2015-01-16 02:36:31 +00:00
|
|
|
*
|
|
|
|
* Arguments:
|
2015-02-08 22:54:12 +00:00
|
|
|
* 0: Player <OBJECT>
|
|
|
|
* 1: Weapon <STRING>
|
2015-01-16 02:36:31 +00:00
|
|
|
*
|
|
|
|
* Return Values:
|
|
|
|
* None
|
|
|
|
*
|
2015-02-08 22:54:12 +00:00
|
|
|
* Public: No
|
2015-01-16 02:36:31 +00:00
|
|
|
*/
|
2015-01-16 01:00:01 +00:00
|
|
|
#include "\z\ace\addons\overheating\script_component.hpp"
|
|
|
|
|
2015-01-17 06:13:05 +00:00
|
|
|
EXPLODE_2_PVT(_this,_player,_weapon);
|
2015-01-16 01:00:01 +00:00
|
|
|
|
|
|
|
// Calculate cool down of weapon since last shot
|
2015-04-18 03:40:37 +00:00
|
|
|
private ["_string", "_overheat", "_temperature", "_time", "_barrelMass", "_a"];
|
2015-01-16 01:00:01 +00:00
|
|
|
_string = format [QGVAR(%1), _weapon];
|
|
|
|
_overheat = _player getVariable [_string, [0, 0]];
|
|
|
|
_temperature = _overheat select 0;
|
|
|
|
_time = _overheat select 1;
|
|
|
|
|
|
|
|
// Get physical parameters
|
|
|
|
_barrelMass = 0.50 * (getNumber (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "mass") / 22.0) max 1.0;
|
|
|
|
|
|
|
|
// Calculate cooling
|
2015-05-21 16:42:44 +00:00
|
|
|
_temperature = [_temperature, _barrelMass, ACE_time - _time] call FUNC(cooldown);
|
2015-01-16 01:00:01 +00:00
|
|
|
|
|
|
|
//["Overheating", _temperature, {format ["Temperature: %1 °C", _this]}] call EFUNC(common,log);
|
|
|
|
|
|
|
|
// Store new temperature
|
2015-05-21 16:42:44 +00:00
|
|
|
_time = ACE_time;
|
2015-01-16 01:00:01 +00:00
|
|
|
_player setVariable [_string, [_temperature, _time], false];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ["_scaledTemperature", "_action", "_color", "_count", "_string", "_text", "_picture"];
|
|
|
|
_scaledTemperature = (_temperature / 1000) min 1;
|
|
|
|
|
|
|
|
_color = [
|
|
|
|
2 * _scaledTemperature min 1,
|
|
|
|
2 * (1 - _scaledTemperature) min 1,
|
|
|
|
00
|
|
|
|
];
|
|
|
|
|
2015-04-10 15:48:21 +00:00
|
|
|
_count = round (12 * _scaledTemperature);
|
2015-01-16 01:00:01 +00:00
|
|
|
_string = "";
|
|
|
|
for "_a" from 1 to _count do {
|
|
|
|
_string = _string + "|";
|
|
|
|
};
|
|
|
|
_text = [_string, _color] call EFUNC(common,stringToColoredText);
|
|
|
|
|
|
|
|
_string = "";
|
|
|
|
for "_a" from (_count + 1) to 12 do {
|
|
|
|
_string = _string + "|";
|
|
|
|
};
|
|
|
|
|
|
|
|
_text = composeText [
|
|
|
|
_text,
|
2015-04-10 15:48:21 +00:00
|
|
|
[_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)
|
2015-01-16 01:00:01 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
_picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture");
|
|
|
|
|
|
|
|
[_text, _picture] call EFUNC(common,displayTextPicture);
|