It is working now, and NOW SWITCHING SLOTS of PLAYERS ALSO WORKS IN
TASKING!!!
Jippie!!!
The next thing is to debug the DETECTION_DISPATCHER...
And make STATEMACHINE_TEMPLATE now as a parameter to create new
STATEMACHINEs, instead of that ugly table construction.
The, I need to modify the New: Methods of each STATEMACHINE_PROCESS to
be initialized with a TEMPLATE... Maybe I can commit already and just
implement this later ...
Reworked the hierarchical state machine processing in terms of sub
processing.
Now, the declaration and usage of subs is completely understandable and
easy to implement.
I am excited to see how end-users will see the possibilities.
ProcessStop is called for each process that is destructed... Actually, I
need to implement destructors upon a garbage collection event. Found the
method to do that, but need to implement it ... Next time ...
Gents, please have a look at this development:
2016-08-21
- Made a new STATEMACHINE_CONTROLLABLE object, which models a base state
machine class to be inherited by AI controllable classes.
-- Created the class as such that intherited AI classes become "finite
state machines".
-- Each STATEMACHINE_CONTROLLABLE class contains a Controllable object,
which is one Unit, Client or Group object.
-- Added state transition functions that are called before and after the
state transition.
-- Event functions are automatically added to the class, based on the
FSMT.
-- Added immediate and delayed event processing as part of the
STATEMACHINE_CONTROLLABLE class.
--- Events that start with __Event are processed with a delay. The delay
is given in seconds as a parameter.
- Created a new AI_PATROLZONE class, which inherites
STATEMACHINE_CONTROLLABLE.
-- This class implements a complete new revamped patrol zone AI pattern.
-- Created a new test directory: Moose_Test_AI_PATROLZONE with test
missions.
2016-08-15
- Removed the old classes and moved into an "Old" folder in the
Moose/Development folder.
-- Cleaned Moose.lua + Documented class types
-- Cleaned Create_Moose.bat + Documented class types
- Extend the ZONE_BASE class with a probability randomization factor,
that can be used for zone randomization purposes.
- Documented the Zone module classes.
- Changed and removed the POINT_VEC3 SmokeColor and FlareColor
structure. Replaced with SMOKECOLOR and FLARECOLOR types.
-- Replaced also code in test missions with SMOKECOLOR and FLARECOLOR
references.
- Added change logs of API changes in MOOSE documentation.
- Added ZONE_BASE:GetName() method.
- Added ZONE_BASE:GetZoneProbability() method.
- Added ZONE_BASE:SetZoneProbability() method.
- Added ZONE_BASE:GetZoneMaybe() method.
- Added SPAWN:InitRandomizeZones() method.
- Renamed SPAWN:CleanUp() method to SPAWN:InitCleanUp() method.
- Reviewed documentation of the PatrolZone module and PATROLZONE class.
2016-08-14
- Changed Spawn APIs to express Group position and Unit position
randomization.
- Changed the API protocol of SpawnInZone() method.
-- Removed OuterRadius and InnerRadius parameters !!!
- Changed the API protocol of SpawnFromUnit() method.
-- Removed OuterRadius and InnerRadius parameters !!!
- Added InitRandomizeUnits() method, taking 3 parameters:
-- RandomizeUnits given the value true, will randomize the units upon
spawning, false (default) will not randomize the untis.
-- OuterRadius is the outer radius of the band where the units will be
spawned, if RandomizeUnits is true.
-- InnerRadius is the inner radius of the band where the units will not
be spawned, if RandomizeUnits is true.
- Removed SpawnFunction() method.
- Added OnSpawnGroup() method as the new official CallBack function
method to catch when a new function will be called.
-- Documented OnSpawnGroup() method.
- Renamed Limit() method to InitLimit() method.
- Renamed Array() method to InitArray() method.
- Renamed RandomizeRoute() method to InitRandomizeRoute() method.
- Renamed RandomizeTemplate() method to InitRandomizeTemplate() method.
- Renamed UnControlled() method to InitUnControlled method.
- Reviewed all test missions for the changes executed and made adaptions
where necessary + re-tests.
2016-08-12
- Temporary release of the new cargo handling.
-- Released available functionality to handle one CARGO_UNIT loading,
boarding, unloading.
-- Created CARGO_UNIT test missions.
- Added Translate() method in POINT_VEC3, translating a 3D point over
the horizontal plane with a Distance and Angle coordinate.
- Added SPAWN:InitRandomizeZones() method.
- Renamed SPAWN:CleanUp() method to SPAWN:InitCleanUp() method.
- Reviewed documentation of the PatrolZone module and PATROLZONE class.
- Reviewed all test missions
- Removed the old classes and moved into an "Old" folder in the
Moose/Development folder.
-- Cleaned Moose.lua + Documented class types
-- Cleaned Create_Moose.bat + Documented class types
- Extend the ZONE_BASE class with a probability randomization factor,
that can be used for zone randomization purposes.
- Documented the Zone module classes.
- Changed and removed the POINT_VEC3 SmokeColor and FlareColor
structure. Replaced with SMOKECOLOR and FLARECOLOR types.
-- Replaced also code in test missions with SMOKECOLOR and FLARECOLOR
references.
- Renamed UnControlled() method to InitUnControlled method.
2016-08-14
- Changed Spawn APIs to express Group position and Unit position
randomization.
- Changed the API protocol of SpawnInZone() method.
-- Removed OuterRadius and InnerRadius parameters !!!
- Changed the API protocol of SpawnFromUnit() method.
-- Removed OuterRadius and InnerRadius parameters !!!
- Added InitRandomizeUnits() method, taking 3 parameters:
-- RandomizeUnits given the value true, will randomize the units upon
spawning, false (default) will not randomize the untis.
-- OuterRadius is the outer radius of the band where the units will be
spawned, if RandomizeUnits is true.
-- InnerRadius is the inner radius of the band where the units will not
be spawned, if RandomizeUnits is true.
- Removed SpawnFunction() method.
- Added OnSpawnGroup() method as the new official CallBack function
method to catch when a new function will be called.
-- Documented OnSpawnGroup() method.
- Renamed Limit() method to InitLimit() method.
- Renamed Array() method to InitArray() method.
- Renamed RandomizeRoute() method to InitRandomizeRoute() method.
- Renamed RandomizeTemplate() method to InitRandomizeTemplate() method.
- Reviewed all test missions for the changes executed and made adaptions
where necessary + re-tests.
-- Added documentation for methods GetFirstAliveGroup,
GetNextAliveGroup, GetLastAliveGroup.
-- Added code snippets to the documentation for the methods
GetFirstAliveGroup, GetNextAliveGroup, GetLastAliveGroup.
Now the detected sets are kept consistent to previous sets. New
algorithm developed. This is important to keep assigned tasks consistent
with the detected sets.