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.
- 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.
- Remove fire fighting unit 9
- Add fire break unit 9, copy from Demo\FireBreak\P1-F8B4, and set the unit number 9.
- Remove logistics unit 12
- Renumber Rescue Unit to 12 and 13
- Remove Rescue Unit 14
- 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
- Set IDName
- 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
- Set id name - IDName = "..."
- Set the units the role control, For all roles - ControlUnits = "..."
- Set name - LongName = "..."
- 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
- Update F9 to B9
- Update L12 to R12
- Delete R14
- 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 = "..." />
- <UnitInfoDisplayOutlineRow
<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
- 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"