Version: 0.9.001-PUBLIC#2068 Shock Blade Inventory issues

Status
Not open for further replies.

Joyeuse

Member
May 4, 2022
7
1
28
Message: ShockBlade requires it's canMergeWith call to be overridden if it has dynamic properties. Stack:
a@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:565895
i@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:566258
u/<@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:10050542
o@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:10050786
r@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:9545449
value@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:5587175
value/
value/<@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:12225699
value@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:12225549
value@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:12224829
hu@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:464274
Ts@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:481135
60053/t.unstable_runWithPriority@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:542175
Vo@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:423209
Ps@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:477876
gs@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:473985
64448/$o/<@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:423432
60053/t.unstable_runWithPriority@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:542175
Vo@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:423209
$o@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:423379
Go@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:423312
fs@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:471137
Ks@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:487234
rl@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:488285
64448/t.render@https://www.fenoxo.com/play/TiTS/release/vendors.796286e7.js:1:496090
e/this.debouncedRender<@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:15008552
s@https://www.fenoxo.com/play/TiTS/release/main.2aef5847.js:1:10181921

```

Attempting to remove an item from the inventory, be it through dropping or moving it to the storage causes this to happen, but only when the Shock Blade is in it
 

Theron

Well-Known Member
Nov 8, 2018
3,583
1,370
44
I'm on the same version, but this doesn't happen for me. You may want to provide a save. Is this a new or converted save?* What browser are you using?**
*Mine is converted, but a cheated-in Shock Blade doesn't exhibit this behavior either.
**Edge.
 

Joyeuse

Member
May 4, 2022
7
1
28
I'm on the same version, but this doesn't happen for me. You may want to provide a save. Is this a new or converted save?* What browser are you using?**
*Mine is converted, but a cheated-in Shock Blade doesn't exhibit this behavior either.
**Edge.
Playing on firefox, I edited the shock blade out of the save and called it a day, it wasn't a converted save or anything, I got it from Zaalt's event (Ice queen) and decided to store it or drop it because it was an already way too weak weapon for my level... couldn't do either thing, hmmm probably should have tested more before posting here though I had just deleted my old saves to test with those

Edit: I just tried with the other shock blade I had stored from beating Dane and didn't have the same issue...
 

Gedan

BUTTS BUTTS BUTTS
Staff member
Aug 26, 2015
8,008,896
8,008,326
Yeah, this is why I haven't fixed this yet - I've been looking into why this is happening more than just papering over the effect of it. The fact this is happening is telling me one of 4 likely potential things is going on, and I would very much like to eliminate the first two:

1) Somewhere some of the code I've written for this is erroneously setting hasDynamicProperties instead of testing it.
2) Somebody used the ShockBlade as a base placeholder weapon on an enemy and then modified it. Equipped items on enemies are not lootable, only things in their storage is - so maybe it's possible somebody created the weapon, equipped it to the enemy, and then shoved the same object into their storage, making it lootable.
3) Something to do with imported/older saves, maybe an issue that has since been cleared up but has been persisting in saves.
4) People modifying items in the console/saves and setting hasDynamicProperties to ensure that the changes persist.
 

Gedan

BUTTS BUTTS BUTTS
Staff member
Aug 26, 2015
8,008,896
8,008,326
We have a winner.

JavaScript:
export class Zaalt extends Creature
{  
    constructor()
    {  
        // <...snip>
        this.inventory.meleeWeapon = new ShockBlade();
        this.inventory.meleeWeapon.hasDynamicProperties = true;
        // <...snip>
    }
    SetDisarmed()
    {
        this.createStatusEffect("No Weaponry", 1000, 0, 0, 0, false, "Blocked", "Zaalt doesn’t have his usual complement of weapons to hand!", true, 0, GLOBAL.STATUS_BAD);
        this.inventory.insertItem(this.inventory.unequipItem(this.inventory.meleeWeapon));
    }
    // <...snip>
}

So essentially, if you beat Zaalt whilst he's disarmed, you'll get the ShockBlade that has hasDynamicProperties set true, even though none of the stats on it need to be persisted for combat cloning purposes - the stock blade would work just fine.
 
  • Like
Reactions: Joyeuse
Status
Not open for further replies.