This commit is contained in:
BaptisteGirard 2023-05-15 15:47:38 -04:00
parent ac7d2ce568
commit e58928ef8b
17 changed files with 1822 additions and 13 deletions

View File

@ -1308,6 +1308,7 @@ GameObject:
- component: {fileID: 388196585} - component: {fileID: 388196585}
- component: {fileID: 388196587} - component: {fileID: 388196587}
- component: {fileID: 388196586} - component: {fileID: 388196586}
- component: {fileID: 388196588}
m_Layer: 6 m_Layer: 6
m_Name: Spawners m_Name: Spawners
m_TagString: Untagged m_TagString: Untagged
@ -1925,6 +1926,63 @@ Tilemap:
e31: 0 e31: 0
e32: 0 e32: 0
e33: 1 e33: 1
--- !u!1001 &669977698
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6962989255644195630, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_Name
value: baseArcher
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalPosition.x
value: -6.51
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalPosition.y
value: 0.51
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalPosition.z
value: 1.8112363
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6cd87b398e7a0e94580f4fcbe2fd310a, type: 3}
--- !u!1001 &1431912647 --- !u!1001 &1431912647
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1946,11 +2004,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -3.5575664 value: 0.6
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 1.5121906 value: 0.55
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6cd87b398e7a0e94580f4fcbe2fd310a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -135,7 +135,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_hp: 1000 _hp: 1000
_speed: 0.5 _speed: 0.1
_attack_damage: 2 _attack_damage: 2
_attack_speed: 3 _attack_speed: 3
--- !u!1 &6962989256011107503 --- !u!1 &6962989256011107503

View File

@ -0,0 +1,268 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6962989255644195630
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6962989255644195631}
- component: {fileID: 6072713849781841816}
- component: {fileID: -1491803373025033585}
- component: {fileID: 8133954670424616578}
m_Layer: 0
m_Name: baseProjectile
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6962989255644195631
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989255644195630}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.61, y: -0.638, z: 1.8112363}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6962989256011107500}
- {fileID: 6802302589573039538}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1839735485 &6072713849781841816
Tilemap:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989255644195630}
m_Enabled: 0
m_Tiles: {}
m_AnimatedTiles: {}
m_TileAssetArray: []
m_TileSpriteArray: []
m_TileMatrixArray: []
m_TileColorArray: []
m_TileObjectToInstantiateArray: []
m_AnimationFrameRate: 1
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Origin: {x: 0, y: 0, z: 0}
m_Size: {x: 0, y: 0, z: 1}
m_TileAnchor: {x: 0.5, y: 0.5, z: 0}
m_TileOrientation: 0
m_TileOrientationMatrix:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
--- !u!50 &-1491803373025033585
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989255644195630}
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 &8133954670424616578
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989255644195630}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01782bd631a6e1446956ed140a24c530, type: 3}
m_Name:
m_EditorClassIdentifier:
_detectionLinked: {fileID: 3172728477976940186}
_angle: 10
_speed: 2
--- !u!1 &6962989256011107503
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6962989256011107500}
- component: {fileID: 6962989256011107501}
m_Layer: 0
m_Name: exmeple
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6962989256011107500
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989256011107503}
m_LocalRotation: {x: 0, y: -0, z: 0.7071068, w: -0.7071068}
m_LocalPosition: {x: 0.0259, y: 0.01, z: 0}
m_LocalScale: {x: 0.5394133, y: 0.56488746, z: 0.9686}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6962989255644195631}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 270}
--- !u!212 &6962989256011107501
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989256011107503}
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: 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: 4
m_Sprite: {fileID: 21300000, guid: b28a7c5aeb45b224983f69339965c55d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 1.06, y: 1.69}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &8726647054546243319
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6802302589573039538}
- component: {fileID: 7006189111012443782}
- component: {fileID: 3172728477976940186}
m_Layer: 0
m_Name: detection
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6802302589573039538
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8726647054546243319}
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: []
m_Father: {fileID: 6962989255644195631}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &7006189111012443782
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8726647054546243319}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0.25, y: 0.01}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 0.2, y: 0.1}
m_EdgeRadius: 0
--- !u!114 &3172728477976940186
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8726647054546243319}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3}
m_Name:
m_EditorClassIdentifier:
_entityLinked: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 869a03bba705e8d4485aa73daad773dc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Scripts/Ally.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 864cf5f1543a148488b21071dd02d666
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Archer : Ally
{
[SerializeField]
private GameObject _arrow;
private Rigidbody2D _rigidbodyAlly;
private Rigidbody2D _rigidbodyOpponent;
void Start() {
_rigidbodyAlly = GetComponent<Rigidbody2D>();
}
void Update() {
if(IsEnemyDetected) {
_rigidbodyOpponent = Enemy.GetComponent<Rigidbody2D>();
AttackEnemy();
}
}
void AttackEnemy() {
//Attack Cooldown
if(AttackSpeed < AttackSpeedWait) {
GameObject _newArrow = Instantiate(_arrow, _rigidbodyAlly.position, Quaternion.identity);
//Warning : the Speed of the arrow is equal to the speed of this unit, if this unit need to move, use an other variable !
_newArrow.GetComponent<Projectile>().Damage = AttackDamage;
_newArrow.GetComponent<Projectile>().EnemySpeed = Enemy.Speed;
_newArrow.GetComponent<Projectile>().VectorStart = _rigidbodyAlly.position;
_newArrow.GetComponent<Projectile>().VectorEnd = _rigidbodyOpponent.position;
_newArrow.GetComponent<Projectile>().Target = Enemy;
AttackSpeedWait = 0f;
}
AttackSpeedWait += Time.deltaTime;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4efc1afdf7c559a4cac25dad0d8917cb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -8,25 +8,55 @@ public class Detection : MonoBehaviour
[SerializeField] [SerializeField]
private Entity _entityLinked; private Entity _entityLinked;
//If it's a projectile damage > 0
private int _projectileDamage = 0;
void OnTriggerEnter2D(Collider2D other) void OnTriggerEnter2D(Collider2D other)
{ {
//Detect the enemy and inform the Entity
if (other.gameObject.tag == "Opponent" && _entityLinked.GetType() == typeof(Ally)) { if(_projectileDamage == 0) {
//Detect the enemy and inform the Ally
if (other.gameObject.tag == "Opponent" && _entityLinked is Ally) {
_entityLinked.IsEnemyDetected = true; _entityLinked.IsEnemyDetected = true;
_entityLinked.Enemy = other.gameObject.GetComponent<Entity>(); _entityLinked.Enemy = other.gameObject.GetComponent<Entity>();
} }
//Detect the enemy and inform the Entity //Detect the enemy and inform the Opponent
if (other.gameObject.tag == "Ally" && _entityLinked.GetType() == typeof(Opponent)) { if (other.gameObject.tag == "Ally" && _entityLinked is Opponent) {
_entityLinked.IsEnemyDetected = true; _entityLinked.IsEnemyDetected = true;
_entityLinked.Enemy = other.gameObject.GetComponent<Entity>(); _entityLinked.Enemy = other.gameObject.GetComponent<Entity>();
} }
}else {
//Projectiles detection
if(_projectileDamage > 0 && other.gameObject.GetComponent<Entity>() == _entityLinked) {
Debug.Log("Touchee !!");
other.gameObject.GetComponent<Entity>().Hp -= _projectileDamage;
}
}
} }
void OnTriggerExit2D(Collider2D other) void OnTriggerExit2D(Collider2D other)
{ {
if(_projectileDamage == 0) {
if ((other.gameObject.tag == "Opponent" && _entityLinked is Ally) || (other.gameObject.tag == "Ally" && _entityLinked is Opponent)) {
_entityLinked.IsEnemyDetected = false; _entityLinked.IsEnemyDetected = false;
} }
}
}
//Getter and Setter
public Entity EntityLinked
{
get { return _entityLinked; }
set { _entityLinked = value; }
}
public int ProjectileDamage
{
get { return _projectileDamage; }
set { _projectileDamage = value; }
}
} }

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 37583136525eee44183a84510289dc51
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,98 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Projectile : MonoBehaviour
{
[SerializeField]
private Detection _detectionLinked;
[SerializeField]
private float _angle = 10f; //Default
[SerializeField]
private float _speed = 2f; //Default
private Vector2 _vectorStart;
private Vector2 _vectorEnd;
private int _damage;
private float _enemySpeed;
private Entity _target;
private Rigidbody2D _rigidbodyProjectile;
private float _initialX;
private float _initialY;
private float _destinationX;
private float _speedTime = 0f;
void Start() {
_rigidbodyProjectile = GetComponent<Rigidbody2D>();
_initialX = transform.position.x;
_initialY = transform.position.y;
_destinationX = _vectorEnd.x - _initialX - _enemySpeed;
_detectionLinked.gameObject.GetComponent<Detection>().EntityLinked = _target;
_detectionLinked.gameObject.GetComponent<Detection>().ProjectileDamage = _damage;
}
// Update is called once per frame
void Update()
{
float x = _speedTime;
float y = (_angle*-Mathf.Pow(x, 2) + _destinationX * x);
transform.position = new Vector2(_initialX + x*_angle, _initialY + y);
_speedTime += _speed * Time.deltaTime;
if(y < 0) {
Destroy(this.gameObject);
}
}
//Getter and Setter
public float EnemySpeed
{
get { return _enemySpeed; }
set { _enemySpeed = value; }
}
public float Angle
{
get { return _angle; }
set { _angle = value; }
}
public float Speed
{
get { return _speed; }
set { _speed = value; }
}
public int Damage
{
get { return _damage; }
set { _damage = value; }
}
public Vector2 VectorStart
{
get { return _vectorStart; }
set { _vectorStart = value; }
}
public Vector2 VectorEnd
{
get { return _vectorEnd; }
set { _vectorEnd = value; }
}
public Entity Target
{
get { return _target; }
set { _target = value; }
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 01782bd631a6e1446956ed140a24c530
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: