From 8f970dfbc270b51fce89cbbb914d59cbfb2ecd9f Mon Sep 17 00:00:00 2001 From: Iazubi Date: Sun, 27 Oct 2024 02:01:45 -0700 Subject: [PATCH 1/8] Update README.md --- README.md | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2c84e03..ab59ef7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,43 @@ # RatStabber +![TeoSword_clear](https://github.com/user-attachments/assets/5cc699a3-c4a2-47c5-9d7f-10f8546ad48f) + +### Fight off the ratbots and save the rat cities as the hunky man Teo himself! + + +## LORE: +After successfully defeating the Paulbots, the rat took components of the Paulbots and improved the design to create the rat bots. He could finally get revenge on Paul for the destruction of his kind. However, the Paul Bots managed to regain consciousness inside of the new and improved Rat Bots, making the Ratbots turn against the rat, taking his weapons and his last hopes of defeating Paul. You (Teo) have arrived to protect the rat and help him figure out a way to stop the now evil rat bots and discover the dark, hidden secrets while ending this war once and for all. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## And that's the game... I guess... + ### Alright, Here's the Basic Vision: - The Player (Teo) moves around an infinite field with the camera following the player @@ -76,18 +114,13 @@ ### UI / AUDIO: -- [ ] Menu Screen +- [x] Menu Screen - [ ] Pause Screen - [ ] Option for returning to main menu / resume -- [ ] Menu Music -- [ ] Level Music -- [ ] A section where the player can view unlocked lore by completing more of the game - - - -## LORE: -After successfully defeating the Paul bots, the rat improved upon the design to create the rat bots. He could finally get revenge on Paul for the destruction of his kind. However, the Paul Bots managed to regain consciousness inside of the new and improved Rat Bots, in-turn making the Ratbots turn against the rat, taking his weapons and his last hopes of defeating Paul as well. You (Teo) have arrived to protect the rat and help him figure out a way to stop the now evil rat bots and put an end to this war once and for all. - +- [x] Menu Music +- [x] Level Music +- [x] A section where the player can view unlocked lore by completing more of the game + - [ ] LORE GETS UNLOCKED EVERY 10 ROUNDS BEATEN + BOSS BEATEN From 1e878b2b67641350c8e1a6ba143c49d1bf509b56 Mon Sep 17 00:00:00 2001 From: Iazubi Date: Sun, 27 Oct 2024 02:05:58 -0700 Subject: [PATCH 2/8] Update README.md --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ab59ef7..ddb0652 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![TeoSword_clear](https://github.com/user-attachments/assets/5cc699a3-c4a2-47c5-9d7f-10f8546ad48f) -### Fight off the ratbots and save the rat cities as the hunky man Teo himself! +### Fight off the ratbots and save the rat cities as the hunky man Teo himself! (and all the goofy ai generated images of him and everyone else) ## LORE: @@ -77,7 +77,7 @@ After successfully defeating the Paulbots, the rat took components of the Paulbo - [x] Wave spawns enemies - [x] Detect when wave ends - [x] Activate new waves after powerup has been chosen by player -- [ ] Dash ability +- [x] Dash ability ### Enemy: - [x] All Enemies have simple pathfinding towards the player @@ -98,17 +98,17 @@ After successfully defeating the Paulbots, the rat took components of the Paulbo ### In-Game UI: - [x] Player health on bottom left -- [ ] Round / Wave on bottom left (?) +- [x] Round / Wave on bottom left (?) - [ ] Maybe show enemy remaining count? (We can make a hard mode that removes UI except health) - [ ] Upon round end, pop-up menu for selecting powerup - [x] Damage - - [ ] Attack distance - - [ ] Attack range - - [ ] Attack cooldown + - [x] Attack distance + - [x] Attack range + - [x] Attack cooldown - [x] Health - [x] Speed - - [ ] Dash cooldown - - [ ] Dash distance + - [x] Dash cooldown + - [x] Dash distance - [ ] (Only an idea for now) Have a status bar at the bottom right to show your current stats From 89953e7cd613eb3ae90aef224fab802f644fc378 Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sun, 27 Oct 2024 17:59:13 -0700 Subject: [PATCH 3/8] Create Gun thrower subclass of ratbot that spawns gun objects --- Assets/Enemy/Gun.cs | 11 ++ Assets/Enemy/Gun.cs.meta | 2 + Assets/Enemy/Gun.png | Bin 0 -> 21549 bytes Assets/Enemy/Gun.png.meta | 143 ++++++++++++++ Assets/Enemy/Gun.prefab | 178 +++++++++++++++++ Assets/Enemy/Gun.prefab.meta | 7 + Assets/Enemy/GunThrower.prefab | 183 ++++++++++++++++++ Assets/Enemy/GunThrower.prefab.meta | 7 + Assets/MainMenuUI/TeoSword_2.png.meta | 3 +- Assets/MainMenuUI/TeoSword_clear.png.meta | 3 +- .../LoreScenes/Chapter 1/GYNxJn.png.meta | 3 +- .../LoreScenes/Chapter 1/roborat.png.meta | 3 +- Assets/Scenes/SampleScene.unity | 2 +- Assets/Scripts C#/Ratbots.meta | 8 + Assets/Scripts C#/Ratbots/GunThrower.cs | 24 +++ Assets/Scripts C#/Ratbots/GunThrower.cs.meta | 2 + Assets/Scripts C#/{ => Ratbots}/Ratbot.cs | 18 +- .../Scripts C#/{ => Ratbots}/Ratbot.cs.meta | 0 18 files changed, 587 insertions(+), 10 deletions(-) create mode 100644 Assets/Enemy/Gun.cs create mode 100644 Assets/Enemy/Gun.cs.meta create mode 100644 Assets/Enemy/Gun.png create mode 100644 Assets/Enemy/Gun.png.meta create mode 100644 Assets/Enemy/Gun.prefab create mode 100644 Assets/Enemy/Gun.prefab.meta create mode 100644 Assets/Enemy/GunThrower.prefab create mode 100644 Assets/Enemy/GunThrower.prefab.meta create mode 100644 Assets/Scripts C#/Ratbots.meta create mode 100644 Assets/Scripts C#/Ratbots/GunThrower.cs create mode 100644 Assets/Scripts C#/Ratbots/GunThrower.cs.meta rename Assets/Scripts C#/{ => Ratbots}/Ratbot.cs (86%) rename Assets/Scripts C#/{ => Ratbots}/Ratbot.cs.meta (100%) diff --git a/Assets/Enemy/Gun.cs b/Assets/Enemy/Gun.cs new file mode 100644 index 0000000..3706fec --- /dev/null +++ b/Assets/Enemy/Gun.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +public class Gun : MonoBehaviour +{ + public float damageStrength; + void OnTriggerEnter2D (Collider2D hit) { + if (hit.tag == "Player") { + hit.GetComponent().health -= damageStrength; + } + } +} 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 0000000000000000000000000000000000000000..c9c631b593917a1dccd657949e545877d7ab164c GIT binary patch literal 21549 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 literal 0 HcmV?d00001 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..bf59172 --- /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: 2.2222223, y: 2.2222223, z: 2.2222223} + 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..6b4776f --- /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: 0 +--- !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/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#/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..1b6a66c --- /dev/null +++ b/Assets/Scripts C#/Ratbots/GunThrower.cs @@ -0,0 +1,24 @@ +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); + thrown.GetComponent().AddRelativeForce(( + transform.position - player.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 From 73ab694f7c5bb0743b52488f416e7d2a6ce8ea59 Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sun, 27 Oct 2024 18:15:14 -0700 Subject: [PATCH 4/8] Guns travel towards player --- Assets/Enemy/Gun.prefab | 2 +- Assets/Enemy/GunThrower.prefab | 2 +- Assets/Scripts C#/Ratbots/GunThrower.cs | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Assets/Enemy/Gun.prefab b/Assets/Enemy/Gun.prefab index bf59172..26cdb17 100644 --- a/Assets/Enemy/Gun.prefab +++ b/Assets/Enemy/Gun.prefab @@ -30,7 +30,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 2.2222223, y: 2.2222223, z: 2.2222223} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Enemy/GunThrower.prefab b/Assets/Enemy/GunThrower.prefab index 6b4776f..e2565a2 100644 --- a/Assets/Enemy/GunThrower.prefab +++ b/Assets/Enemy/GunThrower.prefab @@ -52,7 +52,7 @@ MonoBehaviour: damageTimeoutSeconds: 0.5 health: 10 gun: {fileID: 5213001249979318174, guid: 98b57b15498e96a9c8fe56264ac2ef63, type: 3} - throwSpeed: 0 + throwSpeed: 41.61 --- !u!212 &480941680556316754 SpriteRenderer: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts C#/Ratbots/GunThrower.cs b/Assets/Scripts C#/Ratbots/GunThrower.cs index 1b6a66c..c6d3e8c 100644 --- a/Assets/Scripts C#/Ratbots/GunThrower.cs +++ b/Assets/Scripts C#/Ratbots/GunThrower.cs @@ -15,9 +15,13 @@ public class GunThrower : Ratbot } void ThrowGun() { - GameObject thrown = Instantiate(gun); + GameObject thrown = Instantiate( + gun, + transform.position, + Quaternion.identity + ); thrown.GetComponent().AddRelativeForce(( - transform.position - player.transform.position + player.transform.position - thrown.transform.position ).normalized * throwSpeed); thrown.GetComponent().damageStrength = damageStrength; } From e3a96303bcbabe138d4e61b4366c480eba8a423d Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sun, 27 Oct 2024 18:30:18 -0700 Subject: [PATCH 5/8] Guns spin and die and self destruct on impact --- Assets/Enemy/Gun.cs | 12 +++++++++--- Assets/Enemy/Gun.prefab | 2 +- Assets/Enemy/GunThrower.prefab | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Assets/Enemy/Gun.cs b/Assets/Enemy/Gun.cs index 3706fec..80f008b 100644 --- a/Assets/Enemy/Gun.cs +++ b/Assets/Enemy/Gun.cs @@ -3,9 +3,15 @@ using UnityEngine; public class Gun : MonoBehaviour { public float damageStrength; + void OnTriggerEnter2D (Collider2D hit) { - if (hit.tag == "Player") { - hit.GetComponent().health -= damageStrength; - } + // 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)); } } diff --git a/Assets/Enemy/Gun.prefab b/Assets/Enemy/Gun.prefab index 26cdb17..aed11aa 100644 --- a/Assets/Enemy/Gun.prefab +++ b/Assets/Enemy/Gun.prefab @@ -30,7 +30,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} diff --git a/Assets/Enemy/GunThrower.prefab b/Assets/Enemy/GunThrower.prefab index e2565a2..f68267b 100644 --- a/Assets/Enemy/GunThrower.prefab +++ b/Assets/Enemy/GunThrower.prefab @@ -52,7 +52,7 @@ MonoBehaviour: damageTimeoutSeconds: 0.5 health: 10 gun: {fileID: 5213001249979318174, guid: 98b57b15498e96a9c8fe56264ac2ef63, type: 3} - throwSpeed: 41.61 + throwSpeed: 500 --- !u!212 &480941680556316754 SpriteRenderer: m_ObjectHideFlags: 0 From 2908b53812ca2d2955bba3f7c32d7b2fd6fb4dc1 Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sun, 27 Oct 2024 19:01:57 -0700 Subject: [PATCH 6/8] Past wave 3 a third of ratbots are gun throwers --- Assets/Enemy/Ratbot.prefab | 2 +- Assets/Scripts C#/GameState.cs | 34 +++++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 6 deletions(-) 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/Scripts C#/GameState.cs b/Assets/Scripts C#/GameState.cs index 49e6ec8..d994bdc 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,30 @@ 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, + SpawnRatbot(), Random.insideUnitCircle.normalized*20, 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; + } } From 0865da787068d552445f07a2bce91d4dee70217d Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sun, 27 Oct 2024 19:11:47 -0700 Subject: [PATCH 7/8] Destroy gun when out of view --- Assets/Enemy/Gun.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Assets/Enemy/Gun.cs b/Assets/Enemy/Gun.cs index 80f008b..a1a0bf0 100644 --- a/Assets/Enemy/Gun.cs +++ b/Assets/Enemy/Gun.cs @@ -13,5 +13,9 @@ public class Gun : MonoBehaviour void Update() { transform.Rotate(new Vector3 (0, 0, Time.deltaTime * 1000)); + if (Vector3.Distance( + transform.position, + GameObject.FindGameObjectWithTag("Player").transform.position + ) > 20) Destroy(gameObject); } } From 719ecf18aad97148015f52b7b95d7236d5f69270 Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sun, 27 Oct 2024 19:16:35 -0700 Subject: [PATCH 8/8] Ratbots now spawn around player instead of around (0, 0) --- Assets/Scripts C#/GameState.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts C#/GameState.cs b/Assets/Scripts C#/GameState.cs index d994bdc..6f6b41e 100644 --- a/Assets/Scripts C#/GameState.cs +++ b/Assets/Scripts C#/GameState.cs @@ -52,7 +52,11 @@ public class GameState : MonoBehaviour for (uint _ = 0; _ <= wave; _++) { GameObject newRatbot = Instantiate( SpawnRatbot(), - Random.insideUnitCircle.normalized*20, + Random.insideUnitCircle.normalized*20 + + new Vector2 ( + playerPosition.x, + playerPosition.y + ), Quaternion.identity ); newRatbot.GetComponent().damageStrength