Ajout d'un statut "malade/empoisonné"
This commit is contained in:
@@ -183,28 +183,46 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
|
||||
}
|
||||
|
||||
async onCreateItem(item, options, id) {
|
||||
switch (item.type) {
|
||||
case ITEM_TYPES.blessure:
|
||||
await this.changeBleedingState()
|
||||
break
|
||||
}
|
||||
await this.changeItemEffects(item)
|
||||
await super.onCreateItem(item, options, id)
|
||||
}
|
||||
|
||||
async onUpdateItem(item, options, id) {
|
||||
switch (item.type) {
|
||||
case ITEM_TYPES.blessure:
|
||||
await this.changeBleedingState()
|
||||
break
|
||||
}
|
||||
await this.changeItemEffects(item);
|
||||
await super.onUpdateItem(item, options, id)
|
||||
}
|
||||
|
||||
async changeBleedingState() {
|
||||
async onDeleteItem(item, options, id) {
|
||||
await this.changeItemEffects(item);
|
||||
await super.onDeleteItem(item, options, id)
|
||||
}
|
||||
|
||||
async changeItemEffects(item) {
|
||||
switch (item.type) {
|
||||
case ITEM_TYPES.blessure:
|
||||
await this.changeStateBleeding();
|
||||
break;
|
||||
case ITEM_TYPES.maladie:
|
||||
case ITEM_TYPES.poison:
|
||||
await this.changeStateMalade();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
async changeStateBleeding() {
|
||||
const bleeding = this.itemTypes[ITEM_TYPES.blessure].find(it => it.isBleeding())
|
||||
await this.setEffect(STATUSES.StatusBleeding, bleeding ? true : false)
|
||||
}
|
||||
|
||||
async changeStateMalade() {
|
||||
const maladiePoisons = this.getMaladiesPoisons()
|
||||
await this.setEffect(STATUSES.StatusMalade, maladiePoisons.length > 0)
|
||||
}
|
||||
|
||||
getMaladiesPoisons() {
|
||||
return this.items.filter(it => [ITEM_TYPES.maladie, ITEM_TYPES.poison].includes(it.type))
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async ajouterBlessure(encaissement, attackerToken = undefined) {
|
||||
if (encaissement.gravite < 0) return;
|
||||
|
||||
Reference in New Issue
Block a user