Skip to content

Commit

Permalink
Merge branch 'develop' into durabilitypr-replacement
Browse files Browse the repository at this point in the history
  • Loading branch information
Xoduz authored Jan 29, 2025
2 parents 5c03abe + deeede6 commit 20a2903
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 37 deletions.
6 changes: 3 additions & 3 deletions data/js/item/equip_effects/skill_boosting_equipment.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@ function onEquip( pEquipper, iEquipped )
}
}

function onUnequip( pUnquipper, iUnequipped )
function onUnequip( pUnequipper, iUnequipped )
{
var skillBonusID = iUnequipped.GetTag( "skillBonusID" );
var skillBonusVal = iUnequipped.GetTag( "skillBonusVal" );

switch( skillBonusID )
{
case 7: // Blacksmithing
pUnquipper.skills.blacksmithing -= skillBonusVal;
pUnequipper.skills.blacksmithing -= skillBonusVal;
break;
case 45: // Mining
pUnquipper.skills.mining -= skillBonusVal;
pUnequipper.skills.mining -= skillBonusVal;
break;
default:
break;
Expand Down
4 changes: 4 additions & 0 deletions source/Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
22/01/2025 - Dragon Slayer
Fixed an issue that prevented onUnequip JS event from triggering on items being unequipped
Minor cleanup of skill_boosting_equipment.js script

21/01/2025 - Dragon Slayer
Fixed damage dealt in combat was incorrectly modified while applying defense modifiers. (combat.cpp)

Expand Down
71 changes: 37 additions & 34 deletions source/cChar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2924,24 +2924,24 @@ bool CChar::WearItem( CItem *toWear )
}

scriptTriggers.clear();
scriptTriggers.shrink_to_fit();
scriptTriggers = this->GetScriptTriggers();
for( auto i : scriptTriggers )
{
cScript *tScript = JSMapping->GetScript( i );
if( tScript != nullptr )
{
// If script returns false, prevent item from being equipped
if( tScript->OnEquipAttempt( this, toWear ) == 0 )
{
CSocket *mSock = this->GetSocket();
if( mSock != nullptr )
{
Bounce( mSock, toWear );
}
return false;
}
}
scriptTriggers.shrink_to_fit();
scriptTriggers = this->GetScriptTriggers();
for( auto i : scriptTriggers )
{
cScript *tScript = JSMapping->GetScript( i );
if( tScript != nullptr )
{
// If script returns false, prevent item from being equipped
if( tScript->OnEquipAttempt( this, toWear ) == 0 )
{
CSocket *mSock = this->GetSocket();
if( mSock != nullptr )
{
Bounce( mSock, toWear );
}
return false;
}
}
}

bool rValue = true;
Expand Down Expand Up @@ -2970,7 +2970,7 @@ bool CChar::WearItem( CItem *toWear )
IncStaminaLeech( itemLayers[tLayer]->GetStaminaLeech() );
IncManaLeech( itemLayers[tLayer]->GetManaLeech() );

IncHitChance( itemLayers[tLayer]->GetHitChance() );
IncHitChance( itemLayers[tLayer]->GetHitChance() );
IncDefenseChance( itemLayers[tLayer]->GetDefenseChance() );

IncHealthBonus( itemLayers[tLayer]->GetHealthBonus() );
Expand Down Expand Up @@ -3030,20 +3030,20 @@ bool CChar::TakeOffItem( ItemLayers Layer )
}

scriptTriggers.clear();
scriptTriggers.shrink_to_fit();
scriptTriggers = this->GetScriptTriggers();
for( auto i : scriptTriggers )
{
cScript *tScript = JSMapping->GetScript( i );
if( tScript != nullptr )
{
// If script returns false, prevent item from being equipped
if( tScript->OnUnequipAttempt( this, itemLayers[Layer] ) == 0 )
{
return false;
}
}
}
scriptTriggers.shrink_to_fit();
scriptTriggers = this->GetScriptTriggers();
for( auto i : scriptTriggers )
{
cScript *tScript = JSMapping->GetScript( i );
if( tScript != nullptr )
{
// If script returns false, prevent item from being equipped
if( tScript->OnUnequipAttempt( this, itemLayers[Layer] ) == 0 )
{
return false;
}
}
}

if( Layer == IL_PACKITEM ) // It's our pack!
{
Expand All @@ -3055,7 +3055,7 @@ bool CChar::TakeOffItem( ItemLayers Layer )

IncSwingSpeedIncrease( -itemLayers[Layer]->GetSwingSpeedIncrease() );

IncHealthLeech( -itemLayers[Layer]->GetHealthLeech() );
IncHealthLeech( -itemLayers[Layer]->GetHealthLeech() );
IncStaminaLeech( -itemLayers[Layer]->GetStaminaLeech() );
IncManaLeech( -itemLayers[Layer]->GetManaLeech() );

Expand All @@ -3078,6 +3078,9 @@ bool CChar::TakeOffItem( ItemLayers Layer )
}
}

scriptTriggers.clear();
scriptTriggers.shrink_to_fit();
scriptTriggers = itemLayers[Layer]->GetScriptTriggers();
for( auto i : scriptTriggers )
{
cScript *tScript = JSMapping->GetScript( i );
Expand Down

0 comments on commit 20a2903

Please sign in to comment.