Initial baseline - KP Liberation v0.96.7a Ruha variant
This commit is contained in:
136
scripts/client/commander/open_production.sqf
Normal file
136
scripts/client/commander/open_production.sqf
Normal file
@@ -0,0 +1,136 @@
|
||||
private ["_dialog", "_color_positive", "_color_neutral", "_color_negative", "_color_actual", "_sectorType", "_storage", "_crateCount", "_crateMax", "_producing", "_storagespace", "_productiontime", "_saveChanges", "_listselect", "_listcolor", "_selectedSector", "_mapdisplay", "_supplyValue", "_ammoValue", "_fuelValue"];
|
||||
|
||||
_dialog = createDialog "liberation_production";
|
||||
saveSectorSetting = 0;
|
||||
new_production = 0;
|
||||
_color_positive = [0,0.9,0,1];
|
||||
_color_neutral = [1,1,1,1];
|
||||
_color_negative = [0.9,0,0,1];
|
||||
_color_actual = _color_neutral;
|
||||
_listselect = -1;
|
||||
_listcolor = [1,1,1,1];
|
||||
_selectedSector = [];
|
||||
|
||||
disableSerialization;
|
||||
|
||||
waitUntil {dialog};
|
||||
|
||||
_mapdisplay = ((findDisplay 75801) displayCtrl 758016);
|
||||
|
||||
lbClear 75802;
|
||||
{
|
||||
lbAdd [75802, (markerText (_x select 1))];
|
||||
} forEach KP_liberation_production;
|
||||
|
||||
ctrlMapAnimClear _mapdisplay;
|
||||
|
||||
while {dialog && (alive player)} do {
|
||||
if (lbCurSel 75802 == -1) then {
|
||||
lbSetCurSel [75802,0];
|
||||
};
|
||||
|
||||
if (saveSectorSetting == 1) then {
|
||||
saveSectorSetting = 0;
|
||||
[(_selectedSector select 1), new_production] remoteExec ["change_prod_remote_call",2];
|
||||
waitUntil {sleep 0.5; (!(_selectedSector isEqualTo (KP_liberation_production select _listselect)))};
|
||||
};
|
||||
|
||||
_listselect = -1;
|
||||
|
||||
{
|
||||
_listselect = _listselect + 1;
|
||||
|
||||
if ((count (_x select 3)) > 0) then {
|
||||
switch (_x select 7) do {
|
||||
case 1: {_listcolor = [0.75,0,0,1];};
|
||||
case 2: {_listcolor = [0.75,0.75,0,1];};
|
||||
case 3: {_listcolor = [1,1,1,1];};
|
||||
default {_listcolor = [0,0.75,0,1];};
|
||||
};
|
||||
} else {
|
||||
_listcolor = [0.6,0.6,0.6,0.8];
|
||||
};
|
||||
|
||||
lbSetColor [75802, _listselect, _listcolor];
|
||||
} forEach KP_liberation_production;
|
||||
|
||||
_listselect = (lbCurSel 75802);
|
||||
waitUntil {_listselect == (lbCurSel 75802)};
|
||||
_selectedSector = +(KP_liberation_production select _listselect);
|
||||
|
||||
ctrlSetText [75803,(_selectedSector select 0)];
|
||||
|
||||
if ((_selectedSector select 2) == 1) then {_sectorType = localize "STR_PRODUCTION_FACTORY";} else {_sectorType = localize "STR_PRODUCTION_CITY";};
|
||||
ctrlSetText [75804, _sectorType];
|
||||
|
||||
if ((count (_selectedSector select 3)) > 0) then {
|
||||
_storage = ((nearestObjects [((_selectedSector select 3) select 0), [KP_liberation_small_storage_building], 25]) select 0);
|
||||
_crateCount = count (attachedObjects _storage);
|
||||
_crateMax = count (KP_liberation_small_storage_positions);
|
||||
|
||||
if (_crateCount >= _crateMax) then {
|
||||
_color_actual = _color_negative;
|
||||
};
|
||||
|
||||
_storagespace = format ["%1 / %2",_crateCount,_crateMax];
|
||||
_productiontime = format [localize "STR_PRODUCTION_MINUTES",(_selectedSector select 8)];
|
||||
|
||||
switch (_selectedSector select 7) do {
|
||||
case 1: {_producing = localize "STR_AMMO";};
|
||||
case 2: {_producing = localize "STR_FUEL";};
|
||||
case 3: {_producing = localize "STR_PRODUCTION_NOTHING"; _productiontime = localize "STR_PRODUCTION_NOTIMER";};
|
||||
default {_producing = localize "STR_MANPOWER";};
|
||||
};
|
||||
|
||||
ctrlSetText [75805, _producing];
|
||||
if ((_selectedSector select 7) == 3) then {
|
||||
((findDisplay 75801) displayCtrl 75805) ctrlSetTextColor _color_negative;
|
||||
((findDisplay 75801) displayCtrl 75807) ctrlSetTextColor _color_negative;
|
||||
} else {
|
||||
((findDisplay 75801) displayCtrl 75805) ctrlSetTextColor _color_neutral;
|
||||
((findDisplay 75801) displayCtrl 75807) ctrlSetTextColor _color_neutral;
|
||||
};
|
||||
ctrlSetText [75806, _storagespace];
|
||||
((findDisplay 75801) displayCtrl 75806) ctrlSetTextColor _color_actual;
|
||||
ctrlSetText [75807, _productiontime];
|
||||
_color_actual = _color_neutral;
|
||||
} else {
|
||||
_producing = localize "STR_PRODUCTION_NOTHING";
|
||||
_storagespace = localize "STR_PRODUCTION_NOSTORAGE";
|
||||
_productiontime = localize "STR_PRODUCTION_NOTIMER";
|
||||
ctrlSetText [75805, _producing];
|
||||
((findDisplay 75801) displayCtrl 75805) ctrlSetTextColor _color_negative;
|
||||
ctrlSetText [75806, _storagespace];
|
||||
((findDisplay 75801) displayCtrl 75806) ctrlSetTextColor _color_negative;
|
||||
ctrlSetText [75807, _productiontime];
|
||||
((findDisplay 75801) displayCtrl 75807) ctrlSetTextColor _color_negative;
|
||||
};
|
||||
|
||||
if (_selectedSector select 4) then {_color_actual = _color_positive;} else {_color_actual = _color_negative;};
|
||||
((findDisplay 75801) displayCtrl 75808) ctrlSetTextColor _color_actual;
|
||||
if (_selectedSector select 5) then {_color_actual = _color_positive;} else {_color_actual = _color_negative;};
|
||||
((findDisplay 75801) displayCtrl 75809) ctrlSetTextColor _color_actual;
|
||||
if (_selectedSector select 6) then {_color_actual = _color_positive;} else {_color_actual = _color_negative;};
|
||||
((findDisplay 75801) displayCtrl 758010) ctrlSetTextColor _color_actual;
|
||||
_color_actual = _color_neutral;
|
||||
|
||||
_supplyValue = ceil ((_selectedSector select 9) / 100);
|
||||
_ammoValue = ceil ((_selectedSector select 10) / 100);
|
||||
_fuelValue = ceil ((_selectedSector select 11) / 100);
|
||||
|
||||
if (_supplyValue == 1) then {_supplyValue = format [localize "STR_PRODUCTION_CRATE", _supplyValue];} else {_supplyValue = format [localize "STR_PRODUCTION_CRATES", _supplyValue];};
|
||||
if (_ammoValue == 1) then {_ammoValue = format [localize "STR_PRODUCTION_CRATE", _ammoValue];} else {_ammoValue = format [localize "STR_PRODUCTION_CRATES", _ammoValue];};
|
||||
if (_fuelValue == 1) then {_fuelValue = format [localize "STR_PRODUCTION_CRATE", _fuelValue];} else {_fuelValue = format [localize "STR_PRODUCTION_CRATES", _fuelValue];};
|
||||
|
||||
ctrlSetText [758011, (str (_selectedSector select 9)) + " (" + _supplyValue + ")"];
|
||||
ctrlSetText [758012, (str (_selectedSector select 10)) + " (" + _ammoValue + ")"];
|
||||
ctrlSetText [758013, (str (_selectedSector select 11)) + " (" + _fuelValue + ")"];
|
||||
|
||||
"spawn_marker" setMarkerPosLocal (markerPos (_selectedSector select 1));
|
||||
_mapdisplay ctrlMapAnimAdd [0.5, 0.2,(markerPos (_selectedSector select 1))];
|
||||
ctrlMapAnimCommit _mapdisplay;
|
||||
|
||||
waitUntil {!dialog || !(alive player) || (lbCurSel 75802) != _listselect || saveSectorSetting != 0};
|
||||
};
|
||||
|
||||
"spawn_marker" setMarkerPosLocal markers_reset;
|
||||
Reference in New Issue
Block a user