#include "..\script_component.hpp"

/*
 * Function: forge_client_player_fnc_firstLogin
 * Author: J.Schmidt
 * Edit: 07.23.2024
 * Copyright © 2024 J.Schmidt, All rights reserved
 *
 * Do not edit without permission!
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivative 4.0 International License.
 * To view a copy of this license, vist https://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to Creative Commons,
 * PO Box 1866, Mountain View, CA 94042
 *
 * [Description]
 * Setup new player.
 *
 * Arguments:
 * N/A
 *
 * Return Value:
 * N/A
 *
 * Examples:
 * [player] spawn forge_client_player_fnc_firstLogin;
 *
 * Public: Yes
 */

private _player = _this select 0;
private _uid = getPlayerUID _player;

private _defaultPhoneNumber = "unknown";
private _defaultEmail = "unknown@spearnet.mil";
private _defaultPaygrade = "E1";

_player setUnitLoadout [[],[],["hgun_P07_F","","","",["16Rnd_9x21_Mag",17],[],""],["U_BG_Guerrilla_6_1",[["FORGE_Phone",1]]],["V_Rangemaster_belt",[["16Rnd_9x21_Mag",5,17]]],[],"","",[],["","","","","",""]];
_player action ["SwitchWeapon", _player, _player, -1];
_player addRating 500;

// player setVariable ["FORGE_Bank", 2000, true];
// player setVariable ["FORGE_Holster_Weapon", true, true];
// player setVariable ["PayGrade", _defaultPaygrade, true];
SETPVAR(_player,FORGE_Bank,2000);
SETPVAR(_player,FORGE_Holster_Weapon,true);
SETPVAR(_player,PayGrade,_defaultPaygrade);

private _number = "0160" + (_uid select [count (toArray _uid) - 6, 6]);
private _email = _number + "@spearnet.mil";

// player setVariable ["FORGE_Phone_Number", _number, true];
// player setVariable ["FORGE_Email", _email, true];
SETPVAR(_player,FORGE_Phone_Number,_number);
SETPVAR(_player,FORGE_Email,_email);

private _name = name _player;
// private _phoneNumber = player getVariable ["FORGE_Phone_Number", _defaultPhoneNumber];
// private _phoneEmail = player getVariable ["FORGE_Email", _defaultEmail];
private _phoneNumber = GETVAR(_player,FORGE_Phone_Number,_defaultPhoneNumber);
private _phoneEmail = GETVAR(_player,FORGE_Email,_defaultEmail);

EGVAR(phone,addressbook) pushBackUnique [_name, _phoneNumber, _phoneEmail];
// profileNamespace setVariable ["FORGE_AddressBook", EGVAR(phone,addressbook)];
SETVAR(profileNamespace,FORGE_AddressBook,EGVAR(phone,addressbook));

private _messages = [
	"Welcome to your first day on the job. You have been issued a Pistol, 6 x 9mm Ammo, a Pistol Belt, and a small amount of RP and credit from OPSG. These are the only free things you will get for this identity, so save them, and use them wisely. You are responsible for all purchases going forward.",
	"Cash in your RP at any laptop by Access the Bank, Sign In, and then Submit Time. Do this before leaving the game session!"
];

private _welcomeEmail = format ["Welcome to your first day on the job. You have been issued a phone with a new number of %1 and an email address of %2", _number, _email];

["Field Cmdr", _welcomeEmail] spawn EFUNC(phone,newEmail);
// ["listadd", _phoneEmail, "", -1, ["Field Cmdr <fieldCmdr@spearnet.mil>", "Job Orientation", _welcomeEmail], "forge_server_phone_fnc_addEmail", false] spawn dragonfly_db_fnc_addTask;
// ["listadd", _phoneEmail, "", -1, ["Field Cmdr <fieldCmdr@spearnet.mil>", "Job Orientation", _welcomeEmail], "forge_server_phone_fnc_addEmail", false, netId _player] remoteExec ["dragonfly_db_fnc_addTask", 2, false];
[_phoneEmail, ["Field Cmdr <fieldCmdr@spearnet.mil>", "Job Orientation", _welcomeEmail]] remoteExec ["forge_server_phone_fnc_addEmail", 2, false];

uiSleep 1;

{
	["Field Cmdr", _x] spawn EFUNC(phone,newMsg);
	// ["listadd", _phoneNumber, "", -1, ["Field Cmdr", _x], "", false] spawn dragonfly_db_fnc_addTask;
	// ["listadd", _phoneNumber, "", -1, ["Field Cmdr", _x], "", false, netId _player] remoteExec ["dragonfly_db_fnc_addTask", 2, false];
	[_phoneNumber, ["Field Cmdr", _x]] remoteExec ["forge_server_phone_fnc_addMsg", 2, false];
} forEach _messages;

private _armory_unlocks = [["FORGE_Phone", "item"], ["FORGE_Tablet", "item"], ["ItemCompass", "item"], ["ItemGPS", "item"], ["ItemMap", "item"], ["ItemRadio", "item"], ["ItemWatch", "item"], ["U_BG_Guerrilla_6_1", "item"], ["V_Rangemaster_belt", "item"], ["hgun_P07_F", "weapon"], ["16Rnd_9x21_Mag", "magazine"]];
private _garage_unlocks = [["B_Quadbike_01_F", "car"]];

{
	private _classname = _x select 0;
	private _typeOf = _x select 1;
	[_classname, _typeOf] call EFUNC(arsenal,addArmoryItem);
	uiSleep 0.2;
} forEach _armory_unlocks;

uiSleep 1;

{
	private _classname = _x select 0;
	private _typeOf = _x select 1;
	[_classname, _typeOf] call EFUNC(arsenal,addGarageVehicle);
	uiSleep 0.2;
} forEach _garage_unlocks;

uiSleep 1;
["armory"] call EFUNC(arsenal,saveUnlocks);

uiSleep 1;
["garage"] call EFUNC(arsenal,saveUnlocks);

uiSleep 1;
[] call EFUNC(init,playerDBSave);
// player setVariable ["value_loadDone", true, true];
SETPVAR(_player,value_loadDone,true);

uiSleep 1;
// ["listrng", _phoneEmail, "", -1, [], "forge_client_phone_fnc_addEmail", true, netId _player] spawn dragonfly_db_fnc_addTask;
["listrng", _phoneEmail, "", -1, [], "forge_client_phone_fnc_addEmail", true, netId _player] remoteExec ["dragonfly_db_fnc_addTask", 2, false];

uiSleep 1;
// ["listrng", _phoneNumber, "", -1, [], "forge_client_phone_fnc_addMsg", true, netId _player] spawn dragonfly_db_fnc_addTask;
["listrng", _phoneNumber, "", -1, [], "forge_client_phone_fnc_addMsg", true, netId _player] remoteExec ["dragonfly_db_fnc_addTask", 2, false];