diff --git a/Angels and Demons/.vscode/launch.json b/Angels and Demons/.vscode/launch.json new file mode 100644 index 0000000..8841624 --- /dev/null +++ b/Angels and Demons/.vscode/launch.json @@ -0,0 +1,39 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "Unity Editor", + "type": "unity", + "request": "launch" + }, + { + "name": "Windows Player", + "type": "unity", + "request": "launch" + }, + { + "name": "OSX Player", + "type": "unity", + "request": "launch" + }, + { + "name": "Linux Player", + "type": "unity", + "request": "launch" + }, + { + "name": "iOS Player", + "type": "unity", + "request": "launch" + }, + { + "name": "Android Player", + "type": "unity", + "request": "launch" + } + ] +} \ No newline at end of file diff --git a/Angels and Demons/.vscode/settings.json b/Angels and Demons/.vscode/settings.json new file mode 100644 index 0000000..4edd970 --- /dev/null +++ b/Angels and Demons/.vscode/settings.json @@ -0,0 +1,56 @@ +{ + "files.exclude": + { + "**/.DS_Store":true, + "**/.git":true, + "**/.gitignore":true, + "**/.gitmodules":true, + "**/*.booproj":true, + "**/*.pidb":true, + "**/*.suo":true, + "**/*.user":true, + "**/*.userprefs":true, + "**/*.unityproj":true, + "**/*.dll":true, + "**/*.exe":true, + "**/*.pdf":true, + "**/*.mid":true, + "**/*.midi":true, + "**/*.wav":true, + "**/*.gif":true, + "**/*.ico":true, + "**/*.jpg":true, + "**/*.jpeg":true, + "**/*.png":true, + "**/*.psd":true, + "**/*.tga":true, + "**/*.tif":true, + "**/*.tiff":true, + "**/*.3ds":true, + "**/*.3DS":true, + "**/*.fbx":true, + "**/*.FBX":true, + "**/*.lxo":true, + "**/*.LXO":true, + "**/*.ma":true, + "**/*.MA":true, + "**/*.obj":true, + "**/*.OBJ":true, + "**/*.asset":true, + "**/*.cubemap":true, + "**/*.flare":true, + "**/*.mat":true, + "**/*.meta":true, + "**/*.prefab":true, + "**/*.unity":true, + "build/":true, + "Build/":true, + "Library/":true, + "library/":true, + "obj/":true, + "Obj/":true, + "ProjectSettings/":true, + "temp/":true, + "Temp/":true + } +} \ No newline at end of file diff --git a/Angels and Demons/Assets/Editor/GitMergeWindow.cs b/Angels and Demons/Assets/Editor/GitMergeWindow.cs index d200368..2e4ae8e 100644 --- a/Angels and Demons/Assets/Editor/GitMergeWindow.cs +++ b/Angels and Demons/Assets/Editor/GitMergeWindow.cs @@ -1,20 +1,19 @@ -using UnityEngine; +using System.Collections.Generic; using UnityEditor; -using System.Collections.Generic; +using UnityEngine; +using UnityEditor.SceneManagement; -namespace GitMerge -{ +namespace GitMerge { /// /// The window that lets you perform merges on scenes and prefabs. /// - public class GitMergeWindow : EditorWindow - { - private VCS vcs = new VCSGit(); + public class GitMergeWindow : EditorWindow { + private VCS vcs = new VCSGit (); //EditorPrefs keys for settings private const string epAutomerge = "GitMerge_automerge"; private const string epAutofocus = "GitMerge_autofocus"; - + //Settings public static bool automerge { private set; get; } public static bool autofocus { private set; get; } @@ -22,10 +21,8 @@ namespace GitMerge //The MergeManager that has the actual merging logic private MergeManager manager; - public bool mergeInProgress - { - get - { + public bool mergeInProgress { + get { return manager != null; } } @@ -33,83 +30,67 @@ namespace GitMerge private Vector2 scrollPosition = Vector2.zero; private int tab = 0; - - [MenuItem("Window/GitMerge")] - static void OpenEditor() - { - var window = EditorWindow.GetWindow(typeof(GitMergeWindow), false, "GitMerge"); + [MenuItem ("Window/GitMerge")] + static void OpenEditor () { + var window = EditorWindow.GetWindow (typeof (GitMergeWindow), false, "GitMerge"); //In case we're merging and the scene becomes edited, //the shown SerializedProperties should be repainted window.autoRepaintOnSceneChange = true; - window.minSize = new Vector2(500, 100); + window.minSize = new Vector2 (500, 100); } - void OnEnable() - { - LoadSettings(); + void OnEnable () { + LoadSettings (); } - private static void LoadSettings() - { - if(EditorPrefs.HasKey(epAutomerge)) - { - automerge = EditorPrefs.GetBool(epAutomerge); - } - else - { + private static void LoadSettings () { + if (EditorPrefs.HasKey (epAutomerge)) { + automerge = EditorPrefs.GetBool (epAutomerge); + } else { automerge = true; } - if(EditorPrefs.HasKey(epAutofocus)) - { - autofocus = EditorPrefs.GetBool(epAutofocus); - } - else - { + if (EditorPrefs.HasKey (epAutofocus)) { + autofocus = EditorPrefs.GetBool (epAutofocus); + } else { autofocus = true; } } - void OnHierarchyChange() - { + void OnHierarchyChange () { //Repaint if we changed the scene - this.Repaint(); + this.Repaint (); } //Always check for editor state changes, and abort the active merge process if needed - void Update() - { - if(MergeAction.inMergePhase - && (EditorApplication.isCompiling - || EditorApplication.isPlayingOrWillChangePlaymode)) - { - ShowNotification(new GUIContent("Aborting merge due to editor state change.")); - AbortMerge(); + void Update () { + if (MergeAction.inMergePhase && + (EditorApplication.isCompiling || + EditorApplication.isPlayingOrWillChangePlaymode)) { + ShowNotification (new GUIContent ("Aborting merge due to editor state change.")); + AbortMerge (); } } - private void AbortMerge() - { - manager.AbortMerge(); + private void AbortMerge () { + manager.AbortMerge (); manager = null; } - void OnGUI() - { - Resources.DrawLogo(); - DrawTabButtons(); + void OnGUI () { + Resources.DrawLogo (); + DrawTabButtons (); - switch(tab) - { + switch (tab) { case 0: - OnGUISceneTab(); + OnGUISceneTab (); break; case 1: - OnGUIPrefabTab(); + OnGUIPrefabTab (); break; default: - OnGUISettingsTab(); + OnGUISettingsTab (); break; } } @@ -117,91 +98,75 @@ namespace GitMerge /// /// Tab that offers scene merging. /// - private void OnGUISceneTab() - { - GUILayout.Label("Open Scene: " + EditorApplication.currentScene); - if(EditorApplication.currentScene != "" - && !mergeInProgress - && GUILayout.Button("Start merging this scene", GUILayout.Height(80))) - { - var mm = new MergeManagerScene(this, vcs); - if(mm.InitializeMerge()) - { + private void OnGUISceneTab () { + GUILayout.Label ("Open Scene: " + EditorSceneManager.GetActiveScene().ToString()); + if (EditorSceneManager.GetActiveScene().ToString() != "" && + !mergeInProgress && + GUILayout.Button ("Start merging this scene", GUILayout.Height (80))) { + var mm = new MergeManagerScene (this, vcs); + if (mm.InitializeMerge ()) { manager = mm; } } - DisplayMergeProcess(); + DisplayMergeProcess (); } /// /// Tab that offers prefab merging. /// - private void OnGUIPrefabTab() - { + private void OnGUIPrefabTab () { GameObject prefab; - if(!mergeInProgress) - { - GUILayout.Label("Drag your prefab here to start merging:"); - if(prefab = EditorGUILayout.ObjectField(null, typeof(GameObject), false, GUILayout.Height(60)) as GameObject) - { - var mm = new MergeManagerPrefab(this, vcs); - if(mm.InitializeMerge(prefab)) - { + if (!mergeInProgress) { + GUILayout.Label ("Drag your prefab here to start merging:"); + if (prefab = EditorGUILayout.ObjectField (null, typeof (GameObject), false, GUILayout.Height (60)) as GameObject) { + var mm = new MergeManagerPrefab (this, vcs); + if (mm.InitializeMerge (prefab)) { manager = mm; } } } - DisplayMergeProcess(); + DisplayMergeProcess (); } /// /// Tab that offers various settings for the tool. /// - private void OnGUISettingsTab() - { - var vcsPath = vcs.exe(); - var vcsPathNew = EditorGUILayout.TextField("Path to git.exe", vcsPath); - if(vcsPath != vcsPathNew) - { - vcs.SetPath(vcsPathNew); + private void OnGUISettingsTab () { + var vcsPath = vcs.exe (); + var vcsPathNew = EditorGUILayout.TextField ("Path to git.exe", vcsPath); + if (vcsPath != vcsPathNew) { + vcs.SetPath (vcsPathNew); } - var amNew = EditorGUILayout.Toggle("Automerge", automerge); - if(automerge != amNew) - { + var amNew = EditorGUILayout.Toggle ("Automerge", automerge); + if (automerge != amNew) { automerge = amNew; - EditorPrefs.SetBool(epAutomerge, automerge); + EditorPrefs.SetBool (epAutomerge, automerge); } - GUILayout.Label("(Automerge new/deleted GameObjects/Components upon merge start)"); + GUILayout.Label ("(Automerge new/deleted GameObjects/Components upon merge start)"); - var afNew = EditorGUILayout.Toggle("Auto Highlight", autofocus); - if(autofocus != afNew) - { + var afNew = EditorGUILayout.Toggle ("Auto Highlight", autofocus); + if (autofocus != afNew) { autofocus = afNew; - EditorPrefs.SetBool(epAutofocus, autofocus); + EditorPrefs.SetBool (epAutofocus, autofocus); } - GUILayout.Label("(Highlight GameObjects when applying a MergeAction to it)"); + GUILayout.Label ("(Highlight GameObjects when applying a MergeAction to it)"); } /// /// If no merge is in progress, draws the buttons to switch between tabs. /// Otherwise, draws the "abort merge" button. /// - private void DrawTabButtons() - { - if(!mergeInProgress) - { + private void DrawTabButtons () { + if (!mergeInProgress) { string[] tabs = { "Merge Scene", "Merge Prefab", "Settings" }; - tab = GUI.SelectionGrid(new Rect(72, 36, 300, 22), tab, tabs, 3); - } - else - { - GUI.backgroundColor = new Color(1,0.4f,0.4f,1); - if(GUI.Button(new Rect(72, 36, 300, 22), "Abort merge")) - { - manager.AbortMerge(); + tab = GUI.SelectionGrid (new Rect (72, 36, 300, 22), tab, tabs, 3); + } else { + GUI.backgroundColor = new Color (1, 0.4f, 0.4f, 1); + if (GUI.Button (new Rect (72, 36, 300, 22), "Abort merge")) { + manager.AbortMerge (); manager = null; } GUI.backgroundColor = Color.white; @@ -211,18 +176,15 @@ namespace GitMerge /// /// Displays all MergeActions and the "apply merge" button if a merge is in progress. /// - private void DisplayMergeProcess() - { - if(mergeInProgress) - { - var done = DisplayMergeActions(); - GUILayout.BeginHorizontal(); - if(done && GUILayout.Button("Apply merge")) - { - manager.CompleteMerge(); + private void DisplayMergeProcess () { + if (mergeInProgress) { + var done = DisplayMergeActions (); + GUILayout.BeginHorizontal (); + if (done && GUILayout.Button ("Apply merge")) { + manager.CompleteMerge (); manager = null; } - GUILayout.EndHorizontal(); + GUILayout.EndHorizontal (); } } @@ -230,25 +192,23 @@ namespace GitMerge /// Displays all GameObjectMergeActions. /// /// True, if all MergeActions are flagged as "merged". - private bool DisplayMergeActions() - { - scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true); - GUILayout.BeginVertical(GUILayout.MinWidth(480)); + private bool DisplayMergeActions () { + scrollPosition = GUILayout.BeginScrollView (scrollPosition, false, true); + GUILayout.BeginVertical (GUILayout.MinWidth (480)); var textColor = GUI.skin.label.normal.textColor; GUI.skin.label.normal.textColor = Color.black; var done = true; - foreach(var actions in manager.allMergeActions) - { - actions.OnGUI(); + foreach (var actions in manager.allMergeActions) { + actions.OnGUI (); done = done && actions.merged; } GUI.skin.label.normal.textColor = textColor; - GUILayout.EndVertical(); - GUILayout.EndScrollView(); + GUILayout.EndVertical (); + GUILayout.EndScrollView (); return done; } } diff --git a/Angels and Demons/Assets/Editor/MergeManagerPrefab.cs b/Angels and Demons/Assets/Editor/MergeManagerPrefab.cs index 8b614d5..384811f 100644 --- a/Angels and Demons/Assets/Editor/MergeManagerPrefab.cs +++ b/Angels and Demons/Assets/Editor/MergeManagerPrefab.cs @@ -1,5 +1,6 @@ using UnityEngine; using UnityEditor; +using UnityEditor.SceneManagement; using System.Collections.Generic; namespace GitMerge @@ -21,7 +22,7 @@ namespace GitMerge public bool InitializeMerge(GameObject prefab) { - if(!EditorApplication.SaveCurrentSceneIfUserWantsTo()) + if(!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { return false; } @@ -38,8 +39,8 @@ namespace GitMerge ourPrefab = prefab; //Open a new Scene that will only display the prefab - previouslyOpenedScene = EditorApplication.currentScene; - EditorApplication.NewScene(); + previouslyOpenedScene = EditorSceneManager.GetActiveScene().ToString(); + EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects); //make the new scene empty Object.DestroyImmediate(Camera.main.gameObject); @@ -141,7 +142,7 @@ namespace GitMerge { if(!string.IsNullOrEmpty(previouslyOpenedScene)) { - EditorApplication.OpenScene(previouslyOpenedScene); + EditorSceneManager.OpenScene(previouslyOpenedScene); previouslyOpenedScene = ""; } } diff --git a/Angels and Demons/Assets/Editor/MergeManagerScene.cs b/Angels and Demons/Assets/Editor/MergeManagerScene.cs index 5ebc825..1b0333c 100644 --- a/Angels and Demons/Assets/Editor/MergeManagerScene.cs +++ b/Angels and Demons/Assets/Editor/MergeManagerScene.cs @@ -1,5 +1,6 @@ using UnityEngine; using UnityEditor; +using UnityEditor.SceneManagement; using System.Collections.Generic; namespace GitMerge @@ -17,19 +18,19 @@ namespace GitMerge isMergingScene = true; //Ask if the scene should be saved, because... - if(!EditorApplication.SaveCurrentSceneIfUserWantsTo()) + if(!EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { return false; } //...we are reloading it to prevent objects from not having a scene id. - EditorApplication.OpenScene(EditorApplication.currentScene); + EditorSceneManager.OpenScene(EditorSceneManager.GetActiveScene().ToString()); MergeAction.inMergePhase = false; ObjectDictionaries.Clear(); //checkout "their" version - GetTheirVersionOf(EditorApplication.currentScene); + GetTheirVersionOf(EditorSceneManager.GetActiveScene().ToString()); AssetDatabase.Refresh(); //find all of "our" objects @@ -37,7 +38,7 @@ namespace GitMerge ObjectDictionaries.SetAsOurObjects(ourObjects); //add "their" objects - EditorApplication.OpenSceneAdditive(theirFilename); + EditorSceneManager.OpenScene(theirFilename); //delete scene file AssetDatabase.DeleteAsset(theirFilename); @@ -91,7 +92,7 @@ namespace GitMerge ObjectDictionaries.DestroyTheirObjects(); ObjectDictionaries.Clear(); - EditorApplication.SaveScene(); + EditorSceneManager.SaveOpenScenes(); allMergeActions = null; @@ -112,7 +113,7 @@ namespace GitMerge base.AbortMerge(); //Save scene - EditorApplication.SaveScene(); + EditorSceneManager.SaveOpenScenes(); } } } \ No newline at end of file diff --git a/Angels and Demons/Assets/Materials/Angel.mat b/Angels and Demons/Assets/Materials/Angel.mat new file mode 100644 index 0000000..42c1a14 Binary files /dev/null and b/Angels and Demons/Assets/Materials/Angel.mat differ diff --git a/Angels and Demons/Assets/Materials/Angel.mat.meta b/Angels and Demons/Assets/Materials/Angel.mat.meta new file mode 100644 index 0000000..cc79b97 --- /dev/null +++ b/Angels and Demons/Assets/Materials/Angel.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37962f192a2e24b1ab2b8d25958f2e17 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Materials/Cube.mat b/Angels and Demons/Assets/Materials/Cube.mat index 5b8b066..7b676a6 100644 Binary files a/Angels and Demons/Assets/Materials/Cube.mat and b/Angels and Demons/Assets/Materials/Cube.mat differ diff --git a/Angels and Demons/Assets/Materials/Demon.mat b/Angels and Demons/Assets/Materials/Demon.mat new file mode 100644 index 0000000..49ee5a0 Binary files /dev/null and b/Angels and Demons/Assets/Materials/Demon.mat differ diff --git a/Angels and Demons/Assets/Materials/Demon.mat.meta b/Angels and Demons/Assets/Materials/Demon.mat.meta new file mode 100644 index 0000000..e9bbc33 --- /dev/null +++ b/Angels and Demons/Assets/Materials/Demon.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ddf6409ba9464744b426077d9f8f194 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Materials/New Material.mat b/Angels and Demons/Assets/Materials/New Material.mat new file mode 100644 index 0000000..24f0fb6 Binary files /dev/null and b/Angels and Demons/Assets/Materials/New Material.mat differ diff --git a/Angels and Demons/Assets/Materials/New Material.mat.meta b/Angels and Demons/Assets/Materials/New Material.mat.meta new file mode 100644 index 0000000..ef0f83b --- /dev/null +++ b/Angels and Demons/Assets/Materials/New Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0e5fcafbd13a41df84a38ad88cf5d89 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Scenes/Home.unity.meta b/Angels and Demons/Assets/Prefabs.meta similarity index 67% rename from Angels and Demons/Assets/Scenes/Home.unity.meta rename to Angels and Demons/Assets/Prefabs.meta index b86bc19..15839c2 100644 --- a/Angels and Demons/Assets/Scenes/Home.unity.meta +++ b/Angels and Demons/Assets/Prefabs.meta @@ -1,5 +1,6 @@ fileFormatVersion: 2 -guid: 6f41f0233cb7644e4a83e5f5543ed237 +guid: 5208081e0c9554b408a216e7bbde1f99 +folderAsset: yes DefaultImporter: externalObjects: {} userData: diff --git a/Angels and Demons/Assets/Prefabs/Angel.prefab b/Angels and Demons/Assets/Prefabs/Angel.prefab new file mode 100644 index 0000000..fadd498 Binary files /dev/null and b/Angels and Demons/Assets/Prefabs/Angel.prefab differ diff --git a/Angels and Demons/Assets/Prefabs/Angel.prefab.meta b/Angels and Demons/Assets/Prefabs/Angel.prefab.meta new file mode 100644 index 0000000..0e035aa --- /dev/null +++ b/Angels and Demons/Assets/Prefabs/Angel.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7453ff1d2cbcf4c6483f203ee524077f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Prefabs/Demon.prefab b/Angels and Demons/Assets/Prefabs/Demon.prefab new file mode 100644 index 0000000..dc88fe5 Binary files /dev/null and b/Angels and Demons/Assets/Prefabs/Demon.prefab differ diff --git a/Angels and Demons/Assets/Prefabs/Demon.prefab.meta b/Angels and Demons/Assets/Prefabs/Demon.prefab.meta new file mode 100644 index 0000000..3886878 --- /dev/null +++ b/Angels and Demons/Assets/Prefabs/Demon.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27cf7281b7c8649f4a2f237c6cc0876c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Prefabs/Move Selection.prefab b/Angels and Demons/Assets/Prefabs/Move Selection.prefab new file mode 100644 index 0000000..eee20f4 Binary files /dev/null and b/Angels and Demons/Assets/Prefabs/Move Selection.prefab differ diff --git a/Angels and Demons/Assets/Prefabs/Move Selection.prefab.meta b/Angels and Demons/Assets/Prefabs/Move Selection.prefab.meta new file mode 100644 index 0000000..4c3f490 --- /dev/null +++ b/Angels and Demons/Assets/Prefabs/Move Selection.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10bacab99ba8a424886194f09ac0549f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Prefabs/Piece Space.prefab b/Angels and Demons/Assets/Prefabs/Piece Space.prefab new file mode 100644 index 0000000..e6d4f25 Binary files /dev/null and b/Angels and Demons/Assets/Prefabs/Piece Space.prefab differ diff --git a/Angels and Demons/Assets/Prefabs/Piece Space.prefab.meta b/Angels and Demons/Assets/Prefabs/Piece Space.prefab.meta new file mode 100644 index 0000000..e648d75 --- /dev/null +++ b/Angels and Demons/Assets/Prefabs/Piece Space.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bed2e0f0ee6474bf6ad36acc1d4655df +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Scenes/Home.unity b/Angels and Demons/Assets/Scenes/Home.unity deleted file mode 100644 index 1a8a5e9..0000000 Binary files a/Angels and Demons/Assets/Scenes/Home.unity and /dev/null differ diff --git a/Angels and Demons/Assets/Scenes/Main.unity b/Angels and Demons/Assets/Scenes/Main.unity index 76b22d1..04aa530 100644 Binary files a/Angels and Demons/Assets/Scenes/Main.unity and b/Angels and Demons/Assets/Scenes/Main.unity differ diff --git a/Angels and Demons/Assets/Scripts/BoardManager.cs b/Angels and Demons/Assets/Scripts/BoardManager.cs new file mode 100644 index 0000000..6b2138d --- /dev/null +++ b/Angels and Demons/Assets/Scripts/BoardManager.cs @@ -0,0 +1,443 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + + +public class BoardManager : MonoBehaviour +{ + // Global reference to the canvas' width and height. + private float canvaswidth; + private float canvasheight; + + // Variable to change spacing of the board from the edges of the canvas. + private float canvasspacing = 80f; + public Image board; + + // Board size references. + private float boardwidth; + private float boardheight; + + // Might want to make this part modular in the future. + private float numberofspaces = 11; + + // Spaces for the board need to be spawned and resized based on canvas. + private float spacespacing; + public Button blackspaceasset; + public Transform blackspacetransform; + public Image whitespaceasset; + public Transform whitespacetransform; + + // Image assets for the board spaces. + public Sprite angelimage; + public Image demonimage; + + // Keep references of all the space GameObjects. + private Button[] blackspaces = new Button[61]; + private Image[] whitespaces = new Image[60]; + + // Use this for initialization + void Start () + { + canvasheight = this.GetComponentInParent().rect.height; + canvaswidth = this.GetComponentInParent().rect.width; + boardheight = board.GetComponent().rect.height; + boardwidth = board.GetComponent().rect.width; + spacespacing = ((canvaswidth - canvasspacing)/11f); + SpawnInitialBoard(); + } + + private void UpdateBoardScale() + { + canvasheight = this.GetComponentInParent().rect.height; + canvaswidth = this.GetComponentInParent().rect.width; + + if(canvaswidth > canvasheight) + { + board.rectTransform.sizeDelta = new Vector2(canvasheight - canvasspacing, canvasheight - canvasspacing); + } + else + { + board.rectTransform.sizeDelta = new Vector2(canvaswidth - canvasspacing, canvaswidth - canvasspacing); + } + + boardheight = board.GetComponent().rect.height; + boardwidth = board.GetComponent().rect.width; + + spacespacing = ((boardwidth)/11f); + + UpdatePieceScale(); + } + + private Button SpawnBlackSpace(int i) + { + Button bsbutton; + bsbutton = Instantiate(blackspaceasset, blackspacetransform); + bsbutton.name += "" + i; + bsbutton.onClick.AddListener(delegate{ButtonAction(bsbutton);}); + return bsbutton; + } + + private Image SpawnWhiteSpace() + { + Image wsimage; + wsimage = Instantiate(whitespaceasset, whitespacetransform); + return wsimage; + } + + private void SpawnInitialBoard() + { + for(int i = 0; i < blackspaces.Length; ++i) + { + Button temp; + temp = SpawnBlackSpace(i); + temp.GetComponent().sizeDelta = new Vector2(spacespacing, spacespacing); + + float x = (spacespacing*i*2 + (temp.GetComponent().rect.width / 2f)) % (boardwidth) - ((boardwidth) / 2f); + float y = (boardheight / 2f) - ((temp.GetComponent().rect.height / 2f) + spacespacing*(Mathf.Floor(i/(11f/2f)))); + temp.transform.localPosition = new Vector3(x, y, 0); + + blackspaces[i] = temp; + + if(i < blackspaces.Length - 1) + { + Image tempimage; + tempimage = SpawnWhiteSpace(); + tempimage.GetComponent().sizeDelta = new Vector2(spacespacing, spacespacing); + + x = (spacespacing*i*2 + (tempimage.GetComponent().rect.width / 2f)*3) % (boardwidth) - ((boardwidth) / 2f); + y = (boardheight / 2f) - ((tempimage.GetComponent().rect.height / 2f) + spacespacing*(Mathf.Floor((i + 1)/(11.01f/2f)))); + tempimage.transform.localPosition = new Vector3(x, y, 0); + + whitespaces[i] = tempimage; + } + } + } + + private void UpdatePieceScale() + { + for(int i = 0; i < blackspaces.Length; ++i) + { + Button temp = blackspaces[i]; + temp.GetComponent().sizeDelta = new Vector2(spacespacing, spacespacing); + float x = (spacespacing*i*2 + (temp.GetComponent().rect.width / 2f)) % (boardwidth) - ((boardwidth) / 2f); + float y = (boardheight / 2f) - ((temp.GetComponent().rect.height / 2f) + spacespacing*(Mathf.Floor(i/(11f/2f)))); + temp.transform.localPosition = new Vector3(x, y, 0); + blackspaces[i] = temp; + + if(i < blackspaces.Length - 1) + { + Image tempimage = whitespaces[i]; + tempimage.GetComponent().sizeDelta = new Vector2(spacespacing, spacespacing); + + x = (spacespacing*i*2 + (tempimage.GetComponent().rect.width / 2f)*3) % (boardwidth) - ((boardwidth) / 2f); + y = (boardheight / 2f) - ((tempimage.GetComponent().rect.height / 2f) + spacespacing*(Mathf.Floor((i + 1)/(11.01f/2f)))); + tempimage.transform.localPosition = new Vector3(x, y, 0); + + whitespaces[i] = tempimage; + } + } + } + + // Update is called once per frame + void Update () + { + UpdateBoardScale(); + } + + public void ButtonAction(Button b) + { + int buttonindex = 0; + int.TryParse(b.name.Replace("Move Selection(Clone)", ""), out buttonindex); + + Vector2 boardcoords = ConvertButtonIndex(buttonindex); + + // This is completely incorrect and will most likely need a switch case of some kind in the future. + Debug.Log("Board coordinates: " + boardcoords.x + " " + boardcoords.y); + + ChangeSpaces(boardcoords); + } + + private Vector2 ConvertButtonIndex(int i) + { + Vector2 temp; + temp.x = (i*2)%11; + temp.y = 0; + + switch(i) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + return temp; + case 6: + case 7: + case 8: + case 9: + case 10: + temp.y = 1; + return temp; + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + temp.y = 2; + return temp; + case 17: + case 18: + case 19: + case 20: + case 21: + temp.y = 3; + return temp; + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + temp.y = 4; + return temp; + case 28: + case 29: + case 30: + case 31: + case 32: + temp.y = 5; + return temp; + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + temp.y = 6; + return temp; + case 39: + case 40: + case 41: + case 42: + case 43: + temp.y = 7; + return temp; + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + temp.y = 8; + return temp; + case 50: + case 51: + case 52: + case 53: + case 54: + temp.y = 9; + return temp; + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + temp.y = 10; + return temp; + default: + return temp; + } + } + + private int ConvertImageIndex(Vector2 bc) + { + int i = 0; + + switch(Mathf.RoundToInt(bc.y)) + { + case 0: + i = (Mathf.RoundToInt(bc.x) - 1)/2; + break; + case 1: + i = (Mathf.RoundToInt(bc.x))/2; + i += 5; + break; + case 2: + i = (Mathf.RoundToInt(bc.x) - 1)/2; + i += 11; + break; + case 3: + i = (Mathf.RoundToInt(bc.x))/2; + i += 16; + break; + case 4: + i = (Mathf.RoundToInt(bc.x) - 1)/2; + i += 22; + break; + case 5: + i = (Mathf.RoundToInt(bc.x))/2; + i += 27; + break; + case 6: + i = (Mathf.RoundToInt(bc.x) - 1)/2; + i += 33; + break; + case 7: + i = (Mathf.RoundToInt(bc.x))/2; + i += 38; + break; + case 8: + i = (Mathf.RoundToInt(bc.x) - 1)/2; + i += 44; + break; + case 9: + i = (Mathf.RoundToInt(bc.x))/2; + i += 49; + break; + case 10: + i = (Mathf.RoundToInt(bc.x) - 1)/2; + i += 55; + break; + default: + break; + } + + return i; + } + + private void ChangeSpaces(Vector2 bc) + { + Vector2 tempbc = bc; + int wsi = 0; + + if(bc.x > 0 && bc.x < (numberofspaces - 1)) + { + if(bc.y > 0) + { + Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y - 1) + ); + tempbc = bc; + tempbc.y -= 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + if(bc.y < (numberofspaces - 1)) + { + Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y + 1) + ); + tempbc = bc; + tempbc.y += 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + Debug.Log( + "changing spaces:" + + (bc.x - 1) + " " + (bc.y) + "\t" + + (bc.x + 1) + " " + (bc.y) + ); + tempbc = bc; + + tempbc.x -= 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + + tempbc.x += 2; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + else if(bc.y > 0 && bc.y < (numberofspaces - 1)) + { + if(bc.x == 0) + { + Debug.Log( + "changing space:" + + (bc.x + 1) + " " + (bc.y) + ); + tempbc = bc; + tempbc.x += 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + if(bc.x == (numberofspaces - 1)) + { + Debug.Log( + "changing space:" + + (bc.x - 1) + " " + (bc.y) + ); + tempbc = bc; + tempbc.x -= 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + Debug.Log( + "changing spaces:" + + (bc.x) + " " + (bc.y - 1) + "\t" + + (bc.x) + " " + (bc.y + 1) + ); + tempbc = bc; + + tempbc.y -= 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + + tempbc.y += 2; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + else + { + if(bc.x == 0) + { + Debug.Log( + "changing space:" + + (bc.x + 1) + " " + (bc.y) + ); + tempbc = bc; + tempbc.x += 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + if(bc.x == (numberofspaces - 1)) + { + Debug.Log( + "changing space:" + + (bc.x - 1) + " " + (bc.y) + ); + tempbc = bc; + tempbc.x -= 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + if(bc.y > 0) + { + Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y - 1) + ); + tempbc = bc; + tempbc.y -= 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + if(bc.y < (numberofspaces - 1)) + { + Debug.Log( + "changing space:" + + (bc.x) + " " + (bc.y + 1) + ); + tempbc = bc; + tempbc.y += 1; + wsi = ConvertImageIndex(tempbc); + whitespaces[wsi].sprite = angelimage; + } + } + } +} diff --git a/Angels and Demons/Assets/Scripts/BoardManager.cs.meta b/Angels and Demons/Assets/Scripts/BoardManager.cs.meta new file mode 100644 index 0000000..1be0087 --- /dev/null +++ b/Angels and Demons/Assets/Scripts/BoardManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b4ca8083201141f388e345f2beecffb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Sprites.meta b/Angels and Demons/Assets/Sprites.meta new file mode 100644 index 0000000..ef1f338 --- /dev/null +++ b/Angels and Demons/Assets/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50c0d0a843af248dc8b1be7ac3b4c63e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/Assets/Sprites/gitea-lg.png b/Angels and Demons/Assets/Sprites/gitea-lg.png new file mode 100644 index 0000000..a166822 Binary files /dev/null and b/Angels and Demons/Assets/Sprites/gitea-lg.png differ diff --git a/Angels and Demons/Assets/Sprites/gitea-lg.png.meta b/Angels and Demons/Assets/Sprites/gitea-lg.png.meta new file mode 100644 index 0000000..5c6c7a5 --- /dev/null +++ b/Angels and Demons/Assets/Sprites/gitea-lg.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 80e6f163eb4504e0cbd7e886f3ea4f6d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: b7b8277dba3c0425892944924e2372d0 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Angels and Demons/ProjectSettings/UnityAdsSettings.asset b/Angels and Demons/ProjectSettings/UnityAdsSettings.asset deleted file mode 100644 index 0db06d2..0000000 Binary files a/Angels and Demons/ProjectSettings/UnityAdsSettings.asset and /dev/null differ