diff --git a/packages/combat/src/traits/vulnerable.js b/packages/combat/src/traits/vulnerable.js index dbc9408..6a7fc43 100644 --- a/packages/combat/src/traits/vulnerable.js +++ b/packages/combat/src/traits/vulnerable.js @@ -61,6 +61,12 @@ export default (latus) => class Vulnerable extends Trait { }; } + static dependencies() { + return [ + 'Emitter', + ]; + } + static describeParams() { return { modifiers: { @@ -142,11 +148,6 @@ export default (latus) => class Vulnerable extends Trait { }, }, }, - Existent: { - state: { - name: 'Harm particle', - }, - }, Layered: {}, Listed: {}, Positioned: {}, @@ -185,7 +186,6 @@ export default (latus) => class Vulnerable extends Trait { ttl: 0.5, }, }, - Existent: {}, Layered: {}, Listed: {}, Perishable: { diff --git a/packages/core/src/traits/controllable.js b/packages/core/src/traits/controllable.js index b59421a..eafa1f8 100644 --- a/packages/core/src/traits/controllable.js +++ b/packages/core/src/traits/controllable.js @@ -12,6 +12,15 @@ export default () => class Controllable extends Trait { this._movementVector = [0, 0]; } + static dependencies() { + return [ + 'Animated', + 'Mobile', + 'Receptacle', + 'Wielder', + ]; + } + set inputStream(inputStream) { for (let i = 0; i < inputStream.length; i++) { const {action, value} = inputStream[i]; diff --git a/packages/core/src/traits/lootable.js b/packages/core/src/traits/lootable.js index 91a4460..a46e04d 100644 --- a/packages/core/src/traits/lootable.js +++ b/packages/core/src/traits/lootable.js @@ -34,6 +34,12 @@ export default () => class Lootable extends decorate(Trait) { }; } + static dependencies() { + return [ + 'Emitter', + ]; + } + static describeParams() { return { table: { diff --git a/packages/farm/src/traits/plant.js b/packages/farm/src/traits/plant.js index 368b00e..5b5c24c 100644 --- a/packages/farm/src/traits/plant.js +++ b/packages/farm/src/traits/plant.js @@ -32,6 +32,12 @@ export default (latus) => class Plant extends decorate(Trait) { }; } + static dependencies() { + return [ + 'Pictured', + ]; + } + static describeParams() { return { growthCondition: { diff --git a/packages/inventory/src/traits/receptacle.js b/packages/inventory/src/traits/receptacle.js index 8b5d097..71510a9 100644 --- a/packages/inventory/src/traits/receptacle.js +++ b/packages/inventory/src/traits/receptacle.js @@ -32,6 +32,12 @@ export default (latus) => class Receptacle extends decorate(Trait) { }; } + static dependencies() { + return [ + 'Audible', + ]; + } + static describeParams() { return { slots: { @@ -192,9 +198,7 @@ export default (latus) => class Receptacle extends decorate(Trait) { other.list.removeEntity(other); } this.entity.addItemToSlot(other); - if (this.entity.is('Audible')) { - this.entity.playSound('yoink'); - } + this.entity.playSound('yoink'); } }; } diff --git a/packages/inventory/src/traits/wielder.js b/packages/inventory/src/traits/wielder.js index 80ac44e..9588f0b 100644 --- a/packages/inventory/src/traits/wielder.js +++ b/packages/inventory/src/traits/wielder.js @@ -23,7 +23,7 @@ export default (latus) => class Wielder extends decorate(Trait) { static dependencies() { return [ - 'receptacle', + 'Receptacle', ]; }