diff --git a/Assets/Enemy/Gun.cs b/Assets/Enemy/Gun.cs new file mode 100644 index 0000000..a1a0bf0 --- /dev/null +++ b/Assets/Enemy/Gun.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +public class Gun : MonoBehaviour +{ + public float damageStrength; + + void OnTriggerEnter2D (Collider2D hit) { + // Damage player and destroy self on impact + if (hit.tag != "Player") return; + hit.GetComponent().health -= damageStrength; + Destroy(gameObject); + } + + void Update() { + transform.Rotate(new Vector3 (0, 0, Time.deltaTime * 1000)); + if (Vector3.Distance( + transform.position, + GameObject.FindGameObjectWithTag("Player").transform.position + ) > 20) Destroy(gameObject); + } +} diff --git a/Assets/Enemy/Gun.cs.meta b/Assets/Enemy/Gun.cs.meta new file mode 100644 index 0000000..db9d09d --- /dev/null +++ b/Assets/Enemy/Gun.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9960e65b78321cc8a85166a904f8f617 \ No newline at end of file diff --git a/Assets/Enemy/Gun.png b/Assets/Enemy/Gun.png new file mode 100644 index 0000000..c9c631b Binary files /dev/null and b/Assets/Enemy/Gun.png differ diff --git a/Assets/Enemy/Gun.png.meta b/Assets/Enemy/Gun.png.meta new file mode 100644 index 0000000..31fd87f --- /dev/null +++ b/Assets/Enemy/Gun.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: e702bce75f9e4df8ea233b25756258da +TextureImporter: + internalIDToNameTable: + - first: + 213: 6013433716489236182 + second: pngtree-weapon-gun-flat-icon-handgun-png-image_4933503_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: pngtree-weapon-gun-flat-icon-handgun-png-image_4933503_0 + rect: + serializedVersion: 2 + x: 37 + y: 88 + width: 286 + height: 184 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 6dea2b7ca12047350800000000000000 + internalID: 6013433716489236182 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + pngtree-weapon-gun-flat-icon-handgun-png-image_4933503_0: 6013433716489236182 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemy/Gun.prefab b/Assets/Enemy/Gun.prefab new file mode 100644 index 0000000..aed11aa --- /dev/null +++ b/Assets/Enemy/Gun.prefab @@ -0,0 +1,178 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5213001249979318174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1149395136374715657} + - component: {fileID: 8026032327717419331} + - component: {fileID: 8712449370490801022} + - component: {fileID: 3940916619600254679} + - component: {fileID: 7665728843769076804} + m_Layer: 0 + m_Name: Gun + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1149395136374715657 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213001249979318174} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &8026032327717419331 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213001249979318174} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 6013433716489236182, guid: e702bce75f9e4df8ea233b25756258da, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.86, y: 1.84} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &8712449370490801022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213001249979318174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9960e65b78321cc8a85166a904f8f617, type: 3} + m_Name: + m_EditorClassIdentifier: + damageStrength: 0 +--- !u!61 &3940916619600254679 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213001249979318174} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 2.86, y: 1.84} + newSize: {x: 2.86, y: 1.84} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 2.86, y: 1.84} + m_EdgeRadius: 0 +--- !u!50 &7665728843769076804 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5213001249979318174} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 diff --git a/Assets/Enemy/Gun.prefab.meta b/Assets/Enemy/Gun.prefab.meta new file mode 100644 index 0000000..27dda9a --- /dev/null +++ b/Assets/Enemy/Gun.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 98b57b15498e96a9c8fe56264ac2ef63 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemy/GunThrower.prefab b/Assets/Enemy/GunThrower.prefab new file mode 100644 index 0000000..f68267b --- /dev/null +++ b/Assets/Enemy/GunThrower.prefab @@ -0,0 +1,183 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &398740452138961375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4344634732794346337} + - component: {fileID: 5639616099047780729} + - component: {fileID: 480941680556316754} + - component: {fileID: 8441426735084966298} + - component: {fileID: 3449798187735636588} + m_Layer: 0 + m_Name: GunThrower + m_TagString: Ratbot + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4344634732794346337 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 398740452138961375} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.45, y: 0.45, z: 0.45} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5639616099047780729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 398740452138961375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ebac0379db13f0c3932982bc0ebed28, type: 3} + m_Name: + m_EditorClassIdentifier: + moveSpeed: 1500 + damageStrength: 10 + damageTimeoutSeconds: 0.5 + health: 10 + gun: {fileID: 5213001249979318174, guid: 98b57b15498e96a9c8fe56264ac2ef63, type: 3} + throwSpeed: 500 +--- !u!212 &480941680556316754 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 398740452138961375} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: -3751497128136096670, guid: 520c934c186517356929c5948597af6f, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 5.12, y: 5.12} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!61 &8441426735084966298 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 398740452138961375} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 3.53, y: 4.2} + newSize: {x: 5.12, y: 5.12} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 3.53, y: 4.2} + m_EdgeRadius: 0 +--- !u!50 &3449798187735636588 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 398740452138961375} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 0.5 + m_LinearDamping: 10 + m_AngularDamping: 0.05 + m_GravityScale: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 diff --git a/Assets/Enemy/GunThrower.prefab.meta b/Assets/Enemy/GunThrower.prefab.meta new file mode 100644 index 0000000..17ba09e --- /dev/null +++ b/Assets/Enemy/GunThrower.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b1e1e6378fb12d47e989565896a737ef +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemy/Ratbot.prefab b/Assets/Enemy/Ratbot.prefab index 9182b9f..cdb3677 100644 --- a/Assets/Enemy/Ratbot.prefab +++ b/Assets/Enemy/Ratbot.prefab @@ -165,7 +165,7 @@ Rigidbody2D: m_UseFullKinematicContacts: 0 m_UseAutoMass: 0 m_Mass: 0.5 - m_LinearDamping: 10 + m_LinearDamping: 15 m_AngularDamping: 0.05 m_GravityScale: 1 m_Material: {fileID: 0} diff --git a/Assets/MainMenuUI/TeoSword_2.png.meta b/Assets/MainMenuUI/TeoSword_2.png.meta index 8bd0b66..dba672b 100644 --- a/Assets/MainMenuUI/TeoSword_2.png.meta +++ b/Assets/MainMenuUI/TeoSword_2.png.meta @@ -160,7 +160,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + TeoSword_2_0: -4241835214737505916 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/MainMenuUI/TeoSword_clear.png.meta b/Assets/MainMenuUI/TeoSword_clear.png.meta index 321d59a..9270807 100644 --- a/Assets/MainMenuUI/TeoSword_clear.png.meta +++ b/Assets/MainMenuUI/TeoSword_clear.png.meta @@ -160,7 +160,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + TeoSword_clear_0: 5912729268939179329 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Scenes/LoreScenes/Chapter 1/GYNxJn.png.meta b/Assets/Scenes/LoreScenes/Chapter 1/GYNxJn.png.meta index 1c9d7ac..a5bba2d 100644 --- a/Assets/Scenes/LoreScenes/Chapter 1/GYNxJn.png.meta +++ b/Assets/Scenes/LoreScenes/Chapter 1/GYNxJn.png.meta @@ -160,7 +160,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + GYNxJn_0: 7760431067827908858 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Scenes/LoreScenes/Chapter 1/roborat.png.meta b/Assets/Scenes/LoreScenes/Chapter 1/roborat.png.meta index 227d2a2..2e21013 100644 --- a/Assets/Scenes/LoreScenes/Chapter 1/roborat.png.meta +++ b/Assets/Scenes/LoreScenes/Chapter 1/roborat.png.meta @@ -160,7 +160,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + roborat_0: -4827719251672435245 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 5bdfbd4..e22e425 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -681,7 +681,7 @@ MonoBehaviour: m_EditorClassIdentifier: state: 0 wave: 0 - ratbot: {fileID: 398740452138961375, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} + ratbot: {fileID: 398740452138961375, guid: b1e1e6378fb12d47e989565896a737ef, type: 3} shop: {fileID: 6569104281457075541, guid: c0d23b24c9c882ef89013998dab29dea, type: 3} --- !u!4 &745837569 Transform: diff --git a/Assets/Scripts C#/GameState.cs b/Assets/Scripts C#/GameState.cs index 49e6ec8..6f6b41e 100644 --- a/Assets/Scripts C#/GameState.cs +++ b/Assets/Scripts C#/GameState.cs @@ -4,8 +4,16 @@ public class GameState : MonoBehaviour { public State state; public uint wave; - public GameObject ratbot; public GameObject shop; + public GameObject ratbot; + public GameObject gunThrower; + + int[] counts = new int[2]; + enum CountIndex : uint { + ratbot = 0, + gunThrower = 1 + } + void Start() { OpenShop(); } @@ -20,7 +28,9 @@ public class GameState : MonoBehaviour // Update is called once per frame void Update() { - if (GameObject.FindGameObjectsWithTag("Ratbot").Length == 0 && state == State.Wave) { + if (GameObject.FindGameObjectsWithTag("Ratbot").Length == 0 + && state == State.Wave + ) { OpenShop(); } } @@ -34,16 +44,34 @@ public class GameState : MonoBehaviour // Spawn ratbots around the player // Amount, health, and damage scale with waves state = State.Wave; - Vector3 playerPosition = GameObject.FindGameObjectWithTag("Player").transform.position; + Vector3 playerPosition + = GameObject + .FindGameObjectWithTag("Player") + .transform + .position; for (uint _ = 0; _ <= wave; _++) { GameObject newRatbot = Instantiate( - ratbot, - Random.insideUnitCircle.normalized*20, + SpawnRatbot(), + Random.insideUnitCircle.normalized*20 + + new Vector2 ( + playerPosition.x, + playerPosition.y + ), Quaternion.identity ); - newRatbot.GetComponent().damageStrength = 5+wave*5; + newRatbot.GetComponent().damageStrength + = 5+wave*5; newRatbot.GetComponent().health = 5+wave*2; } wave++; } + public GameObject SpawnRatbot() { + if (counts[(uint)CountIndex.gunThrower] < wave/3 + && wave > 3 + ) { + counts[(uint)CountIndex.gunThrower]++; + return gunThrower; + } + return ratbot; + } } diff --git a/Assets/Scripts C#/Ratbots.meta b/Assets/Scripts C#/Ratbots.meta new file mode 100644 index 0000000..14fb108 --- /dev/null +++ b/Assets/Scripts C#/Ratbots.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 80a6f9e1f8fdfdbcfb3c74283bd49306 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts C#/Ratbots/GunThrower.cs b/Assets/Scripts C#/Ratbots/GunThrower.cs new file mode 100644 index 0000000..c6d3e8c --- /dev/null +++ b/Assets/Scripts C#/Ratbots/GunThrower.cs @@ -0,0 +1,28 @@ +using UnityEngine; + +public class GunThrower : Ratbot +{ + public GameObject gun; + public float throwSpeed; + + void Start() { + SetVars(); + InvokeRepeating( + "ThrowGun", + Random.Range(1, 3), + Random.Range(1, 3) + ); + } + + void ThrowGun() { + GameObject thrown = Instantiate( + gun, + transform.position, + Quaternion.identity + ); + thrown.GetComponent().AddRelativeForce(( + player.transform.position - thrown.transform.position + ).normalized * throwSpeed); + thrown.GetComponent().damageStrength = damageStrength; + } +} diff --git a/Assets/Scripts C#/Ratbots/GunThrower.cs.meta b/Assets/Scripts C#/Ratbots/GunThrower.cs.meta new file mode 100644 index 0000000..a56c9d8 --- /dev/null +++ b/Assets/Scripts C#/Ratbots/GunThrower.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3ebac0379db13f0c3932982bc0ebed28 \ No newline at end of file diff --git a/Assets/Scripts C#/Ratbot.cs b/Assets/Scripts C#/Ratbots/Ratbot.cs similarity index 86% rename from Assets/Scripts C#/Ratbot.cs rename to Assets/Scripts C#/Ratbots/Ratbot.cs index 94a3eba..66dc560 100644 --- a/Assets/Scripts C#/Ratbot.cs +++ b/Assets/Scripts C#/Ratbots/Ratbot.cs @@ -7,21 +7,29 @@ public class Ratbot : MonoBehaviour public float damageTimeoutSeconds; public float health = 10; float lastDamageTime; - GameState gameState; - GameObject player; + + public static GameState gameState; + public static GameObject player; void Start() { + SetVars(); + } + + public void SetVars() { // Set gameState and player objects player = GameObject.FindGameObjectWithTag("Player"); gameState = GameObject.FindGameObjectWithTag("GameController").GetComponent(); - } + } void Update() { - // Constantly move towards player + MoveTowardsPlayer(); + } + + public void MoveTowardsPlayer() { Rigidbody2D controller = GetComponent(); Vector2 direction = (player.transform.position - transform.position).normalized; controller.AddRelativeForce(direction*moveSpeed*Time.deltaTime); - } + } void OnCollisionStay2D(Collision2D collision) { // Deal damage when colliding with the player on a 0.5 second cooldown diff --git a/Assets/Scripts C#/Ratbot.cs.meta b/Assets/Scripts C#/Ratbots/Ratbot.cs.meta similarity index 100% rename from Assets/Scripts C#/Ratbot.cs.meta rename to Assets/Scripts C#/Ratbots/Ratbot.cs.meta