C3Fire

Update P4-F9L3R2Uav1-3x15min To P4-F8L2R2B1Uav1-3x15min

From C3LearningLabs


Goal

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

Start Configuration - P4-F9L3R2Uav1-3x15min
P4 = 4 Players
F9 = 9 fire fighting units
L3 = 3 Logistics units
R2 = 2 Rescues service units
UAV1 = 1 Drone
Goal Configuration - P4-F8L2R2B1Uav1
P4 = 4 Players (Change what units the players control)
F9 = 8 fire fighting units (Remove 1 unit)
L3 = 2 Logistics units (Remove 1 unit)
R2 = 2 Rescues service units
B1 = 1 Fire break unit (Create 1 new unit)
UAV1 = 1 Drone
Changes
Players, change what units the players control.
Fire fighting units, remove 1 unit.
Logistics units, remove 1 unit.
Fire break unit, create 1 new unit.

Create new configuration files

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


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-F8L2R2B1Uav1-3x15min\Condition-1\P4-F8L2R2B1Uav1-3x15min-C1.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-2\P4-F8L2R2B1Uav1-3x15min-C2.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-3\P4-F8L2R2B1Uav1-3x15min-C3.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Training-1\P4-F8L2R2B1Uav1-3x15min-T1.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Training-2\P4-F8L2R2B1Uav1-3x15min-T2.con
In this example replace, P4-F9L3R2Uav1-3x15min => P4-F8L2R2B1Uav1-3x15min
<Config
  Type = "ForestFire"
  ConfigIncludeFile_ComunicationUI = ""
  ConfigIncludeFile_ComunicationUIEvents = ""
  ConfigIncludeFile_MapObjectTypes = "../P4-F8L2R2B1Uav1-3x15min-Global-ObjectsTypes.coni"
  ConfigIncludeFile_MapObjectsPos = "P4-F8L2R2B1Uav1-3x15min-C1-MapObjectsPos.coni"
  ConfigIncludeFile_People = "../P4-F8L2R2B1Uav1-3x15min-Global-People.coni"
  ConfigIncludeFile_PeoplePos = "P4-F8L2R2B1Uav1-3x15min-C1-PeoplePos.coni"
  ConfigIncludeFile_Roles = "../P4-F8L2R2B1Uav1-3x15min-Global-Roles.coni"
  ConfigIncludeFile_RolesScrollPos = "P4-F8L2R2B1Uav1-3x15min-C1-RolesScrollPos.coni"
  ConfigIncludeFile_StationActivityControlsUI = ""
  ConfigIncludeFile_Stations = ""
  ConfigIncludeFile_UAVsPos = "P4-F8L2R2B1Uav1-3x15min-C1-UAVsPos.coni"
  ConfigIncludeFile_UnitInfoUI = "../P4-F8L2R2B1Uav1-3x15min-Global-UnitsInfoUI.coni"
  ConfigIncludeFile_Units = "../P4-F8L2R2B1Uav1-3x15min-Global-Units.coni"
  ConfigIncludeFile_UnitsPos = "P4-F8L2R2B1Uav1-3x15min-C1-UnitsPos.coni"
  ConfigIncludeFile_UserInterface = "../P4-F8L2R2B1Uav1-3x15min-Global-UIMain.coni"
  ConfigIncludeFile_UserInterfaceGlobal = "../P4-F8L2R2B1Uav1-3x15min-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-F8L2R2B1Uav1-3x15min\Condition-1\P4-F8L2R2B1Uav1-3x15min-C1.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-2\P4-F8L2R2B1Uav1-3x15min-C2.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-3\P4-F8L2R2B1Uav1-3x15min-C3.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Training-1\P4-F8L2R2B1Uav1-3x15min-T1.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Training-2\P4-F8L2R2B1Uav1-3x15min-T2.con
Example
  <SessionInfo
    ConditionName = "C1"
    ConditionNumber = "1"
    ExperimentGroup = ""
    ExperimentName = "P4-F8L2R2B1Uav1-3x15min"
    ServerName = ""
    ServerNumber = "0"
    SessionConfigFileName = "P4-F8L2R2B1Uav1-C3.con"
    SessionName = ""
    SessionNumber = ""
    SessionPicDirectory = ""
    SessionScenarioFileName = "P4-F8L2R2B1Uav1-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-F8L2R2B1Uav1-3x15min/Condition-1"
  SessionLogDirectory     = "../../../Server/SessionLogs"
  ScenarioDirectory       = "SessionDef/Projects/P4-F8L2R2B1Uav1-3x15min/Condition-1"
  MapImageDirectory       = "SessionDef/Projects/P4-F8L2R2B1Uav1-3x15min/Condition-1"
  SequenceConfigDirectory = ""
  SessionConfigFile       = "P4-F8L2R2B1Uav1-3x15min-C1-F80.con"
  ScenarioFile            = "P4-F8L2R2B1Uav1-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
Did the following steps.
  1. Remove fire fighting unit 9
  2. Add fire break unit 9, copy from Demo\FireBreak\P1-F8B4, and set the unit number 9.
  3. Remove logistics unit 12
  4. Renumber Rescue Unit to 12 and 13
  5. Remove Rescue Unit 14
  6. Set to what role the units will send info to


Renumber units
For every unit update, IDName, LongName, ControlDisplay, ImageGoTo, ImageGoToSelected, ImagePos, ImagePosSelected


<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
<Units>
...
    <Unit
      IDName = "F1"
      SendInfoTo = "B"

    <Unit
      IDName = "F2"
      SendInfoTo = "B"

    <Unit
      IDName = "F3"
      SendInfoTo = "B"

    <Unit
      IDName = "F4"
      SendInfoTo = "B"

    <Unit
      IDName = "F5"
      SendInfoTo = "C"

    <Unit
      IDName = "F6"
      SendInfoTo = "C"

    <Unit
      IDName = "F7"
      SendInfoTo = "C"

    <Unit
      IDName = "F8"
      SendInfoTo = "C"

    <Unit
      IDName = "B9"
      SendInfoTo = "D"

    <Unit
      IDName = "L10"
      SendInfoTo = "D"

    <Unit
      IDName = "L11"
      SendInfoTo = "D"

    <Unit
      IDName = "R12"
      SendInfoTo = "B"

    <Unit
      IDName = "R13"
      SendInfoTo = "C"

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

UAVs

Update what role are controlling the UAV. It is defined in the <UAVs>...<UAVs> element.
Edit main config files
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-1\P4-F8L2R2B1Uav1-3x15min-C1.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-2\P4-F8L2R2B1Uav1-3x15min-C2.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Condition-3\P4-F8L2R2B1Uav1-3x15min-C3.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Training-1\P4-F8L2R2B1Uav1-3x15min-T1.con
...\SessionDef\Projects\P4-F8L2R2B1Uav1-3x15min\Training-2\P4-F8L2R2B1Uav1-3x15min-T2.con
  1. Set IDName
  2. Set controller - ControllerActive = "A"


<UAVs>
    <UAV
      IDName = "D14"
      ControllerActive = "A"

Organisation

Create new role
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 = "D14"
      LongName = "Ground Chief A"
      MailSendTo = "B,C,D"/>

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

    <Role
      IDName = "C"
      ControlUnits = "F4,F5,F6,F7,R13"
      LongName = "Ground Chief C"
      MailSendTo = "A,B,D" />

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

Map

Roles Map Scroll Positions

Update all roles map scroll positions.

Edit file:

  • .../Condition-1/P4-F8L2R2B1Uav1-3x15min-C1-RolesScrollPos.coni
  • .../Condition-2/P4-F8L2R2B1Uav1-3x15min-C2-RolesScrollPos.coni
  • .../Condition-3/P4-F8L2R2B1Uav1-3x15min-C3-RolesScrollPos.coni
  • .../Training-1/P4-F8L2R2B1Uav1-3x15min-T1-RolesScrollPos.coni
  • .../Training-2/P4-F8L2R2B1Uav1-3x15min-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-F8L2R2B1Uav1-3x15min-C1-UnitsPos.coni
  • .../Condition-2/P4-F8L2R2B1Uav1-3x15min-C2-UnitsPos.coni
  • .../Condition-3/P4-F8L2R2B1Uav1-3x15min-C3-UnitsPos.coni
  • .../Training-1/P4-F8L2R2B1Uav1-3x15min-T1-UnitsPos.coni
  • .../Training-2/P4-F8L2R2B1Uav1-3x15min-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-F8L2R2B1Uav1-3x15min-C1-UAVsPos.coni
  • .../Condition-2/P4-F8L2R2B1Uav1-3x15min-C2-UAVsPos.coni
  • .../Condition-3/P4-F8L2R2B1Uav1-3x15min-C3-UAVsPos.coni
  • .../Training-1/P4-F8L2R2B1Uav1-3x15min-T1-UAVsPos.coni
  • .../Training-2/P4-F8L2R2B1Uav1-3x15min-T2-UAVsPos.coni

UnitInfoDisplay

UnitInfoDisplayOutline

Update unit information outline display.

Edit file : P4-F8L2R2B1Uav1-3x15min-Global-UnitsInfoUI.coni

For A, B, C, D and Manger, update what units that should be visible in the Unit info panels.
Update all.
<UnitInfoDisplayOutlineRow
UnitIDName = "..."
UnitInfoDisplayDetail = "..." />


  <UnitInfoDisplayOutline
      Name = "Ground Chief A" >
      ...
      <UnitInfoDisplayOutlineRow
        UnitIDName = "D14"
        UnitInfoDisplayDetail = "UAV" />
      
  </UnitInfoDisplayOutline>

  <UnitInfoDisplayOutline
      Name = "Ground Chief B" >
      ...
      <UnitInfoDisplayOutlineRow
        UnitIDName = "F1"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F2"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F3"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F4"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "R12"
        UnitInfoDisplayDetail = "PersonTransporter" />

   </UnitInfoDisplayOutline>

   <UnitInfoDisplayOutline
      Name = "Ground Chief C" >
      ...
      <UnitInfoDisplayOutlineRow
        UnitIDName = "F5"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F6"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F7"
        UnitInfoDisplayDetail = "WaterTruck" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F8"
        UnitInfoDisplayDetail = "WaterTruck" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "R13"
        UnitInfoDisplayDetail = "PersonTransporter" />

    </UnitInfoDisplayOutline>

    <UnitInfoDisplayOutline
      Name = "Ground Chief D" >
      ...
  
      <UnitInfoDisplayOutlineRow
        UnitIDName = "B9"
        UnitInfoDisplayDetail = "FireBreak" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "L10"
        UnitInfoDisplayDetail = "WaterTruck" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "L11"
        UnitInfoDisplayDetail = "WaterTruck" />

    </UnitInfoDisplayOutline>

  <UnitInfoDisplayOutline
      Name = "Manager" >
      ...
      <UnitInfoDisplayOutlineRow
        UnitIDName = "F1"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F2"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F3"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F4"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F5"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F6"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F7"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "F8"
        UnitInfoDisplayDetail = "FireFighter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "B9"
        UnitInfoDisplayDetail = "FireBreak" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "L10"
        UnitInfoDisplayDetail = "WaterTruck" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "L11"
        UnitInfoDisplayDetail = "WaterTruck" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "R12"
        UnitInfoDisplayDetail = "PersonTransporter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "R13"
        UnitInfoDisplayDetail = "PersonTransporter" />

      <UnitInfoDisplayOutlineRow
        UnitIDName = "D14"
        UnitInfoDisplayDetail = "UAV" />

    </UnitInfoDisplayOutline>

Update Role info

Update what unit information outline display each role should display
Edit file: P4-F8L2R2B1Uav1-3x15min-Global-Roles.coni
  1. Update information outline display name for each role - UnitInfoDisplayOutline = "..."


   <Role
     IDName = "A"
     ...
     UnitInfoDisplayOutline = "Ground Chief A"
    
    <Role
      IDName = "B"
      ...
      UnitInfoDisplayOutline = "Ground Chief B"

    <Role
      IDName = "C"
      ...
      UnitInfoDisplayOutline = "Ground Chief C"
    
     <Role
       IDName = "D"
       ...
       UnitInfoDisplayOutline = "Ground Chief D"