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
Updated so it is:
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
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
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 = "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, in the main configuration files.
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

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 = "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.
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-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.
Add, remove units and set position.

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.

Add, remove units and set position.

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"