From 83d8924517e5dee4f1dacade86c2b09e2499f1ac Mon Sep 17 00:00:00 2001 From: cha0s Date: Tue, 30 Jul 2024 17:21:06 -0500 Subject: [PATCH] refactor: invulnerability --- app/ecs/components/vulnerable.js | 6 ++++++ public/assets/misc/death-default.js | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/ecs/components/vulnerable.js b/app/ecs/components/vulnerable.js index 1495d4a..2bf5829 100644 --- a/app/ecs/components/vulnerable.js +++ b/app/ecs/components/vulnerable.js @@ -23,6 +23,9 @@ export default class Vulnerable extends Component { id = 0; Types = DamageTypes; damage(specification) { + if (this.isInvulnerable) { + return; + } const {Alive} = Component.ecs.get(this.entity); if (Alive) { switch (specification.type) { @@ -39,4 +42,7 @@ export default class Vulnerable extends Component { } }; } + static properties = { + isInvulnerable: {type: 'uint8'}, + }; } diff --git a/public/assets/misc/death-default.js b/public/assets/misc/death-default.js index a313156..21edfe0 100644 --- a/public/assets/misc/death-default.js +++ b/public/assets/misc/death-default.js @@ -1,4 +1,7 @@ -const {Sprite, Ticking} = entity; +const {Sprite, Ticking, Vulnerable} = entity; +if (Vulnerable) { + Vulnerable.isInvulnerable = 1; +} if (Sprite) { const {promise} = transition( entity.Sprite,