diff --git a/Assets/Enemies/Enemy.cs b/Assets/Enemies/Ennemy.cs similarity index 85% rename from Assets/Enemies/Enemy.cs rename to Assets/Enemies/Ennemy.cs index 599e0d7..d94b629 100644 --- a/Assets/Enemies/Enemy.cs +++ b/Assets/Enemies/Ennemy.cs @@ -5,13 +5,14 @@ using UnityEngine; RequireComponent(typeof(Animator)), RequireComponent(typeof(BoxCollider2D)) ] -public class Enemy : MonoBehaviour +public class Ennemy : MonoBehaviour { private SpriteRenderer _sr; private Transform _player; public float Speed = .1f; public int Damages = 1; + public int Life = 100; private void Start() { @@ -20,6 +21,15 @@ public class Enemy : MonoBehaviour _player = GameObject.FindGameObjectWithTag("Player").transform; } + private void Update() + { + if (Life <= 0) + { + Destroy(gameObject); + _player.GetComponent().MayorKills++; + } + } + private void FixedUpdate() { if (_player != null) diff --git a/Assets/Enemies/Enemy.cs.meta b/Assets/Enemies/Ennemy.cs.meta similarity index 100% rename from Assets/Enemies/Enemy.cs.meta rename to Assets/Enemies/Ennemy.cs.meta diff --git a/Assets/Enemies/Mayor/Mayor.prefab b/Assets/Enemies/Mayor/Mayor.prefab index c49d07d..e17eec1 100644 --- a/Assets/Enemies/Mayor/Mayor.prefab +++ b/Assets/Enemies/Mayor/Mayor.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 247299863115505385} m_Layer: 0 m_Name: Mayor - m_TagString: Untagged + m_TagString: Ennemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -120,7 +120,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f4b3c6920a262c94696eed7deeec570f, type: 3} m_Name: m_EditorClassIdentifier: - speed: 20 + Speed: 0.1 + Damages: 1 + Life: 100 --- !u!61 &247299863115505385 BoxCollider2D: m_ObjectHideFlags: 0 diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index eba3b0e..956f6db 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -17,6 +17,7 @@ GameObject: - component: {fileID: 3787322971358149925} - component: {fileID: 7397454076540391921} - component: {fileID: 8339747699126584523} + - component: {fileID: 2991086602376010793} m_Layer: 0 m_Name: Player m_TagString: Player @@ -232,6 +233,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 32f5e7611866dce4ab320c814d279d84, type: 3} m_Name: m_EditorClassIdentifier: + lookOnRight: 1 --- !u!114 &7397454076540391921 MonoBehaviour: m_ObjectHideFlags: 0 @@ -261,7 +263,23 @@ MonoBehaviour: Speed: 2 Exp: 0 Level: 1 + MayorKills: 0 pauseMenu: {fileID: 1161238801143918071} +--- !u!114 &2991086602376010793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784956759114531697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ce23672c2f6b5bd42adf4a7776a52005, type: 3} + m_Name: + m_EditorClassIdentifier: + laser: {fileID: 4893257253370123985, guid: 95cb513377bf0e248bd66d6f7ddae920, type: 3} + laserOnX: 0 + laserOnY: 0 --- !u!1001 &1611953582756194365 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Player/Scripts/PlayerManager.cs b/Assets/Player/Scripts/PlayerManager.cs index 4554297..db6ee24 100644 --- a/Assets/Player/Scripts/PlayerManager.cs +++ b/Assets/Player/Scripts/PlayerManager.cs @@ -10,6 +10,9 @@ public class PlayerManager : MonoBehaviour public int Exp = 0; public int Level = 1; + // Kills stats + public int MayorKills = 0; + [SerializeField] private GameObject pauseMenu; diff --git a/Assets/Player/Scripts/PlayerMovements.cs b/Assets/Player/Scripts/PlayerMovements.cs index 4eb25d3..f34fd96 100644 --- a/Assets/Player/Scripts/PlayerMovements.cs +++ b/Assets/Player/Scripts/PlayerMovements.cs @@ -7,6 +7,8 @@ public class PlayerMovements : MonoBehaviour private Animator _animator; private PlayerManager _pm; + public bool lookOnRight = true; + private void Start() { _sr = GetComponent(); @@ -26,9 +28,11 @@ public class PlayerMovements : MonoBehaviour if (moveH < 0) { _sr.flipX = true; + lookOnRight = false; } else if (moveH > 0) { _sr.flipX = false; + lookOnRight = true; } /** --- update animator -------------------------------------------*/ diff --git a/Assets/Player/Scripts/PlayerWeapons.cs b/Assets/Player/Scripts/PlayerWeapons.cs new file mode 100644 index 0000000..e9ff5b9 --- /dev/null +++ b/Assets/Player/Scripts/PlayerWeapons.cs @@ -0,0 +1,35 @@ +using UnityEngine; + +[RequireComponent (typeof(PlayerMovements))] +public class PlayerWeapons : MonoBehaviour +{ + [SerializeField] private GameObject laser; + [Header("If all are false: only on 1 side")] + [SerializeField] private bool laserOnX; + [SerializeField] private bool laserOnY; + + private PlayerMovements _pm; + + private void Start() + { + _pm = GetComponent(); + InvokeRepeating(nameof(ShootBeam), 5f, 5f); + } + + private void ShootBeam() + { + Instantiate(laser, transform.position, _pm.lookOnRight ? Quaternion.identity : Quaternion.Euler(0, 0, 180), transform); + + if (laserOnX) + { + Instantiate(laser, transform.position, _pm.lookOnRight ? Quaternion.Euler(0, 0, 180) : Quaternion.identity, transform); + } + + if (laserOnY) + { + Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 90), transform); + Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 270), transform); + } + + } +} diff --git a/Assets/Player/Scripts/PlayerWeapons.cs.meta b/Assets/Player/Scripts/PlayerWeapons.cs.meta new file mode 100644 index 0000000..7152400 --- /dev/null +++ b/Assets/Player/Scripts/PlayerWeapons.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce23672c2f6b5bd42adf4a7776a52005 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 5503002..1ceb9ba 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -364,6 +364,14 @@ PrefabInstance: propertyPath: m_Name value: Player objectReference: {fileID: 0} + - target: {fileID: 2991086602376010793, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: laserOnX + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2991086602376010793, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: laserOnY + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3622515600777588477, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} propertyPath: m_LocalPosition.x value: 0 diff --git a/Assets/Weapons.meta b/Assets/Weapons.meta new file mode 100644 index 0000000..6953351 --- /dev/null +++ b/Assets/Weapons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d2bc612c6ecbfb49baeae7a00e7808f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Weapons/Laser.meta b/Assets/Weapons/Laser.meta new file mode 100644 index 0000000..80a0c7d --- /dev/null +++ b/Assets/Weapons/Laser.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 581d57eb256967542af2b7eed9c89401 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Weapons/Laser/Laser Beam.cs b/Assets/Weapons/Laser/Laser Beam.cs new file mode 100644 index 0000000..cdb6a94 --- /dev/null +++ b/Assets/Weapons/Laser/Laser Beam.cs @@ -0,0 +1,29 @@ +using System.Collections; +using UnityEngine; + +[RequireComponent (typeof(BoxCollider2D))] +public class LaserBeam : MonoBehaviour +{ + public int Damages = 50; + + public float lifeSeconds = 1f; + + public void Start() + { + StartCoroutine(nameof(EndLifeAfterXSeconds)); + } + + private void OnTriggerEnter2D(Collider2D collision) + { + if (collision.CompareTag("Ennemy")) + { + collision.gameObject.GetComponent().Life -= Damages; + } + } + + private IEnumerator EndLifeAfterXSeconds() + { + yield return new WaitForSeconds(lifeSeconds); + Destroy(gameObject); + } +} diff --git a/Assets/Weapons/Laser/Laser Beam.cs.meta b/Assets/Weapons/Laser/Laser Beam.cs.meta new file mode 100644 index 0000000..fcffcab --- /dev/null +++ b/Assets/Weapons/Laser/Laser Beam.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 85af5326636cca14082a8bc4f4dfedcc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Weapons/Laser/Laser Beam.prefab b/Assets/Weapons/Laser/Laser Beam.prefab new file mode 100644 index 0000000..48334de --- /dev/null +++ b/Assets/Weapons/Laser/Laser Beam.prefab @@ -0,0 +1,178 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4525128753919750195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3048739808217203004} + - component: {fileID: 5328816822109051468} + m_Layer: 0 + m_Name: Beam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3048739808217203004 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4525128753919750195} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 25, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4430932250055150325} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &5328816822109051468 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4525128753919750195} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 2 + m_Size: {x: 50, y: 0.16} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &4893257253370123985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4430932250055150325} + - component: {fileID: 3148908794889564978} + - component: {fileID: 1475843655422961594} + m_Layer: 0 + m_Name: Laser Beam + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4430932250055150325 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4893257253370123985} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3048739808217203004} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &3148908794889564978 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4893257253370123985} + m_Enabled: 1 + 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_UsedByComposite: 0 + m_Offset: {x: 25, y: 0} + m_SpriteTilingProperty: + border: {x: 0.049999997, y: 0.049999997, z: 0.049999997, w: 0.049999997} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.16, y: 0.16} + newSize: {x: 50, y: 0.16} + adaptiveTilingThreshold: 1 + drawMode: 2 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 50, y: 0.16} + m_EdgeRadius: 0 +--- !u!114 &1475843655422961594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4893257253370123985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 85af5326636cca14082a8bc4f4dfedcc, type: 3} + m_Name: + m_EditorClassIdentifier: + Damages: 50 diff --git a/Assets/Weapons/Laser/Laser Beam.prefab.meta b/Assets/Weapons/Laser/Laser Beam.prefab.meta new file mode 100644 index 0000000..ee9e875 --- /dev/null +++ b/Assets/Weapons/Laser/Laser Beam.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 95cb513377bf0e248bd66d6f7ddae920 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index e06b81c..ba3002b 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -5,6 +5,7 @@ TagManager: serializedVersion: 2 tags: - Orb + - Ennemy layers: - Default - TransparentFX