Fix: les tas de conteneurs

This commit is contained in:
Vincent Vandemeulebrouck 2024-11-29 22:11:24 +01:00
parent 6af5a85dc1
commit 8be4c3343f
4 changed files with 25 additions and 6 deletions

View File

@ -1,6 +1,8 @@
# 12.0 # 12.0
## 12.0.24 - Les ajustements d'Astrobazzarh ## 12.0.24 - Les ajustements d'Astrobazzarh
- corrections - corrections
- les tas dans les conteneurs peuvent être désempilés sans rendre le conteneur inutilisable
- les conteneurs ne peuvent plus être empilés (pour éviter que le contenu de Schroedinger quand on les sépare)
- on peut maintenant saisir et supprimer les bonus de cases de manière intuitive - on peut maintenant saisir et supprimer les bonus de cases de manière intuitive
## 12.0.23 - La bibliothèque d'Astrobazzarh ## 12.0.23 - La bibliothèque d'Astrobazzarh

View File

@ -3017,15 +3017,16 @@ export class RdDActor extends RdDBaseActorSang {
case 'queue': case 'queue':
case 'ombre': case 'ombre':
case 'souffle': case 'souffle':
await this.onDeleteOwnedDraconique(item, options, id); await this.onDeleteOwnedDraconique(item, options, id)
break; break
case 'casetmr': case 'casetmr':
await this.onDeleteOwnedCaseTmr(item, options, id); await this.onDeleteOwnedCaseTmr(item, options, id)
break; break
case 'empoignade': case 'empoignade':
await RdDEmpoignade.deleteLinkedEmpoignade(this.id, item) await RdDEmpoignade.deleteLinkedEmpoignade(this.id, item)
break; break
} }
super.onDeleteItem(item, options, id)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@ -213,8 +213,20 @@ export class RdDBaseActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async onPreUpdateItem(item, change, options, id) { } async onPreUpdateItem(item, change, options, id) { }
async onCreateItem(item, options, id) { } async onCreateItem(item, options, id) { }
async onDeleteItem(item, options, id) { }
async onUpdateActor(update, options, actorId) { } async onUpdateActor(update, options, actorId) { }
async onDeleteItem(item, options, id) {
if (item.isInventaire()) {
this._removeItemFromConteneur(item)
}
}
_removeItemFromConteneur(item) {
this.items.filter(it => it.isConteneur() && it.system.contenu.includes(item.id))
.forEach(conteneur => {
const nouveauContenu = conteneur.system.contenu.filter(id => id != item.id);
conteneur.update({ 'system.contenu': nouveauContenu });
});
}
async onTimeChanging(oldTimestamp, newTimestamp) { async onTimeChanging(oldTimestamp, newTimestamp) {
this.items.filter(it => it.isFinPeriode(oldTimestamp, newTimestamp)) this.items.filter(it => it.isFinPeriode(oldTimestamp, newTimestamp))

View File

@ -571,6 +571,7 @@ export class RdDItem extends Item {
else { else {
await this.quantiteIncDec(item.system.quantite); await this.quantiteIncDec(item.system.quantite);
} }
// TODO: suppression dans les conteneurs!
await item.delete(); await item.delete();
} }
@ -601,6 +602,9 @@ export class RdDItem extends Item {
if (!other || !this.isInventaire()) { if (!other || !this.isInventaire()) {
return [false, undefined]; return [false, undefined];
} }
if (this.isConteneur()){
return [false, `Impossible de regrouper des conteneurs, ils ne sont pas empilables`];
}
if (this.system.quantite == undefined) { if (this.system.quantite == undefined) {
return [false, `Impossible de regrouper des ${this.type}, ils ne sont pas empilables`]; return [false, `Impossible de regrouper des ${this.type}, ils ne sont pas empilables`];
} }