C3Fire

Update P4-F8B2L3D1-3x15min To P4-F4B4L4D4-3x15min

From C3LearningLabs


Goal

In this example we will change the organization and units in an existing configuration.

Start Configuration - P4-F8B2L3D1 (P4-F8B2L3D1-3x15min)
P4 = 4 Players
F8 = 8 fire fighting units
B2 = 2 Fire Break units
L3 = 3 Logistics units
D1 = 1 Drone
Goal Configuration - P4-F4B4L4D4 (P4-F4B4L4D4-3x15min)
P4 = 4 Players
F4 = 4 fire fighting units
B4 = 4 Fire Break units
L4 = 4 Logistics units
D4 = 4 Drone
Changes
Players, change what units the players control.
Fire fighting units, remove 4 unit.
Fire break unit, add 2 unit.
Logistics units, add 1 unit.
Drone, add 3 unit.

Create new configuration files

Copy Folder
Copy the selected configuration folder that contain the good configuration.
Source : ...\C3LearningLabs\C3Fire\Client\SessionDef\Projects\P4-F8B2L3D1-3x15min
New Folder: ...\C3LearningLabs\C3Fire\Client\SessionDef\Projects\P4-F4B4L4D4-3x15min
Rename all files in folder
Rename all the files so it get the new good experiment name.
P4-F8B2L3D1-3x15min => P4-F4B4L4D4


Update file references in config files
The main configuration files contains references to all files that build up the total configuration.
Update these files.
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-1\P4-F4B4L4D4-C1.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-2\P4-F4B4L4D4-C2.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-3\P4-F4B4L4D4-C3.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Training-1\P4-F4B4L4D4-T1.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Training-2\P4-F4B4L4D4-T2.con
In this example replace, P4-F9L3R2Uav1-3x15min => P4-F8L2R2B1Uav1-3x15min
<Config
  Type = "ForestFire"
  ConfigIncludeFile_ComunicationUI = ""
  ConfigIncludeFile_ComunicationUIEvents = ""
  ConfigIncludeFile_MapObjectTypes = "../P4-F4B4L4D4-Global-ObjectsTypes.coni"
  ConfigIncludeFile_MapObjectsPos = "P4-F4B4L4D4-C1-MapObjectsPos.coni"
  ConfigIncludeFile_People = "../P4-F4B4L4D4-Global-People.coni"
  ConfigIncludeFile_PeoplePos = "P4-F4B4L4D4-C1-PeoplePos.coni"
  ConfigIncludeFile_Roles = "../P4-F4B4L4D4-Global-Roles.coni"
  ConfigIncludeFile_RolesScrollPos = "P4-F4B4L4D4-C1-RolesScrollPos.coni"
  ConfigIncludeFile_StationActivityControlsUI = ""
  ConfigIncludeFile_Stations = ""
  ConfigIncludeFile_UAVsPos = "P4-F4B4L4D4-C1-UAVsPos.coni"
  ConfigIncludeFile_UnitInfoUI = "../P4-F4B4L4D4-Global-UnitsInfoUI.coni"
  ConfigIncludeFile_Units = "../P4-F4B4L4D4-Global-Units.coni"
  ConfigIncludeFile_UnitsPos = "P4-F4B4L4D4-C1-UnitsPos.coni"
  ConfigIncludeFile_UserInterface = "../P4-F4B4L4D4-Global-UIMain.coni"
  ConfigIncludeFile_UserInterfaceGlobal = "../P4-F4B4L4D4-Global-UIGlobal.coni"
  ConfigIncludeFile_VehicleActivityControlsUI = ""
  ConfigIncludeFile_Vehicles = ""
  Version = "4.0.1" >


Update session info.
This is important
The session information is information that describes the experiment sessions.
The information will be stored in the logfiles, and can be used in the analyses process.
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-1\P4-F4B4L4D4-C1.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-2\P4-F4B4L4D4-C2.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-3\P4-F4B4L4D4-C3.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Training-1\P4-F4B4L4D4-T1.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Training-2\P4-F4B4L4D4-T2.con
Example
  <SessionInfo
    ConditionName = "C1"
    ConditionNumber = "1"
    ExperimentGroup = ""
    ExperimentName = "P4-F4B4L4D4-3x15min"
    ServerName = ""
    ServerNumber = "0"
    SessionConfigFileName = "P4-F4B4L4D4-C3.con"
    SessionName = ""
    SessionNumber = ""
    SessionPicDirectory = ""
    SessionScenarioFileName = "P4-F4B4L4D4-C3.sce"
    SessionType = "" />



Set the default configuration

To make it easier to develop a new session configuration set the default configuration file in the Client configuration. Then you don't need to manually browse the configuration file every time you start a session.

See Set default configuration

Edit File
...\C3LearningLabs\C3Fire\Client\Files\ROOT\C3FireClientConfig.xml

Set the folder for the new configuration and the config and scenario file name.

...
 <DefaultFiles
  SessionConfigDirectory  = "SessionDef/Projects/P4-F4B4L4D4-3x15min/Condition-1"
  SessionLogDirectory     = "../../../Server/SessionLogs"
  ScenarioDirectory       = "SessionDef/Projects/P4-F4B4L4D4-3x15min/Condition-1"
  MapImageDirectory       = "SessionDef/Projects/P4-F4B4L4D4-3x15min/Condition-1"
  SequenceConfigDirectory = ""
  SessionConfigFile       = "P4-F4B4L4D4-3x15min-C1-F80.con"
  ScenarioFile            = "P4-F4B4L4D4-3x15min-C1.sce"
  MapImageFile            = ""
  SequenceConfigFile      = "" />
...

Units

Update the Units
Edit file: ...\C3LearningLabs\C3Fire\Client\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\P4-F8L2R2B1Uav1-3x15min-Global-Units.coni
Updated so it is:
P4 = 4 Players
F4 = 4 fire fighting units
B4 = 4 Fire Break units
L4 = 4 Logistics units
D4 = 4 Drone
Did the following steps.
  1. Remove fire fighting unit 5 to 8
  2. Renumber and add 2 fire break unit 9, copy existing fire break unit.
  3. Renumber and add 1 logistics unit 9, copy existing logistics unit.
  4. Renumber and add 3 drone, copy existing drone
Renumber units
For every unit update, IDName, LongName, ControlDisplay, ImageGoTo, ImageGoToSelected, ImagePos, ImagePosSelected
Remember to update the unit number in the image file names.
<Units>
...
    <Unit
      IDName = "D14"
      ...
      ControlDisplay = "..."
      ...
      ImageGoTo = "Unit\Number\White\14-White.gif"
      ImageGoToSelected = "Unit\Number\White\14-White-Selected.gif"
      ImagePos = "Unit\Number\Gray\14-Gray.gif"
      ImagePosSelected = "Unit\Number\Gray\14-Gray-Selected.gif"
      ...
      LongName = "Unmanned Aircraft Vehicle 14"
...
Set to what role the units will send info to
In same configuration file, for every unit update who this unit should send information to.
<Units>
...
    <Unit
      IDName = "F1"
      ...
      SendInfoTo = "A"

    <Unit
      IDName = "F2"
      ...
      SendInfoTo = "A"

    <Unit
      IDName = "F3"
      ...
      SendInfoTo = "A"

    <Unit
      IDName = "F4"
      ...
      SendInfoTo = "A"

    <Unit
      IDName = "B5"
      ...
      SendInfoTo = "B"

    <Unit
      IDName = "B6"
      ...
      SendInfoTo = "B"

    <Unit
      IDName = "B7"
      ...
      SendInfoTo = "B"

    <Unit
      IDName = "B8"
      ...
      SendInfoTo = "B"

    <Unit
      IDName = "L9"
      ...
      SendInfoTo = "C"

    <Unit
      IDName = "L10"
      ...
      SendInfoTo = "C"

    <Unit
      IDName = "L11"
      ...
      SendInfoTo = "C"

    <Unit
      IDName = "L12"
      ...
      SendInfoTo = "C"

    <Unit
      IDName = "D13"
      ...
      SendInfoTo = "D"

    <Unit
      IDName = "D14"
      ...
      SendInfoTo = "D"

    <Unit
      IDName = "D15"
      ...
      SendInfoTo = "D"

    <Unit
      IDName = "D16"
      ...
      SendInfoTo = "D"
...

UAVs

Update what role are controlling the UAV. It is defined in the <UAVs>...<UAVs> element, in the main configuration files.
Edit main config files
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-1\P4-F4B4L4D4-C1.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-2\P4-F4B4L4D4-C2.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Condition-3\P4-F4B4L4D4-C3.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Training-1\P4-F4B4L4D4-T1.con
...\SessionDef\Projects\P4-F4B4L4D4-3x15min\Training-2\P4-F4B4L4D4-T2.con
Add 3 new drones, copy the existing drone
  1. Set IDName
  2. Set controller - ControllerActive = "D"


<UAVs>
    <UAV
      IDName = "D13"
      ...
      ControllerActive = "D"

    <UAV
      IDName = "D14"
      ...
      ControllerActive = "D"

    <UAV
      IDName = "D15"
      ...
      ControllerActive = "D"

    <UAV
      IDName = "D16"
      ...
      ControllerActive = "D"

Organisation

Update to roles (Players), set what unit they are controlling and who can send mail to who.
Remember you can use mail groups, see Mail Config
Edit file: ...\C3LearningLabs\C3Fire\Client\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\P4-F8L2R2B1Uav1-3x15min-Global-Roles.coni
  1. Set id name - IDName = "..."
  2. Set the units the role control, For all roles - ControlUnits = "..."
  3. Set name - LongName = "..."
  4. Set mail - MailSendTo = "..."


<Roles>
    <Role
      IDName = "A"
      ControlUnits = "F1,F2,F3,F4"
      LongName = "Ground Chief A"
      MailSendTo = "B,C,D"/>

    <Role
      IDName = "B"
      ControlUnits = "B5,B6,B7,B8"
      LongName = "Ground Chief B"
      MailSendTo = "A,C,D" />

    <Role
      IDName = "C"
      ControlUnits = "L9,L10,L11,L12"
      LongName = "Ground Chief C"
      MailSendTo = "A,B,D" />

    <Role
      IDName = "D"
      ControlUnits = "D13,D14,D15,D16"
      LongName = "Ground Chief D"
      MailSendTo = "A,B,C" />

Map

Roles Map Scroll Positions

Update all roles map scroll positions.
Usually you don't need to update this, but if you are using larger maps you need to do it.

Edit file:

  • .../Condition-1/P4-F4B4L4D4-C1-RolesScrollPos.coni
  • .../Condition-2/P4-F4B4L4D4-C2-RolesScrollPos.coni
  • .../Condition-3/P4-F4B4L4D4-C3-RolesScrollPos.coni
  • .../Training-1P/4-F4B4L4D4-T1-RolesScrollPos.coni
  • .../Training-2/P4-F4B4L4D4-T2-RolesScrollPos.coni


  <RolesScrollPos>

    <Role
      IDName = "A"
      MapStartCenterScrollPos = "20,20" />

    <Role
      IDName = "B"
      MapStartCenterScrollPos = "20,20" />

    <Role
      IDName = "C"
      MapStartCenterScrollPos = "20,20" />

    <Role
      IDName = "D"
      MapStartCenterScrollPos = "20,20" />

Units Map Positions

Update all Units map positions.

Edit file:

  • .../Condition-1/P4-F4B4L4D4-C1-UnitsPos.coni
  • .../Condition-2/P4-F4B4L4D4-C2-UnitsPos.coni
  • .../Condition-3/P4-F4B4L4D4-C3-UnitsPos.coni
  • .../Training-1/P4-F4B4L4D4-T1-UnitsPos.coni
  • .../Training-2/P4-F4B4L4D4-T2-UnitsPos.coni
  1. Update F9 to B9
  2. Update L12 to R12
  3. Delete R14
  4. Update D15 to D14

Example

    <Unit
      IDName = "B9"
      Pos = "23,22" />

    <Unit
      IDName = "D14"
      Pos = "20,21" />

UAVs Map Positions

Update all UAVs map positions.

Edit file:

  • .../Condition-1/P4-F4B4L4D4-C1-UAVsPos.coni
  • .../Condition-2/P4-F4B4L4D4-C2-UAVsPos.coni
  • .../Condition-3/P4-F4B4L4D4-C3-UAVsPos.coni
  • .../Training-1/P4-F4B4L4D4-T1-UAVsPos.coni
  • .../Training-2/P4-F4B4L4D4-T2-UAVsPos.coni