#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi, commy2 * Check if a unit is any engineer class. * * Arguments: * 0: Unit * 1: Class (default: 1) * * Return Value: * Is Engineer Class * * Example: * [unit, 1] call ace_repair_fnc_isEngineer * * Public: Yes */ params ["_unit", ["_engineerN", 1]]; private _class = _unit getVariable ["ACE_IsEngineer", _unit getUnitTrait "engineer"]; // This if statement is here for copmatability with the common variant of isEngineer, which requires a bool. // We cannot move this function to common because we require the GVAR(engineerSetting_Repair), which only makes sense to include in the repair module. if (_class isEqualType false) then {_class = [0, 1] select _class}; TRACE_3("isEngineer",_unit,_engineerN,_class); if (_class >= _engineerN) exitWith {true}; if (!GVAR(locationsBoostTraining)) exitWith {false}; if ([_unit] call FUNC(isInRepairFacility) || {[_unit] call FUNC(isNearRepairVehicle)}) then { _class = _class + 1; // Boost engineer training by one: untrained becomes engineer, engineer becomes advanced engineer }; _class >= _engineerN