add folder
643
DevourAndDrought/DevourAndDrought.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,643 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 55;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
BD805B872720AD2E0070B153 /* SetupControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD805B862720AD2E0070B153 /* SetupControllers.swift */; };
|
||||||
|
BD8AAC44271D1FA5005F159B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8AAC43271D1FA5005F159B /* AppDelegate.swift */; };
|
||||||
|
BD8AAC46271D1FA5005F159B /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8AAC45271D1FA5005F159B /* SceneDelegate.swift */; };
|
||||||
|
BD8AAC48271D1FA5005F159B /* GameControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8AAC47271D1FA5005F159B /* GameControllers.swift */; };
|
||||||
|
BD8AAC4B271D1FA5005F159B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BD8AAC49271D1FA5005F159B /* Main.storyboard */; };
|
||||||
|
BD8AAC4D271D1FAB005F159B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BD8AAC4C271D1FAB005F159B /* Assets.xcassets */; };
|
||||||
|
BD8AAC50271D1FAB005F159B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BD8AAC4E271D1FAB005F159B /* LaunchScreen.storyboard */; };
|
||||||
|
BD8AAC5B271D1FAC005F159B /* DevourAndDroughtTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8AAC5A271D1FAC005F159B /* DevourAndDroughtTests.swift */; };
|
||||||
|
BD8AAC65271D1FAC005F159B /* DevourAndDroughtUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8AAC64271D1FAC005F159B /* DevourAndDroughtUITests.swift */; };
|
||||||
|
BD8AAC67271D1FAC005F159B /* DevourAndDroughtUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8AAC66271D1FAC005F159B /* DevourAndDroughtUITestsLaunchTests.swift */; };
|
||||||
|
BDF824EC27206BBD0023067C /* SupportingClasses.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF824EB27206BBD0023067C /* SupportingClasses.swift */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
BD8AAC57271D1FAC005F159B /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = BD8AAC38271D1FA5005F159B /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = BD8AAC3F271D1FA5005F159B;
|
||||||
|
remoteInfo = DevourAndDrought;
|
||||||
|
};
|
||||||
|
BD8AAC61271D1FAC005F159B /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = BD8AAC38271D1FA5005F159B /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = BD8AAC3F271D1FA5005F159B;
|
||||||
|
remoteInfo = DevourAndDrought;
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
BD805B862720AD2E0070B153 /* SetupControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetupControllers.swift; sourceTree = "<group>"; };
|
||||||
|
BD8AAC40271D1FA5005F159B /* DevourAndDrought.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DevourAndDrought.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
BD8AAC43271D1FA5005F159B /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
|
BD8AAC45271D1FA5005F159B /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
|
||||||
|
BD8AAC47271D1FA5005F159B /* GameControllers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameControllers.swift; sourceTree = "<group>"; };
|
||||||
|
BD8AAC4A271D1FA5005F159B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||||
|
BD8AAC4C271D1FAB005F159B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
|
BD8AAC4F271D1FAB005F159B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
|
BD8AAC51271D1FAB005F159B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
BD8AAC56271D1FAC005F159B /* DevourAndDroughtTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevourAndDroughtTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
BD8AAC5A271D1FAC005F159B /* DevourAndDroughtTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevourAndDroughtTests.swift; sourceTree = "<group>"; };
|
||||||
|
BD8AAC60271D1FAC005F159B /* DevourAndDroughtUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevourAndDroughtUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
BD8AAC64271D1FAC005F159B /* DevourAndDroughtUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevourAndDroughtUITests.swift; sourceTree = "<group>"; };
|
||||||
|
BD8AAC66271D1FAC005F159B /* DevourAndDroughtUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DevourAndDroughtUITestsLaunchTests.swift; sourceTree = "<group>"; };
|
||||||
|
BDF824EB27206BBD0023067C /* SupportingClasses.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportingClasses.swift; sourceTree = "<group>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
BD8AAC3D271D1FA5005F159B /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
BD8AAC53271D1FAC005F159B /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
BD8AAC5D271D1FAC005F159B /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
BD8AAC37271D1FA5005F159B = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC42271D1FA5005F159B /* DevourAndDrought */,
|
||||||
|
BD8AAC59271D1FAC005F159B /* DevourAndDroughtTests */,
|
||||||
|
BD8AAC63271D1FAC005F159B /* DevourAndDroughtUITests */,
|
||||||
|
BD8AAC41271D1FA5005F159B /* Products */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BD8AAC41271D1FA5005F159B /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC40271D1FA5005F159B /* DevourAndDrought.app */,
|
||||||
|
BD8AAC56271D1FAC005F159B /* DevourAndDroughtTests.xctest */,
|
||||||
|
BD8AAC60271D1FAC005F159B /* DevourAndDroughtUITests.xctest */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BD8AAC42271D1FA5005F159B /* DevourAndDrought */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC43271D1FA5005F159B /* AppDelegate.swift */,
|
||||||
|
BD8AAC45271D1FA5005F159B /* SceneDelegate.swift */,
|
||||||
|
BD8AAC47271D1FA5005F159B /* GameControllers.swift */,
|
||||||
|
BD805B862720AD2E0070B153 /* SetupControllers.swift */,
|
||||||
|
BDF824EB27206BBD0023067C /* SupportingClasses.swift */,
|
||||||
|
BD8AAC49271D1FA5005F159B /* Main.storyboard */,
|
||||||
|
BD8AAC4C271D1FAB005F159B /* Assets.xcassets */,
|
||||||
|
BD8AAC4E271D1FAB005F159B /* LaunchScreen.storyboard */,
|
||||||
|
BD8AAC51271D1FAB005F159B /* Info.plist */,
|
||||||
|
);
|
||||||
|
path = DevourAndDrought;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BD8AAC59271D1FAC005F159B /* DevourAndDroughtTests */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC5A271D1FAC005F159B /* DevourAndDroughtTests.swift */,
|
||||||
|
);
|
||||||
|
path = DevourAndDroughtTests;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BD8AAC63271D1FAC005F159B /* DevourAndDroughtUITests */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC64271D1FAC005F159B /* DevourAndDroughtUITests.swift */,
|
||||||
|
BD8AAC66271D1FAC005F159B /* DevourAndDroughtUITestsLaunchTests.swift */,
|
||||||
|
);
|
||||||
|
path = DevourAndDroughtUITests;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
BD8AAC3F271D1FA5005F159B /* DevourAndDrought */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = BD8AAC6A271D1FAC005F159B /* Build configuration list for PBXNativeTarget "DevourAndDrought" */;
|
||||||
|
buildPhases = (
|
||||||
|
BD8AAC3C271D1FA5005F159B /* Sources */,
|
||||||
|
BD8AAC3D271D1FA5005F159B /* Frameworks */,
|
||||||
|
BD8AAC3E271D1FA5005F159B /* Resources */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = DevourAndDrought;
|
||||||
|
productName = DevourAndDrought;
|
||||||
|
productReference = BD8AAC40271D1FA5005F159B /* DevourAndDrought.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
BD8AAC55271D1FAC005F159B /* DevourAndDroughtTests */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = BD8AAC6D271D1FAC005F159B /* Build configuration list for PBXNativeTarget "DevourAndDroughtTests" */;
|
||||||
|
buildPhases = (
|
||||||
|
BD8AAC52271D1FAC005F159B /* Sources */,
|
||||||
|
BD8AAC53271D1FAC005F159B /* Frameworks */,
|
||||||
|
BD8AAC54271D1FAC005F159B /* Resources */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
BD8AAC58271D1FAC005F159B /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = DevourAndDroughtTests;
|
||||||
|
productName = DevourAndDroughtTests;
|
||||||
|
productReference = BD8AAC56271D1FAC005F159B /* DevourAndDroughtTests.xctest */;
|
||||||
|
productType = "com.apple.product-type.bundle.unit-test";
|
||||||
|
};
|
||||||
|
BD8AAC5F271D1FAC005F159B /* DevourAndDroughtUITests */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = BD8AAC70271D1FAC005F159B /* Build configuration list for PBXNativeTarget "DevourAndDroughtUITests" */;
|
||||||
|
buildPhases = (
|
||||||
|
BD8AAC5C271D1FAC005F159B /* Sources */,
|
||||||
|
BD8AAC5D271D1FAC005F159B /* Frameworks */,
|
||||||
|
BD8AAC5E271D1FAC005F159B /* Resources */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
BD8AAC62271D1FAC005F159B /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = DevourAndDroughtUITests;
|
||||||
|
productName = DevourAndDroughtUITests;
|
||||||
|
productReference = BD8AAC60271D1FAC005F159B /* DevourAndDroughtUITests.xctest */;
|
||||||
|
productType = "com.apple.product-type.bundle.ui-testing";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
BD8AAC38271D1FA5005F159B /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
BuildIndependentTargetsInParallel = 1;
|
||||||
|
LastSwiftUpdateCheck = 1300;
|
||||||
|
LastUpgradeCheck = 1300;
|
||||||
|
TargetAttributes = {
|
||||||
|
BD8AAC3F271D1FA5005F159B = {
|
||||||
|
CreatedOnToolsVersion = 13.0;
|
||||||
|
};
|
||||||
|
BD8AAC55271D1FAC005F159B = {
|
||||||
|
CreatedOnToolsVersion = 13.0;
|
||||||
|
TestTargetID = BD8AAC3F271D1FA5005F159B;
|
||||||
|
};
|
||||||
|
BD8AAC5F271D1FAC005F159B = {
|
||||||
|
CreatedOnToolsVersion = 13.0;
|
||||||
|
TestTargetID = BD8AAC3F271D1FA5005F159B;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
buildConfigurationList = BD8AAC3B271D1FA5005F159B /* Build configuration list for PBXProject "DevourAndDrought" */;
|
||||||
|
compatibilityVersion = "Xcode 13.0";
|
||||||
|
developmentRegion = en;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
Base,
|
||||||
|
);
|
||||||
|
mainGroup = BD8AAC37271D1FA5005F159B;
|
||||||
|
productRefGroup = BD8AAC41271D1FA5005F159B /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
BD8AAC3F271D1FA5005F159B /* DevourAndDrought */,
|
||||||
|
BD8AAC55271D1FAC005F159B /* DevourAndDroughtTests */,
|
||||||
|
BD8AAC5F271D1FAC005F159B /* DevourAndDroughtUITests */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
BD8AAC3E271D1FA5005F159B /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
BD8AAC50271D1FAB005F159B /* LaunchScreen.storyboard in Resources */,
|
||||||
|
BD8AAC4D271D1FAB005F159B /* Assets.xcassets in Resources */,
|
||||||
|
BD8AAC4B271D1FA5005F159B /* Main.storyboard in Resources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
BD8AAC54271D1FAC005F159B /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
BD8AAC5E271D1FAC005F159B /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
BD8AAC3C271D1FA5005F159B /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
BD805B872720AD2E0070B153 /* SetupControllers.swift in Sources */,
|
||||||
|
BD8AAC48271D1FA5005F159B /* GameControllers.swift in Sources */,
|
||||||
|
BD8AAC44271D1FA5005F159B /* AppDelegate.swift in Sources */,
|
||||||
|
BD8AAC46271D1FA5005F159B /* SceneDelegate.swift in Sources */,
|
||||||
|
BDF824EC27206BBD0023067C /* SupportingClasses.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
BD8AAC52271D1FAC005F159B /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
BD8AAC5B271D1FAC005F159B /* DevourAndDroughtTests.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
BD8AAC5C271D1FAC005F159B /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
BD8AAC65271D1FAC005F159B /* DevourAndDroughtUITests.swift in Sources */,
|
||||||
|
BD8AAC67271D1FAC005F159B /* DevourAndDroughtUITestsLaunchTests.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
BD8AAC58271D1FAC005F159B /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = BD8AAC3F271D1FA5005F159B /* DevourAndDrought */;
|
||||||
|
targetProxy = BD8AAC57271D1FAC005F159B /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
BD8AAC62271D1FAC005F159B /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = BD8AAC3F271D1FA5005F159B /* DevourAndDrought */;
|
||||||
|
targetProxy = BD8AAC61271D1FAC005F159B /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin PBXVariantGroup section */
|
||||||
|
BD8AAC49271D1FA5005F159B /* Main.storyboard */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC4A271D1FA5005F159B /* Base */,
|
||||||
|
);
|
||||||
|
name = Main.storyboard;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
BD8AAC4E271D1FAB005F159B /* LaunchScreen.storyboard */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
BD8AAC4F271D1FAB005F159B /* Base */,
|
||||||
|
);
|
||||||
|
name = LaunchScreen.storyboard;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
BD8AAC68271D1FAC005F159B /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_COMMA = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
ENABLE_TESTABILITY = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
|
MTL_FAST_MATH = YES;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
BD8AAC69271D1FAC005F159B /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_COMMA = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
MTL_FAST_MATH = YES;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
BD8AAC6B271D1FAC005F159B /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 2;
|
||||||
|
DEVELOPMENT_TEAM = PRBH2T6668;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
INFOPLIST_FILE = DevourAndDrought/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = Devour;
|
||||||
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
|
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
||||||
|
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationPortrait";
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.mpg13.faf;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
BD8AAC6C271D1FAC005F159B /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 2;
|
||||||
|
DEVELOPMENT_TEAM = PRBH2T6668;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
INFOPLIST_FILE = DevourAndDrought/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = Devour;
|
||||||
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
|
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
||||||
|
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationPortrait";
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.mpg13.faf;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
BD8AAC6E271D1FAC005F159B /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = PRBH2T6668;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.mpg13.DevourAndDroughtTests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DevourAndDrought.app/DevourAndDrought";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
BD8AAC6F271D1FAC005F159B /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = PRBH2T6668;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.mpg13.DevourAndDroughtTests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DevourAndDrought.app/DevourAndDrought";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
BD8AAC71271D1FAC005F159B /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = PRBH2T6668;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.mpg13.DevourAndDroughtUITests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
TEST_TARGET_NAME = DevourAndDrought;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
BD8AAC72271D1FAC005F159B /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = PRBH2T6668;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = com.mpg13.DevourAndDroughtUITests;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
TEST_TARGET_NAME = DevourAndDrought;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
BD8AAC3B271D1FA5005F159B /* Build configuration list for PBXProject "DevourAndDrought" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
BD8AAC68271D1FAC005F159B /* Debug */,
|
||||||
|
BD8AAC69271D1FAC005F159B /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
BD8AAC6A271D1FAC005F159B /* Build configuration list for PBXNativeTarget "DevourAndDrought" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
BD8AAC6B271D1FAC005F159B /* Debug */,
|
||||||
|
BD8AAC6C271D1FAC005F159B /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
BD8AAC6D271D1FAC005F159B /* Build configuration list for PBXNativeTarget "DevourAndDroughtTests" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
BD8AAC6E271D1FAC005F159B /* Debug */,
|
||||||
|
BD8AAC6F271D1FAC005F159B /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
BD8AAC70271D1FAC005F159B /* Build configuration list for PBXNativeTarget "DevourAndDroughtUITests" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
BD8AAC71271D1FAC005F159B /* Debug */,
|
||||||
|
BD8AAC72271D1FAC005F159B /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = BD8AAC38271D1FA5005F159B /* Project object */;
|
||||||
|
}
|
7
DevourAndDrought/DevourAndDrought.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "self:">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>SchemeUserState</key>
|
||||||
|
<dict>
|
||||||
|
<key>DevourAndDrought.xcscheme_^#shared#^_</key>
|
||||||
|
<dict>
|
||||||
|
<key>orderHint</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>SchemeUserState</key>
|
||||||
|
<dict>
|
||||||
|
<key>DevourAndDrought.xcscheme_^#shared#^_</key>
|
||||||
|
<dict>
|
||||||
|
<key>orderHint</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
36
DevourAndDrought/DevourAndDrought/AppDelegate.swift
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
//
|
||||||
|
// AppDelegate.swift
|
||||||
|
// DevourAndDrought
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/17/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
@main
|
||||||
|
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||||||
|
// Override point for customization after application launch.
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: UISceneSession Lifecycle
|
||||||
|
|
||||||
|
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
|
||||||
|
// Called when a new scene session is being created.
|
||||||
|
// Use this method to select a configuration to create the new scene with.
|
||||||
|
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
|
||||||
|
}
|
||||||
|
|
||||||
|
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
|
||||||
|
// Called when the user discards a scene session.
|
||||||
|
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
|
||||||
|
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"colors" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-20x20@2x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "20x20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-20x20@3x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"size" : "20x20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-29x29@2x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "29x29"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-29x29@3x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"size" : "29x29"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-40x40@2x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "40x40"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-40x40@3x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"size" : "40x40"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-60x60@2x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "60x60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-60x60@3x.png",
|
||||||
|
"idiom" : "iphone",
|
||||||
|
"scale" : "3x",
|
||||||
|
"size" : "60x60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-20x20@1x.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "20x20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-20x20@2x-1.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "20x20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-29x29@1x.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "29x29"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-29x29@2x-1.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "29x29"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-40x40@1x.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "40x40"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-40x40@2x-1.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "40x40"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-76x76@1x.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "76x76"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-76x76@2x.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "76x76"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Icon-App-83.5x83.5@2x.png",
|
||||||
|
"idiom" : "ipad",
|
||||||
|
"scale" : "2x",
|
||||||
|
"size" : "83.5x83.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "ItunesArtwork@2x.png",
|
||||||
|
"idiom" : "ios-marketing",
|
||||||
|
"scale" : "1x",
|
||||||
|
"size" : "1024x1024"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 835 B |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 5 KiB |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 94 KiB |
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
23
DevourAndDrought/DevourAndDrought/Assets.xcassets/Micah Gomez.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "coollogo_com-13092940.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "coollogo_com-13092941.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "coollogo_com-13092942.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
DevourAndDrought/DevourAndDrought/Assets.xcassets/Micah Gomez.imageset/coollogo_com-13092940.png
vendored
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
DevourAndDrought/DevourAndDrought/Assets.xcassets/Micah Gomez.imageset/coollogo_com-13092941.png
vendored
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
DevourAndDrought/DevourAndDrought/Assets.xcassets/Micah Gomez.imageset/coollogo_com-13092942.png
vendored
Normal file
After Width: | Height: | Size: 129 KiB |
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||||
|
<device id="retina6_1" orientation="landscape" appearance="light"/>
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="iOS"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
|
||||||
|
<capability name="Image references" minToolsVersion="12.0"/>
|
||||||
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
|
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<!--View Controller-->
|
||||||
|
<scene sceneID="EHf-IW-A2E">
|
||||||
|
<objects>
|
||||||
|
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="tzs-7w-lyi">
|
||||||
|
<rect key="frame" x="164" y="37.5" width="568" height="339"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="tzs-7w-lyi" secondAttribute="height" multiplier="77:46" id="axO-24-MFU"/>
|
||||||
|
</constraints>
|
||||||
|
<imageReference key="image" image="Micah Gomez"/>
|
||||||
|
</imageView>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="From" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zuj-Ek-bSV">
|
||||||
|
<rect key="frame" x="164" y="0.5" width="568" height="29"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" weight="heavy" pointSize="24"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="tzs-7w-lyi" firstAttribute="leading" secondItem="Zuj-Ek-bSV" secondAttribute="leading" id="L95-JJ-ciP"/>
|
||||||
|
<constraint firstItem="tzs-7w-lyi" firstAttribute="top" secondItem="Zuj-Ek-bSV" secondAttribute="bottom" constant="8" symbolic="YES" id="Let-P6-Mj6"/>
|
||||||
|
<constraint firstItem="tzs-7w-lyi" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="Nd0-O8-MaK"/>
|
||||||
|
<constraint firstItem="tzs-7w-lyi" firstAttribute="trailing" secondItem="Zuj-Ek-bSV" secondAttribute="trailing" id="PnO-Jq-5bD"/>
|
||||||
|
<constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="tzs-7w-lyi" secondAttribute="trailing" constant="120" id="T4A-hC-jCR"/>
|
||||||
|
<constraint firstItem="tzs-7w-lyi" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="mO4-py-5Sy"/>
|
||||||
|
<constraint firstItem="tzs-7w-lyi" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="120" id="sS2-OU-O7z"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="53" y="375"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
<resources>
|
||||||
|
<image name="Micah Gomez" width="385.5" height="230.5"/>
|
||||||
|
<systemColor name="systemBackgroundColor">
|
||||||
|
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
</systemColor>
|
||||||
|
</resources>
|
||||||
|
</document>
|
662
DevourAndDrought/DevourAndDrought/Base.lproj/Main.storyboard
Normal file
|
@ -0,0 +1,662 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="AEX-uU-vJw">
|
||||||
|
<device id="retina6_1" orientation="landscape" appearance="light"/>
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="iOS"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
|
||||||
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
|
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<!--Game Board-->
|
||||||
|
<scene sceneID="nuZ-Eq-iIv">
|
||||||
|
<objects>
|
||||||
|
<viewController modalPresentationStyle="fullScreen" id="lH6-xc-QZo" customClass="GameBoardController" customModule="DevourAndDrought" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="FHm-rp-Uvm">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fVC-Au-OTH">
|
||||||
|
<rect key="frame" x="398.5" y="157.5" width="99" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="fVC-Au-OTH" secondAttribute="height" multiplier="1:1" id="KaI-nS-nbh"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="lif-2y-nk5"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yCi-WS-j56">
|
||||||
|
<rect key="frame" x="291.5" y="157.5" width="98.5" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="yCi-WS-j56" secondAttribute="height" multiplier="1:1" id="qSS-Iz-Fpf"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="naK-td-anv"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EVH-3a-OD7">
|
||||||
|
<rect key="frame" x="185" y="157.5" width="98.5" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="EVH-3a-OD7" secondAttribute="height" multiplier="1:1" id="ykN-os-vhK"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="VK6-7a-a5y"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mvd-CL-a0K">
|
||||||
|
<rect key="frame" x="78.5" y="157.5" width="98.5" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="Mvd-CL-a0K" secondAttribute="height" multiplier="1:1" id="NE1-vX-r1i"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="d8P-Mb-mh4"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uAg-6d-1Yt">
|
||||||
|
<rect key="frame" x="505" y="157.5" width="98.5" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="uAg-6d-1Yt" secondAttribute="height" multiplier="1:1" id="efq-Bs-64b"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="DH1-gT-dwc"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ccz-Sm-d3u">
|
||||||
|
<rect key="frame" x="611.5" y="157.5" width="98.5" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="ccz-Sm-d3u" secondAttribute="height" multiplier="1:1" id="Yf4-Ji-cxU"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="KGB-tw-Bn9"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="r0U-oa-ZK2">
|
||||||
|
<rect key="frame" x="718" y="157.5" width="98.5" height="99"/>
|
||||||
|
<color key="backgroundColor" red="0.86274509799999999" green="0.69411764710000001" blue="0.24313725489999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="r0U-oa-ZK2" secondAttribute="height" multiplier="1:1" id="V7c-zf-CL4"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="tintColor" systemColor="labelColor"/>
|
||||||
|
<inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<userDefinedRuntimeAttributes>
|
||||||
|
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||||
|
<integer key="value" value="13"/>
|
||||||
|
</userDefinedRuntimeAttribute>
|
||||||
|
</userDefinedRuntimeAttributes>
|
||||||
|
<connections>
|
||||||
|
<action selector="boxTouched:" destination="lH6-xc-QZo" eventType="touchUpInside" id="3dv-g5-RX4"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Player Name" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bvt-ul-0js">
|
||||||
|
<rect key="frame" x="78.5" y="20" width="738" height="39"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="32"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Labor Points: " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3fl-FP-psQ">
|
||||||
|
<rect key="frame" x="78.5" y="67" width="738" height="29"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="24"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="7Q0-4q-nkf"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="ccz-Sm-d3u" firstAttribute="top" secondItem="Mvd-CL-a0K" secondAttribute="top" id="3m5-6R-EeN"/>
|
||||||
|
<constraint firstItem="3fl-FP-psQ" firstAttribute="trailing" secondItem="bvt-ul-0js" secondAttribute="trailing" id="4jD-fJ-Tl6"/>
|
||||||
|
<constraint firstItem="fVC-Au-OTH" firstAttribute="centerX" secondItem="FHm-rp-Uvm" secondAttribute="centerX" id="9hK-nO-bS3"/>
|
||||||
|
<constraint firstItem="yCi-WS-j56" firstAttribute="leading" secondItem="EVH-3a-OD7" secondAttribute="trailing" constant="8" symbolic="YES" id="BQM-U7-vE7"/>
|
||||||
|
<constraint firstItem="fVC-Au-OTH" firstAttribute="top" secondItem="Mvd-CL-a0K" secondAttribute="top" id="CtQ-VM-xlk"/>
|
||||||
|
<constraint firstItem="r0U-oa-ZK2" firstAttribute="bottom" secondItem="Mvd-CL-a0K" secondAttribute="bottom" id="HnK-Ho-e3I"/>
|
||||||
|
<constraint firstItem="fVC-Au-OTH" firstAttribute="bottom" secondItem="Mvd-CL-a0K" secondAttribute="bottom" id="JqK-vA-qAi"/>
|
||||||
|
<constraint firstItem="uAg-6d-1Yt" firstAttribute="top" secondItem="Mvd-CL-a0K" secondAttribute="top" id="L1v-zT-P8n"/>
|
||||||
|
<constraint firstItem="3fl-FP-psQ" firstAttribute="leading" secondItem="bvt-ul-0js" secondAttribute="leading" id="LNY-hr-58L"/>
|
||||||
|
<constraint firstItem="fVC-Au-OTH" firstAttribute="centerY" secondItem="FHm-rp-Uvm" secondAttribute="centerY" id="Nex-g0-cbC"/>
|
||||||
|
<constraint firstItem="fVC-Au-OTH" firstAttribute="width" secondItem="FHm-rp-Uvm" secondAttribute="width" multiplier="0.11" id="QX6-Hb-COh"/>
|
||||||
|
<constraint firstItem="r0U-oa-ZK2" firstAttribute="leading" secondItem="ccz-Sm-d3u" secondAttribute="trailing" constant="8" symbolic="YES" id="R8a-th-y76"/>
|
||||||
|
<constraint firstItem="ccz-Sm-d3u" firstAttribute="bottom" secondItem="Mvd-CL-a0K" secondAttribute="bottom" id="Roh-0U-zKv"/>
|
||||||
|
<constraint firstItem="EVH-3a-OD7" firstAttribute="bottom" secondItem="Mvd-CL-a0K" secondAttribute="bottom" id="TrL-6I-7ds"/>
|
||||||
|
<constraint firstItem="yCi-WS-j56" firstAttribute="bottom" secondItem="Mvd-CL-a0K" secondAttribute="bottom" id="U1i-Bv-N5b"/>
|
||||||
|
<constraint firstItem="r0U-oa-ZK2" firstAttribute="trailing" secondItem="bvt-ul-0js" secondAttribute="trailing" id="YOa-r3-dtK"/>
|
||||||
|
<constraint firstItem="yCi-WS-j56" firstAttribute="top" secondItem="Mvd-CL-a0K" secondAttribute="top" id="agv-zT-jdw"/>
|
||||||
|
<constraint firstItem="EVH-3a-OD7" firstAttribute="leading" secondItem="Mvd-CL-a0K" secondAttribute="trailing" constant="8" symbolic="YES" id="cLV-3c-CDQ"/>
|
||||||
|
<constraint firstItem="bvt-ul-0js" firstAttribute="top" secondItem="7Q0-4q-nkf" secondAttribute="top" constant="20" id="cOa-6A-21D"/>
|
||||||
|
<constraint firstItem="uAg-6d-1Yt" firstAttribute="leading" secondItem="fVC-Au-OTH" secondAttribute="trailing" constant="7.5" id="goM-2Y-Qkc"/>
|
||||||
|
<constraint firstItem="fVC-Au-OTH" firstAttribute="leading" secondItem="yCi-WS-j56" secondAttribute="trailing" constant="8.5" id="jxb-4K-7cu"/>
|
||||||
|
<constraint firstItem="EVH-3a-OD7" firstAttribute="top" secondItem="Mvd-CL-a0K" secondAttribute="top" id="kMl-fR-HoA"/>
|
||||||
|
<constraint firstItem="ccz-Sm-d3u" firstAttribute="leading" secondItem="uAg-6d-1Yt" secondAttribute="trailing" constant="8" symbolic="YES" id="qkA-r1-1Rh"/>
|
||||||
|
<constraint firstItem="Mvd-CL-a0K" firstAttribute="leading" secondItem="bvt-ul-0js" secondAttribute="leading" id="r0H-f6-qrO"/>
|
||||||
|
<constraint firstItem="3fl-FP-psQ" firstAttribute="top" secondItem="bvt-ul-0js" secondAttribute="bottom" constant="8" symbolic="YES" id="tnq-vN-4yf"/>
|
||||||
|
<constraint firstItem="uAg-6d-1Yt" firstAttribute="bottom" secondItem="Mvd-CL-a0K" secondAttribute="bottom" id="yWr-eR-HfA"/>
|
||||||
|
<constraint firstItem="r0U-oa-ZK2" firstAttribute="top" secondItem="Mvd-CL-a0K" secondAttribute="top" id="zOd-kz-Vbm"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<tabBarItem key="tabBarItem" title="Game Board" image="checkerboard.rectangle" catalog="system" id="np1-Aa-oJR"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="LbrPointsLbl" destination="3fl-FP-psQ" id="klD-Hc-Sm0"/>
|
||||||
|
<outlet property="PlayerNameLabel" destination="bvt-ul-0js" id="icq-bF-5wc"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="Mvd-CL-a0K" collectionClass="NSMutableArray" id="KmD-tR-lW0"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="EVH-3a-OD7" collectionClass="NSMutableArray" id="wFv-6s-dfz"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="yCi-WS-j56" collectionClass="NSMutableArray" id="xej-HY-42n"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="fVC-Au-OTH" collectionClass="NSMutableArray" id="CkK-hy-cGF"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="uAg-6d-1Yt" collectionClass="NSMutableArray" id="VYk-Iy-PT3"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="ccz-Sm-d3u" collectionClass="NSMutableArray" id="oby-Wp-MCg"/>
|
||||||
|
<outletCollection property="AllResourceSlots" destination="r0U-oa-ZK2" collectionClass="NSMutableArray" id="iBZ-WB-aQT"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="VJA-eT-3Yw" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-713.16964285714278" y="837.68115942028987"/>
|
||||||
|
</scene>
|
||||||
|
<!--Player Start Controller-->
|
||||||
|
<scene sceneID="Y6G-br-6aV">
|
||||||
|
<objects>
|
||||||
|
<viewController storyboardIdentifier="PlayerStart" modalPresentationStyle="fullScreen" id="Wsp-yj-oey" customClass="PlayerStartController" customModule="DevourAndDrought" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="rIc-4v-wBd">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Player Name" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U8j-tB-NkG">
|
||||||
|
<rect key="frame" x="60" y="20" width="776" height="57.5"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="48"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0DZ-7G-LiN">
|
||||||
|
<rect key="frame" x="60" y="181" width="776" height="52.5"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<buttonConfiguration key="configuration" style="plain" title="Begin Turn">
|
||||||
|
<fontDescription key="titleFontDescription" type="system" pointSize="32"/>
|
||||||
|
</buttonConfiguration>
|
||||||
|
<connections>
|
||||||
|
<action selector="BeginTurnButton:" destination="Wsp-yj-oey" eventType="touchUpInside" id="fHE-ig-2Mv"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="8oX-yO-iP4"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="0DZ-7G-LiN" firstAttribute="leading" secondItem="U8j-tB-NkG" secondAttribute="leading" id="B9G-KJ-6h4"/>
|
||||||
|
<constraint firstItem="0DZ-7G-LiN" firstAttribute="centerY" secondItem="rIc-4v-wBd" secondAttribute="centerY" id="PUV-fC-smP"/>
|
||||||
|
<constraint firstItem="0DZ-7G-LiN" firstAttribute="leading" secondItem="8oX-yO-iP4" secondAttribute="leading" constant="16" id="SBN-Qs-zb5"/>
|
||||||
|
<constraint firstItem="8oX-yO-iP4" firstAttribute="trailing" secondItem="0DZ-7G-LiN" secondAttribute="trailing" constant="16" id="YG7-NS-5KX"/>
|
||||||
|
<constraint firstItem="0DZ-7G-LiN" firstAttribute="trailing" secondItem="U8j-tB-NkG" secondAttribute="trailing" id="b6c-wW-ple"/>
|
||||||
|
<constraint firstItem="U8j-tB-NkG" firstAttribute="top" secondItem="8oX-yO-iP4" secondAttribute="top" constant="20" id="r8w-Sb-ebK"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="playerNameLabel" destination="U8j-tB-NkG" id="PJh-uu-M3G"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="Kqm-rv-PQS" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-1465.1785714285713" y="1524.6376811594205"/>
|
||||||
|
</scene>
|
||||||
|
<!--Start Controller-->
|
||||||
|
<scene sceneID="trU-kP-iEa">
|
||||||
|
<objects>
|
||||||
|
<viewController modalPresentationStyle="fullScreen" id="AEX-uU-vJw" customClass="StartController" customModule="DevourAndDrought" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="8EJ-sl-H0f">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Game Title Pending" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lpp-L0-Xue">
|
||||||
|
<rect key="frame" x="224" y="20" width="448" height="39"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="32"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kWw-vs-xeH">
|
||||||
|
<rect key="frame" x="224" y="350" width="448" height="43"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<buttonConfiguration key="configuration" style="plain" title="Start Game">
|
||||||
|
<fontDescription key="titleFontDescription" type="system" pointSize="24"/>
|
||||||
|
</buttonConfiguration>
|
||||||
|
<connections>
|
||||||
|
<action selector="StartGame:" destination="AEX-uU-vJw" eventType="touchUpInside" id="Q54-L1-3du"/>
|
||||||
|
<segue destination="rYK-0k-2EP" kind="show" id="uQq-ZW-6VM"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<pickerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gmu-Lf-iBW">
|
||||||
|
<rect key="frame" x="224" y="126" width="448" height="162"/>
|
||||||
|
</pickerView>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="dFz-As-aVm"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="kWw-vs-xeH" firstAttribute="top" secondItem="Gmu-Lf-iBW" secondAttribute="bottom" constant="62" id="1ih-D4-nFv"/>
|
||||||
|
<constraint firstItem="Gmu-Lf-iBW" firstAttribute="width" secondItem="8EJ-sl-H0f" secondAttribute="width" multiplier="0.5" id="AiL-KS-cKb"/>
|
||||||
|
<constraint firstItem="Gmu-Lf-iBW" firstAttribute="centerX" secondItem="8EJ-sl-H0f" secondAttribute="centerX" id="Ghs-tt-90N"/>
|
||||||
|
<constraint firstItem="kWw-vs-xeH" firstAttribute="trailing" secondItem="lpp-L0-Xue" secondAttribute="trailing" id="I9f-V1-AoU"/>
|
||||||
|
<constraint firstItem="lpp-L0-Xue" firstAttribute="top" secondItem="dFz-As-aVm" secondAttribute="top" constant="20" id="Tiy-wZ-ClM"/>
|
||||||
|
<constraint firstItem="kWw-vs-xeH" firstAttribute="bottom" secondItem="dFz-As-aVm" secondAttribute="bottom" id="a9O-s5-L9R"/>
|
||||||
|
<constraint firstItem="kWw-vs-xeH" firstAttribute="leading" secondItem="lpp-L0-Xue" secondAttribute="leading" id="fA2-xi-LhG"/>
|
||||||
|
<constraint firstItem="lpp-L0-Xue" firstAttribute="top" secondItem="dFz-As-aVm" secondAttribute="top" constant="20" id="fPZ-dG-ivf"/>
|
||||||
|
<constraint firstItem="Gmu-Lf-iBW" firstAttribute="leading" secondItem="lpp-L0-Xue" secondAttribute="leading" id="iin-0Z-9hZ"/>
|
||||||
|
<constraint firstItem="Gmu-Lf-iBW" firstAttribute="top" secondItem="lpp-L0-Xue" secondAttribute="bottom" constant="67" id="joS-ta-w5D"/>
|
||||||
|
<constraint firstItem="Gmu-Lf-iBW" firstAttribute="centerY" secondItem="8EJ-sl-H0f" secondAttribute="centerY" id="n8o-81-nmG"/>
|
||||||
|
<constraint firstItem="Gmu-Lf-iBW" firstAttribute="trailing" secondItem="lpp-L0-Xue" secondAttribute="trailing" id="sjG-ql-vGr"/>
|
||||||
|
<constraint firstItem="lpp-L0-Xue" firstAttribute="top" secondItem="dFz-As-aVm" secondAttribute="top" constant="20" id="tU0-MM-tk9"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<navigationItem key="navigationItem" id="jDd-pz-yuT"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="playerCountPicker" destination="Gmu-Lf-iBW" id="Sfs-tk-V2n"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="en9-5n-wVX" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-2551" y="-522"/>
|
||||||
|
</scene>
|
||||||
|
<!--Names Controller-->
|
||||||
|
<scene sceneID="utu-Id-eua">
|
||||||
|
<objects>
|
||||||
|
<viewController modalPresentationStyle="fullScreen" id="rYK-0k-2EP" customClass="NamesController" customModule="DevourAndDrought" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="skH-7l-hCk">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Player 1 Name:" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jzr-69-Csw">
|
||||||
|
<rect key="frame" x="64" y="20" width="768" height="39"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="32"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Player Name" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gbe-AO-z28">
|
||||||
|
<rect key="frame" x="224" y="67" width="448" height="38.5"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="24"/>
|
||||||
|
<textInputTraits key="textInputTraits" autocapitalizationType="words" returnKeyType="next"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="PlayerNextBtn:" destination="rYK-0k-2EP" eventType="primaryActionTriggered" id="qB6-AJ-qjV"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0fD-M8-Yvx">
|
||||||
|
<rect key="frame" x="224" y="113.5" width="448" height="43"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<buttonConfiguration key="configuration" style="plain" title="Next">
|
||||||
|
<fontDescription key="titleFontDescription" type="system" pointSize="24"/>
|
||||||
|
</buttonConfiguration>
|
||||||
|
<connections>
|
||||||
|
<action selector="PlayerNextBtn:" destination="rYK-0k-2EP" eventType="touchUpInside" id="P49-Ff-QC1"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="eWX-kt-cS0"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="Jzr-69-Csw" firstAttribute="top" secondItem="eWX-kt-cS0" secondAttribute="top" constant="20" id="6ig-Xt-cF3"/>
|
||||||
|
<constraint firstItem="eWX-kt-cS0" firstAttribute="trailing" secondItem="Jzr-69-Csw" secondAttribute="trailing" constant="20" id="Jrj-4E-03o"/>
|
||||||
|
<constraint firstItem="gbe-AO-z28" firstAttribute="centerX" secondItem="skH-7l-hCk" secondAttribute="centerX" id="MLb-SE-pMa"/>
|
||||||
|
<constraint firstItem="gbe-AO-z28" firstAttribute="top" secondItem="Jzr-69-Csw" secondAttribute="bottom" constant="8" symbolic="YES" id="NFJ-8u-8Bz"/>
|
||||||
|
<constraint firstItem="0fD-M8-Yvx" firstAttribute="leading" secondItem="gbe-AO-z28" secondAttribute="leading" id="Pwe-Aq-9XD"/>
|
||||||
|
<constraint firstItem="0fD-M8-Yvx" firstAttribute="top" secondItem="gbe-AO-z28" secondAttribute="bottom" constant="8" id="WEh-Ob-JHZ"/>
|
||||||
|
<constraint firstItem="gbe-AO-z28" firstAttribute="width" secondItem="skH-7l-hCk" secondAttribute="width" multiplier="0.5" id="aXt-eK-BSu"/>
|
||||||
|
<constraint firstItem="0fD-M8-Yvx" firstAttribute="trailing" secondItem="gbe-AO-z28" secondAttribute="trailing" id="m0F-Un-xzt"/>
|
||||||
|
<constraint firstItem="Jzr-69-Csw" firstAttribute="leading" secondItem="eWX-kt-cS0" secondAttribute="leading" constant="20" id="xZm-uA-PTg"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<navigationItem key="navigationItem" id="BkW-np-Q19"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="PlayerName" destination="Jzr-69-Csw" id="9nt-7R-L57"/>
|
||||||
|
<outlet property="PlayerNameField" destination="gbe-AO-z28" id="sFR-Tg-4KI"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="bcm-pA-gY3" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-2188.3928571428569" y="515.94202898550725"/>
|
||||||
|
</scene>
|
||||||
|
<!--Tab Bar Controller-->
|
||||||
|
<scene sceneID="cqR-zv-h4f">
|
||||||
|
<objects>
|
||||||
|
<tabBarController storyboardIdentifier="GameView" modalPresentationStyle="fullScreen" id="g7V-3y-mc7" sceneMemberID="viewController">
|
||||||
|
<navigationItem key="navigationItem" id="jJA-Uy-kyC"/>
|
||||||
|
<tabBar key="tabBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="ZM1-xw-MFr">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="414" height="49"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
</tabBar>
|
||||||
|
<connections>
|
||||||
|
<segue destination="BYZ-38-t0r" kind="relationship" relationship="viewControllers" id="isI-po-gfN"/>
|
||||||
|
<segue destination="lH6-xc-QZo" kind="relationship" relationship="viewControllers" id="eD5-vp-8ES"/>
|
||||||
|
</connections>
|
||||||
|
</tabBarController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="Wiz-nw-Agd" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-1465" y="516"/>
|
||||||
|
</scene>
|
||||||
|
<!--Player Board-->
|
||||||
|
<scene sceneID="tne-QT-ifu">
|
||||||
|
<objects>
|
||||||
|
<viewController modalPresentationStyle="fullScreen" id="BYZ-38-t0r" customClass="PlayerBoardController" customModule="DevourAndDrought" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Oil" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jc1-hh-J2g">
|
||||||
|
<rect key="frame" x="213.5" y="80.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="pPj-dJ-uLh"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Water" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QpL-0D-xz4">
|
||||||
|
<rect key="frame" x="213.5" y="109.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="uQN-V1-UyI"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Wheat" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jQV-KZ-vDo">
|
||||||
|
<rect key="frame" x="213.5" y="138.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="Ern-rx-gQk"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Corn" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x7O-gB-efD">
|
||||||
|
<rect key="frame" x="213.5" y="167.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="BMi-Ig-XfB"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Fish" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ibS-2f-qzP">
|
||||||
|
<rect key="frame" x="213.5" y="196.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="Hvq-iC-1zH"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cattle" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zHI-a1-QLR">
|
||||||
|
<rect key="frame" x="213.5" y="225.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="Eyq-RW-LrO"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Medallions" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GTa-J4-o2r">
|
||||||
|
<rect key="frame" x="213.5" y="254.5" width="100" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="100" id="FBW-a0-FRP"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="🪔🪔🪔🪔🪔🪔🪔🪔🪔🪔☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hxf-cQ-vPf">
|
||||||
|
<rect key="frame" x="321.5" y="80.5" width="253" height="21"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" secondItem="hxf-cQ-vPf" secondAttribute="height" multiplier="253:21" id="1nl-qc-X8d"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="💧💧💧💧💧💧💧💧💧💧☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sOg-y9-tjU">
|
||||||
|
<rect key="frame" x="321.5" y="109.5" width="253" height="21"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="🌾🌾🌾🌾🌾🌾🌾🌾🌾🌾☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PJO-Z2-s09">
|
||||||
|
<rect key="frame" x="321.5" y="138.5" width="253" height="21"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="🌽🌽🌽🌽🌽🌽🌽🌽🌽🌽☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z71-zT-Rbc">
|
||||||
|
<rect key="frame" x="321.5" y="167.5" width="253" height="21"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z4M-gg-ETy">
|
||||||
|
<rect key="frame" x="321.5" y="196.5" width="253" height="21"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="🐂🐂🐂🐂🐂🐂🐂🐂🐂🐂☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6z8-Zk-lAe">
|
||||||
|
<rect key="frame" x="321.5" y="225.5" width="253" height="21"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="☀️☀️☀️☀️☀️☀️☀️☀️☀️☀️" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Cu5-bm-nOx">
|
||||||
|
<rect key="frame" x="321.5" y="254.5" width="253" height="21"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2fg-V2-IcO">
|
||||||
|
<rect key="frame" x="60" y="308.5" width="776" height="35.5"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<buttonConfiguration key="configuration" style="plain" title="End Turn">
|
||||||
|
<fontDescription key="titleFontDescription" type="system" pointSize="18"/>
|
||||||
|
</buttonConfiguration>
|
||||||
|
<connections>
|
||||||
|
<action selector="EndTurn:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Utb-Hp-zFk"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Player Name" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="igF-vj-z2T">
|
||||||
|
<rect key="frame" x="60" y="20" width="776" height="31.5"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="26"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="PJO-Z2-s09" firstAttribute="top" secondItem="sOg-y9-tjU" secondAttribute="bottom" constant="8" symbolic="YES" id="03x-Fb-UaZ"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="leading" secondItem="ibS-2f-qzP" secondAttribute="trailing" constant="8" symbolic="YES" id="0ZO-Ql-WQL"/>
|
||||||
|
<constraint firstItem="6z8-Zk-lAe" firstAttribute="top" secondItem="zHI-a1-QLR" secondAttribute="top" id="1gr-Yy-F5d"/>
|
||||||
|
<constraint firstItem="igF-vj-z2T" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="20" id="2NK-Kg-DZc"/>
|
||||||
|
<constraint firstItem="hxf-cQ-vPf" firstAttribute="top" secondItem="Jc1-hh-J2g" secondAttribute="top" id="2dm-DN-Tmc"/>
|
||||||
|
<constraint firstItem="GTa-J4-o2r" firstAttribute="top" secondItem="zHI-a1-QLR" secondAttribute="bottom" constant="8" symbolic="YES" id="46Z-po-Ijd"/>
|
||||||
|
<constraint firstItem="6z8-Zk-lAe" firstAttribute="bottom" secondItem="zHI-a1-QLR" secondAttribute="bottom" id="4Zc-Xb-ZUi"/>
|
||||||
|
<constraint firstItem="GTa-J4-o2r" firstAttribute="trailing" secondItem="Jc1-hh-J2g" secondAttribute="trailing" id="4jv-oj-ETw"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="top" secondItem="ibS-2f-qzP" secondAttribute="top" id="5Aq-xe-DZa"/>
|
||||||
|
<constraint firstItem="x7O-gB-efD" firstAttribute="trailing" secondItem="Jc1-hh-J2g" secondAttribute="trailing" id="6PE-gC-ezo"/>
|
||||||
|
<constraint firstItem="ibS-2f-qzP" firstAttribute="trailing" secondItem="Jc1-hh-J2g" secondAttribute="trailing" id="7MS-Jw-t95"/>
|
||||||
|
<constraint firstItem="PJO-Z2-s09" firstAttribute="leading" secondItem="jQV-KZ-vDo" secondAttribute="trailing" constant="8" symbolic="YES" id="7Zl-Wg-OYk"/>
|
||||||
|
<constraint firstItem="hxf-cQ-vPf" firstAttribute="leading" secondItem="Jc1-hh-J2g" secondAttribute="trailing" constant="8" symbolic="YES" id="8Iz-Q6-ZZO"/>
|
||||||
|
<constraint firstItem="sOg-y9-tjU" firstAttribute="trailing" secondItem="hxf-cQ-vPf" secondAttribute="trailing" id="8mA-dZ-uea"/>
|
||||||
|
<constraint firstItem="jQV-KZ-vDo" firstAttribute="trailing" secondItem="Jc1-hh-J2g" secondAttribute="trailing" id="B1x-uP-5A4"/>
|
||||||
|
<constraint firstItem="2fg-V2-IcO" firstAttribute="leading" secondItem="igF-vj-z2T" secondAttribute="leading" id="BmS-xS-mrB"/>
|
||||||
|
<constraint firstItem="2fg-V2-IcO" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="16" id="DHc-c6-Yn2"/>
|
||||||
|
<constraint firstItem="PJO-Z2-s09" firstAttribute="top" secondItem="jQV-KZ-vDo" secondAttribute="top" id="Dxz-eE-gLC"/>
|
||||||
|
<constraint firstItem="z71-zT-Rbc" firstAttribute="top" secondItem="x7O-gB-efD" secondAttribute="top" id="EXC-BR-nQy"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="top" secondItem="z71-zT-Rbc" secondAttribute="bottom" constant="8" symbolic="YES" id="G5G-dk-keh"/>
|
||||||
|
<constraint firstItem="sOg-y9-tjU" firstAttribute="leading" secondItem="QpL-0D-xz4" secondAttribute="trailing" constant="8" symbolic="YES" id="GXZ-gh-jHz"/>
|
||||||
|
<constraint firstItem="hxf-cQ-vPf" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="IU0-dr-UzL"/>
|
||||||
|
<constraint firstItem="z71-zT-Rbc" firstAttribute="trailing" secondItem="hxf-cQ-vPf" secondAttribute="trailing" id="J7H-lD-26D"/>
|
||||||
|
<constraint firstItem="z71-zT-Rbc" firstAttribute="bottom" secondItem="x7O-gB-efD" secondAttribute="bottom" id="JBC-2e-JIA"/>
|
||||||
|
<constraint firstItem="jQV-KZ-vDo" firstAttribute="top" secondItem="QpL-0D-xz4" secondAttribute="bottom" constant="8" symbolic="YES" id="ME9-9C-r02"/>
|
||||||
|
<constraint firstItem="ibS-2f-qzP" firstAttribute="top" secondItem="x7O-gB-efD" secondAttribute="bottom" constant="8" symbolic="YES" id="MPm-m5-gr4"/>
|
||||||
|
<constraint firstItem="PJO-Z2-s09" firstAttribute="leading" secondItem="hxf-cQ-vPf" secondAttribute="leading" id="NAy-K6-i4s"/>
|
||||||
|
<constraint firstItem="sOg-y9-tjU" firstAttribute="leading" secondItem="hxf-cQ-vPf" secondAttribute="leading" id="NKW-ha-WPl"/>
|
||||||
|
<constraint firstItem="sOg-y9-tjU" firstAttribute="bottom" secondItem="QpL-0D-xz4" secondAttribute="bottom" id="NN6-Mb-ALl"/>
|
||||||
|
<constraint firstItem="6z8-Zk-lAe" firstAttribute="leading" secondItem="zHI-a1-QLR" secondAttribute="trailing" constant="8" symbolic="YES" id="PId-Go-fbY"/>
|
||||||
|
<constraint firstItem="6z8-Zk-lAe" firstAttribute="trailing" secondItem="hxf-cQ-vPf" secondAttribute="trailing" id="QG0-nR-Vkq"/>
|
||||||
|
<constraint firstItem="Cu5-bm-nOx" firstAttribute="bottom" secondItem="GTa-J4-o2r" secondAttribute="bottom" id="RVy-Ui-gqf"/>
|
||||||
|
<constraint firstItem="2fg-V2-IcO" firstAttribute="bottom" secondItem="6Tk-OE-BBY" secondAttribute="bottom" id="RoU-g9-J4H"/>
|
||||||
|
<constraint firstItem="PJO-Z2-s09" firstAttribute="bottom" secondItem="jQV-KZ-vDo" secondAttribute="bottom" id="SeF-j6-Ok8"/>
|
||||||
|
<constraint firstItem="6z8-Zk-lAe" firstAttribute="top" secondItem="Z4M-gg-ETy" secondAttribute="bottom" constant="8" symbolic="YES" id="Smq-nA-Ds9"/>
|
||||||
|
<constraint firstItem="QpL-0D-xz4" firstAttribute="top" secondItem="Jc1-hh-J2g" secondAttribute="bottom" constant="8" symbolic="YES" id="StZ-Wq-FmG"/>
|
||||||
|
<constraint firstItem="z71-zT-Rbc" firstAttribute="leading" secondItem="x7O-gB-efD" secondAttribute="trailing" constant="8" symbolic="YES" id="TOx-dC-ZFw"/>
|
||||||
|
<constraint firstItem="sOg-y9-tjU" firstAttribute="top" secondItem="hxf-cQ-vPf" secondAttribute="bottom" constant="8" symbolic="YES" id="UQu-0y-IfA"/>
|
||||||
|
<constraint firstItem="6z8-Zk-lAe" firstAttribute="leading" secondItem="hxf-cQ-vPf" secondAttribute="leading" id="UqN-km-o4H"/>
|
||||||
|
<constraint firstItem="QpL-0D-xz4" firstAttribute="trailing" secondItem="Jc1-hh-J2g" secondAttribute="trailing" id="XRY-Tt-3de"/>
|
||||||
|
<constraint firstItem="zHI-a1-QLR" firstAttribute="top" secondItem="ibS-2f-qzP" secondAttribute="bottom" constant="8" symbolic="YES" id="XRw-OM-4RS"/>
|
||||||
|
<constraint firstItem="hxf-cQ-vPf" firstAttribute="bottom" secondItem="Jc1-hh-J2g" secondAttribute="bottom" id="Zk3-qL-1nC"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="centerY" secondItem="8bC-Xf-vdC" secondAttribute="centerY" id="a9j-3q-xcS"/>
|
||||||
|
<constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="2fg-V2-IcO" secondAttribute="trailing" constant="16" id="bdS-GL-cDm"/>
|
||||||
|
<constraint firstItem="x7O-gB-efD" firstAttribute="top" secondItem="jQV-KZ-vDo" secondAttribute="bottom" constant="8" symbolic="YES" id="dqA-8F-tJR"/>
|
||||||
|
<constraint firstItem="sOg-y9-tjU" firstAttribute="top" secondItem="QpL-0D-xz4" secondAttribute="top" id="fPe-8Z-XQ0"/>
|
||||||
|
<constraint firstItem="Cu5-bm-nOx" firstAttribute="trailing" secondItem="hxf-cQ-vPf" secondAttribute="trailing" id="iuG-lK-Fmf"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="leading" secondItem="hxf-cQ-vPf" secondAttribute="leading" id="kEU-BM-WPJ"/>
|
||||||
|
<constraint firstItem="2fg-V2-IcO" firstAttribute="trailing" secondItem="igF-vj-z2T" secondAttribute="trailing" id="nqR-rr-fQC"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="trailing" secondItem="hxf-cQ-vPf" secondAttribute="trailing" id="oCA-A3-scu"/>
|
||||||
|
<constraint firstItem="Cu5-bm-nOx" firstAttribute="leading" secondItem="hxf-cQ-vPf" secondAttribute="leading" id="pkN-8d-zKy"/>
|
||||||
|
<constraint firstItem="Cu5-bm-nOx" firstAttribute="top" secondItem="GTa-J4-o2r" secondAttribute="top" id="rfb-J7-yhe"/>
|
||||||
|
<constraint firstItem="zHI-a1-QLR" firstAttribute="trailing" secondItem="Jc1-hh-J2g" secondAttribute="trailing" id="sVG-nY-0YZ"/>
|
||||||
|
<constraint firstItem="z71-zT-Rbc" firstAttribute="top" secondItem="PJO-Z2-s09" secondAttribute="bottom" constant="8" symbolic="YES" id="tdU-FG-MeY"/>
|
||||||
|
<constraint firstItem="Cu5-bm-nOx" firstAttribute="top" secondItem="6z8-Zk-lAe" secondAttribute="bottom" constant="8" symbolic="YES" id="u8v-YG-18b"/>
|
||||||
|
<constraint firstItem="PJO-Z2-s09" firstAttribute="trailing" secondItem="hxf-cQ-vPf" secondAttribute="trailing" id="uWu-mQ-gpL"/>
|
||||||
|
<constraint firstItem="Cu5-bm-nOx" firstAttribute="leading" secondItem="GTa-J4-o2r" secondAttribute="trailing" constant="8" symbolic="YES" id="vEE-A7-qkg"/>
|
||||||
|
<constraint firstItem="Z4M-gg-ETy" firstAttribute="bottom" secondItem="ibS-2f-qzP" secondAttribute="bottom" id="xoH-Od-eAM"/>
|
||||||
|
<constraint firstItem="z71-zT-Rbc" firstAttribute="leading" secondItem="hxf-cQ-vPf" secondAttribute="leading" id="zzt-7i-kbY"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<tabBarItem key="tabBarItem" title="Player Board" image="person" catalog="system" id="EZU-v6-2Nk"/>
|
||||||
|
<simulatedTabBarMetrics key="simulatedBottomBarMetrics"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="medallionCount" destination="Cu5-bm-nOx" id="21C-CS-ZpS"/>
|
||||||
|
<outlet property="playerCattleCount" destination="6z8-Zk-lAe" id="LfO-I3-Pl0"/>
|
||||||
|
<outlet property="playerCornCount" destination="z71-zT-Rbc" id="PW7-9I-8GY"/>
|
||||||
|
<outlet property="playerFishCount" destination="Z4M-gg-ETy" id="G1k-2c-SOr"/>
|
||||||
|
<outlet property="playerNameLabel" destination="igF-vj-z2T" id="8Rp-vp-S68"/>
|
||||||
|
<outlet property="playerOilCount" destination="hxf-cQ-vPf" id="Pxk-ci-BYw"/>
|
||||||
|
<outlet property="playerWaterCount" destination="sOg-y9-tjU" id="LHR-9S-8ME"/>
|
||||||
|
<outlet property="playerWheatCount" destination="PJO-Z2-s09" id="4By-of-TYg"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-713.16964285714278" y="108.69565217391305"/>
|
||||||
|
</scene>
|
||||||
|
<!--Game End Controller-->
|
||||||
|
<scene sceneID="l1i-ZT-tcC">
|
||||||
|
<objects>
|
||||||
|
<viewController storyboardIdentifier="GameEndScreen" modalPresentationStyle="fullScreen" id="voc-o0-2VN" customClass="GameEndController" customModule="DevourAndDrought" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="4vM-gu-CXZ">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="(Player) Wins!" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="izI-81-ppP">
|
||||||
|
<rect key="frame" x="60" y="20" width="776" height="39"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="32"/>
|
||||||
|
<nil key="textColor"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<pickerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="P8b-JI-eVC">
|
||||||
|
<rect key="frame" x="60" y="126" width="776" height="162"/>
|
||||||
|
</pickerView>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kMn-7n-C5k">
|
||||||
|
<rect key="frame" x="60" y="350" width="776" height="43"/>
|
||||||
|
<state key="normal" title="Button"/>
|
||||||
|
<buttonConfiguration key="configuration" style="plain" title="Start Game">
|
||||||
|
<fontDescription key="titleFontDescription" type="system" pointSize="24"/>
|
||||||
|
</buttonConfiguration>
|
||||||
|
<connections>
|
||||||
|
<action selector="StartGame:" destination="voc-o0-2VN" eventType="touchUpInside" id="3d9-ob-vYT"/>
|
||||||
|
<segue destination="AEX-uU-vJw" kind="show" id="TZO-zI-xUS"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<viewLayoutGuide key="safeArea" id="xKj-N8-7Gs"/>
|
||||||
|
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="izI-81-ppP" firstAttribute="top" secondItem="xKj-N8-7Gs" secondAttribute="top" constant="20" id="2f4-Xg-Rmn"/>
|
||||||
|
<constraint firstItem="P8b-JI-eVC" firstAttribute="leading" secondItem="izI-81-ppP" secondAttribute="leading" id="HT9-q9-uJV"/>
|
||||||
|
<constraint firstItem="P8b-JI-eVC" firstAttribute="trailing" secondItem="izI-81-ppP" secondAttribute="trailing" id="Hzd-yc-TX4"/>
|
||||||
|
<constraint firstItem="xKj-N8-7Gs" firstAttribute="bottom" secondItem="kMn-7n-C5k" secondAttribute="bottom" id="K1n-i8-PY0"/>
|
||||||
|
<constraint firstItem="izI-81-ppP" firstAttribute="leading" secondItem="xKj-N8-7Gs" secondAttribute="leading" constant="16" id="Pe8-Kz-kM0"/>
|
||||||
|
<constraint firstItem="kMn-7n-C5k" firstAttribute="trailing" secondItem="izI-81-ppP" secondAttribute="trailing" id="e7v-cV-vQD"/>
|
||||||
|
<constraint firstItem="xKj-N8-7Gs" firstAttribute="trailing" secondItem="izI-81-ppP" secondAttribute="trailing" constant="16" id="frz-Vd-NAI"/>
|
||||||
|
<constraint firstItem="kMn-7n-C5k" firstAttribute="leading" secondItem="izI-81-ppP" secondAttribute="leading" id="pq4-xs-Qli"/>
|
||||||
|
<constraint firstItem="P8b-JI-eVC" firstAttribute="centerY" secondItem="4vM-gu-CXZ" secondAttribute="centerY" id="sZo-sc-152"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<navigationItem key="navigationItem" id="b5v-lV-S9X"/>
|
||||||
|
<connections>
|
||||||
|
<outlet property="playerStats" destination="P8b-JI-eVC" id="Fc0-vs-bPZ"/>
|
||||||
|
<outlet property="winnerLabel" destination="izI-81-ppP" id="zlx-U7-KCq"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="Dws-eG-TtW" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-1465.1785714285713" y="-707.24637681159425"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
<resources>
|
||||||
|
<image name="checkerboard.rectangle" catalog="system" width="128" height="93"/>
|
||||||
|
<image name="person" catalog="system" width="128" height="117"/>
|
||||||
|
<systemColor name="labelColor">
|
||||||
|
<color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
</systemColor>
|
||||||
|
<systemColor name="systemBackgroundColor">
|
||||||
|
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
</systemColor>
|
||||||
|
</resources>
|
||||||
|
</document>
|
333
DevourAndDrought/DevourAndDrought/GameControllers.swift
Normal file
|
@ -0,0 +1,333 @@
|
||||||
|
//
|
||||||
|
// ViewController.swift
|
||||||
|
// DevourAndDrought
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/17/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
class PlayerBoardController: UIViewController {
|
||||||
|
|
||||||
|
@IBOutlet var playerNameLabel: UILabel!
|
||||||
|
|
||||||
|
@IBOutlet var playerOilCount: UILabel!
|
||||||
|
@IBOutlet var playerWaterCount: UILabel!
|
||||||
|
@IBOutlet var playerWheatCount: UILabel!
|
||||||
|
@IBOutlet var playerCornCount: UILabel!
|
||||||
|
@IBOutlet var playerFishCount: UILabel!
|
||||||
|
@IBOutlet var playerCattleCount: UILabel!
|
||||||
|
@IBOutlet var medallionCount: UILabel!
|
||||||
|
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewWillAppear(_ animated: Bool) {
|
||||||
|
|
||||||
|
playerNameLabel.text = GlobalVars.currentPlayer.name
|
||||||
|
playerOilCount.text = String("")
|
||||||
|
playerWaterCount.text = String("")
|
||||||
|
playerWheatCount.text = String("")
|
||||||
|
playerCornCount.text = String("")
|
||||||
|
playerFishCount.text = String("")
|
||||||
|
playerCattleCount.text = String("")
|
||||||
|
medallionCount.text = String("")
|
||||||
|
|
||||||
|
for _ in 0...GlobalVars.currentPlayer.oil {
|
||||||
|
playerOilCount.text?.append("🪔")
|
||||||
|
}
|
||||||
|
for _ in 0...GlobalVars.currentPlayer.water {
|
||||||
|
playerWaterCount.text?.append("💧")
|
||||||
|
}
|
||||||
|
for _ in 0...GlobalVars.currentPlayer.wheat {
|
||||||
|
playerWheatCount.text?.append("🌾")
|
||||||
|
}
|
||||||
|
for _ in 0...GlobalVars.currentPlayer.corn {
|
||||||
|
playerCornCount.text?.append("🌽")
|
||||||
|
}
|
||||||
|
for _ in 0...GlobalVars.currentPlayer.fish {
|
||||||
|
playerFishCount.text?.append("🐟")
|
||||||
|
}
|
||||||
|
for _ in 0...GlobalVars.currentPlayer.cattle {
|
||||||
|
playerCattleCount.text?.append("🐂")
|
||||||
|
}
|
||||||
|
|
||||||
|
playerOilCount.text?.remove(at: (playerOilCount.text?.firstIndex(of: "🪔"))!)
|
||||||
|
playerWaterCount.text?.remove(at: (playerWaterCount.text?.firstIndex(of: "💧"))!)
|
||||||
|
playerWheatCount.text?.remove(at: (playerWheatCount.text?.firstIndex(of: "🌾"))!)
|
||||||
|
playerCornCount.text?.remove(at: (playerCornCount.text?.firstIndex(of: "🌽"))!)
|
||||||
|
playerFishCount.text?.remove(at: (playerFishCount.text?.firstIndex(of: "🐟"))!)
|
||||||
|
playerCattleCount.text?.remove(at: (playerCattleCount.text?.firstIndex(of: "🐂"))!)
|
||||||
|
|
||||||
|
if(GlobalVars.currentPlayer.oil >= 10){
|
||||||
|
playerOilCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
if(GlobalVars.currentPlayer.water >= 10){
|
||||||
|
playerWaterCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
if(GlobalVars.currentPlayer.wheat >= 10){
|
||||||
|
playerWheatCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
if(GlobalVars.currentPlayer.corn >= 10){
|
||||||
|
playerCornCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
if(GlobalVars.currentPlayer.fish >= 10){
|
||||||
|
playerFishCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
if(GlobalVars.currentPlayer.cattle >= 10){
|
||||||
|
playerCattleCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in 0...9 {
|
||||||
|
if ((GlobalVars.currentPlayer.oil >= i)&&(GlobalVars.currentPlayer.water >= i)&&(GlobalVars.currentPlayer.wheat >= i)&&(GlobalVars.currentPlayer.corn >= i)&&(GlobalVars.currentPlayer.fish >= i)&&(GlobalVars.currentPlayer.cattle >= i)){
|
||||||
|
medallionCount.text?.append("☀️")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
medallionCount.text?.remove(at: (medallionCount.text?.firstIndex(of: "☀️"))!)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func EndTurn(_ sender: Any) {
|
||||||
|
|
||||||
|
print("year: \(GlobalVars.currentYear)")
|
||||||
|
print("playerCount: \(GlobalVars.playerCount)")
|
||||||
|
print("activePlayer: \(GlobalVars.activePlayerInt)")
|
||||||
|
|
||||||
|
GlobalVars.players[GlobalVars.activePlayerInt] = GlobalVars.currentPlayer
|
||||||
|
|
||||||
|
if((GlobalVars.currentYear == 6) && ((GlobalVars.activePlayerInt+1) == GlobalVars.playerCount)){
|
||||||
|
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
|
||||||
|
if let viewController = mainStoryboard.instantiateViewController(withIdentifier: "GameEndScreen") as? UIViewController {
|
||||||
|
self.present(viewController, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
|
||||||
|
if let viewController = mainStoryboard.instantiateViewController(withIdentifier: "PlayerStart") as? UIViewController {
|
||||||
|
self.present(viewController, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class GameBoardController: UIViewController {
|
||||||
|
|
||||||
|
@IBOutlet var PlayerNameLabel: UILabel!
|
||||||
|
@IBOutlet var LbrPointsLbl: UILabel!
|
||||||
|
|
||||||
|
@IBOutlet var ResourceSlot1: UIButton!
|
||||||
|
@IBOutlet var ResourceSlot2: UIButton!
|
||||||
|
@IBOutlet var ResourceSlot3: UIButton!
|
||||||
|
@IBOutlet var ResourceSlot4: UIButton!
|
||||||
|
@IBOutlet var ResourceSlot5: UIButton!
|
||||||
|
@IBOutlet var ResourceSlot6: UIButton!
|
||||||
|
@IBOutlet var ResourceSlot7: UIButton!
|
||||||
|
|
||||||
|
@IBOutlet var AllResourceSlots : [UIButton]!
|
||||||
|
|
||||||
|
//let buttonList:[UIButton] = [ResourceSlot1,ResourceSlot2,ResourceSlot3,ResourceSlot4,ResourceSlot5,ResourceSlot6,ResourceSlot7]
|
||||||
|
|
||||||
|
var resourceList:[resource] = []
|
||||||
|
//var resourceSlots:[resource] = []
|
||||||
|
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
|
||||||
|
let resourceNames:[String] = ["Oil\n🪔","Water\n💧","Wheat\n🌾","Corn\n🌽","Fish\n🐟","Cattle\n🐂"]
|
||||||
|
let resourceCosts:[Int] = [1,2,3,4,5,6]
|
||||||
|
|
||||||
|
for i in 0...5 {
|
||||||
|
let createResource = resource()
|
||||||
|
createResource.name = resourceNames[i]
|
||||||
|
createResource.cost = resourceCosts[i]
|
||||||
|
resourceList.append(createResource)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (GlobalVars.resourceSlots.count == 0){
|
||||||
|
for y in 0...6 {
|
||||||
|
let createSlot = resourceList.randomElement()
|
||||||
|
print(createSlot?.name)
|
||||||
|
print(createSlot?.cost)
|
||||||
|
/*if(y == GlobalVars.currentYear){
|
||||||
|
createSlot?.cost = createSlot!.cost - 1
|
||||||
|
}*/
|
||||||
|
GlobalVars.resourceSlots.append(createSlot!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//MARK: TODO: add cost after discount has been applied
|
||||||
|
for (index,item) in AllResourceSlots.enumerated() {
|
||||||
|
print(index,item)
|
||||||
|
//item.setTitle("\(GlobalVars.resourceSlots[index].name)", for: .normal)
|
||||||
|
//item.setTitle("\(GlobalVars.resourceSlots[index].name)\n/*\(GlobalVars.resourceSlots[index].cost)", for: .normal)
|
||||||
|
item.titleLabel?.numberOfLines = 0
|
||||||
|
item.titleLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
|
||||||
|
item.titleLabel?.textAlignment = NSTextAlignment.center
|
||||||
|
//item.layer.shadowPath = UIBezierPath(rect: item.layer.bounds).cgPath
|
||||||
|
item.layer.shadowColor = UIColor.black.cgColor
|
||||||
|
item.layer.shadowRadius = 13.0
|
||||||
|
item.layer.shadowOpacity = 0
|
||||||
|
if(GlobalVars.currentYear == index){
|
||||||
|
item.layer.borderColor = UIColor.green.cgColor
|
||||||
|
item.layer.borderWidth = 5
|
||||||
|
}
|
||||||
|
if(GlobalVars.resourceSlots[GlobalVars.currentYear].name == GlobalVars.resourceSlots[index].name){
|
||||||
|
item.setTitle("\(GlobalVars.resourceSlots[index].name)\n\((GlobalVars.resourceSlots[index].cost - 1))", for: .normal)
|
||||||
|
} else {
|
||||||
|
item.setTitle("\(GlobalVars.resourceSlots[index].name)\n\(GlobalVars.resourceSlots[index].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewWillAppear(_ animated: Bool) {
|
||||||
|
PlayerNameLabel.text = GlobalVars.players[GlobalVars.activePlayerInt].name
|
||||||
|
LbrPointsLbl.text = "Labor Points: \(GlobalVars.currentPlayer.laborpoints)"
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
@IBAction func ResourceSlotOne(_ sender: Any) {
|
||||||
|
ResourceSlot1.setTitle("\(resourceSlots[0].name)\n\(resourceSlots[0].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func ResourceSlotTwo(_ sender: Any) {
|
||||||
|
ResourceSlot2.setTitle("\(resourceSlots[1].name)\n\(resourceSlots[1].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func ResourceSlotThree(_ sender: Any) {
|
||||||
|
ResourceSlot3.setTitle("\(resourceSlots[2].name)\n\(resourceSlots[2].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func ResourceSlotFour(_ sender: Any) {
|
||||||
|
ResourceSlot4.setTitle("\(resourceSlots[3].name)\n\(resourceSlots[3].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func ResourceSlotFive(_ sender: Any) {
|
||||||
|
ResourceSlot5.setTitle("\(resourceSlots[4].name)\n\(resourceSlots[4].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func ResourceSlotSix(_ sender: Any) {
|
||||||
|
ResourceSlot6.setTitle("\(resourceSlots[5].name)\n\(resourceSlots[5].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func ResourceSlotSeven(_ sender: UIButton) {
|
||||||
|
ResourceSlot7.setTitle("\(resourceSlots[6].name)\n\(resourceSlots[6].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
@IBAction func boxTouched(_ sender: UIButton) {
|
||||||
|
let index = AllResourceSlots.index(of: sender)!
|
||||||
|
if !sender.isSelected{
|
||||||
|
for (i, item) in GlobalVars.resourceSlots.enumerated() {
|
||||||
|
//print(i,item)
|
||||||
|
|
||||||
|
AllResourceSlots[i].isSelected = false
|
||||||
|
AllResourceSlots[i].layer.shadowOpacity = 0
|
||||||
|
if item.name == GlobalVars.resourceSlots[index].name {
|
||||||
|
AllResourceSlots[i].isSelected = true
|
||||||
|
AllResourceSlots[i].layer.shadowOpacity = 0.75
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(AllResourceSlots[GlobalVars.currentYear].isSelected){
|
||||||
|
if((GlobalVars.currentPlayer.laborpoints - (GlobalVars.resourceSlots[index].cost - 1)) >= 0){
|
||||||
|
GlobalVars.currentPlayer.laborpoints = GlobalVars.currentPlayer.laborpoints - (GlobalVars.resourceSlots[index].cost - 1)
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if((GlobalVars.currentPlayer.laborpoints - GlobalVars.resourceSlots[index].cost) >= 0){
|
||||||
|
GlobalVars.currentPlayer.laborpoints = GlobalVars.currentPlayer.laborpoints - GlobalVars.resourceSlots[index].cost
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print("PURCHASED!!!")
|
||||||
|
for (i, item) in GlobalVars.resourceSlots.enumerated() {
|
||||||
|
if AllResourceSlots[i].isSelected {
|
||||||
|
addToInventory(name: GlobalVars.resourceSlots[i].name)
|
||||||
|
print("resource name: \(GlobalVars.resourceSlots[i].name)")
|
||||||
|
GlobalVars.resourceSlots[i] = resourceList.randomElement()!
|
||||||
|
/*AllResourceSlots[i].setTitle("\(GlobalVars.resourceSlots[i].name)\n\(GlobalVars.resourceSlots[i].cost)", for: .normal)
|
||||||
|
if(GlobalVars.resourceSlots[GlobalVars.currentYear].name == GlobalVars.resourceSlots[i].name){
|
||||||
|
AllResourceSlots[i].setTitle("\(GlobalVars.resourceSlots[i].name)\n\((GlobalVars.resourceSlots[i].cost - 1))", for: .normal)
|
||||||
|
} else {
|
||||||
|
AllResourceSlots[i].setTitle("\(GlobalVars.resourceSlots[i].name)\n\(GlobalVars.resourceSlots[i].cost)", for: .normal)
|
||||||
|
}*/
|
||||||
|
for (index,ii) in AllResourceSlots.enumerated() {
|
||||||
|
if(GlobalVars.resourceSlots[GlobalVars.currentYear].name == GlobalVars.resourceSlots[index].name){
|
||||||
|
ii.setTitle("\(GlobalVars.resourceSlots[index].name)\n\((GlobalVars.resourceSlots[index].cost - 1))", for: .normal)
|
||||||
|
} else {
|
||||||
|
ii.setTitle("\(GlobalVars.resourceSlots[index].name)\n\(GlobalVars.resourceSlots[index].cost)", for: .normal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AllResourceSlots[i].isSelected = false
|
||||||
|
AllResourceSlots[i].layer.shadowOpacity = 0
|
||||||
|
LbrPointsLbl.text = "Labor Points: \(GlobalVars.currentPlayer.laborpoints)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print(GlobalVars.currentPlayer.oil,GlobalVars.currentPlayer.water,GlobalVars.currentPlayer.wheat,GlobalVars.currentPlayer.corn,GlobalVars.currentPlayer.fish,GlobalVars.currentPlayer.cattle)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//MARK: TODO: DONT ALLOW PURCHASE IF NOT ENOUGH LABOR POINTS
|
||||||
|
func addToInventory(name: String){
|
||||||
|
print("adding!")
|
||||||
|
switch(name) {
|
||||||
|
case "Oil\n🪔" :
|
||||||
|
GlobalVars.currentPlayer.oil = GlobalVars.currentPlayer.oil + 1
|
||||||
|
if(GlobalVars.currentPlayer.oil > 10){
|
||||||
|
GlobalVars.currentPlayer.oil = 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Water\n💧" :
|
||||||
|
GlobalVars.currentPlayer.water = GlobalVars.currentPlayer.water + 1
|
||||||
|
if(GlobalVars.currentPlayer.water > 10){
|
||||||
|
GlobalVars.currentPlayer.water = 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Wheat\n🌾" :
|
||||||
|
GlobalVars.currentPlayer.wheat = GlobalVars.currentPlayer.wheat + 1
|
||||||
|
if(GlobalVars.currentPlayer.wheat > 10){
|
||||||
|
GlobalVars.currentPlayer.wheat = 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Corn\n🌽" :
|
||||||
|
GlobalVars.currentPlayer.corn = GlobalVars.currentPlayer.corn + 1
|
||||||
|
if(GlobalVars.currentPlayer.corn > 10){
|
||||||
|
GlobalVars.currentPlayer.corn = 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Fish\n🐟" :
|
||||||
|
GlobalVars.currentPlayer.fish = GlobalVars.currentPlayer.fish + 1
|
||||||
|
if(GlobalVars.currentPlayer.fish > 10){
|
||||||
|
GlobalVars.currentPlayer.fish = 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "Cattle\n🐂" :
|
||||||
|
GlobalVars.currentPlayer.cattle = GlobalVars.currentPlayer.cattle + 1
|
||||||
|
if(GlobalVars.currentPlayer.cattle > 10){
|
||||||
|
GlobalVars.currentPlayer.cattle = 10
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* you can have any number of case statements */
|
||||||
|
default : /* Optional */
|
||||||
|
print("uh oh!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
25
DevourAndDrought/DevourAndDrought/Info.plist
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>UIApplicationSceneManifest</key>
|
||||||
|
<dict>
|
||||||
|
<key>UIApplicationSupportsMultipleScenes</key>
|
||||||
|
<false/>
|
||||||
|
<key>UISceneConfigurations</key>
|
||||||
|
<dict>
|
||||||
|
<key>UIWindowSceneSessionRoleApplication</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>UISceneConfigurationName</key>
|
||||||
|
<string>Default Configuration</string>
|
||||||
|
<key>UISceneDelegateClassName</key>
|
||||||
|
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
|
||||||
|
<key>UISceneStoryboardFile</key>
|
||||||
|
<string>Main</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
52
DevourAndDrought/DevourAndDrought/SceneDelegate.swift
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
//
|
||||||
|
// SceneDelegate.swift
|
||||||
|
// DevourAndDrought
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/17/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||||
|
|
||||||
|
var window: UIWindow?
|
||||||
|
|
||||||
|
|
||||||
|
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
|
||||||
|
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
|
||||||
|
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
|
||||||
|
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
|
||||||
|
guard let _ = (scene as? UIWindowScene) else { return }
|
||||||
|
}
|
||||||
|
|
||||||
|
func sceneDidDisconnect(_ scene: UIScene) {
|
||||||
|
// Called as the scene is being released by the system.
|
||||||
|
// This occurs shortly after the scene enters the background, or when its session is discarded.
|
||||||
|
// Release any resources associated with this scene that can be re-created the next time the scene connects.
|
||||||
|
// The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
|
||||||
|
}
|
||||||
|
|
||||||
|
func sceneDidBecomeActive(_ scene: UIScene) {
|
||||||
|
// Called when the scene has moved from an inactive state to an active state.
|
||||||
|
// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
|
||||||
|
}
|
||||||
|
|
||||||
|
func sceneWillResignActive(_ scene: UIScene) {
|
||||||
|
// Called when the scene will move from an active state to an inactive state.
|
||||||
|
// This may occur due to temporary interruptions (ex. an incoming phone call).
|
||||||
|
}
|
||||||
|
|
||||||
|
func sceneWillEnterForeground(_ scene: UIScene) {
|
||||||
|
// Called as the scene transitions from the background to the foreground.
|
||||||
|
// Use this method to undo the changes made on entering the background.
|
||||||
|
}
|
||||||
|
|
||||||
|
func sceneDidEnterBackground(_ scene: UIScene) {
|
||||||
|
// Called as the scene transitions from the foreground to the background.
|
||||||
|
// Use this method to save data, release shared resources, and store enough scene-specific state information
|
||||||
|
// to restore the scene back to its current state.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
337
DevourAndDrought/DevourAndDrought/SetupControllers.swift
Normal file
|
@ -0,0 +1,337 @@
|
||||||
|
//
|
||||||
|
// SetupControllers.swift
|
||||||
|
// DevourAndDrought
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/20/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
class StartController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
|
||||||
|
func numberOfComponents(in pickerView: UIPickerView) -> Int {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
|
||||||
|
return 3
|
||||||
|
}
|
||||||
|
|
||||||
|
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
|
||||||
|
return String(row+2) + " Players"
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBOutlet var playerCountPicker: UIPickerView!
|
||||||
|
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
playerCountPicker.delegate = self
|
||||||
|
playerCountPicker.dataSource = self
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewDidAppear(_ animated: Bool) {
|
||||||
|
GlobalVars.playerCount = 2
|
||||||
|
GlobalVars.activePlayerInt = 0
|
||||||
|
GlobalVars.currentYear = -1
|
||||||
|
GlobalVars.players = []
|
||||||
|
GlobalVars.currentPlayer = player()
|
||||||
|
GlobalVars.resourceSlots = []
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func StartGame(_ sender: Any) {
|
||||||
|
GlobalVars.playerCount = playerCountPicker.selectedRow(inComponent: 0) + 2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class NamesController: UIViewController {
|
||||||
|
|
||||||
|
@IBOutlet var PlayerName: UILabel!
|
||||||
|
|
||||||
|
@IBOutlet var PlayerNameField: UITextField!
|
||||||
|
|
||||||
|
//var currentPlayerInt = 0
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewDidAppear(_ animated: Bool) {
|
||||||
|
//currentPlayerInt = 0
|
||||||
|
PlayerNameField.becomeFirstResponder()
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func PlayerNextBtn(_ sender: Any) {
|
||||||
|
let createNewPlayer:player = player()
|
||||||
|
createNewPlayer.name = PlayerNameField.text ?? "Player \(GlobalVars.activePlayerInt+1)"
|
||||||
|
GlobalVars.players.append(createNewPlayer)
|
||||||
|
GlobalVars.activePlayerInt = GlobalVars.activePlayerInt+1
|
||||||
|
if (GlobalVars.activePlayerInt == GlobalVars.playerCount) {
|
||||||
|
print("all players named!")
|
||||||
|
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
|
||||||
|
if let viewController = mainStoryboard.instantiateViewController(withIdentifier: "PlayerStart") as? UIViewController {
|
||||||
|
self.present(viewController, animated: true, completion: nil)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
PlayerName.text = "Player \(GlobalVars.activePlayerInt+1) Name:"
|
||||||
|
PlayerNameField.text = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class PlayerStartController: UIViewController {
|
||||||
|
|
||||||
|
@IBOutlet var playerNameLabel: UILabel!
|
||||||
|
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
|
||||||
|
if (GlobalVars.activePlayerInt < GlobalVars.playerCount-1) {
|
||||||
|
GlobalVars.activePlayerInt = GlobalVars.activePlayerInt + 1
|
||||||
|
|
||||||
|
} else {
|
||||||
|
GlobalVars.activePlayerInt = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
print("player: \(GlobalVars.activePlayerInt)")
|
||||||
|
|
||||||
|
GlobalVars.currentPlayer = GlobalVars.players[GlobalVars.activePlayerInt]
|
||||||
|
|
||||||
|
|
||||||
|
if(GlobalVars.activePlayerInt == 0){ //NEW YEAR
|
||||||
|
GlobalVars.newYear()
|
||||||
|
}
|
||||||
|
|
||||||
|
playerNameLabel.text = GlobalVars.currentPlayer.name
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func BeginTurnButton(_ sender: Any) {
|
||||||
|
|
||||||
|
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
|
||||||
|
if let viewController = mainStoryboard.instantiateViewController(withIdentifier: "GameView") as? UIViewController {
|
||||||
|
self.present(viewController, animated: false, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GameEndController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
|
||||||
|
func numberOfComponents(in pickerView: UIPickerView) -> Int {
|
||||||
|
return GlobalVars.playerCount
|
||||||
|
}
|
||||||
|
|
||||||
|
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
|
||||||
|
return 8
|
||||||
|
}
|
||||||
|
|
||||||
|
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
|
||||||
|
var printString:String = ""
|
||||||
|
switch(row) {
|
||||||
|
case 0 :
|
||||||
|
printString = GlobalVars.players[component].name
|
||||||
|
break;
|
||||||
|
case 1 :
|
||||||
|
printString = "☀️ \(GlobalVars.players[component].medallions)"
|
||||||
|
break;
|
||||||
|
case 2 :
|
||||||
|
printString = "🪔 \(GlobalVars.players[component].oil)"
|
||||||
|
break;
|
||||||
|
case 3 :
|
||||||
|
printString = "💧 \(GlobalVars.players[component].water)"
|
||||||
|
break;
|
||||||
|
case 4 :
|
||||||
|
printString = "🌾 \(GlobalVars.players[component].wheat)"
|
||||||
|
break;
|
||||||
|
case 5 :
|
||||||
|
printString = "🌽 \(GlobalVars.players[component].corn)"
|
||||||
|
break;
|
||||||
|
case 6 :
|
||||||
|
printString = "🐟 \(GlobalVars.players[component].fish)"
|
||||||
|
break;
|
||||||
|
case 7 :
|
||||||
|
printString = "🐂 \(GlobalVars.players[component].cattle)"
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* you can have any number of case statements */
|
||||||
|
default : /* Optional */
|
||||||
|
printString = "Error!"
|
||||||
|
}
|
||||||
|
|
||||||
|
return printString
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBOutlet var playerStats: UIPickerView!
|
||||||
|
@IBOutlet var winnerLabel: UILabel!
|
||||||
|
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do any additional setup after loading the view.
|
||||||
|
for p in GlobalVars.players{
|
||||||
|
|
||||||
|
|
||||||
|
print("Oil Count \(p.name): \(p.oil)")
|
||||||
|
if(p.oil >= 10){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("oil row complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
print("Water Count \(p.name): \(p.water)")
|
||||||
|
if(p.water >= 10){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("water row complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
print("Wheat Count \(p.name): \(p.wheat)")
|
||||||
|
if(p.wheat >= 10){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("wheat row complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
print("Corn Count \(p.name): \(p.corn)")
|
||||||
|
if(p.corn >= 10){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("corn row complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
print("Fish Count \(p.name): \(p.fish)")
|
||||||
|
if(p.fish >= 10){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("fish row complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
print("Cattle Count \(p.name): \(p.cattle)")
|
||||||
|
if(p.cattle >= 10){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("cattle row complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in 1...10 {
|
||||||
|
if ((p.oil >= i)&&(p.water >= i)&&(p.wheat >= i)&&(p.corn >= i)&&(p.fish >= i)&&(p.cattle >= i)){
|
||||||
|
p.medallions = p.medallions + 1
|
||||||
|
print("column \(i) complete! \(p.medallions) medals")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
playerStats.reloadAllComponents()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//let winnerPlayer = GlobalVars.players.max { a, b in a.medallions < b.medallions }
|
||||||
|
|
||||||
|
var winnerPlayer = player()
|
||||||
|
winnerPlayer.medallions = -1
|
||||||
|
var winnerList:[player] = [winnerPlayer]
|
||||||
|
var oldWinnerList:[player] = []
|
||||||
|
var winnerString:String = ""
|
||||||
|
|
||||||
|
for (index, value) in GlobalVars.players.enumerated() {
|
||||||
|
if (value.medallions > winnerList[0].medallions){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.medallions == winnerList[0].medallions){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
oldWinnerList = winnerList
|
||||||
|
winnerList = [winnerPlayer]
|
||||||
|
for (index, value) in oldWinnerList.enumerated() {
|
||||||
|
if (value.cattle > winnerList[0].cattle){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.cattle == winnerList[0].cattle){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
oldWinnerList = winnerList
|
||||||
|
winnerList = [winnerPlayer]
|
||||||
|
for (index, value) in oldWinnerList.enumerated() {
|
||||||
|
if (value.fish > winnerList[0].fish){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.fish == winnerList[0].fish){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
oldWinnerList = winnerList
|
||||||
|
winnerList = [winnerPlayer]
|
||||||
|
for (index, value) in oldWinnerList.enumerated() {
|
||||||
|
if (value.corn > winnerList[0].corn){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.corn == winnerList[0].corn){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
oldWinnerList = winnerList
|
||||||
|
winnerList = [winnerPlayer]
|
||||||
|
for (index, value) in oldWinnerList.enumerated() {
|
||||||
|
if (value.wheat > winnerList[0].wheat){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.wheat == winnerList[0].wheat){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
oldWinnerList = winnerList
|
||||||
|
winnerList = [winnerPlayer]
|
||||||
|
for (index, value) in oldWinnerList.enumerated() {
|
||||||
|
if (value.water > winnerList[0].water){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.water == winnerList[0].water){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
oldWinnerList = winnerList
|
||||||
|
winnerList = [winnerPlayer]
|
||||||
|
for (index, value) in oldWinnerList.enumerated() {
|
||||||
|
if (value.oil > winnerList[0].oil){
|
||||||
|
winnerList = []
|
||||||
|
winnerList.append(value)
|
||||||
|
} else if (value.oil == winnerList[0].oil){
|
||||||
|
winnerList.append(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(winnerList.count > 1){
|
||||||
|
print("holy shit a tie")
|
||||||
|
winnerString = "It's a tie!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (winnerList.count == 1){
|
||||||
|
winnerString = "\(winnerList[0].name) Wins!"
|
||||||
|
}
|
||||||
|
|
||||||
|
winnerLabel.text = winnerString
|
||||||
|
|
||||||
|
playerStats.delegate = self
|
||||||
|
playerStats.dataSource = self
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func StartGame(_ sender: Any) {
|
||||||
|
print("New game!")
|
||||||
|
//GlobalVars.playerCount = playerCountPicker.selectedRow(inComponent: 0) + 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//MARK: TODO: MULTIPEER CONNECTIVITY?
|
||||||
|
//MARK: TODO: CPU PLAYERS
|
70
DevourAndDrought/DevourAndDrought/SupportingClasses.swift
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
//
|
||||||
|
// SupportingClasses.swift
|
||||||
|
// DevourAndDrought
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/20/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
class resource : Codable {
|
||||||
|
|
||||||
|
var name:String = ""
|
||||||
|
var cost:Int = 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class player : Codable {
|
||||||
|
|
||||||
|
var name:String = ""
|
||||||
|
var laborpoints:Int = 0
|
||||||
|
var oil:Int = 0
|
||||||
|
var water:Int = 0
|
||||||
|
var wheat:Int = 0
|
||||||
|
var corn:Int = 0
|
||||||
|
var fish:Int = 0
|
||||||
|
var cattle:Int = 0
|
||||||
|
var medallions:Int = 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
struct GlobalVars {
|
||||||
|
|
||||||
|
static var playerCount:Int = 2
|
||||||
|
static var activePlayerInt:Int = 0
|
||||||
|
static var currentYear = -1
|
||||||
|
static var players:[player] = []
|
||||||
|
static var currentPlayer:player = player()
|
||||||
|
static var resourceSlots:[resource] = []
|
||||||
|
|
||||||
|
func endTurn() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func nextPlayer() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func gameEnd() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static func newYear() {
|
||||||
|
|
||||||
|
for p in GlobalVars.players {
|
||||||
|
p.laborpoints = p.laborpoints+6
|
||||||
|
if (p.laborpoints > 13){
|
||||||
|
p.laborpoints = 13
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GlobalVars.currentYear = GlobalVars.currentYear + 1
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
//
|
||||||
|
// DevourAndDroughtTests.swift
|
||||||
|
// DevourAndDroughtTests
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/17/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import XCTest
|
||||||
|
@testable import DevourAndDrought
|
||||||
|
|
||||||
|
class DevourAndDroughtTests: XCTestCase {
|
||||||
|
|
||||||
|
override func setUpWithError() throws {
|
||||||
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||||
|
}
|
||||||
|
|
||||||
|
override func tearDownWithError() throws {
|
||||||
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||||
|
}
|
||||||
|
|
||||||
|
func testExample() throws {
|
||||||
|
// This is an example of a functional test case.
|
||||||
|
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||||
|
}
|
||||||
|
|
||||||
|
func testPerformanceExample() throws {
|
||||||
|
// This is an example of a performance test case.
|
||||||
|
self.measure {
|
||||||
|
// Put the code you want to measure the time of here.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
//
|
||||||
|
// DevourAndDroughtUITests.swift
|
||||||
|
// DevourAndDroughtUITests
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/17/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import XCTest
|
||||||
|
|
||||||
|
class DevourAndDroughtUITests: XCTestCase {
|
||||||
|
|
||||||
|
override func setUpWithError() throws {
|
||||||
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||||
|
|
||||||
|
// In UI tests it is usually best to stop immediately when a failure occurs.
|
||||||
|
continueAfterFailure = false
|
||||||
|
|
||||||
|
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
|
||||||
|
}
|
||||||
|
|
||||||
|
override func tearDownWithError() throws {
|
||||||
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||||
|
}
|
||||||
|
|
||||||
|
func testExample() throws {
|
||||||
|
// UI tests must launch the application that they test.
|
||||||
|
let app = XCUIApplication()
|
||||||
|
app.launch()
|
||||||
|
|
||||||
|
// Use recording to get started writing UI tests.
|
||||||
|
// Use XCTAssert and related functions to verify your tests produce the correct results.
|
||||||
|
}
|
||||||
|
|
||||||
|
func testLaunchPerformance() throws {
|
||||||
|
if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) {
|
||||||
|
// This measures how long it takes to launch your application.
|
||||||
|
measure(metrics: [XCTApplicationLaunchMetric()]) {
|
||||||
|
XCUIApplication().launch()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
//
|
||||||
|
// DevourAndDroughtUITestsLaunchTests.swift
|
||||||
|
// DevourAndDroughtUITests
|
||||||
|
//
|
||||||
|
// Created by Micah Gomez on 10/17/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import XCTest
|
||||||
|
|
||||||
|
class DevourAndDroughtUITestsLaunchTests: XCTestCase {
|
||||||
|
|
||||||
|
override class var runsForEachTargetApplicationUIConfiguration: Bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
override func setUpWithError() throws {
|
||||||
|
continueAfterFailure = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func testLaunch() throws {
|
||||||
|
let app = XCUIApplication()
|
||||||
|
app.launch()
|
||||||
|
|
||||||
|
// Insert steps here to perform after app launch but before taking a screenshot,
|
||||||
|
// such as logging into a test account or navigating somewhere in the app
|
||||||
|
|
||||||
|
let attachment = XCTAttachment(screenshot: app.screenshot())
|
||||||
|
attachment.name = "Launch Screen"
|
||||||
|
attachment.lifetime = .keepAlways
|
||||||
|
add(attachment)
|
||||||
|
}
|
||||||
|
}
|