Represent death on sprites

This commit is contained in:
Soulaha Balde 2022-04-02 18:58:56 -04:00
parent 6879efdf24
commit a1d2beca4f
8 changed files with 171 additions and 112 deletions

View File

@ -9,11 +9,10 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 197677485360569565} - component: {fileID: 197677485360569565}
- component: {fileID: 197677485360569564}
- component: {fileID: 197677485360569563}
- component: {fileID: 197677485360569566} - component: {fileID: 197677485360569566}
- component: {fileID: 3988163462708087662} - component: {fileID: 3988163462708087662}
- component: {fileID: 2142155588016984618} - component: {fileID: 2142155588016984618}
- component: {fileID: -8195126358453283336}
m_Layer: 0 m_Layer: 0
m_Name: Gladiator m_Name: Gladiator
m_TagString: Gladiator m_TagString: Gladiator
@ -37,55 +36,6 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &197677485360569564
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 197677485360569561}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &197677485360569563
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 197677485360569561}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &197677485360569566 --- !u!114 &197677485360569566
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -110,6 +60,8 @@ MonoBehaviour:
attackCooldown: 1 attackCooldown: 1
target: {fileID: 0} target: {fileID: 0}
halo: {fileID: 3772547392739388838} halo: {fileID: 3772547392739388838}
deadColor: {r: 0.7075472, g: 0.030037368, b: 0.030037368, a: 1}
emptyColor: {r: 0.5660378, g: 0.5660378, b: 0.5660378, a: 0.4117647}
AIStats: {fileID: 11400000, guid: 9d8a9a664d932d0498d5eca7607eeb53, type: 2} AIStats: {fileID: 11400000, guid: 9d8a9a664d932d0498d5eca7607eeb53, type: 2}
--- !u!58 &3988163462708087662 --- !u!58 &3988163462708087662
CircleCollider2D: CircleCollider2D:
@ -148,6 +100,57 @@ Rigidbody2D:
m_SleepingMode: 1 m_SleepingMode: 1
m_CollisionDetection: 0 m_CollisionDetection: 0
m_Constraints: 4 m_Constraints: 4
--- !u!212 &-8195126358453283336
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 197677485360569561}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
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: -1438510283
m_SortingLayer: 1
m_SortingOrder: 0
m_Sprite: {fileID: -2413806693520163455, guid: 4adeaf2d2b1c7417e89f026626d8264f, type: 3}
m_Color: {r: 0.04774831, g: 0.2735849, b: 0.08162382, 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!1 &3772547392739388838 --- !u!1 &3772547392739388838
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -57,7 +57,7 @@ Canvas:
m_OverridePixelPerfect: 0 m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0 m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0 m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0 m_SortingLayerID: -1438510283
m_SortingOrder: 0 m_SortingOrder: 0
m_TargetDisplay: 0 m_TargetDisplay: 0
--- !u!114 &2962150094107129824 --- !u!114 &2962150094107129824

View File

@ -91,11 +91,10 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 2399377275812995968} - component: {fileID: 2399377275812995968}
- component: {fileID: 2399377275812995969}
- component: {fileID: 2399377275812995970}
- component: {fileID: 2399377275812995974} - component: {fileID: 2399377275812995974}
- component: {fileID: 1427479462206541758} - component: {fileID: 1427479462206541758}
- component: {fileID: 8912459659685944407} - component: {fileID: 8912459659685944407}
- component: {fileID: 7325874221449804585}
m_Layer: 0 m_Layer: 0
m_Name: Monster m_Name: Monster
m_TagString: Monster m_TagString: Monster
@ -119,55 +118,6 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2399377275812995969
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2399377275812995980}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &2399377275812995970
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2399377275812995980}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &2399377275812995974 --- !u!114 &2399377275812995974
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -192,6 +142,8 @@ MonoBehaviour:
attackCooldown: 1 attackCooldown: 1
target: {fileID: 0} target: {fileID: 0}
halo: {fileID: 160873202674104038} halo: {fileID: 160873202674104038}
deadColor: {r: 0.7058824, g: 0.03137255, b: 0.03137255, a: 1}
emptyColor: {r: 0.5647059, g: 0.5647059, b: 0.5647059, a: 0.4117647}
AIStats: {fileID: 11400000, guid: 9d8a9a664d932d0498d5eca7607eeb53, type: 2} AIStats: {fileID: 11400000, guid: 9d8a9a664d932d0498d5eca7607eeb53, type: 2}
--- !u!50 &1427479462206541758 --- !u!50 &1427479462206541758
Rigidbody2D: Rigidbody2D:
@ -230,6 +182,57 @@ CircleCollider2D:
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
serializedVersion: 2 serializedVersion: 2
m_Radius: 0.5 m_Radius: 0.5
--- !u!212 &7325874221449804585
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2399377275812995980}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
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: -1438510283
m_SortingLayer: 1
m_SortingOrder: 0
m_Sprite: {fileID: -5177388603050735206, guid: 71ebafeef3c03457483266a33ab2b270, type: 3}
m_Color: {r: 0.14929691, g: 0.18158285, b: 0.5754717, 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!1001 &4861301622389167767 --- !u!1001 &4861301622389167767
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -237,6 +240,10 @@ PrefabInstance:
m_Modification: m_Modification:
m_TransformParent: {fileID: 2399377275812995968} m_TransformParent: {fileID: 2399377275812995968}
m_Modifications: m_Modifications:
- target: {fileID: 2962150094107129825, guid: d1d8f8326b5490848a9400aa9bd6b2f4, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2962150094107129826, guid: d1d8f8326b5490848a9400aa9bd6b2f4, type: 3} - target: {fileID: 2962150094107129826, guid: d1d8f8326b5490848a9400aa9bd6b2f4, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: Health Bar Canvas value: Health Bar Canvas
@ -333,6 +340,10 @@ PrefabInstance:
propertyPath: m_AnchorMax.y propertyPath: m_AnchorMax.y
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2962150095602046905, guid: d1d8f8326b5490848a9400aa9bd6b2f4, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d1d8f8326b5490848a9400aa9bd6b2f4, type: 3} m_SourcePrefab: {fileID: 100100000, guid: d1d8f8326b5490848a9400aa9bd6b2f4, type: 3}
--- !u!224 &7668921808236339569 stripped --- !u!224 &7668921808236339569 stripped

View File

@ -72,12 +72,14 @@ MonoBehaviour:
<movementSpeed>k__BackingField: 0 <movementSpeed>k__BackingField: 0
<rotSpeed>k__BackingField: 0 <rotSpeed>k__BackingField: 0
fov: 0 fov: 0
attackRange: 0 <attackRange>k__BackingField: 0
<attackDmg>k__BackingField: 0 <attackDmg>k__BackingField: 0
attackCooldown: 0 attackCooldown: 0
target: {fileID: 0} target: {fileID: 0}
halo: {fileID: 0}
deadColor: {r: 1, g: 0, b: 0, a: 1}
emptyColor: {r: 1, g: 0, b: 0, a: 1}
playerStats: {fileID: 11400000, guid: 12a626b5a296d934ba078d222ad6ba98, type: 2} playerStats: {fileID: 11400000, guid: 12a626b5a296d934ba078d222ad6ba98, type: 2}
healthBar: {fileID: 0}
--- !u!114 &1967503440015794769 --- !u!114 &1967503440015794769
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -145,11 +147,11 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0 m_SortingLayerID: 603553691
m_SortingLayer: 0 m_SortingLayer: 2
m_SortingOrder: 0 m_SortingOrder: 0
m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3} m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 0.03226238, g: 0.0766813, b: 0.23584908, a: 1}
m_FlipX: 0 m_FlipX: 0
m_FlipY: 0 m_FlipY: 0
m_DrawMode: 0 m_DrawMode: 0

View File

@ -20,11 +20,13 @@ public class AIEntity : Entity
} }
override protected void Update() { override protected void Update() {
base.Update();
if (currentState.UpdateState() is {} newState) if (currentState.UpdateState() is {} newState)
SwitchState(newState); SwitchState(newState);
} }
override protected void FixedUpdate() { override protected void FixedUpdate() {
base.FixedUpdate();
if (currentState.FixedUpdateState() is {} newState) if (currentState.FixedUpdateState() is {} newState)
SwitchState(newState); SwitchState(newState);
} }
@ -184,7 +186,7 @@ public class AIEntity : Entity
class DeadState : BaseStateAI{ class DeadState : BaseStateAI{
public DeadState(AIEntity entity) : base(entity){ public DeadState(AIEntity entity) : base(entity){
Debug.Log("Dead!");
} }
public override BaseState? UpdateState(){ public override BaseState? UpdateState(){

View File

@ -27,13 +27,20 @@ public class Entity : MonoBehaviour {
protected float attackTimer; protected float attackTimer;
[SerializeField] private Transform target; [SerializeField] private Transform target;
public string entityName { get; protected set; } public string entityName { get; protected set; }
private Collider atkCollider;
public Vector3 direction { get; set; } public Vector3 direction { get; set; }
public Rigidbody2D rb { get; private set; } public Rigidbody2D rb { get; private set; }
public Collider2D collider { get; private set; }
public SpriteRenderer renderer { get; private set; }
bool beingPushed; bool beingPushed;
[SerializeField] GameObject halo; [SerializeField] GameObject halo;
[SerializeField] Color deadColor = Color.red;
[SerializeField] Color emptyColor = Color.grey;
virtual protected void Awake() => rb = GetComponent<Rigidbody2D>(); virtual protected void Awake(){
rb = GetComponent<Rigidbody2D>();
collider = GetComponent<Collider2D>();
renderer = GetComponent<SpriteRenderer>();
}
protected virtual void Start() { protected virtual void Start() {
direction = new Vector3(1, 0, 0); direction = new Vector3(1, 0, 0);
@ -120,7 +127,28 @@ public class Entity : MonoBehaviour {
rb.AddForce(impulse, ForceMode2D.Impulse); rb.AddForce(impulse, ForceMode2D.Impulse);
} }
protected virtual void OnDied() { } protected virtual void OnDied() {
if(!(collider is null)){
collider.isTrigger = true;
}
if(!(rb is null)){
rb.isKinematic = true;
rb.velocity = Vector2.zero;
}
healthBar.gameObject.SetActive(false);
if(bloodTokens > 0){
renderer.color = deadColor;
renderer.sortingOrder = -1;
}else{
renderer.color = emptyColor;
renderer.sortingOrder = -2;
}
}
protected virtual void OnEmpty(){
renderer.color = emptyColor;
renderer.sortingOrder = -2;
}
public void EnableHalo() { public void EnableHalo() {
halo.SetActive(true); halo.SetActive(true);

View File

@ -12,6 +12,13 @@ public class Gladiator : AIEntity
base.enemies = new string[]{"Monster", "Vampire"}; base.enemies = new string[]{"Monster", "Vampire"};
} }
override protected void Update(){
base.Update();
if(bloodTokens <= 0){
OnEmpty();
}
}
override protected bool IsTargetable(Entity other){ override protected bool IsTargetable(Entity other){
foreach (string name in enemies){ foreach (string name in enemies){
if(other.entityName == name && other.IsAlive()){ if(other.entityName == name && other.IsAlive()){

View File

@ -46,3 +46,9 @@ TagManager:
- name: Default - name: Default
uniqueID: 0 uniqueID: 0
locked: 0 locked: 0
- name: AI
uniqueID: 2856457013
locked: 0
- name: Player
uniqueID: 603553691
locked: 0