#include "..\script_component.hpp" /* * Author: mharis001, Glowbal, PabstMirror, drofseh * Cool a weapon with an item and consume the item being used to cool it. * * Arguments: * 0: Target * 1: Player * 2: Item * * Return Value: * None * * Example: * [ACE_player, ACE_player, "ACE_WaterBottle"] call ace_overheating_fnc_coolWeaponWithItem * * Public: No */ params ["_target", "_unit", "_item"]; private _config = configFile >> "CfgWeapons" >> _item; // Get values private _weapon = currentWeapon _target; private _tempVarName = format [QGVAR(%1_temp), _weapon]; private _temperature = _target getVariable [_tempVarName, 0]; private _replacementItem = getText (_config >> QEXGVAR(field_rations,replacementItem)); private _liquidAmount = getNumber (_config >> QEXGVAR(field_rations,thirstQuenched)); private _consumeText = format [LLSTRING(CoolingWeaponWithItem), getText (configFile >> "CfgWeapons" >> _weapon >> "displayName"), getText (_config >> "displayName")]; /* // to be added when licence compatible audio can be found or recorded private _pouringSound = QPATHTO_R(sounds\sizzling_short.ogg); if (_temperature < 100) then { if (_liquidAmount > 5) then { _pouringSound = QPATHTO_R(sounds\pouring_long.ogg); } else { _pouringSound = QPATHTO_R(sounds\pouring_short.ogg); }; } else { if (_liquidAmount > 5) then { _pouringSound = QPATHTO_R(sounds\sizzling_long.ogg); }; }; playSound3D [_pouringSound, _target, false, AGLToASL (_target modelToWorld (_target selectionPosition "RightHand")), 5, 1, 10]; */ private _fnc_onSuccess = { params ["_args"]; _args params ["_target", "_unit", "_item", "_weapon", "_tempVarName", "_temperature", "_replacementItem", "_liquidAmount"]; TRACE_1("Cool weapon with item successful",_args); // remove the item _unit removeItem _item; // Add replacement item if needed if (_replacementItem != "") then { [_unit, _replacementItem] call EFUNC(common,addToInventory); }; // cool the weapon private _weaponData = [_weapon] call FUNC(getWeaponData); _temperature = [_temperature, _weaponData select 7, _liquidAmount * 10, _weaponData select 6] call FUNC(calculateCooling); [_target, _tempVarName, _temperature, TEMP_TOLERANCE] call EFUNC(common,setApproximateVariablePublic); }; /* private _fnc_onFailure = { params ["_args","_elapsedTime"]; _args params ["_target", "_unit"]; }; */ private _fnc_condition = { params ["_args"]; _args params ["", "_unit", "_item"]; _item in (_unit call EFUNC(common,uniqueItems)) }; [ _liquidAmount, [ _target, _unit, _item, _weapon, _tempVarName, _temperature, _replacementItem, _liquidAmount ], _fnc_onSuccess, {}, //_fnc_onFailure, _consumeText, _fnc_condition ] call EFUNC(common,progressBar);