Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 3IFB #212

Closed
costno opened this issue Feb 1, 2019 · 12 comments
Closed

Add 3IFB #212

costno opened this issue Feb 1, 2019 · 12 comments

Comments

@costno
Copy link
Collaborator

costno commented Feb 1, 2019

The Brigade has not been fully established in A3 apart from like 2 Fer missions. I'll do the dress up, but I'll need the feedback

@shadow-fa shadow-fa added this to the 3.5.3 milestone Feb 1, 2019
@SamLex SamLex added T:Idea Component:SQM Component:Template/ORBAT S0:Needs Discussion Ideas, Proposals and other issues that need to be discussed. labels Feb 2, 2019
@SamLex
Copy link
Member

SamLex commented Feb 2, 2019

Three possible solutions to "what faction should they be" problem:

  • A 'skin' assignGear file (like fiaAK) that is applied to one of the INDFOR factions.
    • Units need to be of that faction and players get that faction's briefing.
    • Can't have 3IFB in template mission without overriding one of the other INDFOR factions
  • Pass a custom string to the assignGear calls of all the 3IFB units
    • Units can be of any faction but players will see that faction's briefing
    • Can have 3IFB in template mission without issue
  • Assign a variable (f_var_faction) to all 3IFB units with value "3IFB". Replace all calls to faction with a common function (f_fnc_faction). This function returns the value of the variable if it's set and the output of faction otherwise.
    • 3IFB becomes a top-level faction, with it's own gear files and briefing
    • Complexity and potential for calling the wrong faction code

Personally, I think we should go for option two with the following setup:

  • Units are from the INDFOR FIA (ind_g_f) faction
  • Pass "3ifb" to the init assignGear calls
  • Player's get FIA briefing
    While not perfect (different assignGear and briefing faction name), I think this strikes the best balance between usability and complexity.

@Aqarius90
Copy link
Collaborator

I like option 3 on a conceptual level (and it's probably the "proper" way to do it). It would allow for easy potential addition of custom top level factions in the future.

But honestly I'd be fine with entirely replacing the indy fia with 3IFB.

@shadow-fa shadow-fa pinned this issue Feb 4, 2019
@shadow-fa
Copy link
Collaborator

From #213:

Regarding AT, I don't think I even touched FIA AK, but they're kind of a frustrating side distraction that I'm tempted to suggest we just delete entirely to make room for the upcoming 3IFB who will have similar guns but sexier clothes

@shadow-fa shadow-fa unpinned this issue Feb 7, 2019
@costno
Copy link
Collaborator Author

costno commented Feb 24, 2019

Option 2 sounds good to me

@SamLex
Copy link
Member

SamLex commented Mar 16, 2019

Open discussion point is whether to add 3IFB to the template preplaced (mission.sqm). They would probably be INDFOR FIA units using the "3ifb" assignGear faction, and so recieve the FIA briefing.

Note that BLUFOR FIA would remain.

@shadow-fa
Copy link
Collaborator

It's probably easiest for missionmakers to include the corresponding gear file for any of the other existing factions (that are present in the template) just like it was done for the fiaAK:

//#include "f_assignGear_fiaAK.sqf" // Alternative FIA loadouts using AKs and RPG-7s

@SamLex
Copy link
Member

SamLex commented Mar 16, 2019

That was option 1 above; we decided to go for option 2. So I think that 3IFB should exist preplaced in the template.

@SamLex SamLex removed the S0:Needs Discussion Ideas, Proposals and other issues that need to be discussed. label Mar 18, 2019
@SamLex
Copy link
Member

SamLex commented Mar 18, 2019

  • 3IFB will be added to the template as INDFOR. They will be based on the FIA elements and use the INDFOR FIA BIS classes. They should also be given appropriate group data.

@SamLex SamLex changed the title [assignGear] 3IFB Gear Add 3IFB Mar 18, 2019
@shadow-fa
Copy link
Collaborator

When implementing this change (adding to template), we must take care to use proper slotting descriptions, group names, unit names, and also add them to fn_groupData.sqf.

@SamLex
Copy link
Member

SamLex commented Apr 23, 2019

Finally got enough time to look at this. Group markers complicate this even further as they are based on faction and so there isn't a place to 'slot' 3IFB into. Thus I have decided to go with Option 3 (see above) and have created #234 to lay the foundation for this.

@SamLex
Copy link
Member

SamLex commented May 2, 2019

For future reference, some of the 3DEN snippets I used to do this. Copied FIA, ran these snippets on copies, did a little bit of manual editing of the SQM (can't change group side with 3DEN).

L_fnc_replaceAll = {
    params ["_string", "_replace", "_replacement"];
    private _index = _string find _replace;
    if (_index == -1) exitWith {_string};
    private _start = "";
    if (_index != 0) then {
        _start = (toString ([(toArray _string), 0, _index-1] call BIS_fnc_subSelect));
    };
    _string = _start + _replacement + (toString ([(toArray _string), _index + (count _replace)] call BIS_fnc_subSelect));
    [_string, _replace, _replacement] call L_fnc_replaceAll;
}
(get3DENSelected "") apply {_x apply {private _name = (_x get3DENAttribute "Name") # 0; _name = [_name, "FIA", "3IFB"] call L_fnc_replaceAll; _name = [_name, "_1", ""] call L_fnc_replaceAll; _x set3DENAttribute ["Name", _name]}};

(get3DENSelected "group") apply {private _varName = (_x get3DENAttribute "Name") # 0; private _callsign = [_varName, "Grp", ""] call L_fnc_replaceAll; _callsign = [_callsign, "_", " "] call L_fnc_replaceAll; _callsign = _callsign + " -"; _x set3DENAttribute ["groupID", _callsign]};

(get3DENSelected "object") apply {private _role = (_x get3DENAttribute "description") # 0; _role = [_role, "FIA", "3IFB"] call L_fnc_replaceAll; _x set3DENAttribute ["description", _role]};

(get3DENSelected "object") apply {private _type = (_x get3DENAttribute "ItemClass") # 0; _type = [_type, "B_G_", "I_G_"] call L_fnc_replaceAll; [_x] set3DENObjectType _type};

(get3DENSelected "object") apply {private _init = (_x get3DENAttribute "Init") # 0; _init = [_init, ",""blu_g_f""", ""] call L_fnc_replaceAll; _init = "[_this,""3ifb""] call f_fnc_setVirtualFaction; " + _init; _x set3DENAttribute ["Init", _init]};

(get3DENSelected "logic") apply {private _init = (_x get3DENAttribute "Init") # 0; _init = [_init, "FIA", "3IFB"] call L_fnc_replaceAll; _x set3DENAttribute ["Init", _init]};

SamLex added a commit that referenced this issue May 3, 2019
* [#212][AssignGear] Added 3IFB insignia assignment

* [#212][AssignGear] Updated 3IFB comment to reflect virtual factions

* [#212][Briefing] Added 3IFB briefing file

* [#212][GroupMarkers] Added 3IFB group data

* [#212][Template] Added 3IFB

* [#212][Template] Remounted 3IFB techs and TH. Moved TH to bottom of slotting
@SamLex
Copy link
Member

SamLex commented May 19, 2019

Done in FA.3.5.3

@SamLex SamLex closed this as completed May 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants