/*
	DayZ Fishing
	Usage: spawn player_goFishing;
	Made for DayZ Mod please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_itemOut","_position","_isOk","_counter","_rnd","_item","_itemtodrop","_vehicle","_inVehicle"];

if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_65") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

call gear_ui_init;

// find position 5m in front of player
_position = player modeltoworld [0,5,0];
if(!(surfaceIsWater _position)) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_66") , "PLAIN DOWN"]; };

if((currentWeapon player) != "MeleeFishingPole") exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_67"), "PLAIN DOWN"]; };

if(dayz_isSwimming) exitWith {DZE_ActionInProgress = false; cutText [localize "str_player_26", "PLAIN DOWN"]; };
if(player getVariable["combattimeout", 0] >= time) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_68"), "PLAIN DOWN"];};

_isOk = true;
_counter = 0;

// swing fishingpole
player playActionNow "GestureSwing";
// Alert zeds
[player,10,true,(getPosATL player)] spawn player_alertZombies;

r_interrupt = false;

while {_isOk} do {

	if (r_interrupt or (player getVariable["combattimeout", 0] >= time)) then {
		_isOk = false;
		cutText [(localize "str_epoch_player_68"), "PLAIN DOWN"];
	} else {
		
		sleep 2;

		_rnd = 50;

		// check if player is in boat
		_vehicle = vehicle player;
		_inVehicle = (_vehicle != player);
		if(_inVehicle) then {
			if(_vehicle isKindOf "Ship") then {
				// higher chance to catch if water is deeper than 25m
				if(((getPosATL _vehicle) select 2) > 25) then {
					_rnd = 12;
				} else {
					_rnd = 25;
				};
			};
		};


		// chance to catch anything
		if((random _rnd) <= 1) then {
			// Just the one fish for now
			_itemOut = ["ItemTrout","ItemTrout","ItemTrout","ItemTrout","ItemTrout","ItemTrout","ItemTrout","ItemSeaBass","ItemSeaBass","ItemTuna"] call BIS_fnc_selectRandom;
			
			if(_inVehicle) then { 
				_item = _vehicle;
				_itemtodrop = _itemOut;
				_item addMagazineCargoGlobal [_itemtodrop,1];
			} else {
				player addMagazine _itemOut;
			};
			
			cutText [(localize "str_epoch_player_69"), "PLAIN DOWN"];
			_isOk = false;
		} else {
			cutText [(localize "str_epoch_player_70"), "PLAIN DOWN"];
			_counter = _counter + 1;
			if(_counter == 10) then {
				_isOk = false;
				sleep 2;
				cutText [(localize "str_epoch_player_71"), "PLAIN DOWN"];
			};
		};
	};
};
DZE_ActionInProgress = false;