Skip to content

Commit

Permalink
Merge pull request #17 from damian-pastorini/develop
Browse files Browse the repository at this point in the history
- Reldens - Items System
  • Loading branch information
damian-pastorini authored Jun 1, 2020
2 parents f35e453 + 84609e1 commit 02d202b
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 19 deletions.
8 changes: 4 additions & 4 deletions lib/item/type/equipment.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Equipment extends ItemBase
this.equipped = true;
await this.manager.events.emit(ItemsEvents.EQUIP_ITEM, this);
// apply modifiers automatically or not:
if(!applyMods && !this.manager.applyModifiersAuto){
if(applyMods === false || this.manager.applyModifiersAuto === false){
return false;
}
await this.applyModifiers();
Expand All @@ -35,7 +35,7 @@ class Equipment extends ItemBase
this.equipped = false;
await this.manager.events.emit(ItemsEvents.UNEQUIP_ITEM, this);
// revert modifiers automatically or not:
if(!revertMods && !this.manager.revertModifiersAuto){
if(revertMods === false || this.manager.revertModifiersAuto === false){
return false;
}
await this.revertModifiers();
Expand All @@ -52,8 +52,8 @@ class Equipment extends ItemBase

async revertModifiers()
{
if(!this.equipped){
Logger.error('Item not equipped: '+this.getInventoryId());
if(this.equipped){
Logger.error('Item equipped: '+this.getInventoryId());
return false;
}
return await super.revertModifiers();
Expand Down
52 changes: 40 additions & 12 deletions lib/item/type/item-base.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,23 +94,51 @@ class ItemBase
{
// @TODO: this is a temporal list of limited operations which can be improved.
// @NOTE: all of this need an opposite method so we can revert it later, except for SET and APPLY_METHOD.
if(modifier.operation === ItemsConst.OPS.INC || (modifier.operation === ItemsConst.OPS.DEC && revert)){
ownerProperty += modifier.value;
}
if(modifier.operation === ItemsConst.OPS.DEC || (modifier.operation === ItemsConst.OPS.INC && revert)){
ownerProperty -= modifier.value;
}
if(modifier.operation === ItemsConst.OPS.MUL || (modifier.operation === ItemsConst.OPS.DIV && revert)){
if(
(modifier.operation === ItemsConst.OPS.INC && !revert)
|| (modifier.operation === ItemsConst.OPS.DEC && revert)
){
ownerProperty = ownerProperty + modifier.value;
}
if(
(modifier.operation === ItemsConst.OPS.DEC && !revert)
|| (modifier.operation === ItemsConst.OPS.INC && revert)
){
ownerProperty = ownerProperty - modifier.value;
}
if(
(modifier.operation === ItemsConst.OPS.MUL && !revert)
|| (modifier.operation === ItemsConst.OPS.DIV && revert)
){
ownerProperty = ownerProperty * modifier.value;
}
if(modifier.operation === ItemsConst.OPS.DIV || (modifier.operation === ItemsConst.OPS.MUL && revert)){
if(
(modifier.operation === ItemsConst.OPS.DIV && !revert)
|| (modifier.operation === ItemsConst.OPS.MUL && revert)
){
ownerProperty = ownerProperty / modifier.value;
}
if(modifier.operation === ItemsConst.OPS.INC_P || (modifier.operation === ItemsConst.OPS.DEC_P && revert)){
ownerProperty += ownerProperty * modifier.value / 100;
if(
(modifier.operation === ItemsConst.OPS.INC_P && !revert)
|| (modifier.operation === ItemsConst.OPS.DEC_P && revert)
){
if(revert){
let revertValue = (Math.round(ownerProperty / (100 - modifier.value))) * 100 - ownerProperty;
ownerProperty = ownerProperty + revertValue;
} else {
ownerProperty = ownerProperty + Math.round(ownerProperty * modifier.value / 100);
}
}
if(modifier.operation === ItemsConst.OPS.DEC_P || (modifier.operation === ItemsConst.OPS.INC_P && revert)){
ownerProperty -= ownerProperty * modifier.value / 100;
if(
(modifier.operation === ItemsConst.OPS.DEC_P && !revert)
|| (modifier.operation === ItemsConst.OPS.INC_P && revert)
){
if(revert){
let revertValue = ownerProperty - Math.round((ownerProperty / (100 - modifier.value))) * 100;
ownerProperty = ownerProperty - revertValue;
} else {
ownerProperty = ownerProperty - Math.round(ownerProperty * modifier.value / 100);
}
}
if(modifier.operation === ItemsConst.OPS.SET){
if(revert){
Expand Down
4 changes: 2 additions & 2 deletions lib/server/storage/models-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ class ModelsManager

async onEquipItem(item)
{
return this.models['inventory'].query().patch(item).findById(item.id);
return this.models['inventory'].query().patch({is_active: 1}).findById(item.id);
}

async onUnequipItem(item)
{
return this.models['inventory'].query().patch(item).findById(item.id);
return this.models['inventory'].query().patch({is_active: 0}).findById(item.id);
}

async onChangedModifiers(item, action)
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@reldens/items-system",
"version": "0.4.2",
"version": "0.5.0",
"description": "Reldens - Items System",
"source": true,
"homepage": "https://github.com/damian-pastorini/reldens-items",
Expand Down

0 comments on commit 02d202b

Please sign in to comment.