diff --git a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs index 15aa963ea6f4f5cf4d0eb06519d677547ee3beb8..5c82b09e44abfff11e1330b0f565bb9263d886d8 100644 --- a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs +++ b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs @@ -14,7 +14,7 @@ namespace BigSock { */ public class BasicProjectile1 : BaseAttack { //protected static readonly GameObject PROJECTILE_BASE = new AttackMovement(); - public const string PROJECTILE_NAME = "attack"; + public const string PROJECTILE_NAME = "bullets/basicsquarebullet"; public override ulong Id => 101; diff --git a/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs new file mode 100644 index 0000000000000000000000000000000000000000..19968e12c872a34d8bd8efeadb6c5423783bc334 --- /dev/null +++ b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs @@ -0,0 +1,67 @@ +using System.Collections; +using System; +using System.Collections.Generic; + +using UnityEngine; +using UnityEngine.InputSystem; + +using BigSock.Service; + +namespace BigSock { + + /* + Basic projectile attack for the player.. + */ + public class BiggerSlowerProjectile : BaseAttack { + //protected static readonly GameObject PROJECTILE_BASE = new AttackMovement(); + public const string PROJECTILE_NAME = "bullets/bigslowbullet"; + + + public override ulong Id => 102; + public override string Name => "Big Ball"; + public override string Description => "It's big and slow, but it packs a punch."; + + public BiggerSlowerProjectile() { + AttackStats = new AttackStats{ + Damage = 4f, + Knockback = 5f, + Range = 5f, + ProjectileSpeed = 3f, + AttackSpeed = 1f, + }; + + Cooldown = new TimeSpan(0, 0, 0, 2, 0); + } + + + + /* + Activates the ability. + Returns true if the ability was successfully activated. + - Even if nothing was hit, used to indicate that cooldowns should be updated. + This should be overridden in sub-classes for the actual abilities. + */ + protected override bool Activate(Character actor, Vector3? target) { + if(target == null) return false; + + var attack = (AttackStats) AttackStats.Apply(actor.Stats); + attack.Actor = actor; + + + var temp = (target.Value - actor.transform.position); + temp.z = 0; + + var bullet = PrefabService.SINGLETON.Instance(PROJECTILE_NAME, actor.transform.position); + var bulletScript = bullet.GetComponent<AttackMovement>(); + //bulletScript.Actor = actor; + bulletScript.Stats = attack; + bulletScript.Direction = temp.normalized; + + + //MonoBehaviour.Instantiate(PROJECTILE_BASE, (Vector3) actor.transform.position, PROJECTILE_BASE.transform.rotation); + return true; + } + + } + +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs.meta b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b4b06bfec47cf5d0ba33e41cf187242118408045 --- /dev/null +++ b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c80b74b32e3dc7745a400cec3fae0641 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MrBigsock/Assets/Code/PlayerController.cs b/MrBigsock/Assets/Code/PlayerController.cs index 300cedfbac1d53a86394b866607ddc3655d53b33..5bcbfb2818e1b58b5de146ad7671a868e29d9307 100644 --- a/MrBigsock/Assets/Code/PlayerController.cs +++ b/MrBigsock/Assets/Code/PlayerController.cs @@ -32,7 +32,8 @@ namespace BigSock { - protected IAttack _testAttack;// = new BasicProjectile1(); + protected IAttack _testAttack; + protected IAttack _testAttack2; public DateTime NextTimeCanAttack { get; private set; } = DateTime.Now; @@ -54,6 +55,7 @@ namespace BigSock { TryPickUpItem(ItemService.SINGLETON.Get(202)); var tmp = PrefabService.SINGLETON; _testAttack = (IAttack) AbilityService.SINGLETON.Get(101); + _testAttack2 = (IAttack) AbilityService.SINGLETON.Get(102); } @@ -95,8 +97,7 @@ namespace BigSock { } - private void Update() - { + private void Update() { if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButton(0)) { // Manage attack cooldown. if(NextTimeCanAttack <= DateTime.Now) { @@ -110,6 +111,10 @@ namespace BigSock { } } + if(Input.GetKey(KeyCode.Z)) { + _testAttack2.Use(this, Camera.main.ScreenToWorldPoint(Input.mousePosition)); + } + //!! Code for testing the new item stuff. if(Input.GetKeyDown(KeyCode.Space)) { var item = ItemService.SINGLETON.GetRandom(); // new ItemRunningShoes(); diff --git a/MrBigsock/Assets/Prefabs/Test.meta b/MrBigsock/Assets/Prefabs/Bullets.meta similarity index 77% rename from MrBigsock/Assets/Prefabs/Test.meta rename to MrBigsock/Assets/Prefabs/Bullets.meta index 8110b43873492ac7d9053c2d8fc0a18c35392888..43206aefbe685eb1776c0ae9e7c0a61d80ffd04e 100644 --- a/MrBigsock/Assets/Prefabs/Test.meta +++ b/MrBigsock/Assets/Prefabs/Bullets.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ab1236fcd80cdcd4087feefb329f93be +guid: b0537d7a3164f1043a126b2e6647f45b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/MrBigsock/Assets/Prefabs/Test/attack 1.prefab b/MrBigsock/Assets/Prefabs/Bullets/basic square bullet.prefab similarity index 99% rename from MrBigsock/Assets/Prefabs/Test/attack 1.prefab rename to MrBigsock/Assets/Prefabs/Bullets/basic square bullet.prefab index 76613d515234fdb4e24ae1ca5229f74135429a9d..84d2745dcb68f89e5522168e18ea1483dac52586 100644 --- a/MrBigsock/Assets/Prefabs/Test/attack 1.prefab +++ b/MrBigsock/Assets/Prefabs/Bullets/basic square bullet.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 7173793660907891948} - component: {fileID: 5355219341519538053} m_Layer: 10 - m_Name: attack 1 + m_Name: basic square bullet m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/MrBigsock/Assets/Prefabs/Test/attack 1.prefab.meta b/MrBigsock/Assets/Prefabs/Bullets/basic square bullet.prefab.meta similarity index 74% rename from MrBigsock/Assets/Prefabs/Test/attack 1.prefab.meta rename to MrBigsock/Assets/Prefabs/Bullets/basic square bullet.prefab.meta index 4894bab2f51392186c537a59675dcbf622134704..dbd2353731bf1a998803ed28f37940633d7c7474 100644 --- a/MrBigsock/Assets/Prefabs/Test/attack 1.prefab.meta +++ b/MrBigsock/Assets/Prefabs/Bullets/basic square bullet.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 90d3ad8365877544cad09c96114a968f +guid: 0b6baaea48df02c4cb78bc358a91df08 PrefabImporter: externalObjects: {} userData: diff --git a/MrBigsock/Assets/Prefabs/Bullets/big slow bullet.prefab b/MrBigsock/Assets/Prefabs/Bullets/big slow bullet.prefab new file mode 100644 index 0000000000000000000000000000000000000000..543b4693a61a05bef705db75e9a8d838e93f52f1 --- /dev/null +++ b/MrBigsock/Assets/Prefabs/Bullets/big slow bullet.prefab @@ -0,0 +1,152 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7173793660907891926 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7173793660907891920} + - component: {fileID: 7173793660907891921} + - component: {fileID: -6768472252184241181} + - component: {fileID: 7173793660907891949} + - component: {fileID: 7173793660907891948} + - component: {fileID: 5355219341519538053} + m_Layer: 10 + m_Name: big slow bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7173793660907891920 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7173793660907891926} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.0584211, y: -1.6348, z: 0} + m_LocalScale: {x: 4, y: 4, z: 4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &7173793660907891921 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7173793660907891926} + 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: 2 + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!58 &-6768472252184241181 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7173793660907891926} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 0.1 +--- !u!50 &7173793660907891949 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7173793660907891926} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 +--- !u!114 &7173793660907891948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7173793660907891926} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 08cde138491863f44997ffed19e030dd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5355219341519538053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7173793660907891926} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3ae233c400f83844da0350aabdf5097d, type: 3} + m_Name: + m_EditorClassIdentifier: + speed: 10 diff --git a/MrBigsock/Assets/Prefabs/Bullets/big slow bullet.prefab.meta b/MrBigsock/Assets/Prefabs/Bullets/big slow bullet.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..5151efcd2d73150634b2a624141b4a8bf4a5d43f --- /dev/null +++ b/MrBigsock/Assets/Prefabs/Bullets/big slow bullet.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 18577178eac0b0f4b9c7a6027a6c6444 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: