aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--td/.idea/.idea.td/.idea/contentModel.xml9
-rw-r--r--td/.idea/.idea.td/.idea/modules.xml8
-rw-r--r--td/.idea/.idea.td/.idea/vcs.xml6
-rw-r--r--td/.idea/.idea.td/.idea/workspace.xml945
-rw-r--r--td/.idea/.idea.td/riderModule.iml14
-rw-r--r--td/Assets/Fonts.meta9
-rw-r--r--td/Assets/Fonts/Anders.ttfbin0 -> 25380 bytes
-rw-r--r--td/Assets/Fonts/Anders.ttf.meta21
-rw-r--r--td/Assets/Fonts/Yikes_medium.ttfbin0 -> 38792 bytes
-rw-r--r--td/Assets/Fonts/Yikes_medium.ttf.meta21
-rw-r--r--td/Assets/Materials/Background.matbin0 -> 5020 bytes
-rw-r--r--td/Assets/Materials/Background.mat.meta9
-rw-r--r--td/Assets/Materials/Enemy Blue.matbin0 -> 5020 bytes
-rw-r--r--td/Assets/Materials/Enemy Blue.mat.meta9
-rw-r--r--td/Assets/Materials/Enemy one.matbin5056 -> 5056 bytes
-rw-r--r--td/Assets/Materials/placementIndicatorDanger.matbin0 -> 5084 bytes
-rw-r--r--td/Assets/Materials/placementIndicatorDanger.mat.meta9
-rw-r--r--td/Assets/Materials/placementIndicatorSuccess.matbin0 -> 5088 bytes
-rw-r--r--td/Assets/Materials/placementIndicatorSuccess.mat.meta9
-rw-r--r--td/Assets/Materials/projectile.matbin0 -> 5020 bytes
-rw-r--r--td/Assets/Materials/projectile.mat.meta9
-rw-r--r--td/Assets/Plugins.meta9
-rw-r--r--td/Assets/Plugins/Editor.meta9
-rw-r--r--td/Assets/Plugins/Editor/JetBrains.meta9
-rw-r--r--td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs1164
-rw-r--r--td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs.meta (renamed from td/Assets/Scripts/PinchZoom.cs.meta)4
-rw-r--r--td/Assets/Prefabs/Castle.prefab (renamed from td/Assets/Prefabs/Path straigth.prefab)bin9096 -> 9164 bytes
-rw-r--r--td/Assets/Prefabs/Castle.prefab.meta9
-rw-r--r--td/Assets/Prefabs/Enemies.meta9
-rw-r--r--td/Assets/Prefabs/Enemies/Blue.prefabbin0 -> 7968 bytes
-rw-r--r--td/Assets/Prefabs/Enemies/Blue.prefab.meta9
-rw-r--r--td/Assets/Prefabs/Enemies/Enemy.prefab (renamed from td/Assets/Prefabs/Enemy.prefab)bin7752 -> 7968 bytes
-rw-r--r--td/Assets/Prefabs/Enemies/Enemy.prefab.meta (renamed from td/Assets/Prefabs/Enemy.prefab.meta)0
-rw-r--r--td/Assets/Prefabs/Towers.meta9
-rw-r--r--td/Assets/Prefabs/Towers/Guy One.prefabbin0 -> 12040 bytes
-rw-r--r--td/Assets/Prefabs/Towers/Guy One.prefab.meta9
-rw-r--r--td/Assets/Prefabs/Towers/projectiles.meta9
-rw-r--r--td/Assets/Prefabs/Towers/projectiles/bullet.prefabbin0 -> 7752 bytes
-rw-r--r--td/Assets/Prefabs/Towers/projectiles/bullet.prefab.meta9
-rw-r--r--td/Assets/Prefabs/UI.meta9
-rw-r--r--td/Assets/Prefabs/UI/msgBoxYesNo.prefabbin0 -> 16912 bytes
-rw-r--r--td/Assets/Prefabs/UI/msgBoxYesNo.prefab.meta9
-rw-r--r--td/Assets/Prefabs/level design.meta9
-rw-r--r--td/Assets/Prefabs/level design/Grass-dirt.prefab (renamed from td/Assets/Prefabs/Grass-dirt.prefab)bin7776 -> 7672 bytes
-rw-r--r--td/Assets/Prefabs/level design/Grass-dirt.prefab.meta (renamed from td/Assets/Prefabs/Grass-dirt.prefab.meta)0
-rw-r--r--td/Assets/Prefabs/level design/Path straigth.prefabbin0 -> 8656 bytes
-rw-r--r--td/Assets/Prefabs/level design/Path straigth.prefab.meta (renamed from td/Assets/Prefabs/Path straigth.prefab.meta)0
-rw-r--r--td/Assets/Prefabs/level design/Path turn.prefab (renamed from td/Assets/Prefabs/Path turn.prefab)bin10392 -> 8972 bytes
-rw-r--r--td/Assets/Prefabs/level design/Path turn.prefab.meta (renamed from td/Assets/Prefabs/Path turn.prefab.meta)0
-rw-r--r--td/Assets/Prefabs/level design/grassPart.prefab (renamed from td/Assets/Prefabs/grassPart.prefab)bin6848 -> 6004 bytes
-rw-r--r--td/Assets/Prefabs/level design/grassPart.prefab.meta (renamed from td/Assets/Prefabs/grassPart.prefab.meta)0
-rw-r--r--td/Assets/Scenes/Level 1.unitybin47656 -> 123228 bytes
-rw-r--r--td/Assets/Scripts/Enemy.cs51
-rw-r--r--td/Assets/Scripts/EnemySpawner.cs27
-rw-r--r--td/Assets/Scripts/PinchZoom.cs144
-rw-r--r--td/Assets/Scripts/Projectile.cs43
-rw-r--r--td/Assets/Scripts/Projectile.cs.meta (renamed from td/Assets/Scripts/EnemySpawner.cs.meta)4
-rw-r--r--td/Assets/Scripts/cameraHandler.cs74
-rw-r--r--td/Assets/Scripts/castle.cs23
-rw-r--r--td/Assets/Scripts/castle.cs.meta12
-rw-r--r--td/Assets/Scripts/developerMode.cs76
-rw-r--r--td/Assets/Scripts/developerMode.cs.meta12
-rw-r--r--td/Assets/Scripts/enableChild.cs12
-rw-r--r--td/Assets/Scripts/enableChild.cs.meta12
-rw-r--r--td/Assets/Scripts/gameStats.cs60
-rw-r--r--td/Assets/Scripts/gameStats.cs.meta12
-rw-r--r--td/Assets/Scripts/mainGUI.cs187
-rw-r--r--td/Assets/Scripts/mainGUI.cs.meta12
-rw-r--r--td/Assets/Scripts/player.cs85
-rw-r--r--td/Assets/Scripts/player.cs.meta12
-rw-r--r--td/Assets/Scripts/tower.cs145
-rw-r--r--td/Assets/Scripts/tower.cs.meta12
-rw-r--r--td/Assets/Scripts/waveSpawner.cs125
-rw-r--r--td/Assets/Scripts/waveSpawner.cs.meta12
-rw-r--r--td/Assets/Textures.meta9
-rw-r--r--td/Assets/Textures/Background.pngbin0 -> 178255 bytes
-rw-r--r--td/Assets/Textures/Background.png.meta92
-rw-r--r--td/Assets/Textures/ColorfulButtons.meta9
-rw-r--r--td/Assets/Textures/ColorfulButtons/Close.pngbin0 -> 30147 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Close.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdrbin0 -> 2410572 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr.meta6
-rw-r--r--td/Assets/Textures/ColorfulButtons/Credits.txt1
-rw-r--r--td/Assets/Textures/ColorfulButtons/Credits.txt.meta6
-rw-r--r--td/Assets/Textures/ColorfulButtons/Divide.pngbin0 -> 26307 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Divide.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Facebook.pngbin0 -> 20878 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Facebook.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/ForwardLeft.pngbin0 -> 26764 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/ForwardLeft.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/ForwardRight.pngbin0 -> 26853 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/ForwardRight.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/GamePad.pngbin0 -> 29690 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/GamePad.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Google.pngbin0 -> 35178 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Google.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Heart.pngbin0 -> 28073 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Heart.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Home.pngbin0 -> 30346 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Home.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Instagram.pngbin0 -> 28379 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Instagram.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Left.pngbin0 -> 26789 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Left.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Menu.pngbin0 -> 30533 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Menu.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Message.pngbin0 -> 27015 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Message.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Minus.pngbin0 -> 21107 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Minus.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Music.pngbin0 -> 27031 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Music.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Pause.pngbin0 -> 22627 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Pause.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Play.pngbin0 -> 25445 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Play.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Plus.pngbin0 -> 21605 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Plus.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/PowerUp.pngbin0 -> 26866 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/PowerUp.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Question.pngbin0 -> 25784 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Question.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Retry.pngbin0 -> 34864 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Retry.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Right.pngbin0 -> 26397 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Right.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Settings.pngbin0 -> 30932 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Settings.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Share.pngbin0 -> 31671 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Share.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Shop.pngbin0 -> 29024 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Shop.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/SoundOff.pngbin0 -> 33348 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/SoundOff.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/SoundOn.pngbin0 -> 36213 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/SoundOn.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Trash.pngbin0 -> 25360 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Trash.png.meta66
-rw-r--r--td/Assets/Textures/ColorfulButtons/Trophy.pngbin0 -> 33368 bytes
-rw-r--r--td/Assets/Textures/ColorfulButtons/Trophy.png.meta66
-rw-r--r--td/Assets/Textures/PSD-Files.meta9
-rw-r--r--td/Assets/Textures/PSD-Files/Backgroundbin0 -> 769016 bytes
-rw-r--r--td/Assets/Textures/PSD-Files/Background.meta8
-rw-r--r--td/ProjectSettings/ProjectSettings.assetbin52178 -> 52238 bytes
-rw-r--r--td/ProjectSettings/QualitySettings.assetbin4976 -> 4976 bytes
-rw-r--r--td/ProjectSettings/TagManager.assetbin4308 -> 4320 bytes
146 files changed, 5333 insertions, 236 deletions
diff --git a/td/.idea/.idea.td/.idea/contentModel.xml b/td/.idea/.idea.td/.idea/contentModel.xml
new file mode 100644
index 0000000..4379302
--- /dev/null
+++ b/td/.idea/.idea.td/.idea/contentModel.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="RiderRiderContentModelStore">
+ <excludedPaths>
+ <Path>Temp</Path>
+ <Path>Library</Path>
+ </excludedPaths>
+ </component>
+</project> \ No newline at end of file
diff --git a/td/.idea/.idea.td/.idea/modules.xml b/td/.idea/.idea.td/.idea/modules.xml
new file mode 100644
index 0000000..471a22f
--- /dev/null
+++ b/td/.idea/.idea.td/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/.idea.td/riderModule.iml" filepath="$PROJECT_DIR$/.idea/.idea.td/riderModule.iml" />
+ </modules>
+ </component>
+</project> \ No newline at end of file
diff --git a/td/.idea/.idea.td/.idea/vcs.xml b/td/.idea/.idea.td/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/td/.idea/.idea.td/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+ </component>
+</project> \ No newline at end of file
diff --git a/td/.idea/.idea.td/.idea/workspace.xml b/td/.idea/.idea.td/.idea/workspace.xml
new file mode 100644
index 0000000..c304f2f
--- /dev/null
+++ b/td/.idea/.idea.td/.idea/workspace.xml
@@ -0,0 +1,945 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ChangeListManager">
+ <list default="true" id="60ebe84b-2a99-4077-bdde-5542cfeedadb" name="Default" comment="">
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Assets/Scenes/Level 1.unity" afterPath="$PROJECT_DIR$/Assets/Scenes/Level 1.unity" />
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.idea.td/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/.idea.td/.idea/workspace.xml" />
+ </list>
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+ <option name="TRACKING_ENABLED" value="true" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="DatabaseView">
+ <option name="SHOW_INTERMEDIATE" value="true" />
+ <option name="GROUP_SCHEMA" value="true" />
+ <option name="GROUP_CONTENTS" value="false" />
+ <option name="SORT_POSITIONED" value="false" />
+ <option name="SHOW_TABLE_DETAILS" value="true" />
+ <option name="SHOW_EMPTY_GROUPS" value="false" />
+ <option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
+ </component>
+ <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+ <component name="FavoritesManager">
+ <favorites_list name="td" />
+ </component>
+ <component name="FileColors">
+ <fileColor scope="Non-Project Files (Material Default)" color="2E3C43" />
+ <fileColor scope="Non-Project Files (Material Darker)" color="323232" />
+ <fileColor scope="Non-Project Files (Material Lighter)" color="eae8e8" />
+ <fileColor scope="Non-Project Files (Material Palenight)" color="2f2e43" />
+ </component>
+ <component name="FileEditorManager">
+ <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+ <file leaf-file-name="Player.cs" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Player.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1029">
+ <caret line="82" column="5" lean-forward="false" selection-start-line="82" selection-start-column="5" selection-end-line="82" selection-end-column="5" />
+ <folding>
+ <marker date="1507664734000" expanded="true" signature="56:1741" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="304:508" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="511:1138" ph="stats" />
+ <marker date="1507664734000" expanded="true" signature="548:584" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="623:662" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="687:723" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="759:795" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="836:872" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="895:923" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="957:1061" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1099:1126" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1186:1388" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1422:1499" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1450:1496" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1529:1589" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1616:1663" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1691:1738" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="MainGui.cs" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/MainGui.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="168">
+ <caret line="11" column="14" lean-forward="false" selection-start-line="11" selection-start-column="14" selection-end-line="11" selection-end-column="14" />
+ <folding>
+ <marker date="1507664902000" expanded="false" signature="6:89" ph="..." />
+ <marker date="1507664902000" expanded="true" signature="128:6849" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="1021:3635" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3674:3784" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3819:4041" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4080:4303" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4340:4399" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4436:4730" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4578:4727" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4771:5022" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5066:5172" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5213:5679" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5297:5484" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5714:5748" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5784:5906" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5943:6047" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5995:6016" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6088:6846" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6212:6323" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6288:6319" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="WaveSpawner.cs" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/WaveSpawner.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1252">
+ <caret line="86" column="1" lean-forward="false" selection-start-line="86" selection-start-column="1" selection-end-line="86" selection-end-column="1" />
+ <folding>
+ <marker date="1507992520000" expanded="false" signature="6:143" ph="..." />
+ <marker date="1507992520000" expanded="true" signature="186:2187" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="615:929" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="641:657" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="683:765" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="972:1096" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1125:1822" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1327:1635" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1462:1557" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1717:1802" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1860:1930" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1980:2076" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="2104:2183" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="EnemySpawner.cs" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/EnemySpawner.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="745">
+ <caret line="45" column="9" lean-forward="false" selection-start-line="45" selection-start-column="9" selection-end-line="45" selection-end-column="9" />
+ <folding>
+ <marker date="1507664979000" expanded="false" signature="6:78" ph="..." />
+ <marker date="1507664979000" expanded="true" signature="122:1415" ph="{...}" />
+ <marker date="1507664979000" expanded="true" signature="125:263" ph="/* This is a class that spawns an enemy with a random interval ... */" />
+ <marker date="1507664979000" expanded="true" signature="646:731" ph="{...}" />
+ <marker date="1507664979000" expanded="true" signature="687:728" ph="{...}" />
+ <marker date="1507664979000" expanded="true" signature="747:836" ph="{...}" />
+ <marker date="1507664979000" expanded="true" signature="854:1413" ph="{...}" />
+ <marker date="1507664979000" expanded="true" signature="969:1409" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="Enemy.cs" pinned="false" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Enemy.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="378">
+ <caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
+ <folding>
+ <marker date="1507665002000" expanded="false" signature="6:52" ph="..." />
+ <marker date="1507665002000" expanded="true" signature="89:1376" ph="{...}" />
+ <marker date="1507665002000" expanded="true" signature="92:214" ph="/* This is a general class that contains an enemy, ... */" />
+ <marker date="1507665002000" expanded="true" signature="745:1371" ph="{...}" />
+ <marker date="1507665002000" expanded="true" signature="940:1060" ph="{...}" />
+ <marker date="1507665002000" expanded="true" signature="1292:1368" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ </leaf>
+ </component>
+ <component name="FindInProjectRecents">
+ <findStrings>
+ <find>toggle</find>
+ </findStrings>
+ </component>
+ <component name="Git.Settings">
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
+ <favorite-branches>
+ <branch-storage>
+ <map>
+ <entry type="REMOTE">
+ <value>
+ <list>
+ <branch-info repo="$PROJECT_DIR$/.." source="origin/GUI" />
+ </list>
+ </value>
+ </entry>
+ </map>
+ </branch-storage>
+ </favorite-branches>
+ </component>
+ <component name="HighlightingSettingsPerFile">
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/Castle.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/Tower.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/MainGui.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/Player.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/EnableChild.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/EnemySpawner.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/Enemy.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/Projectile.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/WaveSpawner.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs" root0="FORCE_HIGHLIGHTING" />
+ <setting file="file://$PROJECT_DIR$/Assets/Scripts/GameStats.cs" root0="FORCE_HIGHLIGHTING" />
+ </component>
+ <component name="IdeDocumentHistory">
+ <option name="CHANGED_PATHS">
+ <list>
+ <option value="$PROJECT_DIR$/Assets/Scripts/castle.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/projectile.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/Projectile.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/tower.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/cameraHandler.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/player.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/GameStats.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/EnemySpawner.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/MainGui.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/Enemy.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/Player.cs" />
+ <option value="$PROJECT_DIR$/Assets/Scripts/WaveSpawner.cs" />
+ </list>
+ </option>
+ </component>
+ <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+ <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+ <component name="JsGulpfileManager">
+ <detection-done>true</detection-done>
+ <sorting>DEFINITION_ORDER</sorting>
+ </component>
+ <component name="ProjectFrameBounds">
+ <option name="width" value="1680" />
+ <option name="height" value="1050" />
+ </component>
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+ <component name="ProjectView">
+ <navigator currentView="SolutionExplorer" proportions="" version="1">
+ <flattenPackages />
+ <showMembers />
+ <showModules />
+ <showLibraryContents />
+ <hideEmptyPackages />
+ <abbreviatePackageNames />
+ <autoscrollToSource />
+ <autoscrollFromSource />
+ <sortByType />
+ <manualOrder />
+ <foldersAlwaysOnTop value="true" />
+ </navigator>
+ <panes>
+ <pane id="Scratches" />
+ <pane id="SolutionExplorer">
+ <subPane>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="td (2 projects)" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="td (2 projects)" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="Assembly-CSharp" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="Assets" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
+ </PATH_ELEMENT>
+ </PATH>
+ <PATH>
+ <PATH_ELEMENT>
+ <option name="myItemId" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="td (2 projects)" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
+ </PATH_ELEMENT>
+ <PATH_ELEMENT>
+ <option name="myItemId" value="Assembly-CSharp" />
+ <option name="myItemType" value="com.jetbrains.rider.projectView.solutionExplorer.SolutionExplorerNodeRider" />
+ </PATH_ELEMENT>
+ </PATH>
+ </subPane>
+ <option name="show-file-system" value="false" />
+ <option name="show-all-items" value="false" />
+ </pane>
+ </panes>
+ </component>
+ <component name="PropertiesComponent">
+ <property name="WebServerToolWindowFactoryState" value="false" />
+ <property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors" />
+ <property name="FullScreen" value="true" />
+ <property name="nodejs_interpreter_path" value="/opt/local/bin/node" />
+ <property name="node.js.path.for.package.stylelint" value="project" />
+ <property name="node.js.detected.package.stylelint" value="true" />
+ <property name="node.js.selected.package.stylelint" value="" />
+ <property name="settings.editor.splitter.proportion" value="0.25636008" />
+ <property name="full.screen.before.presentation.mode" value="true" />
+ <property name="Git.Branch.Popup.ShowAllRemotes" value="true" />
+ </component>
+ <component name="RunDashboard">
+ <option name="ruleStates">
+ <list>
+ <RuleState>
+ <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+ </RuleState>
+ <RuleState>
+ <option name="name" value="StatusDashboardGroupingRule" />
+ </RuleState>
+ </list>
+ </option>
+ </component>
+ <component name="RunManager" selected="Unity Debug.Attach to Unity Editor">
+ <configuration default="true" type="DotNetProject" factoryName=".NET Project">
+ <option name="PROJECT_PATH" value="" />
+ <option name="PROJECT_KIND" value="None" />
+ <option name="PROJECT_TFM" value="" />
+ <option name="EXE_PATH" value="" />
+ <option name="PROGRAM_PARAMETERS" value="" />
+ <option name="WORKING_DIRECTORY" value="" />
+ <option name="USE_MONO" value="0" />
+ <option name="USE_EXTERNAL_CONSOLE" value="0" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest">
+ <node-interpreter value="project" />
+ <working-dir value="" />
+ <envs />
+ <scope-kind value="ALL" />
+ <method />
+ </configuration>
+ <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
+ <config-file value="" />
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
+ <method />
+ </configuration>
+ <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir="">
+ <method />
+ </configuration>
+ <configuration default="true" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug">
+ <method />
+ </configuration>
+ <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
+ <node-interpreter>project</node-interpreter>
+ <node-options />
+ <gulpfile />
+ <tasks />
+ <arguments />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="js.build_tools.npm" factoryName="npm">
+ <command value="run" />
+ <scripts />
+ <node-interpreter value="project" />
+ <envs />
+ <method />
+ </configuration>
+ <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
+ <node-interpreter>project</node-interpreter>
+ <node-options />
+ <working-directory />
+ <pass-parent-env>true</pass-parent-env>
+ <envs />
+ <ui />
+ <extra-mocha-options />
+ <test-kind>DIRECTORY</test-kind>
+ <test-directory />
+ <recursive>false</recursive>
+ <method />
+ </configuration>
+ <configuration default="false" name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" pid="5319">
+ <method />
+ </configuration>
+ <list size="1">
+ <item index="0" class="java.lang.String" itemvalue="Unity Debug.Attach to Unity Editor" />
+ </list>
+ </component>
+ <component name="ShelveChangesManager" show_recycled="false">
+ <option name="remove_strategy" value="false" />
+ </component>
+ <component name="SvnConfiguration">
+ <configuration />
+ </component>
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="60ebe84b-2a99-4077-bdde-5542cfeedadb" name="Default" comment="" />
+ <created>1507402155822</created>
+ <option name="number" value="Default" />
+ <option name="presentableId" value="Default" />
+ <updated>1507402155822</updated>
+ <workItem from="1507402158809" duration="486000" />
+ <workItem from="1507403001494" duration="87000" />
+ <workItem from="1507403169280" duration="124000" />
+ <workItem from="1507403314681" duration="1504000" />
+ <workItem from="1507405035318" duration="5359000" />
+ <workItem from="1507453479306" duration="2188000" />
+ <workItem from="1507456734191" duration="8537000" />
+ <workItem from="1507988744342" duration="4691000" />
+ </task>
+ <servers />
+ </component>
+ <component name="TimeTrackingManager">
+ <option name="totallyTimeSpent" value="22976000" />
+ </component>
+ <component name="TodoView">
+ <todo-panel id="selected-file">
+ <is-autoscroll-to-source value="true" />
+ </todo-panel>
+ <todo-panel id="all">
+ <are-packages-shown value="true" />
+ <is-autoscroll-to-source value="true" />
+ </todo-panel>
+ </component>
+ <component name="ToolWindowManager">
+ <frame x="0" y="0" width="1680" height="1050" extended-state="0" />
+ <layout>
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32857144" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Errors In Solution" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32967034" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.327551" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+ <window_info id="Unit Tests" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32959184" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33673468" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32959184" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
+ <window_info id="NuGet" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32857144" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.17521368" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32967034" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24969475" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ </layout>
+ </component>
+ <component name="TypeScriptGeneratedFilesManager">
+ <option name="processedProjectFiles" value="true" />
+ </component>
+ <component name="Vcs.Log.History.Properties">
+ <option name="COLUMN_ORDER">
+ <list>
+ <option value="0" />
+ <option value="2" />
+ <option value="3" />
+ <option value="1" />
+ </list>
+ </option>
+ </component>
+ <component name="Vcs.Log.Tabs.Properties">
+ <option name="TAB_STATES">
+ <map>
+ <entry key="MAIN">
+ <value>
+ <State>
+ <option name="RECENTLY_FILTERED_USER_GROUPS">
+ <collection />
+ </option>
+ <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
+ <collection />
+ </option>
+ <option name="COLUMN_ORDER">
+ <list>
+ <option value="0" />
+ <option value="1" />
+ <option value="2" />
+ <option value="3" />
+ </list>
+ </option>
+ </State>
+ </value>
+ </entry>
+ </map>
+ </option>
+ </component>
+ <component name="VcsContentAnnotationSettings">
+ <option name="myLimit" value="2678400000" />
+ </component>
+ <component name="XDebuggerManager">
+ <breakpoint-manager />
+ <watches-manager />
+ </component>
+ <component name="editorHistoryManager">
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Player.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1029">
+ <caret line="82" column="5" lean-forward="false" selection-start-line="82" selection-start-column="5" selection-end-line="82" selection-end-column="5" />
+ <folding>
+ <marker date="1507664734000" expanded="true" signature="56:1741" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="304:508" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="511:1138" ph="stats" />
+ <marker date="1507664734000" expanded="true" signature="548:584" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="623:662" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="687:723" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="759:795" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="836:872" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="895:923" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="957:1061" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1099:1126" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1186:1388" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1422:1499" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1450:1496" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1529:1589" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1616:1663" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1691:1738" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/MainGui.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="168">
+ <caret line="11" column="14" lean-forward="false" selection-start-line="11" selection-start-column="14" selection-end-line="11" selection-end-column="14" />
+ <folding>
+ <marker date="1507664902000" expanded="false" signature="6:89" ph="..." />
+ <marker date="1507664902000" expanded="true" signature="128:6849" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="1021:3635" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3674:3784" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3819:4041" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4080:4303" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4340:4399" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4436:4730" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4578:4727" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4771:5022" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5066:5172" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5213:5679" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5297:5484" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5714:5748" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5784:5906" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5943:6047" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5995:6016" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6088:6846" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6212:6323" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6288:6319" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/WaveSpawner.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="567">
+ <caret line="27" column="9" lean-forward="true" selection-start-line="27" selection-start-column="9" selection-end-line="27" selection-end-column="9" />
+ <folding>
+ <marker date="1507992520000" expanded="false" signature="6:143" ph="..." />
+ <marker date="1507992520000" expanded="true" signature="186:2187" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="615:929" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="641:657" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="683:765" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="972:1096" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1125:1822" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1327:1635" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1462:1557" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1717:1802" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1860:1930" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1980:2076" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="2104:2183" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Player.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="609">
+ <caret line="64" column="34" lean-forward="false" selection-start-line="64" selection-start-column="34" selection-end-line="64" selection-end-column="34" />
+ <folding>
+ <marker date="1507664734000" expanded="true" signature="56:1741" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="304:508" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="511:1138" ph="stats" />
+ <marker date="1507664734000" expanded="true" signature="548:584" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="623:662" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="687:723" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="759:795" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="836:872" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="895:923" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="957:1061" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1099:1126" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1186:1388" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1422:1499" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1450:1496" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1529:1589" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1616:1663" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1691:1738" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/MainGui.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="399">
+ <caret line="21" column="0" lean-forward="true" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
+ <folding>
+ <marker date="1507664902000" expanded="false" signature="6:89" ph="..." />
+ <marker date="1507664902000" expanded="true" signature="128:6849" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="1021:3635" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3674:3784" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3819:4041" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4080:4303" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4340:4399" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4436:4730" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4578:4727" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4771:5022" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5066:5172" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5213:5679" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5297:5484" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5714:5748" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5784:5906" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5943:6047" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5995:6016" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6088:6846" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6212:6323" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6288:6319" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/EnemySpawner.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="546">
+ <caret line="28" column="0" lean-forward="false" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Projectile.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="294">
+ <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/MainGui.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="672">
+ <caret line="36" column="73" lean-forward="false" selection-start-line="36" selection-start-column="73" selection-end-line="36" selection-end-column="73" />
+ <folding>
+ <marker date="1507664902000" expanded="false" signature="6:89" ph="..." />
+ <marker date="1507664902000" expanded="true" signature="128:6849" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="1021:3635" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3674:3784" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3819:4041" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4080:4303" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4340:4399" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4436:4730" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4578:4727" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4771:5022" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5066:5172" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5213:5679" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5297:5484" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5714:5748" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5784:5906" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5943:6047" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5995:6016" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6088:6846" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6212:6323" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6288:6319" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/EnableChild.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Tower.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="231">
+ <caret line="11" column="31" lean-forward="false" selection-start-line="11" selection-start-column="31" selection-end-line="11" selection-end-column="31" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Player.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1029">
+ <caret line="51" column="28" lean-forward="false" selection-start-line="51" selection-start-column="28" selection-end-line="51" selection-end-column="28" />
+ <folding>
+ <marker date="1507664734000" expanded="true" signature="56:1741" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="304:508" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="511:1138" ph="stats" />
+ <marker date="1507664734000" expanded="true" signature="548:584" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="623:662" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="687:723" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="759:795" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="836:872" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="895:923" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="957:1061" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1099:1126" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1186:1388" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1422:1499" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1450:1496" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1529:1589" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1616:1663" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1691:1738" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Enemy.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="588">
+ <caret line="29" column="0" lean-forward="false" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Castle.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="105">
+ <caret line="7" column="10" lean-forward="false" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="10" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/GameStats.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="210">
+ <caret line="13" column="32" lean-forward="false" selection-start-line="13" selection-start-column="32" selection-end-line="13" selection-end-column="32" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1560">
+ <caret line="106" column="27" lean-forward="false" selection-start-line="106" selection-start-column="27" selection-end-line="106" selection-end-column="27" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Projectile.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="255">
+ <caret line="17" column="0" lean-forward="false" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Enemy.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="30">
+ <caret line="2" column="17" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="17" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Tower.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1560">
+ <caret line="106" column="47" lean-forward="false" selection-start-line="106" selection-start-column="47" selection-end-line="106" selection-end-column="47" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="798" column="25" lean-forward="false" selection-start-line="798" selection-start-column="25" selection-end-line="798" selection-end-column="25" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/EnableChild.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Castle.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="126">
+ <caret line="8" column="5" lean-forward="false" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Tower.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="712">
+ <caret line="63" column="20" lean-forward="false" selection-start-line="63" selection-start-column="20" selection-end-line="63" selection-end-column="63" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Projectile.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="294">
+ <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/GameStats.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="603">
+ <caret line="40" column="40" lean-forward="false" selection-start-line="40" selection-start-column="40" selection-end-line="40" selection-end-column="40" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/CameraHandler.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="2058">
+ <caret line="98" column="31" lean-forward="true" selection-start-line="98" selection-start-column="31" selection-end-line="98" selection-end-column="31" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/MainGui.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="168">
+ <caret line="11" column="14" lean-forward="false" selection-start-line="11" selection-start-column="14" selection-end-line="11" selection-end-column="14" />
+ <folding>
+ <marker date="1507664902000" expanded="false" signature="6:89" ph="..." />
+ <marker date="1507664902000" expanded="true" signature="128:6849" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="1021:3635" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3674:3784" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="3819:4041" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4080:4303" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4340:4399" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4436:4730" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4578:4727" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="4771:5022" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5066:5172" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5213:5679" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5297:5484" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5714:5748" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5784:5906" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5943:6047" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="5995:6016" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6088:6846" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6212:6323" ph="{...}" />
+ <marker date="1507664902000" expanded="true" signature="6288:6319" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Player.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1029">
+ <caret line="82" column="5" lean-forward="false" selection-start-line="82" selection-start-column="5" selection-end-line="82" selection-end-column="5" />
+ <folding>
+ <marker date="1507664734000" expanded="true" signature="56:1741" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="304:508" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="511:1138" ph="stats" />
+ <marker date="1507664734000" expanded="true" signature="548:584" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="623:662" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="687:723" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="759:795" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="836:872" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="895:923" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="957:1061" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1099:1126" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1186:1388" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1422:1499" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1450:1496" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1529:1589" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1616:1663" ph="{...}" />
+ <marker date="1507664734000" expanded="true" signature="1691:1738" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/.idea/.idea.td/.idea/workspace.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/WaveSpawner.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1252">
+ <caret line="86" column="1" lean-forward="false" selection-start-line="86" selection-start-column="1" selection-end-line="86" selection-end-column="1" />
+ <folding>
+ <marker date="1507992520000" expanded="false" signature="6:143" ph="..." />
+ <marker date="1507992520000" expanded="true" signature="186:2187" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="615:929" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="641:657" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="683:765" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="972:1096" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1125:1822" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1327:1635" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1462:1557" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1717:1802" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1860:1930" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="1980:2076" ph="{...}" />
+ <marker date="1507992520000" expanded="true" signature="2104:2183" ph="{...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/EnemySpawner.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="745">
+ <caret line="45" column="9" lean-forward="false" selection-start-line="45" selection-start-column="9" selection-end-line="45" selection-end-column="9" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/Assets/Scripts/Enemy.cs">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="378">
+ <caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </component>
+ <component name="masterDetails">
+ <states>
+ <state key="ScopeChooserConfigurable.UI">
+ <settings>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ </states>
+ </component>
+</project> \ No newline at end of file
diff --git a/td/.idea/.idea.td/riderModule.iml b/td/.idea/.idea.td/riderModule.iml
new file mode 100644
index 0000000..ce4aad6
--- /dev/null
+++ b/td/.idea/.idea.td/riderModule.iml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="RIDER_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <content url="file://$MODULE_DIR$/../..">
+ <sourceFolder url="file://$MODULE_DIR$/../.." isTestSource="false" />
+ <excludeFolder url="file://$MODULE_DIR$/../../Library" />
+ <excludeFolder url="file://$MODULE_DIR$/../../Temp" />
+ <excludeFolder url="file://$MODULE_DIR$/../../Temp/bin" />
+ <excludeFolder url="file://$MODULE_DIR$/../../obj" />
+ <excludeFolder url="file://$MODULE_DIR$/../../packages" />
+ </content>
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module> \ No newline at end of file
diff --git a/td/Assets/Fonts.meta b/td/Assets/Fonts.meta
new file mode 100644
index 0000000..3ffcd9e
--- /dev/null
+++ b/td/Assets/Fonts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6ffa8b894699a4b62be2238b4c9c7180
+folderAsset: yes
+timeCreated: 1506727606
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Fonts/Anders.ttf b/td/Assets/Fonts/Anders.ttf
new file mode 100644
index 0000000..e0e966b
--- /dev/null
+++ b/td/Assets/Fonts/Anders.ttf
Binary files differ
diff --git a/td/Assets/Fonts/Anders.ttf.meta b/td/Assets/Fonts/Anders.ttf.meta
new file mode 100644
index 0000000..b469692
--- /dev/null
+++ b/td/Assets/Fonts/Anders.ttf.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: 97652ce6089044ac3b826f360478a6ba
+timeCreated: 1506727610
+licenseType: Free
+TrueTypeFontImporter:
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontName: Anders
+ fontNames:
+ - Anders
+ fallbackFontReferences: []
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Fonts/Yikes_medium.ttf b/td/Assets/Fonts/Yikes_medium.ttf
new file mode 100644
index 0000000..39ffa9f
--- /dev/null
+++ b/td/Assets/Fonts/Yikes_medium.ttf
Binary files differ
diff --git a/td/Assets/Fonts/Yikes_medium.ttf.meta b/td/Assets/Fonts/Yikes_medium.ttf.meta
new file mode 100644
index 0000000..ab4537b
--- /dev/null
+++ b/td/Assets/Fonts/Yikes_medium.ttf.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: 32d9c28ddca174f9e86208e6ee40c093
+timeCreated: 1506727616
+licenseType: Free
+TrueTypeFontImporter:
+ serializedVersion: 4
+ fontSize: 16
+ forceTextureCase: -2
+ characterSpacing: 0
+ characterPadding: 1
+ includeFontData: 1
+ fontName: Yikes
+ fontNames:
+ - Yikes
+ fallbackFontReferences: []
+ customCharacters:
+ fontRenderingMode: 0
+ ascentCalculationMode: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Materials/Background.mat b/td/Assets/Materials/Background.mat
new file mode 100644
index 0000000..b73e41d
--- /dev/null
+++ b/td/Assets/Materials/Background.mat
Binary files differ
diff --git a/td/Assets/Materials/Background.mat.meta b/td/Assets/Materials/Background.mat.meta
new file mode 100644
index 0000000..ffd6ac0
--- /dev/null
+++ b/td/Assets/Materials/Background.mat.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1cb44ffb536424e7ab24c785b7b624f0
+timeCreated: 1508014992
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Materials/Enemy Blue.mat b/td/Assets/Materials/Enemy Blue.mat
new file mode 100644
index 0000000..2d93a92
--- /dev/null
+++ b/td/Assets/Materials/Enemy Blue.mat
Binary files differ
diff --git a/td/Assets/Materials/Enemy Blue.mat.meta b/td/Assets/Materials/Enemy Blue.mat.meta
new file mode 100644
index 0000000..ce1088a
--- /dev/null
+++ b/td/Assets/Materials/Enemy Blue.mat.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 99d8c34c82c6e4d65a56e7f1e729e4e1
+timeCreated: 1508012107
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Materials/Enemy one.mat b/td/Assets/Materials/Enemy one.mat
index 22b9592..f1ab4ac 100644
--- a/td/Assets/Materials/Enemy one.mat
+++ b/td/Assets/Materials/Enemy one.mat
Binary files differ
diff --git a/td/Assets/Materials/placementIndicatorDanger.mat b/td/Assets/Materials/placementIndicatorDanger.mat
new file mode 100644
index 0000000..37e9e47
--- /dev/null
+++ b/td/Assets/Materials/placementIndicatorDanger.mat
Binary files differ
diff --git a/td/Assets/Materials/placementIndicatorDanger.mat.meta b/td/Assets/Materials/placementIndicatorDanger.mat.meta
new file mode 100644
index 0000000..ea86123
--- /dev/null
+++ b/td/Assets/Materials/placementIndicatorDanger.mat.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: fdaa960eb417543e29a712fa18d4a65f
+timeCreated: 1507034809
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Materials/placementIndicatorSuccess.mat b/td/Assets/Materials/placementIndicatorSuccess.mat
new file mode 100644
index 0000000..36c1413
--- /dev/null
+++ b/td/Assets/Materials/placementIndicatorSuccess.mat
Binary files differ
diff --git a/td/Assets/Materials/placementIndicatorSuccess.mat.meta b/td/Assets/Materials/placementIndicatorSuccess.mat.meta
new file mode 100644
index 0000000..6e21620
--- /dev/null
+++ b/td/Assets/Materials/placementIndicatorSuccess.mat.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e03c0257685414ec9a62b58f6eb7dbde
+timeCreated: 1507039389
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Materials/projectile.mat b/td/Assets/Materials/projectile.mat
new file mode 100644
index 0000000..aa97624
--- /dev/null
+++ b/td/Assets/Materials/projectile.mat
Binary files differ
diff --git a/td/Assets/Materials/projectile.mat.meta b/td/Assets/Materials/projectile.mat.meta
new file mode 100644
index 0000000..86f15cd
--- /dev/null
+++ b/td/Assets/Materials/projectile.mat.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 83ba8edd0e67d40d49d0da9f29fb697b
+timeCreated: 1507300359
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Plugins.meta b/td/Assets/Plugins.meta
new file mode 100644
index 0000000..9f5adca
--- /dev/null
+++ b/td/Assets/Plugins.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: fb5264dd1c52f48429aac93affb7b259
+folderAsset: yes
+timeCreated: 1507403604
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Plugins/Editor.meta b/td/Assets/Plugins/Editor.meta
new file mode 100644
index 0000000..a7793dd
--- /dev/null
+++ b/td/Assets/Plugins/Editor.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 2a4d3360e5ae541efbf0c892fcfe9314
+folderAsset: yes
+timeCreated: 1507403604
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Plugins/Editor/JetBrains.meta b/td/Assets/Plugins/Editor/JetBrains.meta
new file mode 100644
index 0000000..01e6324
--- /dev/null
+++ b/td/Assets/Plugins/Editor/JetBrains.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: ee3d259c0e31346acbb8138c78ea81a9
+folderAsset: yes
+timeCreated: 1507403604
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs b/td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs
new file mode 100644
index 0000000..a87d402
--- /dev/null
+++ b/td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs
@@ -0,0 +1,1164 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Version: 2.0.4.2575
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+using Application = UnityEngine.Application;
+using Debug = UnityEngine.Debug;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text.RegularExpressions;
+using System.Text;
+using System.Xml.Linq;
+using System;
+using UnityEditor;
+using UnityEngine;
+
+namespace Plugins.Editor.JetBrains
+{
+ public class RiderAssetPostprocessor : AssetPostprocessor
+ {
+ public static void OnGeneratedCSProjectFiles()
+ {
+ if (!RiderPlugin.Enabled)
+ return;
+ var currentDirectory = Directory.GetCurrentDirectory();
+ var projectFiles = Directory.GetFiles(currentDirectory, "*.csproj");
+
+ foreach (var file in projectFiles)
+ {
+ UpgradeProjectFile(file);
+ }
+
+ var slnFile = Directory.GetFiles(currentDirectory, "*.sln").First();
+ RiderPlugin.Log(RiderPlugin.LoggingLevel.Verbose, string.Format("Post-processing {0}", slnFile));
+ string content = File.ReadAllText(slnFile);
+ var lines = content.Split(new[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
+ var sb = new StringBuilder();
+ foreach (var line in lines)
+ {
+ if (line.StartsWith("Project("))
+ {
+ MatchCollection mc = Regex.Matches(line, "\"([^\"]*)\"");
+ //RiderPlugin.Log(RiderPlugin.LoggingLevel.Info, "mc[1]: "+mc[1].Value);
+ //RiderPlugin.Log(RiderPlugin.LoggingLevel.Info, "mc[2]: "+mc[2].Value);
+ var to = GetFileNameWithoutExtension(mc[2].Value.Substring(1, mc[2].Value.Length-1)); // remove quotes
+ //RiderPlugin.Log(RiderPlugin.LoggingLevel.Info, "to:" + to);
+ //RiderPlugin.Log(RiderPlugin.LoggingLevel.Info, line);
+ var newLine = line.Substring(0, mc[1].Index + 1) + to + line.Substring(mc[1].Index + mc[1].Value.Length - 1);
+ sb.Append(newLine);
+ //RiderPlugin.Log(RiderPlugin.LoggingLevel.Info, newLine);
+ }
+ else
+ {
+ sb.Append(line);
+ }
+ sb.Append(Environment.NewLine);
+ }
+ File.WriteAllText(slnFile, sb.ToString());
+ }
+
+ private static string GetFileNameWithoutExtension(string path)
+ {
+ if (string.IsNullOrEmpty(path))
+ return null;
+ int length;
+ return (length = path.LastIndexOf('.')) == -1 ? path : path.Substring(0, length);
+ }
+
+ private static void UpgradeProjectFile(string projectFile)
+ {
+ RiderPlugin.Log(RiderPlugin.LoggingLevel.Verbose, string.Format("Post-processing {0}", projectFile));
+ var doc = XDocument.Load(projectFile);
+ var projectContentElement = doc.Root;
+ XNamespace xmlns = projectContentElement.Name.NamespaceName; // do not use var
+
+ FixTargetFrameworkVersion(projectContentElement, xmlns);
+ FixSystemXml(projectContentElement, xmlns);
+ SetLangVersion(projectContentElement, xmlns);
+ // Unity_5_6_OR_NEWER switched to nunit 3.5
+ // Fix helps only for Windows, on mac and linux I get https://youtrack.jetbrains.com/issue/RSRP-459932
+#if UNITY_5_6_OR_NEWER && UNITY_STANDALONE_WIN
+ ChangeNunitReference(new FileInfo(projectFile).DirectoryName, projectContentElement, xmlns);
+#endif
+
+#if !UNITY_2017_1_OR_NEWER // Unity 2017.1 and later has this features by itself
+ SetManuallyDefinedComilingSettings(projectFile, projectContentElement, xmlns);
+ SetXCodeDllReference("UnityEditor.iOS.Extensions.Xcode.dll", xmlns, projectContentElement);
+ SetXCodeDllReference("UnityEditor.iOS.Extensions.Common.dll", xmlns, projectContentElement);
+#endif
+ doc.Save(projectFile);
+ }
+
+ private static void FixSystemXml(XElement projectContentElement, XNamespace xmlns)
+ {
+ var el = projectContentElement
+ .Elements(xmlns+"ItemGroup")
+ .Elements(xmlns+"Reference")
+ .FirstOrDefault(a => a.Attribute("Include").Value=="System.XML");
+ if (el != null)
+ {
+ el.Attribute("Include").Value = "System.Xml";
+ }
+ }
+
+ private static void ChangeNunitReference(string baseDir, XElement projectContentElement, XNamespace xmlns)
+ {
+ var el = projectContentElement
+ .Elements(xmlns+"ItemGroup")
+ .Elements(xmlns+"Reference")
+ .FirstOrDefault(a => a.Attribute("Include").Value=="nunit.framework");
+ if (el != null)
+ {
+ var hintPath = el.Elements(xmlns + "HintPath").FirstOrDefault();
+ if (hintPath != null)
+ {
+ string unityAppBaseFolder = Path.GetDirectoryName(EditorApplication.applicationPath);
+ var path = Path.Combine(unityAppBaseFolder, "Data/Managed/nunit.framework.dll");
+ if (new FileInfo(path).Exists)
+ hintPath.Value = path;
+ }
+ }
+ }
+
+#if !UNITY_2017_1_OR_NEWER // Unity 2017.1 and later has this features by itself
+ private const string UNITY_PLAYER_PROJECT_NAME = "Assembly-CSharp.csproj";
+ private const string UNITY_EDITOR_PROJECT_NAME = "Assembly-CSharp-Editor.csproj";
+ private const string UNITY_UNSAFE_KEYWORD = "-unsafe";
+ private const string UNITY_DEFINE_KEYWORD = "-define:";
+ private const string PLAYER_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH = "smcs.rsp";
+ private static readonly string PLAYER_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH = Path.Combine(UnityEngine.Application.dataPath, PLAYER_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH);
+ private const string EDITOR_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH = "gmcs.rsp";
+ private static readonly string EDITOR_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH = Path.Combine(UnityEngine.Application.dataPath, EDITOR_PROJECT_MANUAL_CONFIG_RELATIVE_FILE_PATH);
+
+ private static void SetManuallyDefinedComilingSettings(string projectFile, XElement projectContentElement, XNamespace xmlns)
+ {
+ string configPath;
+
+ if (IsPlayerProjectFile(projectFile))
+ configPath = PLAYER_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH;
+ else if (IsEditorProjectFile(projectFile))
+ configPath = EDITOR_PROJECT_MANUAL_CONFIG_ABSOLUTE_FILE_PATH;
+ else
+ configPath = null;
+
+ if(!string.IsNullOrEmpty(configPath))
+ ApplyManualCompilingSettings(configPath
+ , projectContentElement
+ , xmlns);
+ }
+
+ private static void ApplyManualCompilingSettings(string configFilePath, XElement projectContentElement, XNamespace xmlns)
+ {
+ if (File.Exists(configFilePath))
+ {
+ var configText = File.ReadAllText(configFilePath);
+ if (configText.Contains(UNITY_UNSAFE_KEYWORD))
+ {
+ // Add AllowUnsafeBlocks to the .csproj. Unity doesn't generate it (although VSTU does).
+ // Strictly necessary to compile unsafe code
+ ApplyAllowUnsafeBlocks(projectContentElement, xmlns);
+ }
+ if (configText.Contains(UNITY_DEFINE_KEYWORD))
+ {
+ // defines could be
+ // 1) -define:DEFINE1,DEFINE2
+ // 2) -define:DEFINE1;DEFINE2
+ // 3) -define:DEFINE1 -define:DEFINE2
+ // 4) -define:DEFINE1,DEFINE2;DEFINE3
+ // tested on "-define:DEF1;DEF2 -define:DEF3,DEF4;DEFFFF \n -define:DEF5"
+ // result: DEF1, DEF2, DEF3, DEF4, DEFFFF, DEF5
+
+ var definesList = new List<string>();
+ var compileFlags = configText.Split(' ', '\n');
+ foreach (var flag in compileFlags)
+ {
+ var f = flag.Trim();
+ if (f.Contains(UNITY_DEFINE_KEYWORD))
+ {
+ var defineEndPos = f.IndexOf(UNITY_DEFINE_KEYWORD) + UNITY_DEFINE_KEYWORD.Length;
+ var definesSubString = f.Substring(defineEndPos,f.Length - defineEndPos);
+ definesSubString = definesSubString.Replace(";", ",");
+ definesList.AddRange(definesSubString.Split(','));
+ }
+ }
+
+ ApplyCustomDefines(definesList.ToArray(), projectContentElement, xmlns);
+ }
+ }
+ }
+
+ private static void ApplyCustomDefines(string[] customDefines, XElement projectContentElement, XNamespace xmlns)
+ {
+ var definesString = string.Join(";", customDefines);
+
+ var DefineConstants = projectContentElement
+ .Elements(xmlns+"PropertyGroup")
+ .Elements(xmlns+"DefineConstants")
+ .FirstOrDefault(definesConsts=> !string.IsNullOrEmpty(definesConsts.Value));
+
+ if (DefineConstants != null)
+ {
+ DefineConstants.SetValue(DefineConstants.Value + ";" + definesString);
+ }
+ }
+
+ private static void ApplyAllowUnsafeBlocks(XElement projectContentElement, XNamespace xmlns)
+ {
+ projectContentElement.AddFirst(
+ new XElement(xmlns + "PropertyGroup", new XElement(xmlns + "AllowUnsafeBlocks", true)));
+ }
+
+ private static bool IsPlayerProjectFile(string projectFile)
+ {
+ return Path.GetFileName(projectFile) == UNITY_PLAYER_PROJECT_NAME;
+ }
+
+ private static bool IsEditorProjectFile(string projectFile)
+ {
+ return Path.GetFileName(projectFile) == UNITY_EDITOR_PROJECT_NAME;
+ }
+
+ private static void SetXCodeDllReference(string name, XNamespace xmlns, XElement projectContentElement)
+ {
+ string unityAppBaseFolder = Path.GetDirectoryName(EditorApplication.applicationPath);
+
+ var xcodeDllPath = Path.Combine(unityAppBaseFolder, Path.Combine("Data/PlaybackEngines/iOSSupport", name));
+ if (!File.Exists(xcodeDllPath))
+ xcodeDllPath = Path.Combine(unityAppBaseFolder, Path.Combine("PlaybackEngines/iOSSupport", name));
+
+ if (File.Exists(xcodeDllPath))
+ {
+ var itemGroup = new XElement(xmlns + "ItemGroup");
+ var reference = new XElement(xmlns + "Reference");
+ reference.Add(new XAttribute("Include", Path.GetFileNameWithoutExtension(xcodeDllPath)));
+ reference.Add(new XElement(xmlns + "HintPath", xcodeDllPath));
+ itemGroup.Add(reference);
+ projectContentElement.Add(itemGroup);
+ }
+ }
+#endif
+ // Helps resolve System.Linq under mono 4 - RIDER-573
+ private static void FixTargetFrameworkVersion(XElement projectElement, XNamespace xmlns)
+ {
+ var targetFrameworkVersion = projectElement.Elements(xmlns + "PropertyGroup")
+ .Elements(xmlns + "TargetFrameworkVersion")
+ .FirstOrDefault(); // Processing csproj files, which are not Unity-generated #56
+ if (targetFrameworkVersion != null)
+ {
+ targetFrameworkVersion.SetValue("v"+RiderPlugin.TargetFrameworkVersion);
+ }
+ }
+
+ private static void SetLangVersion(XElement projectElement, XNamespace xmlns)
+ {
+ // Add LangVersion to the .csproj. Unity doesn't generate it (although VSTU does).
+ // Not strictly necessary, as the Unity plugin for Rider will work it out, but setting
+ // it makes Rider work if it's not installed.
+ var langVersion = projectElement.Elements(xmlns + "PropertyGroup").Elements(xmlns + "LangVersion")
+ .FirstOrDefault(); // Processing csproj files, which are not Unity-generated #56
+ if (langVersion != null)
+ {
+ langVersion.SetValue(GetLanguageLevel());
+ }
+ else
+ {
+ projectElement.AddFirst(new XElement(xmlns + "PropertyGroup",
+ new XElement(xmlns + "LangVersion", GetLanguageLevel())));
+ }
+ }
+
+ private static string GetLanguageLevel()
+ {
+ // https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration/src
+ if (Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), "CSharp70Support")))
+ return "7";
+ if (Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), "CSharp60Support")))
+ return "6";
+
+ // Unity 5.5 supports C# 6, but only when targeting .NET 4.6. The enum doesn't exist pre Unity 5.5
+#if !UNITY_5_6_OR_NEWER
+ if ((int)PlayerSettings.apiCompatibilityLevel >= 3)
+ #else
+ if ((int) PlayerSettings.GetApiCompatibilityLevel(EditorUserBuildSettings.selectedBuildTargetGroup) >= 3)
+#endif
+ return "6";
+
+ return "4";
+ }
+ }
+}
+
+namespace Plugins.Editor.JetBrains
+{
+ [InitializeOnLoad]
+ public static class RiderPlugin
+ {
+ private static bool Initialized;
+ private static string SlnFile;
+
+ public static void Log(LoggingLevel level, string initialText)
+ {
+ if (level < SelectedLoggingLevel) return;
+
+ var text = "[Rider] [" + level + "] " + initialText;
+
+ switch (level)
+ {
+ case LoggingLevel.Warning:
+ Debug.LogWarning(text);
+ break;
+ default:
+ Debug.Log(text);
+ break;
+ }
+ }
+
+ private static string GetDefaultApp()
+ {
+ var alreadySetPath = GetExternalScriptEditor();
+ if (!string.IsNullOrEmpty(alreadySetPath) && RiderPathExist(alreadySetPath))
+ return alreadySetPath;
+
+ return RiderPath;
+ }
+
+ private static string[] GetAllRiderPaths()
+ {
+ switch (SystemInfoRiderPlugin.operatingSystemFamily)
+ {
+ case OperatingSystemFamily.Windows:
+ string[] folders =
+ {
+ @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\JetBrains", Path.Combine(
+ Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
+ @"Microsoft\Windows\Start Menu\Programs\JetBrains Toolbox")
+ };
+
+ var newPathLnks = folders.Select(b => new DirectoryInfo(b)).Where(a => a.Exists)
+ .SelectMany(c => c.GetFiles("*Rider*.lnk")).ToArray();
+ if (newPathLnks.Any())
+ {
+ var newPaths = newPathLnks
+ .Select(newPathLnk => new FileInfo(ShortcutResolver.Resolve(newPathLnk.FullName)))
+ .Where(fi => File.Exists(fi.FullName))
+ .ToArray()
+ .OrderByDescending(fi => FileVersionInfo.GetVersionInfo(fi.FullName).ProductVersion)
+ .Select(a => a.FullName).ToArray();
+
+ return newPaths;
+ }
+ break;
+
+ case OperatingSystemFamily.MacOSX:
+ // "/Applications/*Rider*.app"
+ //"~/Applications/JetBrains Toolbox/*Rider*.app"
+ string[] foldersMac =
+ {
+ "/Applications", Path.Combine(Environment.GetEnvironmentVariable("HOME"), "Applications/JetBrains Toolbox")
+ };
+ var newPathsMac = foldersMac.Select(b => new DirectoryInfo(b)).Where(a => a.Exists)
+ .SelectMany(c => c.GetDirectories("*Rider*.app"))
+ .Select(a => a.FullName).ToArray();
+ return newPathsMac;
+ }
+ return new string[0];
+ }
+
+ private static string TargetFrameworkVersionDefault
+ {
+ get
+ {
+ var defaultValue = "4.5";
+ if (SystemInfoRiderPlugin.operatingSystemFamily == OperatingSystemFamily.Windows)
+ {
+ var dir = new DirectoryInfo(@"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework");
+ if (dir.Exists)
+ {
+ var availableVersions = dir.GetDirectories("v*").Select(a => a.Name.Substring(1))
+ .Where(v => TryCatch(v, s => { })).ToArray();
+ if (availableVersions.Any() && !availableVersions.Contains(defaultValue))
+ {
+ defaultValue = availableVersions.OrderBy(a => new Version(a)).Last();
+ }
+ }
+ }
+ return defaultValue;
+ }
+ }
+
+ public static string TargetFrameworkVersion
+ {
+ get
+ {
+ return EditorPrefs.GetString("Rider_TargetFrameworkVersion",
+ EditorPrefs.GetBool("Rider_TargetFrameworkVersion45", true) ? TargetFrameworkVersionDefault : "3.5");
+ }
+ set
+ {
+ TryCatch(value, val =>
+ {
+ EditorPrefs.SetString("Rider_TargetFrameworkVersion", val);
+ });
+ }
+ }
+
+ private static bool TryCatch(string value, Action<string> action)
+ {
+ try
+ {
+ new Version(value); // mono 2.6 doesn't support Version.TryParse
+ action(value);
+ return true;
+ }
+ catch (ArgumentException)
+ {
+ } // can't put loggin here because ot fire on every symbol
+ catch (FormatException)
+ {
+ }
+ return false;
+ }
+
+ public static string RiderPath
+ {
+ get { return EditorPrefs.GetString("Rider_RiderPath", GetAllRiderPaths().FirstOrDefault()); }
+ set { EditorPrefs.SetString("Rider_RiderPath", value); }
+ }
+
+ public enum LoggingLevel
+ {
+ Verbose = 0,
+ Info = 1,
+ Warning = 2
+ }
+
+ public static LoggingLevel SelectedLoggingLevel
+ {
+ get { return (LoggingLevel) EditorPrefs.GetInt("Rider_SelectedLoggingLevel", 1); }
+ set { EditorPrefs.SetInt("Rider_SelectedLoggingLevel", (int) value); }
+ }
+
+ public static bool RiderInitializedOnce
+ {
+ get { return EditorPrefs.GetBool("RiderInitializedOnce", false); }
+ set { EditorPrefs.SetBool("RiderInitializedOnce", value); }
+ }
+
+ internal static bool Enabled
+ {
+ get
+ {
+ var defaultApp = GetExternalScriptEditor();
+ return !string.IsNullOrEmpty(defaultApp) && Path.GetFileName(defaultApp).ToLower().Contains("rider");
+ }
+ }
+
+ static RiderPlugin()
+ {
+ var riderPath = GetDefaultApp();
+ if (!RiderPathExist(riderPath))
+ return;
+
+ AddRiderToRecentlyUsedScriptApp(riderPath, "RecentlyUsedScriptApp");
+ if (!RiderInitializedOnce)
+ {
+ SetExternalScriptEditor(riderPath);
+ RiderInitializedOnce = true;
+ }
+ if (Enabled)
+ {
+ InitRiderPlugin();
+ }
+ }
+
+ private static void InitRiderPlugin()
+ {
+ var projectDirectory = Directory.GetParent(Application.dataPath).FullName;
+
+ var projectName = Path.GetFileName(projectDirectory);
+ SlnFile = Path.Combine(projectDirectory, string.Format("{0}.sln", projectName));
+
+ InitializeEditorInstanceJson(projectDirectory);
+
+ Log(LoggingLevel.Info, "Rider plugin initialized. You may change the amount of Rider Debug output via Edit -> Preferences -> Rider -> Logging Level");
+ Initialized = true;
+ }
+
+ private static void AddRiderToRecentlyUsedScriptApp(string userAppPath, string recentAppsKey)
+ {
+ for (int index = 0; index < 10; ++index)
+ {
+ string path = EditorPrefs.GetString(recentAppsKey + (object) index);
+ if (File.Exists(path) && Path.GetFileName(path).ToLower().Contains("rider"))
+ return;
+ }
+ EditorPrefs.SetString(recentAppsKey + 9, userAppPath);
+ }
+
+ private static string GetExternalScriptEditor()
+ {
+ return EditorPrefs.GetString("kScriptsDefaultApp");
+ }
+
+ private static void SetExternalScriptEditor(string path)
+ {
+ EditorPrefs.SetString("kScriptsDefaultApp", path);
+ }
+
+ private static bool RiderPathExist(string path)
+ {
+ if (string.IsNullOrEmpty(path))
+ return false;
+ // windows or mac
+ var fileInfo = new FileInfo(path);
+ if (!fileInfo.Name.ToLower().Contains("rider"))
+ return false;
+ var directoryInfo = new DirectoryInfo(path);
+ return fileInfo.Exists || (SystemInfoRiderPlugin.operatingSystemFamily == OperatingSystemFamily.MacOSX &&
+ directoryInfo.Exists);
+ }
+
+ /// <summary>
+ /// Creates and deletes Library/EditorInstance.json containing version and process ID
+ /// </summary>
+ /// <param name="projectDirectory">Path to the project root directory</param>
+ private static void InitializeEditorInstanceJson(string projectDirectory)
+ {
+ // Only manage EditorInstance.json for 4.x and 5.x - it's a native feature for 2017.x
+#if !UNITY_2017_1_OR_NEWER
+ Log(LoggingLevel.Verbose, "Writing Library/EditorInstance.json");
+
+ var library = Path.Combine(projectDirectory, "Library");
+ var editorInstanceJsonPath = Path.Combine(library, "EditorInstance.json");
+
+ File.WriteAllText(editorInstanceJsonPath, string.Format(@"{{
+ ""process_id"": {0},
+ ""version"": ""{1}""
+}}", Process.GetCurrentProcess().Id, Application.unityVersion));
+
+ AppDomain.CurrentDomain.DomainUnload += (sender, args) =>
+ {
+ Log(LoggingLevel.Verbose, "Deleting Library/EditorInstance.json");
+ File.Delete(editorInstanceJsonPath);
+ };
+#endif
+ }
+
+ /// <summary>
+ /// Asset Open Callback (from Unity)
+ /// </summary>
+ /// <remarks>
+ /// Called when Unity is about to open an asset.
+ /// </remarks>
+ [UnityEditor.Callbacks.OnOpenAssetAttribute()]
+ static bool OnOpenedAsset(int instanceID, int line)
+ {
+ if (Enabled)
+ {
+ if (!Initialized)
+ {
+ // make sure the plugin was initialized first.
+ // this can happen in case "Rider" was set as the default scripting app only after this plugin was imported.
+ InitRiderPlugin();
+ RiderAssetPostprocessor.OnGeneratedCSProjectFiles();
+ }
+
+ string appPath = Path.GetDirectoryName(Application.dataPath);
+
+ // determine asset that has been double clicked in the project view
+ var selected = EditorUtility.InstanceIDToObject(instanceID);
+
+ var assetFilePath = Path.Combine(appPath, AssetDatabase.GetAssetPath(selected));
+ if (!(selected.GetType().ToString() == "UnityEditor.MonoScript" ||
+ selected.GetType().ToString() == "UnityEngine.Shader" ||
+ (selected.GetType().ToString() == "UnityEngine.TextAsset" &&
+#if UNITY_5 || UNITY_5_5_OR_NEWER
+ EditorSettings.projectGenerationUserExtensions.Contains(Path.GetExtension(assetFilePath).Substring(1))
+#else
+ EditorSettings.externalVersionControl.Contains(Path.GetExtension(assetFilePath).Substring(1))
+#endif
+ )))
+ return false;
+
+ SyncSolution(); // added to handle opening file, which was just recently created.
+ if (!DetectPortAndOpenFile(line, assetFilePath,
+ SystemInfoRiderPlugin.operatingSystemFamily == OperatingSystemFamily.Windows))
+ {
+ var args = string.Format("{0}{1}{0} --line {2} {0}{3}{0}", "\"", SlnFile, line, assetFilePath);
+ return CallRider(args);
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+
+ private static bool DetectPortAndOpenFile(int line, string filePath, bool isWindows)
+ {
+ if (SystemInfoRiderPlugin.operatingSystemFamily == OperatingSystemFamily.Windows)
+ {
+ var process = GetRiderProcess();
+ if (process == null)
+ return false;
+ }
+
+ int[] ports = Enumerable.Range(63342, 20).ToArray();
+ var res = ports.Any(port =>
+ {
+ var aboutUrl = string.Format("http://localhost:{0}/api/about/", port);
+ var aboutUri = new Uri(aboutUrl);
+
+ using (var client = new WebClient())
+ {
+ client.Headers.Add("origin", string.Format("http://localhost:{0}", port));
+ client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
+
+ try
+ {
+ var responce = CallHttpApi(aboutUri, client);
+ if (responce.ToLower().Contains("rider"))
+ {
+ return HttpOpenFile(line, filePath, isWindows, port, client);
+ }
+ }
+ catch (Exception e)
+ {
+ Log(LoggingLevel.Verbose, string.Format("Exception in DetectPortAndOpenFile: {0}", e));
+ }
+ }
+ return false;
+ });
+ return res;
+ }
+
+ private static bool HttpOpenFile(int line, string filePath, bool isWindows, int port, WebClient client)
+ {
+ var url = string.Format("http://localhost:{0}/api/file?file={1}{2}", port, filePath,
+ line < 0
+ ? "&p=0"
+ : "&line=" + line); // &p is needed to workaround https://youtrack.jetbrains.com/issue/IDEA-172350
+ if (isWindows)
+ url = string.Format(@"http://localhost:{0}/api/file/{1}{2}", port, filePath, line < 0 ? "" : ":" + line);
+
+ var uri = new Uri(url);
+ Log(LoggingLevel.Verbose, string.Format("HttpRequestOpenFile({0})", uri.AbsoluteUri));
+
+ CallHttpApi(uri, client);
+ ActivateWindow();
+ return true;
+ }
+
+ private static string CallHttpApi(Uri uri, WebClient client)
+ {
+ var responseString = client.DownloadString(uri.AbsoluteUri);
+ Log(LoggingLevel.Verbose, string.Format("CallHttpApi {0} response: {1}", uri.AbsoluteUri, responseString));
+ return responseString;
+ }
+
+ private static bool CallRider(string args)
+ {
+ var defaultApp = GetDefaultApp();
+ if (!RiderPathExist(defaultApp))
+ {
+ return false;
+ }
+
+ var proc = new Process();
+ if (SystemInfoRiderPlugin.operatingSystemFamily == OperatingSystemFamily.MacOSX)
+ {
+ proc.StartInfo.FileName = "open";
+ proc.StartInfo.Arguments = string.Format("-n {0}{1}{0} --args {2}", "\"", "/" + defaultApp, args);
+ Log(LoggingLevel.Verbose, string.Format("{0} {1}", proc.StartInfo.FileName, proc.StartInfo.Arguments));
+ }
+ else
+ {
+ proc.StartInfo.FileName = defaultApp;
+ proc.StartInfo.Arguments = args;
+ Log(LoggingLevel.Verbose, string.Format("{2}{0}{2}" + " {1}", proc.StartInfo.FileName, proc.StartInfo.Arguments, "\""));
+ }
+
+ proc.StartInfo.UseShellExecute = false;
+ proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
+ proc.StartInfo.CreateNoWindow = true;
+ proc.StartInfo.RedirectStandardOutput = true;
+ proc.Start();
+
+ ActivateWindow();
+ return true;
+ }
+
+ private static void ActivateWindow()
+ {
+ if (SystemInfoRiderPlugin.operatingSystemFamily == OperatingSystemFamily.Windows)
+ {
+ try
+ {
+ var process = GetRiderProcess();
+ if (process != null)
+ {
+ // Collect top level windows
+ var topLevelWindows = User32Dll.GetTopLevelWindowHandles();
+ // Get process main window title
+ var windowHandle = topLevelWindows.FirstOrDefault(hwnd => User32Dll.GetWindowProcessId(hwnd) == process.Id);
+ Log(LoggingLevel.Info, string.Format("ActivateWindow: {0} {1}", process.Id, windowHandle));
+ if (windowHandle != IntPtr.Zero)
+ {
+ //User32Dll.ShowWindow(windowHandle, 9); //SW_RESTORE = 9
+ User32Dll.SetForegroundWindow(windowHandle);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ Log(LoggingLevel.Warning, "Exception on ActivateWindow: " + e);
+ }
+ }
+ }
+
+ private static Process GetRiderProcess()
+ {
+ var process = Process.GetProcesses().FirstOrDefault(p =>
+ {
+ string processName;
+ try
+ {
+ processName =
+ p.ProcessName; // some processes like kaspersky antivirus throw exception on attempt to get ProcessName
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+
+ return !p.HasExited && processName.ToLower().Contains("rider");
+ });
+ return process;
+ }
+
+ // The default "Open C# Project" menu item will use the external script editor to load the .sln
+ // file, but unless Unity knows the external script editor can properly load solutions, it will
+ // also launch MonoDevelop (or the OS registered app for .sln files). This menu item side steps
+ // that issue, and opens the solution in Rider without opening MonoDevelop as well.
+ // Unity 2017.1 and later recognise Rider as an app that can load solutions, so this menu isn't
+ // needed in newer versions.
+ [MenuItem("Assets/Open C# Project in Rider", false, 1000)]
+ static void MenuOpenProject()
+ {
+ // Force the project files to be sync
+ SyncSolution();
+
+ // Load Project
+ CallRider(string.Format("{0}{1}{0}", "\"", SlnFile));
+ }
+
+ [MenuItem("Assets/Open C# Project in Rider", true, 1000)]
+ static bool ValidateMenuOpenProject()
+ {
+ return Enabled;
+ }
+
+ /// <summary>
+ /// Force Unity To Write Project File
+ /// </summary>
+ private static void SyncSolution()
+ {
+ System.Type T = System.Type.GetType("UnityEditor.SyncVS,UnityEditor");
+ System.Reflection.MethodInfo SyncSolution = T.GetMethod("SyncSolution",
+ System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
+ SyncSolution.Invoke(null, null);
+ }
+
+ /// <summary>
+ /// JetBrains Rider Integration Preferences Item
+ /// </summary>
+ /// <remarks>
+ /// Contains all 3 toggles: Enable/Disable; Debug On/Off; Writing Launch File On/Off
+ /// </remarks>
+ [PreferenceItem("Rider")]
+ static void RiderPreferencesItem()
+ {
+ EditorGUILayout.BeginVertical();
+ EditorGUI.BeginChangeCheck();
+
+ var alternatives = GetAllRiderPaths();
+ if (alternatives.Any())
+ {
+ int index = Array.IndexOf(alternatives, RiderPath);
+ var alts = alternatives.Select(s => s.Replace("/", ":"))
+ .ToArray(); // hack around https://fogbugz.unity3d.com/default.asp?940857_tirhinhe3144t4vn
+ RiderPath = alternatives[EditorGUILayout.Popup("Rider executable:", index == -1 ? 0 : index, alts)];
+ if (EditorGUILayout.Toggle(new GUIContent("Rider is default editor"), Enabled))
+ {
+ SetExternalScriptEditor(RiderPath);
+ EditorGUILayout.HelpBox("Unckecking will restore default external editor.", MessageType.None);
+ }
+ else
+ {
+ SetExternalScriptEditor(string.Empty);
+ EditorGUILayout.HelpBox("Checking will set Rider as default external editor", MessageType.None);
+ }
+
+ }
+ var help = @"TargetFramework >= 4.5 is strongly recommended.
+ - Without 4.5:
+ - Rider will fail to resolve System.Linq on Mac/Linux
+ - Rider will fail to resolve Firebase Analytics.
+ - With 4.5 Rider may show ambiguous references in UniRx.
+All those problems will go away after Unity upgrades to mono4.";
+
+ TargetFrameworkVersion =
+ EditorGUILayout.TextField(
+ new GUIContent("TargetFrameworkVersion",
+ help), TargetFrameworkVersion);
+ EditorGUILayout.HelpBox(help, MessageType.None);
+
+ EditorGUI.EndChangeCheck();
+
+ EditorGUI.BeginChangeCheck();
+
+ var loggingMsg =
+ @"Sets the amount of Rider Debug output. If you are about to report an issue, please select Verbose logging level and attach Unity console output to the issue.";
+ SelectedLoggingLevel = (LoggingLevel) EditorGUILayout.EnumPopup(new GUIContent("Logging Level", loggingMsg), SelectedLoggingLevel);
+ EditorGUILayout.HelpBox(loggingMsg, MessageType.None);
+
+ EditorGUI.EndChangeCheck();
+
+ var url = "https://github.com/JetBrains/resharper-unity";
+ LinkButton(url, url);
+
+/* if (GUILayout.Button("reset RiderInitializedOnce = false"))
+ {
+ RiderInitializedOnce = false;
+ }*/
+
+ EditorGUILayout.EndVertical();
+ }
+
+ private static void LinkButton(string caption, string url)
+ {
+ var style = GUI.skin.label;
+ style.richText = true;
+ caption = string.Format("<color=#0000FF>{0}</color>", caption);
+
+ bool bClicked = GUILayout.Button(caption, style);
+
+ var rect = GUILayoutUtility.GetLastRect();
+ rect.width = style.CalcSize(new GUIContent(caption)).x;
+ EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);
+
+ if (bClicked)
+ Application.OpenURL(url);
+ }
+
+ #region SystemInfoRiderPlugin
+ static class SystemInfoRiderPlugin
+ {
+ public static OperatingSystemFamily operatingSystemFamily
+ {
+ get
+ {
+#if UNITY_5_5_OR_NEWER
+return SystemInfo.operatingSystemFamily;
+#else
+ if (SystemInfo.operatingSystem.StartsWith("Mac", StringComparison.InvariantCultureIgnoreCase))
+ {
+ return OperatingSystemFamily.MacOSX;
+ }
+ if (SystemInfo.operatingSystem.StartsWith("Win", StringComparison.InvariantCultureIgnoreCase))
+ {
+ return OperatingSystemFamily.Windows;
+ }
+ if (SystemInfo.operatingSystem.StartsWith("Lin", StringComparison.InvariantCultureIgnoreCase))
+ {
+ return OperatingSystemFamily.Linux;
+ }
+ return OperatingSystemFamily.Other;
+#endif
+ }
+ }
+ }
+#if !UNITY_5_5_OR_NEWER
+ enum OperatingSystemFamily
+ {
+ Other,
+ MacOSX,
+ Windows,
+ Linux,
+ }
+#endif
+ #endregion
+
+ static class User32Dll
+ {
+
+ /// <summary>
+ /// Gets the ID of the process that owns the window.
+ /// Note that creating a <see cref="Process"/> wrapper for that is very expensive because it causes an enumeration of all the system processes to happen.
+ /// </summary>
+ public static int GetWindowProcessId(IntPtr hwnd)
+ {
+ uint dwProcessId;
+ GetWindowThreadProcessId(hwnd, out dwProcessId);
+ return unchecked((int) dwProcessId);
+ }
+
+ /// <summary>
+ /// Lists the handles of all the top-level windows currently available in the system.
+ /// </summary>
+ public static List<IntPtr> GetTopLevelWindowHandles()
+ {
+ var retval = new List<IntPtr>();
+ EnumWindowsProc callback = (hwnd, param) =>
+ {
+ retval.Add(hwnd);
+ return 1;
+ };
+ EnumWindows(Marshal.GetFunctionPointerForDelegate(callback), IntPtr.Zero);
+ GC.KeepAlive(callback);
+ return retval;
+ }
+
+ public delegate Int32 EnumWindowsProc(IntPtr hwnd, IntPtr lParam);
+
+ [DllImport("user32.dll", CharSet = CharSet.Unicode, PreserveSig = true, SetLastError = true,
+ ExactSpelling = true)]
+ public static extern Int32 EnumWindows(IntPtr lpEnumFunc, IntPtr lParam);
+
+ [DllImport("user32.dll", SetLastError = true)]
+ static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
+
+ [DllImport("user32.dll", CharSet = CharSet.Unicode, PreserveSig = true, SetLastError = true,
+ ExactSpelling = true)]
+ public static extern Int32 SetForegroundWindow(IntPtr hWnd);
+
+ [DllImport("user32.dll", CharSet = CharSet.Unicode, PreserveSig = true, SetLastError = true,
+ ExactSpelling = true)]
+ public static extern UInt32 ShowWindow(IntPtr hWnd, Int32 nCmdShow);
+ }
+
+ static class ShortcutResolver
+ {
+ #region Signitures imported from http://pinvoke.net
+
+ [DllImport("shfolder.dll", CharSet = CharSet.Auto)]
+ internal static extern int SHGetFolderPath(IntPtr hwndOwner, int nFolder, IntPtr hToken, int dwFlags, StringBuilder lpszPath);
+
+ [Flags()]
+ enum SLGP_FLAGS
+ {
+ /// <summary>Retrieves the standard short (8.3 format) file name</summary>
+ SLGP_SHORTPATH = 0x1,
+
+ /// <summary>Retrieves the Universal Naming Convention (UNC) path name of the file</summary>
+ SLGP_UNCPRIORITY = 0x2,
+
+ /// <summary>Retrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded</summary>
+ SLGP_RAWPATH = 0x4
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
+ struct WIN32_FIND_DATAW
+ {
+ public uint dwFileAttributes;
+ public long ftCreationTime;
+ public long ftLastAccessTime;
+ public long ftLastWriteTime;
+ public uint nFileSizeHigh;
+ public uint nFileSizeLow;
+ public uint dwReserved0;
+ public uint dwReserved1;
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string cFileName;
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string cAlternateFileName;
+ }
+
+ [Flags()]
+ enum SLR_FLAGS
+ {
+ /// <summary>
+ /// Do not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set,
+ /// the high-order word of fFlags can be set to a time-out value that specifies the
+ /// maximum amount of time to be spent resolving the link. The function returns if the
+ /// link cannot be resolved within the time-out duration. If the high-order word is set
+ /// to zero, the time-out duration will be set to the default value of 3,000 milliseconds
+ /// (3 seconds). To specify a value, set the high word of fFlags to the desired time-out
+ /// duration, in milliseconds.
+ /// </summary>
+ SLR_NO_UI = 0x1,
+
+ /// <summary>Obsolete and no longer used</summary>
+ SLR_ANY_MATCH = 0x2,
+
+ /// <summary>If the link object has changed, update its path and list of identifiers.
+ /// If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine
+ /// whether or not the link object has changed.</summary>
+ SLR_UPDATE = 0x4,
+
+ /// <summary>Do not update the link information</summary>
+ SLR_NOUPDATE = 0x8,
+
+ /// <summary>Do not execute the search heuristics</summary>
+ SLR_NOSEARCH = 0x10,
+
+ /// <summary>Do not use distributed link tracking</summary>
+ SLR_NOTRACK = 0x20,
+
+ /// <summary>Disable distributed link tracking. By default, distributed link tracking tracks
+ /// removable media across multiple devices based on the volume name. It also uses the
+ /// Universal Naming Convention (UNC) path to track remote file systems whose drive letter
+ /// has changed. Setting SLR_NOLINKINFO disables both types of tracking.</summary>
+ SLR_NOLINKINFO = 0x40,
+
+ /// <summary>Call the Microsoft Windows Installer</summary>
+ SLR_INVOKE_MSI = 0x80
+ }
+
+
+ /// <summary>The IShellLink interface allows Shell links to be created, modified, and resolved</summary>
+ [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("000214F9-0000-0000-C000-000000000046")]
+ interface IShellLinkW
+ {
+ /// <summary>Retrieves the path and file name of a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetPath([Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile, int cchMaxPath, out WIN32_FIND_DATAW pfd, SLGP_FLAGS fFlags);
+
+ /// <summary>Retrieves the list of item identifiers for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetIDList(out IntPtr ppidl);
+
+ /// <summary>Sets the pointer to an item identifier list (PIDL) for a Shell link object.</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetIDList(IntPtr pidl);
+
+ /// <summary>Retrieves the description string for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetDescription([Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszName, int cchMaxName);
+
+ /// <summary>Sets the description for a Shell link object. The description can be any application-defined string</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetDescription([MarshalAs(UnmanagedType.LPWStr)] string pszName);
+
+ /// <summary>Retrieves the name of the working directory for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetWorkingDirectory([Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszDir, int cchMaxPath);
+
+ /// <summary>Sets the name of the working directory for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetWorkingDirectory([MarshalAs(UnmanagedType.LPWStr)] string pszDir);
+
+ /// <summary>Retrieves the command-line arguments associated with a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetArguments([Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszArgs, int cchMaxPath);
+
+ /// <summary>Sets the command-line arguments for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetArguments([MarshalAs(UnmanagedType.LPWStr)] string pszArgs);
+
+ /// <summary>Retrieves the hot key for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetHotkey(out short pwHotkey);
+
+ /// <summary>Sets a hot key for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetHotkey(short wHotkey);
+
+ /// <summary>Retrieves the show command for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetShowCmd(out int piShowCmd);
+
+ /// <summary>Sets the show command for a Shell link object. The show command sets the initial show state of the window.</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetShowCmd(int iShowCmd);
+
+ /// <summary>Retrieves the location (path and index) of the icon for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetIconLocation([Out(), MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszIconPath, int cchIconPath, out int piIcon);
+
+ /// <summary>Sets the location (path and index) of the icon for a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetIconLocation([MarshalAs(UnmanagedType.LPWStr)] string pszIconPath, int iIcon);
+
+ /// <summary>Sets the relative path to the Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetRelativePath([MarshalAs(UnmanagedType.LPWStr)] string pszPathRel, int dwReserved);
+
+ /// <summary>Attempts to find the target of a Shell link, even if it has been moved or renamed</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void Resolve(IntPtr hwnd, SLR_FLAGS fFlags);
+
+ /// <summary>Sets the path and file name of a Shell link object</summary>
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SetPath([MarshalAs(UnmanagedType.LPWStr)] string pszFile);
+ }
+
+ [ComImport, Guid("0000010c-0000-0000-c000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ public interface IPersist
+ {
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetClassID(out Guid pClassID);
+ }
+
+
+ [ComImport, Guid("0000010b-0000-0000-C000-000000000046"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ public interface IPersistFile : IPersist
+ {
+ [MethodImpl(MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ new void GetClassID(out Guid pClassID);
+
+ [MethodImpl(MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ int IsDirty();
+
+ [MethodImpl(MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void Load([In, MarshalAs(UnmanagedType.LPWStr)] string pszFileName, uint dwMode);
+
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void Save([In, MarshalAs(UnmanagedType.LPWStr)] string pszFileName, [In, MarshalAs(UnmanagedType.Bool)] bool fRemember);
+
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void SaveCompleted([In, MarshalAs(UnmanagedType.LPWStr)] string pszFileName);
+
+ [MethodImpl (MethodImplOptions.InternalCall | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Runtime)]
+ void GetCurFile([In, MarshalAs(UnmanagedType.LPWStr)] string ppszFileName);
+ }
+
+ const uint STGM_READ = 0;
+ const int MAX_PATH = 260;
+
+ // CLSID_ShellLink from ShlGuid.h
+ [
+ ComImport(),
+ Guid("00021401-0000-0000-C000-000000000046")
+ ]
+ public class ShellLink
+ {
+ }
+
+ #endregion
+
+ public static string Resolve(string filename)
+ {
+ ShellLink link = new ShellLink();
+ ((IPersistFile) link).Load(filename, STGM_READ);
+ // If I can get hold of the hwnd call resolve first. This handles moved and renamed files.
+ // ((IShellLinkW)link).Resolve(hwnd, 0)
+ StringBuilder sb = new StringBuilder(MAX_PATH);
+ WIN32_FIND_DATAW data = new WIN32_FIND_DATAW();
+ ((IShellLinkW) link).GetPath(sb, sb.Capacity, out data, 0);
+ return sb.ToString();
+ }
+ }
+ }
+}
+
+// Developed using JetBrains Rider =)
diff --git a/td/Assets/Scripts/PinchZoom.cs.meta b/td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs.meta
index 6303bbc..519e0e0 100644
--- a/td/Assets/Scripts/PinchZoom.cs.meta
+++ b/td/Assets/Plugins/Editor/JetBrains/Unity3DRider.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: 3770bdc9b6c954c1782333bdf04c01c6
-timeCreated: 1506636352
+guid: aa3e49e597a704f07b686414e3192b11
+timeCreated: 1507403604
licenseType: Free
MonoImporter:
serializedVersion: 2
diff --git a/td/Assets/Prefabs/Path straigth.prefab b/td/Assets/Prefabs/Castle.prefab
index 758af59..3da320a 100644
--- a/td/Assets/Prefabs/Path straigth.prefab
+++ b/td/Assets/Prefabs/Castle.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Castle.prefab.meta b/td/Assets/Prefabs/Castle.prefab.meta
new file mode 100644
index 0000000..612183d
--- /dev/null
+++ b/td/Assets/Prefabs/Castle.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: a94082cb0c354452eb9646dcb2c8d658
+timeCreated: 1507302352
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Enemies.meta b/td/Assets/Prefabs/Enemies.meta
new file mode 100644
index 0000000..1ce4814
--- /dev/null
+++ b/td/Assets/Prefabs/Enemies.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 8ff814333a59b4fd7a4b225615761cc5
+folderAsset: yes
+timeCreated: 1506804364
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Enemies/Blue.prefab b/td/Assets/Prefabs/Enemies/Blue.prefab
new file mode 100644
index 0000000..f98795d
--- /dev/null
+++ b/td/Assets/Prefabs/Enemies/Blue.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Enemies/Blue.prefab.meta b/td/Assets/Prefabs/Enemies/Blue.prefab.meta
new file mode 100644
index 0000000..7de1795
--- /dev/null
+++ b/td/Assets/Prefabs/Enemies/Blue.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c83bd045238b34dd3a99670646bfdabe
+timeCreated: 1508012120
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Enemy.prefab b/td/Assets/Prefabs/Enemies/Enemy.prefab
index e2f8a96..38900d3 100644
--- a/td/Assets/Prefabs/Enemy.prefab
+++ b/td/Assets/Prefabs/Enemies/Enemy.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Enemy.prefab.meta b/td/Assets/Prefabs/Enemies/Enemy.prefab.meta
index f39477f..f39477f 100644
--- a/td/Assets/Prefabs/Enemy.prefab.meta
+++ b/td/Assets/Prefabs/Enemies/Enemy.prefab.meta
diff --git a/td/Assets/Prefabs/Towers.meta b/td/Assets/Prefabs/Towers.meta
new file mode 100644
index 0000000..84da145
--- /dev/null
+++ b/td/Assets/Prefabs/Towers.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bcbc671350f2542efb1691d76fa90f9e
+folderAsset: yes
+timeCreated: 1507213929
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Towers/Guy One.prefab b/td/Assets/Prefabs/Towers/Guy One.prefab
new file mode 100644
index 0000000..9736f41
--- /dev/null
+++ b/td/Assets/Prefabs/Towers/Guy One.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Towers/Guy One.prefab.meta b/td/Assets/Prefabs/Towers/Guy One.prefab.meta
new file mode 100644
index 0000000..2747a06
--- /dev/null
+++ b/td/Assets/Prefabs/Towers/Guy One.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b3217bd5a74a9409e85e183b0e707047
+timeCreated: 1507213924
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Towers/projectiles.meta b/td/Assets/Prefabs/Towers/projectiles.meta
new file mode 100644
index 0000000..b66e7d3
--- /dev/null
+++ b/td/Assets/Prefabs/Towers/projectiles.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1fd8e4afa918142cf86708ca153cfa3c
+folderAsset: yes
+timeCreated: 1507240769
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Towers/projectiles/bullet.prefab b/td/Assets/Prefabs/Towers/projectiles/bullet.prefab
new file mode 100644
index 0000000..75a20be
--- /dev/null
+++ b/td/Assets/Prefabs/Towers/projectiles/bullet.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Towers/projectiles/bullet.prefab.meta b/td/Assets/Prefabs/Towers/projectiles/bullet.prefab.meta
new file mode 100644
index 0000000..80854b9
--- /dev/null
+++ b/td/Assets/Prefabs/Towers/projectiles/bullet.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cc0aabf9df00e4ec0a1bde5c8f2cb499
+timeCreated: 1507300388
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/UI.meta b/td/Assets/Prefabs/UI.meta
new file mode 100644
index 0000000..7f426e9
--- /dev/null
+++ b/td/Assets/Prefabs/UI.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 85c08193c8cb54ff38ada8765b211fa2
+folderAsset: yes
+timeCreated: 1506727362
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/UI/msgBoxYesNo.prefab b/td/Assets/Prefabs/UI/msgBoxYesNo.prefab
new file mode 100644
index 0000000..d5b775a
--- /dev/null
+++ b/td/Assets/Prefabs/UI/msgBoxYesNo.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/UI/msgBoxYesNo.prefab.meta b/td/Assets/Prefabs/UI/msgBoxYesNo.prefab.meta
new file mode 100644
index 0000000..3c4996f
--- /dev/null
+++ b/td/Assets/Prefabs/UI/msgBoxYesNo.prefab.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 21dda97ff00d54fca8607f4d476e82e3
+timeCreated: 1506877151
+licenseType: Free
+NativeFormatImporter:
+ mainObjectFileID: 100100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/level design.meta b/td/Assets/Prefabs/level design.meta
new file mode 100644
index 0000000..5fa139f
--- /dev/null
+++ b/td/Assets/Prefabs/level design.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f4efb8722711a4322b5c809507092aa6
+folderAsset: yes
+timeCreated: 1507240816
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Prefabs/Grass-dirt.prefab b/td/Assets/Prefabs/level design/Grass-dirt.prefab
index 5952387..dd9cf57 100644
--- a/td/Assets/Prefabs/Grass-dirt.prefab
+++ b/td/Assets/Prefabs/level design/Grass-dirt.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Grass-dirt.prefab.meta b/td/Assets/Prefabs/level design/Grass-dirt.prefab.meta
index 0c2256d..0c2256d 100644
--- a/td/Assets/Prefabs/Grass-dirt.prefab.meta
+++ b/td/Assets/Prefabs/level design/Grass-dirt.prefab.meta
diff --git a/td/Assets/Prefabs/level design/Path straigth.prefab b/td/Assets/Prefabs/level design/Path straigth.prefab
new file mode 100644
index 0000000..78ad75f
--- /dev/null
+++ b/td/Assets/Prefabs/level design/Path straigth.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Path straigth.prefab.meta b/td/Assets/Prefabs/level design/Path straigth.prefab.meta
index 875d25e..875d25e 100644
--- a/td/Assets/Prefabs/Path straigth.prefab.meta
+++ b/td/Assets/Prefabs/level design/Path straigth.prefab.meta
diff --git a/td/Assets/Prefabs/Path turn.prefab b/td/Assets/Prefabs/level design/Path turn.prefab
index 62e392e..28d95c1 100644
--- a/td/Assets/Prefabs/Path turn.prefab
+++ b/td/Assets/Prefabs/level design/Path turn.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/Path turn.prefab.meta b/td/Assets/Prefabs/level design/Path turn.prefab.meta
index ea595d4..ea595d4 100644
--- a/td/Assets/Prefabs/Path turn.prefab.meta
+++ b/td/Assets/Prefabs/level design/Path turn.prefab.meta
diff --git a/td/Assets/Prefabs/grassPart.prefab b/td/Assets/Prefabs/level design/grassPart.prefab
index b525984..442bbc5 100644
--- a/td/Assets/Prefabs/grassPart.prefab
+++ b/td/Assets/Prefabs/level design/grassPart.prefab
Binary files differ
diff --git a/td/Assets/Prefabs/grassPart.prefab.meta b/td/Assets/Prefabs/level design/grassPart.prefab.meta
index 0c263b8..0c263b8 100644
--- a/td/Assets/Prefabs/grassPart.prefab.meta
+++ b/td/Assets/Prefabs/level design/grassPart.prefab.meta
diff --git a/td/Assets/Scenes/Level 1.unity b/td/Assets/Scenes/Level 1.unity
index d48cc6e..23478b5 100644
--- a/td/Assets/Scenes/Level 1.unity
+++ b/td/Assets/Scenes/Level 1.unity
Binary files differ
diff --git a/td/Assets/Scripts/Enemy.cs b/td/Assets/Scripts/Enemy.cs
index 7273370..4d15b64 100644
--- a/td/Assets/Scripts/Enemy.cs
+++ b/td/Assets/Scripts/Enemy.cs
@@ -1,38 +1,39 @@
-using System.Collections;
-using System.Collections.Generic;
+using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour {
+ /* This is a general class that contains an enemy,
+ * Currently it follows the pathway, and dies when reacing the end */
- public float speed;
- public float initialHp;
- public Transform pathWay;
+ [Header("Attributes")]
+ public float Speed; // Speed multiplier
+ public int InitialHp; // HealthPoints
+ public int Damage;
+ public List<Vector3> Waypoints; // Pathway waypoints, should be set by the spawner
+
+ [Header("Scripting vars")]
+ public Player Player; // Reference to the player object, should be set when instantiating
- List<Vector3> waypoints = new List<Vector3>();
- Vector3 waypointPos;
- int waypointNum = -1; // Using minus one so that first addition returns 0, first element in array
-
- void Start () {
- foreach (Transform child in pathWay) {
- waypoints.Add (child.position);
- }
- }
+ private Vector3 _waypointPos; // Current waypoint position
+ private int _waypointNum = -1; // Using minus one so that first addition returns 0, first element in array
void Update () {
- updateWaypoint ();
+ if (Player.GameIsPaused()) { return; } // This ensures that the game stays paused
+
+ if ( (transform.position == _waypointPos && _waypointNum + 1 < Waypoints.Count) || _waypointNum == -1) {
+ _waypointNum++;
+ _waypointPos = new Vector3 (Waypoints [_waypointNum].x, 0.483f, Waypoints [_waypointNum].z);
+ }
- float transformStep = speed * Time.deltaTime;
- transform.position = Vector3.MoveTowards (transform.position, waypointPos, transformStep);
+ float transformStep = Speed * Time.deltaTime;
+ transform.position = Vector3.MoveTowards (transform.position, _waypointPos, transformStep);
- if (waypointNum == waypoints.Count - 1) {
+ // Selfdestruct if object reached the end
+ if (_waypointNum + 1 >= Waypoints.Count) {
+ WaveSpawner.EnemiesAlive--;
+ Player.DecreaseHealth (Damage);
Destroy (gameObject);
- }
- }
-
- void updateWaypoint() {
- if ( (transform.position == waypointPos && waypointNum < waypoints.Count - 1) || waypointNum == -1) {
- waypointNum++;
- waypointPos = new Vector3 (waypoints [waypointNum].x, 0.604f, waypoints [waypointNum].z);
+ return;
}
}
diff --git a/td/Assets/Scripts/EnemySpawner.cs b/td/Assets/Scripts/EnemySpawner.cs
deleted file mode 100644
index eb0dd43..0000000
--- a/td/Assets/Scripts/EnemySpawner.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class EnemySpawner : MonoBehaviour {
-
- public Enemy enemyPrefab;
- public Transform pathWay;
- public Transform gameWorld;
-
- int wave;
- int next = 1;
- int n = 0;
-
- void Update () {
- n++;
-
- if (n == next) {
- n = 0;
- next = (int)Random.Range (50, 400);
-
- Enemy newEnemy = Instantiate (enemyPrefab, new Vector3(0, 0, 0), Quaternion.identity, gameWorld);
- newEnemy.GetComponent <Enemy> ().pathWay = pathWay;
- newEnemy.GetComponent <Enemy> ().speed = Random.Range (0.3f, 1.2f);
- }
- }
-}
diff --git a/td/Assets/Scripts/PinchZoom.cs b/td/Assets/Scripts/PinchZoom.cs
deleted file mode 100644
index b3e6d22..0000000
--- a/td/Assets/Scripts/PinchZoom.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-using UnityEngine;
-using System.Collections;
-
-public class PinchZoom : MonoBehaviour
-{
- /* Dette vil bare funke for et ortografisk kamera! */
-
- private static readonly float PanSpeed = 20f;
- private static readonly float ZoomSpeedTouch = 0.1f;
- private static readonly float ZoomSpeedMouse = .5f;
-
- public static readonly float[] BoundsX = new float[]{-10f, 5f};
- public static readonly float[] BoundsZ = new float[]{-18f, -4f};
- public static readonly float[] ZoomBounds = new float[]{10f, 85f};
-
- private Camera cam;
-
- private bool panActive;
- private Vector3 lastPanPosition;
- private int panFingerId; // Touch mode only
-
- private bool zoomActive;
- private Vector2[] lastZoomPositions; // Touch mode only
-
- void Awake() {
- cam = GetComponent<Camera>();
-
- #if UNITY_ANDROID || UNITY_IOS
- cam.fieldOfView = 60f;
- #endif
- }
-
- void Update() {
- // If there's an open menu, or the clicker is being pressed, ignore the touch.
- /*
- if (GameManager.Instance.MenuManager.HasOpenMenu || GameManager.Instance.BitSpawnManager.IsSpawningBits) {
- return;
- }*/
-
- if (Input.touchSupported && Application.platform != RuntimePlatform.WebGLPlayer) {
- HandleTouch();
- } else {
- HandleMouse();
- }
- }
-
- void HandleTouch() {
- switch(Input.touchCount) {
-
- case 1: // Panning
- zoomActive = false;
-
- // If the touch began, capture its position and its finger ID.
- // Otherwise, if the finger ID of the touch doesn't match, skip it.
- Touch touch = Input.GetTouch(0);
- if (touch.phase == TouchPhase.Began) {
- lastPanPosition = touch.position;
- panFingerId = touch.fingerId;
- panActive = true;
- } else if (touch.fingerId == panFingerId && touch.phase == TouchPhase.Moved) {
- PanCamera(touch.position);
- }
- break;
-
- case 2: // Zooming
- panActive = false;
-
- Vector2[] newPositions = new Vector2[]{Input.GetTouch(0).position, Input.GetTouch(1).position};
- if (!zoomActive) {
- lastZoomPositions = newPositions;
- zoomActive = true;
- } else {
- // Zoom based on the distance between the new positions compared to the
- // distance between the previous positions.
- float newDistance = Vector2.Distance(newPositions[0], newPositions[1]);
- float oldDistance = Vector2.Distance(lastZoomPositions[0], lastZoomPositions[1]);
- float offset = newDistance - oldDistance;
-
- ZoomCamera(offset, ZoomSpeedTouch);
-
- lastZoomPositions = newPositions;
- }
- break;
-
- default:
- panActive = false;
- zoomActive = false;
- break;
- }
- }
-
- void HandleMouse() {
- // On mouse down, capture it's position.
- // On mouse up, disable panning.
- // If there is no mouse being pressed, do nothing.
- if (Input.GetMouseButtonDown(0)) {
- panActive = true;
- lastPanPosition = Input.mousePosition;
- } else if (Input.GetMouseButtonUp(0)) {
- panActive = false;
- } else if (Input.GetMouseButton(0)) {
- PanCamera(Input.mousePosition);
- }
-
- // Check for scrolling to zoom the camera
- float scroll = Input.GetAxis("Mouse ScrollWheel");
- zoomActive = true;
- ZoomCamera(scroll, ZoomSpeedMouse);
- zoomActive = false;
- }
-
- void PanCamera(Vector3 newPanPosition) {
- if (!panActive) {
- return;
- }
-
- // Translate the camera position based on the new input position
- Vector3 offset = cam.ScreenToViewportPoint(lastPanPosition - newPanPosition);
- Vector3 move = new Vector3(offset.x * PanSpeed, 0, offset.y * PanSpeed);
- transform.Translate(move, Space.World);
- ClampToBounds();
-
- lastPanPosition = newPanPosition;
- }
-
- void ZoomCamera(float offset, float speed) {
- if (!zoomActive || offset == 0) {
- return;
- }
-
- cam.fieldOfView = Mathf.Clamp(cam.fieldOfView - (offset * speed), ZoomBounds[0], ZoomBounds[1]);
- }
-
- void ClampToBounds() {
- Vector3 pos = transform.position;
- pos.x = Mathf.Clamp(transform.position.x, BoundsX[0], BoundsX[1]);
- pos.z = Mathf.Clamp(transform.position.z, BoundsZ[0], BoundsZ[1]);
-
- transform.position = pos;
- }
-
-
-
-} \ No newline at end of file
diff --git a/td/Assets/Scripts/Projectile.cs b/td/Assets/Scripts/Projectile.cs
new file mode 100644
index 0000000..3b02763
--- /dev/null
+++ b/td/Assets/Scripts/Projectile.cs
@@ -0,0 +1,43 @@
+using UnityEngine;
+
+public class Projectile : MonoBehaviour {
+
+ public float Speed = 70f;
+ public int PointsPerHit;
+ [Header("Scripting vars")]
+ public Player Player; // Reference to the player object, should be set when instantiating
+ private Transform _target;
+
+ public void Seek(Transform target) {
+ _target = target;
+ }
+
+
+ void Update () {
+
+ if (_target == null) {
+ Destroy (gameObject);
+ return;
+ }
+
+ Vector3 direction = _target.position - transform.position;
+ float distanceThisFrame = Speed * Time.deltaTime;
+
+ if (direction.magnitude <= distanceThisFrame) {
+ HitTarget ();
+ return;
+ }
+
+ transform.Translate (direction.normalized * distanceThisFrame, Space.World);
+
+
+ }
+
+ void HitTarget() {
+ WaveSpawner.EnemiesAlive--;
+ Player.ScoreAdd (PointsPerHit);
+ Destroy (_target.gameObject);
+ Destroy (gameObject);
+ }
+
+}
diff --git a/td/Assets/Scripts/EnemySpawner.cs.meta b/td/Assets/Scripts/Projectile.cs.meta
index 3fe504e..a95b993 100644
--- a/td/Assets/Scripts/EnemySpawner.cs.meta
+++ b/td/Assets/Scripts/Projectile.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: 3e57c25f0405b40cab5c30b2c92671ae
-timeCreated: 1506633566
+guid: 4a1928566183240ea8566b659c4b3d5f
+timeCreated: 1507300755
licenseType: Free
MonoImporter:
serializedVersion: 2
diff --git a/td/Assets/Scripts/cameraHandler.cs b/td/Assets/Scripts/cameraHandler.cs
index a4aa660..7c2f75f 100644
--- a/td/Assets/Scripts/cameraHandler.cs
+++ b/td/Assets/Scripts/cameraHandler.cs
@@ -1,8 +1,7 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
+using UnityEngine;
-public class cameraHandler : MonoBehaviour {
+public class CameraHandler : MonoBehaviour {
+ // TODO Fiks panning, ser idiotisk ut nå så jeg har satt panSpeed til 0. (I editoren)
public float PanSpeed = 20f;
public float ZoomSpeedTouch = 0.1f;
@@ -12,21 +11,24 @@ public class cameraHandler : MonoBehaviour {
public static readonly float[] BoundsY = new float[]{-5f, 10f};
public static readonly float[] BoundsZ = new float[]{-8f, 8f};
public static readonly float[] ZoomBounds = new float[]{1f, 5f};
+ [Header("Scripting vars")]
+ public Player Player; // Reference to the player object, should be set in designer
- private Camera cam;
+ private Camera _cam;
- private bool panActive;
- private Vector3 lastPanPosition;
- private int panFingerId; // Touch mode only
+ private bool _panActive;
+ private Vector3 _lastPanPosition;
+ private int _panFingerId; // Touch mode only
- private bool zoomActive;
- private Vector2[] lastZoomPositions; // Touch mode only
+ private bool _zoomActive;
+ private Vector2[] _lastZoomPositions; // Touch mode only
void Awake() {
- cam = GetComponent<Camera>();
+ _cam = GetComponent<Camera>();
}
void Update() {
+ if (Player.GameIsPaused()) { return; }
// If there's an open menu, or the clicker is being pressed, ignore the touch.
/*
if (GameManager.Instance.MenuManager.HasOpenMenu || GameManager.Instance.BitSpawnManager.IsSpawningBits) {
@@ -36,52 +38,52 @@ public class cameraHandler : MonoBehaviour {
if (Input.touchSupported && Application.platform != RuntimePlatform.WebGLPlayer) {
HandleTouch();
} else {
- //HandleMouse();
+ HandleMouse();
}
- HandleTouch ();
+ //HandleTouch ();
}
void HandleTouch() {
switch(Input.touchCount) {
case 1: // Panning
- zoomActive = false;
+ _zoomActive = false;
// If the touch began, capture its position and its finger ID.
// Otherwise, if the finger ID of the touch doesn't match, skip it.
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began) {
- lastPanPosition = touch.position;
- panFingerId = touch.fingerId;
- panActive = true;
- } else if (touch.fingerId == panFingerId && touch.phase == TouchPhase.Moved) {
+ _lastPanPosition = touch.position;
+ _panFingerId = touch.fingerId;
+ _panActive = true;
+ } else if (touch.fingerId == _panFingerId && touch.phase == TouchPhase.Moved) {
PanCamera(touch.position);
}
break;
case 2: // Zooming
- panActive = false;
+ _panActive = false;
Vector2[] newPositions = new Vector2[]{Input.GetTouch(0).position, Input.GetTouch(1).position};
- if (!zoomActive) {
- lastZoomPositions = newPositions;
- zoomActive = true;
+ if (!_zoomActive) {
+ _lastZoomPositions = newPositions;
+ _zoomActive = true;
} else {
// Zoom based on the distance between the new positions compared to the
// distance between the previous positions.
float newDistance = Vector2.Distance(newPositions[0], newPositions[1]);
- float oldDistance = Vector2.Distance(lastZoomPositions[0], lastZoomPositions[1]);
+ float oldDistance = Vector2.Distance(_lastZoomPositions[0], _lastZoomPositions[1]);
float offset = newDistance - oldDistance;
ZoomCamera(offset, ZoomSpeedTouch);
- lastZoomPositions = newPositions;
+ _lastZoomPositions = newPositions;
}
break;
default:
- panActive = false;
- zoomActive = false;
+ _panActive = false;
+ _zoomActive = false;
break;
}
}
@@ -91,41 +93,41 @@ public class cameraHandler : MonoBehaviour {
// On mouse up, disable panning.
// If there is no mouse being pressed, do nothing.
if (Input.GetMouseButtonDown(0)) {
- panActive = true;
- lastPanPosition = Input.mousePosition;
+ _panActive = true;
+ _lastPanPosition = Input.mousePosition;
} else if (Input.GetMouseButtonUp(0)) {
- panActive = false;
+ _panActive = false;
} else if (Input.GetMouseButton(0)) {
PanCamera(Input.mousePosition);
}
// Check for scrolling to zoom the camera
float scroll = Input.GetAxis("Mouse ScrollWheel");
- zoomActive = true;
+ _zoomActive = true;
ZoomCamera(scroll, ZoomSpeedMouse);
- zoomActive = false;
+ _zoomActive = false;
}
void ZoomCamera(float offset, float speed) {
- if (!zoomActive || offset == 0) {
+ if (!_zoomActive || offset == 0) {
return;
}
- cam.orthographicSize = Mathf.Clamp(cam.orthographicSize - (offset * speed), ZoomBounds[0], ZoomBounds[1]);
+ _cam.orthographicSize = Mathf.Clamp(_cam.orthographicSize - (offset * speed), ZoomBounds[0], ZoomBounds[1]);
}
void PanCamera(Vector3 newPanPosition) {
- if (!panActive) {
+ if (!_panActive) {
return;
}
// Translate the camera position based on the new input position
- Vector3 offset = cam.ScreenToViewportPoint(lastPanPosition - newPanPosition);
+ Vector3 offset = _cam.ScreenToViewportPoint(_lastPanPosition - newPanPosition);
Vector3 move = new Vector3(offset.x * PanSpeed, offset.y * PanSpeed, 0f);
transform.Translate(move, Space.World);
ClampToBounds();
- lastPanPosition = newPanPosition;
+ _lastPanPosition = newPanPosition;
}
void ClampToBounds() {
diff --git a/td/Assets/Scripts/castle.cs b/td/Assets/Scripts/castle.cs
new file mode 100644
index 0000000..5c8835c
--- /dev/null
+++ b/td/Assets/Scripts/castle.cs
@@ -0,0 +1,23 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class Castle : MonoBehaviour {
+
+ private void Update () {
+ //CheckThing();
+ }
+
+ private void CheckThing() {
+ GameObject[] enemies = GameObject.FindGameObjectsWithTag ("enemy");
+
+ foreach (var enemy in enemies) {
+ var distanceToEnemy = Vector3.Distance (transform.position, enemy.transform.position);
+ if (distanceToEnemy <= 0) {
+ Debug.Log("INTRUDER!");
+ }
+ }
+ }
+
+
+}
diff --git a/td/Assets/Scripts/castle.cs.meta b/td/Assets/Scripts/castle.cs.meta
new file mode 100644
index 0000000..246ac0b
--- /dev/null
+++ b/td/Assets/Scripts/castle.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c6004dcebebd0498389086d43a3bd6fa
+timeCreated: 1507302323
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/developerMode.cs b/td/Assets/Scripts/developerMode.cs
new file mode 100644
index 0000000..a71d4c7
--- /dev/null
+++ b/td/Assets/Scripts/developerMode.cs
@@ -0,0 +1,76 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.UI;
+using UnityEngine;
+
+public class DeveloperMode : MonoBehaviour {
+
+ public string Output = "";
+ public string Stack = "";
+ public bool CheatsAllowed;
+
+ GameObject _pnlCanvas;
+ GameObject _pnlCheats;
+ Button _btnToggleCheats;
+ Text _lblConsoleLog;
+
+ bool _developerModeActive;
+ bool _cheatMenuOpen;
+
+ void Start () {
+ /* Panels */
+ _pnlCanvas = this.gameObject.transform.GetChild (0).gameObject;
+ _pnlCheats = _pnlCanvas.transform.Find ("cheatMenu").gameObject;
+ /* Buttons */
+ /* Button handlers */
+ /* Lablels */
+ _lblConsoleLog = _pnlCanvas.transform.Find ("consoleLog").gameObject.GetComponent <Text>();
+ /* Do setup */
+ _lblConsoleLog.text = "";
+
+ if (CheatsAllowed) {
+ _btnToggleCheats = _pnlCanvas.transform.Find ("toggleCheats").gameObject.GetComponent <Button> ();
+ if (_btnToggleCheats != null) { _btnToggleCheats.onClick.AddListener (btnToggleCheatsHandler); }
+ _cheatMenuOpen = false;
+ } else {
+ _pnlCanvas.transform.Find ("toggleCheats").gameObject.SetActive (false);
+ }
+ _pnlCheats.SetActive (false);
+ }
+
+ void Update () {
+
+ if (PlayerPrefs.HasKey ("developerMode")) {
+ if (PlayerPrefs.GetInt ("developerMode") == 1) { _developerModeActive = true; }
+ else { _developerModeActive = false; }
+ }
+
+ if (_developerModeActive) {
+ this.gameObject.transform.GetChild (0).gameObject.SetActive (true);
+ } else {
+ this.gameObject.transform.GetChild (0).gameObject.SetActive (false);
+ }
+ }
+
+ void btnToggleCheatsHandler() {
+ /* Handler for btnToggleCheats */
+ if (CheatsAllowed) {
+ _cheatMenuOpen = !_cheatMenuOpen;
+ _pnlCheats.SetActive (_cheatMenuOpen);
+ }
+ }
+
+ #region GetDebugLog
+ void OnEnable() {
+ Application.logMessageReceived += HandleLog;
+ }
+ void OnDisable() {
+ Application.logMessageReceived -= HandleLog;
+ }
+ public void HandleLog(string logString, string stackTrace, LogType type) {
+ string backLog = _lblConsoleLog.text;
+ _lblConsoleLog.text = logString + "\n" + backLog;
+ }
+ #endregion
+
+}
diff --git a/td/Assets/Scripts/developerMode.cs.meta b/td/Assets/Scripts/developerMode.cs.meta
new file mode 100644
index 0000000..7b3be6c
--- /dev/null
+++ b/td/Assets/Scripts/developerMode.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 71d5bbff4cf5e434da6945e5ea1006af
+timeCreated: 1506884902
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/enableChild.cs b/td/Assets/Scripts/enableChild.cs
new file mode 100644
index 0000000..cba9375
--- /dev/null
+++ b/td/Assets/Scripts/enableChild.cs
@@ -0,0 +1,12 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EnableChild : MonoBehaviour {
+ /* Denne klassen gjør ikke annet enn å aktivere det første childobjektet,
+ * nyttig om man vil skjule objekter når man designer,
+ * slik at man slipper å drive å skru objektene av og på mellom hver test manuelt */
+ void Start () {
+ this.gameObject.transform.GetChild (0).gameObject.SetActive (true);
+ }
+} \ No newline at end of file
diff --git a/td/Assets/Scripts/enableChild.cs.meta b/td/Assets/Scripts/enableChild.cs.meta
new file mode 100644
index 0000000..ab87395
--- /dev/null
+++ b/td/Assets/Scripts/enableChild.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c726586371a844ca1adc60878d0dadf1
+timeCreated: 1506778993
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/gameStats.cs b/td/Assets/Scripts/gameStats.cs
new file mode 100644
index 0000000..731c276
--- /dev/null
+++ b/td/Assets/Scripts/gameStats.cs
@@ -0,0 +1,60 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.UI;
+using UnityEngine;
+
+public class GameStats : MonoBehaviour {
+
+ public Player Player;
+ private GameObject _canvas;
+ private Text _txtMoney;
+ private Text _txtScore;
+ private Text _txtHp;
+ private Slider _sldHp;
+ private int _displayedScore;
+ private int _displayedMoney;
+ private int _displayedHealth;
+
+ private void Start() {
+ _canvas = transform.GetChild (0).gameObject;
+ _txtMoney = _canvas.transform.Find ("playerMoney").gameObject.GetComponent <Text>();
+ _txtScore = _canvas.transform.Find ("playerScore").gameObject.GetComponent <Text>();
+ _sldHp = _canvas.transform.Find("playerHealth").gameObject.GetComponent<Slider>();
+ }
+
+ private void Update () {
+
+ if (Player.Money () != _displayedMoney) {
+ _displayedMoney = Player.Money ();
+ UpdateMoney (_displayedMoney);
+ }
+
+ if (Player.Score () != _displayedScore) {
+ _displayedScore = Player.Score ();
+ UpdateScore (_displayedScore);
+ }
+
+ if (Mathf.RoundToInt(Player.HealthAsPercentage()) != Mathf.RoundToInt(_displayedHealth)) {
+ _displayedHealth = Player.HealthAsPercentage();
+ UpdateHealth (_displayedHealth);
+
+ if (_displayedHealth <= 10) {
+ _txtScore.color = Color.red;
+ }
+ }
+
+ }
+
+ private void UpdateScore(int newScore) {
+ _txtScore.text = ("Score: " + newScore.ToString ());
+ }
+
+ private void UpdateMoney(int newMoney) {
+ _txtMoney.text = ("Money: " + newMoney.ToString () + "$");
+ }
+
+ private void UpdateHealth(int newHp) {
+ _sldHp.value = newHp;
+ }
+
+}
diff --git a/td/Assets/Scripts/gameStats.cs.meta b/td/Assets/Scripts/gameStats.cs.meta
new file mode 100644
index 0000000..cd4989c
--- /dev/null
+++ b/td/Assets/Scripts/gameStats.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 48789fb36d2d543209c2f6540f1442d9
+timeCreated: 1507127936
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/mainGUI.cs b/td/Assets/Scripts/mainGUI.cs
new file mode 100644
index 0000000..26ec78b
--- /dev/null
+++ b/td/Assets/Scripts/mainGUI.cs
@@ -0,0 +1,187 @@
+using System;
+using UnityEngine.UI;
+using UnityEngine.SceneManagement;
+using UnityEngine;
+
+public class MainGui : MonoBehaviour {
+ [Header("Scripting vars")]
+ public Player Player; // Reference to the player object, should be set in designer
+
+ private GameObject _pnlMenu;
+ private GameObject _pnlSidebar;
+ private GameObject _pnlSettings;
+ private GameObject _pnlGameOver;
+ private RectTransform _pnlSidebarTransform;
+ private Button _btnToggleSidebar;
+ private Button _btnPauseGame;
+ private Button _btnResumeGame;
+ private Button _btnExitGame;
+ private Button _btnSettings;
+ private Button _btnSettingsDiscard;
+ private Button _btnSettingsSave;
+ private Button _btnGoRetry;
+ private Button _btnGoMenu;
+ private Text _txtGoScore;
+ private Text _txtGoHighScore;
+ private Text _txtGoNewHighScore;
+
+ private bool _sidebarExpanded;
+ private readonly float[] _sidebarStates = new float[2] {0f, -202.4f}; // The x position of the sidebar expanded or collapsed
+
+ private bool _menuActive;
+
+ private void Awake() {
+ /* Panels */
+ _pnlMenu = transform.Find ("menu").gameObject;
+ _pnlSidebar = transform.Find ("sidebarWrapper").gameObject;
+ _pnlSettings = transform.Find ("settings").gameObject;
+ _pnlGameOver = transform.Find("GameOver").gameObject;
+ _pnlSidebarTransform = _pnlSidebar.GetComponent <RectTransform> ();
+
+ /* Buttons */
+ _btnToggleSidebar = _pnlSidebar.transform.Find("toggleSidebar").gameObject.GetComponent <Button> ();
+ _btnPauseGame = _pnlSidebar.transform.Find ("pauseGame").gameObject.GetComponent <Button> ();
+ _btnResumeGame = _pnlMenu.transform.Find ("resumeGame").gameObject.GetComponent <Button> ();
+ _btnExitGame = _pnlMenu.transform.Find ("exitGame").gameObject.GetComponent <Button> ();
+ _btnSettings = _pnlMenu.transform.Find ("settings").gameObject.GetComponent <Button> ();
+ _btnSettingsDiscard = _pnlSettings.transform.Find ("discardChanges").gameObject.GetComponent <Button> ();
+ _btnSettingsSave = _pnlSettings.transform.Find ("saveChanges").gameObject.GetComponent <Button> ();
+ _btnGoMenu = _pnlGameOver.transform.Find ("GameOver").transform.Find("menu").gameObject.GetComponent <Button> ();
+ _btnGoRetry = _pnlGameOver.transform.Find ("GameOver").transform.Find("restart").gameObject.GetComponent <Button> ();
+ if (_btnToggleSidebar != null) { _btnToggleSidebar.onClick.AddListener (toggleSidebarHandler); }
+ if (_btnPauseGame != null) { _btnPauseGame.onClick.AddListener (pauseGameHandler); }
+ if (_btnResumeGame != null) { _btnResumeGame.onClick.AddListener (btnResumeGameHandler); }
+ if (_btnExitGame != null) { _btnExitGame.onClick.AddListener (btnExitGameHandler); }
+ if (_btnSettings != null) { _btnSettings.onClick.AddListener (btnSettingsHandler); }
+ if (_btnSettingsDiscard != null) { _btnSettingsDiscard.onClick.AddListener (btnSettingsDiscardHandler); }
+ if (_btnSettingsSave != null) { _btnSettingsSave.onClick.AddListener (btnSettingsSaveHandler); }
+ if (_btnGoMenu != null) { _btnGoMenu.onClick.AddListener (btnGoMenuHandler); }
+ if (_btnGoRetry != null) { _btnGoRetry.onClick.AddListener (btnGoRetryHandler); }
+
+ /* Text */
+ _txtGoScore = _pnlGameOver.transform.Find ("GameOver").transform.Find("score").gameObject.GetComponent<Text>();
+ _txtGoHighScore = _pnlGameOver.transform.Find ("GameOver").transform.Find("highScore").gameObject.GetComponent<Text>();
+ _txtGoNewHighScore = _pnlGameOver.transform.Find ("GameOver").transform.Find("newHighscore").gameObject.GetComponent<Text>();
+
+ /* Set up initial states */
+ UpdateSidebarPosandBtn ();
+ _pnlMenu.SetActive (false);
+ _pnlSettings.SetActive (false);
+ _pnlGameOver.SetActive(false);
+ }
+
+ private void toggleSidebarHandler() {
+ /* handler for btnToggleSidebar */
+ _sidebarExpanded = !_sidebarExpanded;
+ UpdateSidebarPosandBtn ();
+ }
+
+ private void pauseGameHandler() {
+ /* handler for btnPauseGame */
+ _menuActive = true;
+ _pnlMenu.SetActive (_menuActive);
+ Time.timeScale = 0.0F;
+ _btnToggleSidebar.interactable = false;
+ _btnPauseGame.interactable = false;
+ Player.PauseGame();
+ }
+
+ private void btnResumeGameHandler() {
+ /* handler for btnResumeGame */
+ _menuActive = false;
+ _pnlMenu.SetActive (_menuActive);
+ Time.timeScale = 1.0F;
+ _btnToggleSidebar.interactable = true;
+ _btnPauseGame.interactable = true;
+ Player.ResumeGame();
+ }
+
+ private void btnExitGameHandler() {
+ /* handler for btnExitGame */
+ Application.Quit ();
+ }
+
+ private void btnSettingsHandler() {
+ /* handler for btnSettings */
+ _pnlMenu.SetActive (false);
+ _pnlSettings.SetActive (true);
+
+ if (PlayerPrefs.HasKey ("developerMode")) {
+ _pnlSettings.transform.Find ("developerEnabled").gameObject.GetComponent <Toggle> ().isOn = IntToBool(PlayerPrefs.GetInt ("developerMode"));
+ }
+ }
+
+ private void btnSettingsSaveHandler() {
+ /* handler for btnSaveSettings */
+ _pnlMenu.SetActive (true);
+ _pnlSettings.SetActive (false);
+
+ PlayerPrefs.SetInt ("developerMode", Convert.ToInt32(_pnlSettings.transform.Find ("developerEnabled").gameObject.GetComponent <Toggle>().isOn));
+ }
+
+ private void btnSettingsDiscardHandler() {
+ /* handler for btnSettingsDiscard */
+ _pnlMenu.SetActive (true);
+ _pnlSettings.SetActive (false);
+ }
+
+ private void UpdateSidebarPosandBtn() {
+ /* update state of sidebar based on the expanded var */
+ if (_sidebarExpanded) {
+ _pnlSidebarTransform.localPosition = new Vector3 (_sidebarStates [1], 0f, 0f);
+ _btnToggleSidebar.transform.GetComponent <RectTransform> ().localScale = new Vector3 (-1, 1, 1);
+ } else {
+ _pnlSidebarTransform.localPosition = new Vector3 (_sidebarStates [0], 0f, 0f);
+ _btnToggleSidebar.transform.GetComponent <RectTransform> ().localScale = new Vector3 (1, 1, 1);
+ }
+ }
+
+ private void btnGoMenuHandler() {
+ /* Handler for btnGoMenu */
+ }
+
+ private void btnGoRetryHandler() {
+ /* Handler for btnGoRetry */
+ SceneManager.LoadScene(SceneManager.GetActiveScene().name);
+ Time.timeScale = 1.0F;
+ }
+
+ private bool IntToBool(int input) {
+ /* Converts int to boolean */
+ if (input >= 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public void GameOverScreen(int score) {
+ /* Show game over screen */
+ bool newHighscore = false;
+ int highScore = 0;
+
+ if (PlayerPrefs.HasKey("highscore")) {
+ highScore = PlayerPrefs.GetInt("highscore");
+ if (score > highScore) {
+ newHighscore = true;
+ }
+ }
+
+ if (_sidebarExpanded) { toggleSidebarHandler(); }
+
+ /* Pause game */
+ Player.PauseGame();
+ /* Activate panel */
+ _pnlGameOver.SetActive(true);
+ /* Set text, score */
+ _txtGoScore.text = "Score: " + score.ToString();
+ /* set text, highscore */
+ _txtGoHighScore.text = "Highscore: " + highScore.ToString();
+ /* set newHicgscore */
+ _txtGoNewHighScore.gameObject.SetActive(newHighscore);
+ /* Disable other onScreenButtons */
+ _btnToggleSidebar.interactable = false;
+ _btnPauseGame.interactable = false;
+ }
+
+}
diff --git a/td/Assets/Scripts/mainGUI.cs.meta b/td/Assets/Scripts/mainGUI.cs.meta
new file mode 100644
index 0000000..bbfc14a
--- /dev/null
+++ b/td/Assets/Scripts/mainGUI.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6953b687c28724842b2c9d48f701cf75
+timeCreated: 1506770005
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/player.cs b/td/Assets/Scripts/player.cs
new file mode 100644
index 0000000..cb55357
--- /dev/null
+++ b/td/Assets/Scripts/player.cs
@@ -0,0 +1,85 @@
+using UnityEngine;
+
+public class Player : MonoBehaviour {
+
+ public int InitialHealth;
+ public int StartingMoney;
+ public MainGui MainGui;
+
+ private int _gameState;
+ private GameObject[] _towers;
+ private int _playerMoney;
+ private int _playerScore;
+ private int _playerHealth;
+
+ void Awake() {
+ /* This method initializes the player class */
+ _playerMoney = StartingMoney;
+ _playerHealth = InitialHealth;
+ InvokeRepeating ("GameStateWatcher", 0f, 0.5f);
+ _gameState = 1;
+ }
+
+ #region stats
+ public int Score() {
+ return _playerScore;
+ }
+
+ public void ScoreAdd(int points) {
+ _playerScore += points;
+ }
+
+ public int Money() {
+ return _playerMoney;
+ }
+
+ public void MoneyAdd(int sum) {
+ _playerMoney += sum;
+ }
+
+ public void MoneySubtract(int sum) {
+ _playerMoney -= sum;
+ }
+
+ public int Health() {
+ return _playerHealth;
+ }
+
+ public int HealthAsPercentage()
+ {
+ return Mathf.RoundToInt((InitialHealth * _playerHealth) / 100.0f); // Basic percentage calc...
+ }
+
+ public void DecreaseHealth(int hp) {
+ _playerHealth -= hp;
+ }
+ #endregion
+
+ public void SpawnTower(GameObject towerType) {
+ GameObject tower = Instantiate (towerType, new Vector3 (0, 0, 0), Quaternion.identity, transform.Find ("towers").transform);
+ Tower script = tower.GetComponent <Tower>();
+ script.Player = this;
+ }
+
+ public void GameStateWatcher() {
+ if (_playerHealth <= 0) {
+ MainGui.GameOverScreen(_playerScore);
+ }
+ }
+
+ public bool GameIsPaused() {
+ if (_gameState == 0) { return true; }
+ return false;
+ }
+
+ public void PauseGame() {
+ Time.timeScale = 0.0F;
+ _gameState = 0;
+ }
+
+ public void ResumeGame() {
+ Time.timeScale = 1.0F;
+ _gameState = 1;
+ }
+
+}
diff --git a/td/Assets/Scripts/player.cs.meta b/td/Assets/Scripts/player.cs.meta
new file mode 100644
index 0000000..c57a461
--- /dev/null
+++ b/td/Assets/Scripts/player.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: b033e147f0b23409bb5c7a98a7208d6b
+timeCreated: 1507125120
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/tower.cs b/td/Assets/Scripts/tower.cs
new file mode 100644
index 0000000..004605b
--- /dev/null
+++ b/td/Assets/Scripts/tower.cs
@@ -0,0 +1,145 @@
+using UnityEngine;
+
+public class Tower : MonoBehaviour {
+
+ [Header("Attributes")]
+ public int TowerPrice; // The price of the tower, set this in the desiger (tower prefab)
+ public float FireRate; // How long the turret should use to reload, Set in designer (tower prefab)
+ public float TurnSpeed; // How fast the turret should rotate. Set in designer (tower prefab)
+ [Range(0, 10)]
+ public float TowerRange; // How large the range of the tower is. this is the diameter. Set in designer (tower prefab)
+ public GameObject ProjectilePrefab;
+ public Transform FirePoint;
+ [Header("Materials")]
+ public Material MaterialDanger; // The material used when tower can't be placed, set in the designer (tower prefab)
+ public Material MaterialSuccess; // The material used when the tower can be placed, or is selected, set in the designer (tower prefab)
+ [Header("Scripting vars")]
+ public Player Player; // Reference to the player object, should be set when instantiating
+
+ private GameObject _placementIndicator; // The placement indicator
+ private Renderer _placementIndicatorRenderer; // The renderer of the placement indicator
+ private Plane _groundPlane; // Plane used for raycasting when placing tower
+ private float _groundYpoint = 0.525f; // What Y-position the Tower should be placed on, this should be constant in every use-case.
+ private bool _towerPlaced; // Bool used to descide what to do this frame
+ private bool _colliding; // Set if the tower collides with any GameObject, used when placing, to see where it can be placed
+
+ private Transform _target;
+ private float _fireCountdown;
+
+ void Start () {
+ _placementIndicator = transform.GetChild (0).gameObject;
+ _placementIndicatorRenderer = _placementIndicator.GetComponent<Renderer> ();
+ _placementIndicator.transform.localScale = new Vector3 (TowerRange*7, 0.00000001f, TowerRange*7);
+
+ _groundPlane = new Plane (Vector3.up, new Vector3(0f, _groundYpoint, 0f));
+ }
+
+ void Update () {
+
+ #region placeTower
+ if (!_towerPlaced) {
+ if (Input.touchCount == 1 || Input.GetMouseButton (0)) {
+
+ /* Activate indicator if not already */
+ if (!_placementIndicator.activeSelf) { _placementIndicator.SetActive (true); }
+ /* Change indicator-color based on placement */
+ if (!_colliding) { _placementIndicatorRenderer.sharedMaterial = MaterialDanger; }
+ else { _placementIndicatorRenderer.sharedMaterial = MaterialSuccess; }
+ /* Calculate new position */
+ Ray touchRay = Camera.main.ScreenPointToRay (Input.mousePosition);
+ float rayDistance;
+ if (_groundPlane.Raycast (touchRay, out rayDistance)) {
+ transform.position = touchRay.GetPoint (rayDistance);
+ }
+
+ } else {
+
+ /* User let go of the screen, decide if tower can be placed */
+ if (!_colliding) { Destroy (gameObject); } // Skal kollidere for å være på et godkjent område
+ else {
+ _towerPlaced = true;
+ Player.MoneySubtract (TowerPrice);
+ _placementIndicator.SetActive (false);
+ _placementIndicatorRenderer.sharedMaterial = MaterialSuccess;
+ InvokeRepeating ("UpdateTarget", 0f, 0.5f); // This starts the
+ gameObject.GetComponent <BoxCollider>().enabled = false;
+ }
+
+ }
+
+ return;
+ }
+ #endregion
+
+ // Stop rest of update if no target is aquired
+ if (_target == null) {
+ return;
+ }
+ // Target lockon
+ Vector3 direction = _target.position - transform.position;
+ Quaternion lookRotation = Quaternion.LookRotation (direction);
+ Vector3 rotation = Quaternion.Lerp (transform.rotation, lookRotation, Time.deltaTime * TurnSpeed).eulerAngles;
+ transform.rotation = Quaternion.Euler (0f, rotation.y, 0f);
+
+ if (_fireCountdown <= 0f) {
+ // FAIAAAAA
+ Shoot();
+ _fireCountdown = 1f / FireRate;
+ }
+
+ _fireCountdown -= Time.deltaTime;
+
+ }
+
+ void Shoot() {
+ GameObject projectileGo = (GameObject) Instantiate (ProjectilePrefab, FirePoint.position, FirePoint.rotation);
+ Projectile projectile = projectileGo.GetComponent <Projectile>();
+ if (projectile != null) {
+ projectile.Player = Player;
+ projectile.Seek (_target);
+ }
+ }
+
+ void UpdateTarget() {
+ /* Method that updates the currentTarget.
+ * The target will be set to the nearest in range */
+ GameObject[] enemies = GameObject.FindGameObjectsWithTag ("enemy");
+ float shortestDistance = Mathf.Infinity;
+ GameObject nearestEnemy = null;
+
+ foreach (var enemy in enemies) {
+ float distanceToEnemy = Vector3.Distance (transform.position, enemy.transform.position);
+ if (distanceToEnemy < shortestDistance) {
+ shortestDistance = distanceToEnemy;
+ nearestEnemy = enemy;
+ }
+ }
+
+ if (nearestEnemy != null && shortestDistance <= TowerRange) {
+ _target = nearestEnemy.transform;
+ } else {
+ _target = null;
+ }
+ }
+
+ void OnTriggerEnter(Collider other) {
+ _colliding = true;
+ }
+
+ void OnTriggerStay(Collider other) {
+ _colliding = true;
+ }
+
+ void OnTriggerExit(Collider other) {
+ _colliding = false;
+ }
+
+ void OnDrawGizmosSelected() {
+ /* Show gizmos in designer */
+ Gizmos.color = Color.red;
+ Gizmos.DrawWireSphere (transform.position, TowerRange);
+ }
+
+}
+
+
diff --git a/td/Assets/Scripts/tower.cs.meta b/td/Assets/Scripts/tower.cs.meta
new file mode 100644
index 0000000..c31ac8e
--- /dev/null
+++ b/td/Assets/Scripts/tower.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 39d4d93c762d74a628b6292b97f1483f
+timeCreated: 1506962845
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Scripts/waveSpawner.cs b/td/Assets/Scripts/waveSpawner.cs
new file mode 100644
index 0000000..3a6d7d4
--- /dev/null
+++ b/td/Assets/Scripts/waveSpawner.cs
@@ -0,0 +1,125 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class WaveSpawner : MonoBehaviour {
+
+ [Header("Attributes")]
+ public float TimeBetweenWaves;
+ public float SpawnRate;
+
+ [Header("Objects")]
+ public Transform SpawnPoint;
+ public Transform PathWay;
+ public Text WaveCountdownText;
+
+ [Header("Every possible enemy")]
+ public EnemyType[] Enemies;
+
+ [Header("Scripting vars")]
+ public Player Player; // Reference to the player object, should be set in designer
+
+ private Transform _parentObject;
+ private List<Vector3> _waypoints = new List<Vector3>();
+
+ public static int EnemiesAlive = 0;
+ private float _countdown = 2f;
+ private int _waveIndex = 0;
+
+ void Awake() {
+ foreach (Transform child in PathWay) {
+ _waypoints.Add (child.position);
+ }
+ }
+
+ void Start() {
+ _parentObject = transform.Find ("enemies").gameObject.GetComponent <Transform> ();
+ }
+
+ void Update () {
+ if (EnemiesAlive > 0) {
+ return;
+ }
+
+ if (_countdown <= 0f) {
+ StartCoroutine(SpawnWave());
+ _countdown = TimeBetweenWaves;
+ return;
+ }
+
+ _countdown -= Time.deltaTime;
+ _countdown = Mathf.Clamp(_countdown, 0f, Mathf.Infinity);
+ //waveCountdownText.text = string.Format("{0:00.00}", countdown);
+ }
+
+ private int WaveEnemyCount(int waveNum) {
+ // 10.64 * e^0,57x
+ float pow = (float) Math.Pow( Math.E, 0.57f * waveNum);
+ return (int) Math.Floor(10.64f * pow);
+ }
+
+ private float EnemyAmountThing(int currentEnemy, int maxTypes) {
+ // TODO Change the for loop into a faster method
+ float rest = 1;
+
+ for (int i=1; i <= maxTypes; i++) {
+ if (i != maxTypes) { rest = rest / 2; }
+ if (i == currentEnemy + 1) { return rest; }
+ }
+
+ return 0;
+ }
+
+ IEnumerator SpawnWave () {
+ int enemiesToSpawn = WaveEnemyCount(_waveIndex);
+ EnemiesAlive = enemiesToSpawn;
+ List<WaveElement> wave = new List<WaveElement>();
+
+ for (int i = 0; i < Enemies.Length; i++) {
+ EnemyType enemy = Enemies[i];
+
+ float amount = enemiesToSpawn * EnemyAmountThing(i, Enemies.Length);
+ if (amount >= 1) {
+ wave.Add(new WaveElement {Prefab = enemy.Enemy, Amount = (int)Math.Floor(amount)} );
+ }
+
+ }
+
+ foreach (var enemyType in wave) {
+ for (int i = 0; i < enemyType.Amount; i++) {
+ SpawnEnemy(enemyType.Prefab);
+ yield return new WaitForSeconds(1f / SpawnRate);
+ }
+ yield return new WaitForSeconds(1f / 100f);
+ }
+
+ SpawnRate = SpawnRate * 2;
+ _waveIndex++;
+ }
+
+ void SpawnEnemy (GameObject enemyPrefab) {
+ GameObject newEnemy = Instantiate (enemyPrefab, new Vector3(0, 0, 0), Quaternion.identity, _parentObject);
+ Enemy script = newEnemy.GetComponent <Enemy> ();
+ Transform transform = newEnemy.GetComponent <Transform>();
+
+ script.Waypoints = _waypoints;
+ script.Player = Player;
+ transform.position = new Vector3 (0.93f, 0.483f, 0f);
+ }
+
+ [System.Serializable]
+ public class EnemyType {
+ public string Name;
+ public GameObject Enemy;
+ [Range(0, 1)]
+ public float Percentage;
+ }
+
+ public class WaveElement {
+ public GameObject Prefab { get; set; }
+ public int Amount { get; set; }
+ }
+
+} \ No newline at end of file
diff --git a/td/Assets/Scripts/waveSpawner.cs.meta b/td/Assets/Scripts/waveSpawner.cs.meta
new file mode 100644
index 0000000..1f1e3cb
--- /dev/null
+++ b/td/Assets/Scripts/waveSpawner.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 9ea53d824cbfc4eb8a4eb4ee6a247bc7
+timeCreated: 1507241433
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures.meta b/td/Assets/Textures.meta
new file mode 100644
index 0000000..b7dfc46
--- /dev/null
+++ b/td/Assets/Textures.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4d9051e7a3e8748a99119b1147c55b11
+folderAsset: yes
+timeCreated: 1506726226
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/Background.png b/td/Assets/Textures/Background.png
new file mode 100644
index 0000000..0d86779
--- /dev/null
+++ b/td/Assets/Textures/Background.png
Binary files differ
diff --git a/td/Assets/Textures/Background.png.meta b/td/Assets/Textures/Background.png.meta
new file mode 100644
index 0000000..da0adad
--- /dev/null
+++ b/td/Assets/Textures/Background.png.meta
@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: f16fe7293d9c640d79fcb2877789f26b
+timeCreated: 1508014924
+licenseType: Free
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ - buildTarget: Standalone
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ - buildTarget: iPhone
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ - buildTarget: Android
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons.meta b/td/Assets/Textures/ColorfulButtons.meta
new file mode 100644
index 0000000..7a58b20
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f847f28f493c04649bb5b888e181d2ef
+folderAsset: yes
+timeCreated: 1506727805
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Close.png b/td/Assets/Textures/ColorfulButtons/Close.png
new file mode 100644
index 0000000..f098c7b
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Close.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Close.png.meta b/td/Assets/Textures/ColorfulButtons/Close.png.meta
new file mode 100644
index 0000000..d16dcf9
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Close.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 055d5058ff6230d4d88e3044a207f815
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr b/td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr
new file mode 100644
index 0000000..607697c
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr.meta b/td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr.meta
new file mode 100644
index 0000000..819c886
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Colorful Buttons.cdr.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: bfd6e9986216a5c47833c80b1b0d8c42
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Credits.txt b/td/Assets/Textures/ColorfulButtons/Credits.txt
new file mode 100644
index 0000000..9dd1ee4
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Credits.txt
@@ -0,0 +1 @@
+Music icon made by Freepik from www.flaticon.com \ No newline at end of file
diff --git a/td/Assets/Textures/ColorfulButtons/Credits.txt.meta b/td/Assets/Textures/ColorfulButtons/Credits.txt.meta
new file mode 100644
index 0000000..b1eb7d8
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Credits.txt.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 4eac82759f3d2c840ac256db53fc34ef
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Divide.png b/td/Assets/Textures/ColorfulButtons/Divide.png
new file mode 100644
index 0000000..98710a6
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Divide.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Divide.png.meta b/td/Assets/Textures/ColorfulButtons/Divide.png.meta
new file mode 100644
index 0000000..7005030
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Divide.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: a0f7bb6ac43ad9445874389e5b24b80a
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Facebook.png b/td/Assets/Textures/ColorfulButtons/Facebook.png
new file mode 100644
index 0000000..09d530f
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Facebook.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Facebook.png.meta b/td/Assets/Textures/ColorfulButtons/Facebook.png.meta
new file mode 100644
index 0000000..8391343
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Facebook.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 61ece5dea88efa2478bc946cb63f0e57
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/ForwardLeft.png b/td/Assets/Textures/ColorfulButtons/ForwardLeft.png
new file mode 100644
index 0000000..104a930
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/ForwardLeft.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/ForwardLeft.png.meta b/td/Assets/Textures/ColorfulButtons/ForwardLeft.png.meta
new file mode 100644
index 0000000..0c6da42
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/ForwardLeft.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 7c8b9f24690098d4c937a4d8a0b9f4ac
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/ForwardRight.png b/td/Assets/Textures/ColorfulButtons/ForwardRight.png
new file mode 100644
index 0000000..d73bb76
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/ForwardRight.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/ForwardRight.png.meta b/td/Assets/Textures/ColorfulButtons/ForwardRight.png.meta
new file mode 100644
index 0000000..19706df
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/ForwardRight.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 39f1f08d1c8393841aca09fc8b0d3abb
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/GamePad.png b/td/Assets/Textures/ColorfulButtons/GamePad.png
new file mode 100644
index 0000000..7ea6ba4
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/GamePad.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/GamePad.png.meta b/td/Assets/Textures/ColorfulButtons/GamePad.png.meta
new file mode 100644
index 0000000..e516020
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/GamePad.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 3e90f3a89ba6b4b46bcfa784319cb451
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Google.png b/td/Assets/Textures/ColorfulButtons/Google.png
new file mode 100644
index 0000000..499461a
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Google.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Google.png.meta b/td/Assets/Textures/ColorfulButtons/Google.png.meta
new file mode 100644
index 0000000..7664e3d
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Google.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: deb8b63bc1576db4cb31fad6bd1bc2c6
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Heart.png b/td/Assets/Textures/ColorfulButtons/Heart.png
new file mode 100644
index 0000000..5b250e6
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Heart.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Heart.png.meta b/td/Assets/Textures/ColorfulButtons/Heart.png.meta
new file mode 100644
index 0000000..7504d86
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Heart.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 976cc2e03e4d9394592903c03525c6b1
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Home.png b/td/Assets/Textures/ColorfulButtons/Home.png
new file mode 100644
index 0000000..deb4ea3
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Home.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Home.png.meta b/td/Assets/Textures/ColorfulButtons/Home.png.meta
new file mode 100644
index 0000000..f0f4c8c
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Home.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 1e4b8e6fd1bd5404ba17585f62e571c3
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Instagram.png b/td/Assets/Textures/ColorfulButtons/Instagram.png
new file mode 100644
index 0000000..46f625b
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Instagram.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Instagram.png.meta b/td/Assets/Textures/ColorfulButtons/Instagram.png.meta
new file mode 100644
index 0000000..081fe76
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Instagram.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: e71cad56ad735314382d56a45ab59e88
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Left.png b/td/Assets/Textures/ColorfulButtons/Left.png
new file mode 100644
index 0000000..f761950
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Left.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Left.png.meta b/td/Assets/Textures/ColorfulButtons/Left.png.meta
new file mode 100644
index 0000000..2e13027
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Left.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 822655e6b73830b4d823770a979f3bb5
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Menu.png b/td/Assets/Textures/ColorfulButtons/Menu.png
new file mode 100644
index 0000000..e843f82
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Menu.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Menu.png.meta b/td/Assets/Textures/ColorfulButtons/Menu.png.meta
new file mode 100644
index 0000000..b66bc0d
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Menu.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: ffb63111dcc1a1b4c9c1bb12e3c90bef
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Message.png b/td/Assets/Textures/ColorfulButtons/Message.png
new file mode 100644
index 0000000..53fa412
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Message.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Message.png.meta b/td/Assets/Textures/ColorfulButtons/Message.png.meta
new file mode 100644
index 0000000..3cefddc
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Message.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 28865891e0825764bb7ab8623b8cf0c4
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Minus.png b/td/Assets/Textures/ColorfulButtons/Minus.png
new file mode 100644
index 0000000..3f9a6dd
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Minus.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Minus.png.meta b/td/Assets/Textures/ColorfulButtons/Minus.png.meta
new file mode 100644
index 0000000..ca58b98
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Minus.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 93b3d004e1ed7884b9bd712e5a6f9ceb
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Music.png b/td/Assets/Textures/ColorfulButtons/Music.png
new file mode 100644
index 0000000..da48ff0
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Music.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Music.png.meta b/td/Assets/Textures/ColorfulButtons/Music.png.meta
new file mode 100644
index 0000000..ee20901
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Music.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 11d39cec7ab25b94f9556b780f7321ee
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Pause.png b/td/Assets/Textures/ColorfulButtons/Pause.png
new file mode 100644
index 0000000..e5fb7e5
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Pause.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Pause.png.meta b/td/Assets/Textures/ColorfulButtons/Pause.png.meta
new file mode 100644
index 0000000..9cb17dd
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Pause.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: d97994fc05d31fd449a0b49d2efaa673
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Play.png b/td/Assets/Textures/ColorfulButtons/Play.png
new file mode 100644
index 0000000..8142af5
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Play.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Play.png.meta b/td/Assets/Textures/ColorfulButtons/Play.png.meta
new file mode 100644
index 0000000..d5bab47
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Play.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 157e83f568eca524aa8432e7996a683b
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Plus.png b/td/Assets/Textures/ColorfulButtons/Plus.png
new file mode 100644
index 0000000..a253080
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Plus.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Plus.png.meta b/td/Assets/Textures/ColorfulButtons/Plus.png.meta
new file mode 100644
index 0000000..97ce9ad
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Plus.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 07be1bf83b93e8042a91bf63f56ba047
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/PowerUp.png b/td/Assets/Textures/ColorfulButtons/PowerUp.png
new file mode 100644
index 0000000..c48f040
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/PowerUp.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/PowerUp.png.meta b/td/Assets/Textures/ColorfulButtons/PowerUp.png.meta
new file mode 100644
index 0000000..d0bf51b
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/PowerUp.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: efbf1c0c1cd620e4fa0904e56057e21c
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Question.png b/td/Assets/Textures/ColorfulButtons/Question.png
new file mode 100644
index 0000000..3a66a35
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Question.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Question.png.meta b/td/Assets/Textures/ColorfulButtons/Question.png.meta
new file mode 100644
index 0000000..007a0a1
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Question.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 3f181d0b5ff4ffd4ab171357be626f5e
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Retry.png b/td/Assets/Textures/ColorfulButtons/Retry.png
new file mode 100644
index 0000000..e7c3d56
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Retry.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Retry.png.meta b/td/Assets/Textures/ColorfulButtons/Retry.png.meta
new file mode 100644
index 0000000..1a6a4c8
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Retry.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: feff2c38632b01640b8c4291403a8cde
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Right.png b/td/Assets/Textures/ColorfulButtons/Right.png
new file mode 100644
index 0000000..44af1f1
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Right.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Right.png.meta b/td/Assets/Textures/ColorfulButtons/Right.png.meta
new file mode 100644
index 0000000..0560a4f
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Right.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 3e43c73fd8ac9fe4698150e74f61f816
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Settings.png b/td/Assets/Textures/ColorfulButtons/Settings.png
new file mode 100644
index 0000000..dfce4a5
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Settings.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Settings.png.meta b/td/Assets/Textures/ColorfulButtons/Settings.png.meta
new file mode 100644
index 0000000..4055208
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Settings.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 14a48232720b008449c9d4ed3f0a26e8
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Share.png b/td/Assets/Textures/ColorfulButtons/Share.png
new file mode 100644
index 0000000..4883687
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Share.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Share.png.meta b/td/Assets/Textures/ColorfulButtons/Share.png.meta
new file mode 100644
index 0000000..a860d8a
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Share.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 4638b3125c90bf14ba97afe4b2c6b047
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Shop.png b/td/Assets/Textures/ColorfulButtons/Shop.png
new file mode 100644
index 0000000..1f3a644
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Shop.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Shop.png.meta b/td/Assets/Textures/ColorfulButtons/Shop.png.meta
new file mode 100644
index 0000000..ddcaf13
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Shop.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 286bb98c3ea19574f88d3f3aa497c8e6
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/SoundOff.png b/td/Assets/Textures/ColorfulButtons/SoundOff.png
new file mode 100644
index 0000000..21599ca
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/SoundOff.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/SoundOff.png.meta b/td/Assets/Textures/ColorfulButtons/SoundOff.png.meta
new file mode 100644
index 0000000..17712e7
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/SoundOff.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 93112396d229e7b4b8e905b395efd4f0
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/SoundOn.png b/td/Assets/Textures/ColorfulButtons/SoundOn.png
new file mode 100644
index 0000000..f6034c1
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/SoundOn.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/SoundOn.png.meta b/td/Assets/Textures/ColorfulButtons/SoundOn.png.meta
new file mode 100644
index 0000000..3367743
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/SoundOn.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: 667be6da6ce013a4a86ca7276d9950cf
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Trash.png b/td/Assets/Textures/ColorfulButtons/Trash.png
new file mode 100644
index 0000000..47f7bbc
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Trash.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Trash.png.meta b/td/Assets/Textures/ColorfulButtons/Trash.png.meta
new file mode 100644
index 0000000..8877a46
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Trash.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: e80e8e1ba68b64a4f9da7aebb4092391
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/ColorfulButtons/Trophy.png b/td/Assets/Textures/ColorfulButtons/Trophy.png
new file mode 100644
index 0000000..b0181bf
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Trophy.png
Binary files differ
diff --git a/td/Assets/Textures/ColorfulButtons/Trophy.png.meta b/td/Assets/Textures/ColorfulButtons/Trophy.png.meta
new file mode 100644
index 0000000..e4eaac8
--- /dev/null
+++ b/td/Assets/Textures/ColorfulButtons/Trophy.png.meta
@@ -0,0 +1,66 @@
+fileFormatVersion: 2
+guid: f7f8d7ac04e6e59428eb846b5ff4fe6b
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ 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: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/PSD-Files.meta b/td/Assets/Textures/PSD-Files.meta
new file mode 100644
index 0000000..2fc69c0
--- /dev/null
+++ b/td/Assets/Textures/PSD-Files.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b38456286d8f54e808877f4b9e2a6767
+folderAsset: yes
+timeCreated: 1508014921
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/Assets/Textures/PSD-Files/Background b/td/Assets/Textures/PSD-Files/Background
new file mode 100644
index 0000000..1e1f7aa
--- /dev/null
+++ b/td/Assets/Textures/PSD-Files/Background
Binary files differ
diff --git a/td/Assets/Textures/PSD-Files/Background.meta b/td/Assets/Textures/PSD-Files/Background.meta
new file mode 100644
index 0000000..32b2e3c
--- /dev/null
+++ b/td/Assets/Textures/PSD-Files/Background.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 147482996860d4625a92d663aca187d5
+timeCreated: 1508014890
+licenseType: Free
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/td/ProjectSettings/ProjectSettings.asset b/td/ProjectSettings/ProjectSettings.asset
index 472756e..64cfb4a 100644
--- a/td/ProjectSettings/ProjectSettings.asset
+++ b/td/ProjectSettings/ProjectSettings.asset
Binary files differ
diff --git a/td/ProjectSettings/QualitySettings.asset b/td/ProjectSettings/QualitySettings.asset
index eefefb4..479b378 100644
--- a/td/ProjectSettings/QualitySettings.asset
+++ b/td/ProjectSettings/QualitySettings.asset
Binary files differ
diff --git a/td/ProjectSettings/TagManager.asset b/td/ProjectSettings/TagManager.asset
index 2c3af94..5c28d30 100644
--- a/td/ProjectSettings/TagManager.asset
+++ b/td/ProjectSettings/TagManager.asset
Binary files differ