A Classic Fairytale: Harden all missions against missing campaign variables in team file and assume default values
This assumes the worst case in which the team file is missing all campaign variables except Progress.
This has been successfully tested with all 10 missions and still generates a logical storyline.
By default, the game assumes:
- The cyborg's offer in mission 2 was refused
- The traitor in mission 5 was killed
As a consequence, missions 8 and 10 use the princessScene cut scene.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="8191" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8154"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GameConfigViewController">
<connections>
<outlet property="backButton" destination="16" id="JdX-PP-V4d"/>
<outlet property="mapConfigViewController" destination="30" id="33"/>
<outlet property="schemeWeaponConfigViewController" destination="32" id="35"/>
<outlet property="startButton" destination="18" id="0Gc-dB-ioC"/>
<outlet property="tabsSegmentedControl" destination="20" id="PVz-zB-sKx"/>
<outlet property="teamConfigViewController" destination="31" id="34"/>
<outlet property="view" destination="2" id="3"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2">
<rect key="frame" x="0.0" y="0.0" width="480" height="320"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" barStyle="black" id="15">
<rect key="frame" x="0.0" y="276" width="480" height="44"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<animations/>
<items>
<barButtonItem title="Back" id="16">
<connections>
<action selector="buttonPressed:" destination="-1" id="17"/>
</connections>
</barButtonItem>
<barButtonItem style="plain" systemItem="flexibleSpace" id="22"/>
<barButtonItem style="plain" id="21">
<segmentedControl key="customView" opaque="NO" tag="12345" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="bar" selectedSegmentIndex="0" id="20">
<rect key="frame" x="105" y="7" width="270" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<animations/>
<segments>
<segment title="Map"/>
<segment title="Teams"/>
<segment title="Details"/>
<segment title="Help"/>
</segments>
<color key="tintColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<connections>
<action selector="segmentPressed:" destination="-1" eventType="valueChanged" id="29"/>
</connections>
</segmentedControl>
</barButtonItem>
<barButtonItem style="plain" systemItem="flexibleSpace" id="19"/>
<barButtonItem tag="1" title="Start" width="68" style="done" id="18">
<connections>
<action selector="buttonPressed:" destination="-1" id="23"/>
</connections>
</barButtonItem>
</items>
</toolbar>
<view clipsSubviews="YES" contentMode="scaleToFill" id="40" userLabel="TeamConfigViewController View">
<rect key="frame" x="0.0" y="0.0" width="480" height="276"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
<view clipsSubviews="YES" contentMode="scaleToFill" id="41" userLabel="SchemeWeaponConfigViewController View">
<rect key="frame" x="0.0" y="0.0" width="480" height="276"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</subviews>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="simulatedStatusBarMetrics"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="944" y="504"/>
</view>
<viewController nibName="MapConfigViewController-iPhone" id="30" customClass="MapConfigViewController">
<extendedEdge key="edgesForExtendedLayout"/>
<nil key="simulatedStatusBarMetrics"/>
<simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
</viewController>
<viewController id="31" customClass="TeamConfigViewController">
<extendedEdge key="edgesForExtendedLayout"/>
<nil key="simulatedStatusBarMetrics"/>
<simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="black"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
<connections>
<outlet property="view" destination="40" id="42"/>
</connections>
</viewController>
<viewController id="32" customClass="SchemeWeaponConfigViewController">
<extendedEdge key="edgesForExtendedLayout"/>
<nil key="simulatedStatusBarMetrics"/>
<simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="black"/>
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
<connections>
<outlet property="view" destination="41" id="43"/>
</connections>
</viewController>
</objects>
</document>