mwpowellhtx / KP-Liberation

The work on GreuhZbugs Liberation Mission for Arma 3 continues...
GNU General Public License v3.0
8 stars 1 forks source link

[Missions] [0001] Review and establish missions such as the following #59

Closed mwpowellhtx closed 3 years ago

mwpowellhtx commented 3 years ago

Basic Information

Mission version: v0.98.dev-s9 Map used: Altis

Short Issue Description

Review the missions module for readiness. Look at transferring the missions over, including new ones we came up with.

Expected Behaviour

Create separate issues enumerating each one. Some of them are new-ish, or at least a better factoring from before, such as counter attack, also ambushed.

mwpowellhtx commented 3 years ago

Picking this one up next, part and partial because we think that this will at least partially if not entirely also inform how we setup cross cutting mission concerns, i.e. logistics ambush as a mission.

mwpowellhtx commented 3 years ago

Currently we think that these are "created" given a tuple of details... Parsing through each of these bits, how much of that is necessary, or could be refactored to namespace, etc...

[
    ["_missionName", "", [""]]
    , ["_condition", {false}, [{}]]
    , ["_eventMission", false, [false]]
    , ["_cost", [0,0,0,0], [[]], 4]
    , ["_minTime", 0, [0]]
    , ["_randomTime", 0, [0]]
    , ["_missionStart", "", [""]]
    , ["_missionAbort", "", [""]]
    , ["_picture", "KPGUI\res\kp512_CA.paa", [""]]
]

And then... We also think there should also be a mission state machine that potentially watches for running or on going missions, etc. As well as the usual mission change orders, etc.

mwpowellhtx commented 3 years ago

These are just a few leading considerations.

mwpowellhtx commented 3 years ago

In addition to the above, there should be the usual namespace support, verification therein, and conversions to and from tuple arrays, especially for serialization purposes, display in a missions manager, etc.

mwpowellhtx commented 3 years ago

Starting from the 0800_mission module that was sketched in, as indicated above. We will separate that out into several key modules:

Should be able to rinse and repeat the sort of approach we took concerning logistics and production with good effect here as well.

mwpowellhtx commented 3 years ago

The following are the set of mission variables that make the namespace what it is.

Note, all callbacks default to a singular "no-operation", does nothing, returns false placeholder. Highly suggested, of course, that individual missions bundle their own unique callbacks.

In addition, we may support an internal status as a periodic health and monitoring check:

KPLIB_mission_status_standby    =   0;
KPLIB_mission_status_template   =   1;
KPLIB_mission_status_running    =   2;
KPLIB_mission_status_started    =   4;
KPLIB_mission_status_engaged    =   8;
KPLIB_mission_status_aborting   =  16;
KPLIB_mission_status_success    =  32;
KPLIB_mission_status_failure    =  64;
KPLIB_mission_status_completed  = 128;
KPLIB_mission_status_gc         = 256;
KPLIB_mission_status_system     = 512;
mwpowellhtx commented 3 years ago

Should also consider mission-specific status reports, telemtry, etc.

mwpowellhtx commented 3 years ago

Wrapping up the initial phases. I expect this is not fully resolved, there are gaps concerning system template for example, but we know this. When there is opportunity to consider system templates, then we will cross such bridges. There are also suspected improvements concerning how, or when, to localize string table elements, but this is potentially much broader scope than just missions. There are probably a handful of cleanup efforts concerning no-op callbacks, return values, so on and so forth, but for now, we're marking this resolved, and will follow up specific issues later. We must also refer to this issue for purposes of planning specific mission efforts.