Compare commits

...

3 Commits

Author SHA1 Message Date
cc742f7705 Add ghost lady in level configs and make all enemies slower 2025-07-27 16:54:39 -04:00
6f2f4a2a3f Merge branch 'main' into art/ghostLady 2025-07-27 16:35:27 -04:00
4cb859c4a5 Basic Dodging Enemy Creation (#12)
Reviewed-on: #12
Reviewed-by: Ader_Alisma <ader.alisma.1@ens.etsmtl.ca>
Co-authored-by: MaximilienBlanchardBizien1 <maximilien.blanchard-bizien.1@ens.etsmtl.ca>
Co-committed-by: MaximilienBlanchardBizien1 <maximilien.blanchard-bizien.1@ens.etsmtl.ca>
2025-07-27 20:30:08 +00:00
17 changed files with 69 additions and 31 deletions

View File

@ -21,8 +21,8 @@ MonoBehaviour:
_count: 12 _count: 12
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 9 _count: 3
triggerTime: 2 triggerTime: 2
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -21,8 +21,8 @@ MonoBehaviour:
_count: 12 _count: 12
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 9 _count: 5
triggerTime: 2 triggerTime: 2
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -21,8 +21,8 @@ MonoBehaviour:
_count: 12 _count: 12
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 9 _count: 2
triggerTime: 2 triggerTime: 2
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -21,8 +21,8 @@ MonoBehaviour:
_count: 12 _count: 12
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 9 _count: 3
triggerTime: 2 triggerTime: 2
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -21,8 +21,8 @@ MonoBehaviour:
_count: 12 _count: 12
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 9 _count: 3
triggerTime: 2 triggerTime: 2
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -21,8 +21,8 @@ MonoBehaviour:
_count: 12 _count: 12
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 9 _count: 3
triggerTime: 2 triggerTime: 2
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -17,8 +17,8 @@ MonoBehaviour:
_count: 50 _count: 50
_nestedGroupSpawn: _nestedGroupSpawn:
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 2419a879bd4e47d4fa8b30de0fcdde42, type: 3} - _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 12 _count: 2
triggerTime: 1 triggerTime: 1
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3}

View File

@ -14,7 +14,9 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_constantSpawn: _constantSpawn:
- _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3} - _enemy: {fileID: 80204295746100150, guid: 1be769d6ef642314b8846bed35e7297c, type: 3}
_count: 90 _count: 80
- _enemy: {fileID: 73262998545604314, guid: 45b33728f1566c146afdeaeca131097e, type: 3}
_count: 10
_nestedGroupSpawn: _nestedGroupSpawn:
- groupSpawn: - groupSpawn:
- _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3} - _enemy: {fileID: 80204295746100150, guid: 5bbf0d85fa5bb3f4599da79f0a84e3a9, type: 3}

View File

@ -100,9 +100,10 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_lifeBar: {fileID: 2449956049745952446} _lifeBar: {fileID: 2449956049745952446}
_hp: 10 _hp: 10
_speed: 0.15 _speed: 0.12
_attack_damage: 1 _attack_damage: 1
_attack_interval: 2 _attack_interval: 2
_enemy: {fileID: 0}
--- !u!114 &5416582167583119277 --- !u!114 &5416582167583119277
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -99,10 +99,11 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_lifeBar: {fileID: 6798035564183833197} _lifeBar: {fileID: 6798035564183833197}
_hp: 20 _hp: 30
_speed: 0.12 _speed: 0.08
_attack_damage: 2 _attack_damage: 4
_attack_interval: 2 _attack_interval: 2
_enemy: {fileID: 0}
--- !u!114 &614599585058623813 --- !u!114 &614599585058623813
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -11,11 +11,11 @@ GameObject:
- component: {fileID: 73262998545604315} - component: {fileID: 73262998545604315}
- component: {fileID: 786376373914056571} - component: {fileID: 786376373914056571}
- component: {fileID: 8558929262839314745} - component: {fileID: 8558929262839314745}
- component: {fileID: 306412456487357129} - component: {fileID: 6448106277001376286}
- component: {fileID: 5418720847388234433} - component: {fileID: 5418720847388234433}
- component: {fileID: 5407344891893838719} - component: {fileID: 5407344891893838719}
m_Layer: 0 m_Layer: 0
m_Name: Ghost_monster m_Name: SpoopyAhGhost_monster
m_TagString: Opponent m_TagString: Opponent
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -86,7 +86,7 @@ BoxCollider2D:
serializedVersion: 2 serializedVersion: 2
m_Size: {x: 1, y: 1} m_Size: {x: 1, y: 1}
m_EdgeRadius: 0 m_EdgeRadius: 0
--- !u!114 &306412456487357129 --- !u!114 &6448106277001376286
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -95,15 +95,16 @@ MonoBehaviour:
m_GameObject: {fileID: 73262998545604314} m_GameObject: {fileID: 73262998545604314}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5c6a370a8a12ae547a4509f3b98339cf, type: 3} m_Script: {fileID: 11500000, guid: 9accc3bbf43ac664d99f80d0f5302897, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_lifeBar: {fileID: 2442999547823700946} _lifeBar: {fileID: 2442999547823700946}
_hp: 30 _hp: 30
_speed: 0.09 _speed: 0.07
_attack_damage: 2 _attack_damage: 2
_attack_interval: 2 _attack_interval: 2
_enemy: {fileID: 0} _enemy: {fileID: 0}
dodgePercent: 25
--- !u!114 &5418720847388234433 --- !u!114 &5418720847388234433
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -299,7 +300,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c0fbd934c179894458914437255781c4, type: 3} m_Script: {fileID: 11500000, guid: c0fbd934c179894458914437255781c4, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_entity: {fileID: 306412456487357129} _entity: {fileID: 0}
_projectile: {fileID: 0} _projectile: {fileID: 0}
_projectileSpawn: {fileID: 0} _projectileSpawn: {fileID: 0}
--- !u!1 &1783019576293145347 --- !u!1 &1783019576293145347
@ -373,7 +374,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3} m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_entityLinked: {fileID: 306412456487357129} _entityLinked: {fileID: 0}
--- !u!1 &3901306565544326743 --- !u!1 &3901306565544326743
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -73,7 +73,13 @@ public class Detection : MonoBehaviour
Entity otherEntity = other.gameObject.GetComponent<Entity>(); Entity otherEntity = other.gameObject.GetComponent<Entity>();
if (otherEntity == _entityLinked) if (otherEntity == _entityLinked)
{ {
_entityLinked.Hit(_projectileDamage); GhostOpponent isGhost = EntityLinked.gameObject.GetComponent<GhostOpponent>();
if (isGhost != null)
{
if(!isGhost.dodgedProjectile()) _entityLinked.Hit(_projectileDamage);
}
else _entityLinked.Hit(_projectileDamage);
// Kill if no hp // Kill if no hp
if (otherEntity.Hp <= 0) if (otherEntity.Hp <= 0)
{ {

View File

@ -1,5 +1,6 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEditorInternal;
using UnityEngine; using UnityEngine;
[CreateAssetMenu(menuName = project_name + "/Global Config")] [CreateAssetMenu(menuName = project_name + "/Global Config")]

View File

@ -0,0 +1,18 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GhostOpponent : Opponent
{
[SerializeField]
//Le taux de chance, en pourcantage (un chiffre entre 0 et 99) que l'ennemie a d'eviter un projectile.
private int dodgePercent;
public bool dodgedProjectile()
{
System.Random random = new System.Random();
if(random.Next(0, 99) > dodgePercent) return false;
else return true;
}
}

View File

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

View File

@ -1,5 +1,6 @@
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEditorInternal;
using UnityEngine; using UnityEngine;
public class Opponent : Entity public class Opponent : Entity
@ -42,10 +43,6 @@ public class Opponent : Entity
Move(); Move();
} }
} }
void AttackEnemy() void AttackEnemy()