Skip to content

Commit

Permalink
Merge branch 'develop' into House-Addon-Redeed-Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Xoduz authored Jan 25, 2025
2 parents 7eee626 + ba77641 commit 4506d44
Show file tree
Hide file tree
Showing 16 changed files with 275 additions and 17 deletions.
36 changes: 26 additions & 10 deletions data/js/commands/targeting/get.js
Original file line number Diff line number Diff line change
Expand Up @@ -294,30 +294,27 @@ function HandleGetItem( socket, ourItem, uKey )
case "DESC":
socket.SysMessage( ourItem.desc );
break;
case "DEF":
socket.SysMessage( ourItem.Resist( 1 ));
break;
case "DEF":
case "RESISTARMOR":
socket.SysMessage( ourObj.Resist( 1 ));
socket.SysMessage( ourItem.Resist( 1 ));
break;
case "RESISTLIGHT":
socket.SysMessage( ourObj.Resist( 2 ));
socket.SysMessage( ourItem.Resist( 2 ));
break;
case "RESISTWATER":
socket.SysMessage( ourObj.Resist( 3 ));
socket.SysMessage( ourItem.Resist( 3 ));
break;
case "RESISTCOLD":
socket.SysMessage( ourObj.Resist( 4 ));
socket.SysMessage( ourItem.Resist( 4 ));
break;
case "RESISTFIRE":
socket.SysMessage( ourObj.Resist( 5 ));
socket.SysMessage( ourItem.Resist( 5 ));
break;
case "RESISTENERGY":
socket.SysMessage( ourObj.Resist( 6 ));
socket.SysMessage( ourItem.Resist( 6 ));
break;
case "RESISTPOISON":
socket.SysMessage( ourObj.Resist( 7 ));
socket.SysMessage( ourItem.Resist( 7 ));
break;
case "ARMORCLASS":
case "ARMOURCLASS":
Expand Down Expand Up @@ -598,8 +595,27 @@ function HandleGetChar( socket, ourChar, uKey )
break;
case "ARMOUR":
case "ARMOR":
case "RESISTARMOR":
socket.SysMessage( ourChar.Resist( 1 ));
break;
case "RESISTLIGHT":
socket.SysMessage( ourChar.Resist( 2 ));
break;
case "RESISTWATER":
socket.SysMessage( ourChar.Resist( 3 ));
break;
case "RESISTCOLD":
socket.SysMessage( ourChar.Resist( 4 ));
break;
case "RESISTFIRE":
socket.SysMessage( ourChar.Resist( 5 ));
break;
case "RESISTENERGY":
socket.SysMessage( ourChar.Resist( 6 ));
break;
case "RESISTPOISON":
socket.SysMessage( ourChar.Resist( 7 ));
break;
case "MAXHP":
socket.SysMessage( ourChar.maxhp );
break;
Expand Down
4 changes: 4 additions & 0 deletions data/js/server/data/weapontypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,10 @@ function GetWeaponType( mChar, itemID )
case 0x48B3: //gargish axe - SA
weaponType = "TWOHND_AXES"; break;
// Default Maces
case 0x0DF2: // Wand
case 0x0DF3: // Wand
case 0x0DF4: // Wand
case 0x0DF5: // Wand
case 0x0FB4: //sledge hammer
case 0x0FB5: //sledge hammer
case 0x0F5C: //mace
Expand Down
21 changes: 21 additions & 0 deletions source/CPacketSend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7665,6 +7665,27 @@ void CPToolTip::CopyItemData( CItem& cItem, size_t &totalStringLen, bool addAmou
FinalizeData( tempEntry, totalStringLen );
}

if( cItem.GetHealthBonus() > 0 )
{
tempEntry.stringNum = 1060431; // hit point increase ~1_val~
tempEntry.ourText = oldstrutil::number( cItem.GetHealthBonus() );
FinalizeData( tempEntry, totalStringLen );
}

if( cItem.GetStaminaBonus() > 0 )
{
tempEntry.stringNum = 1060484; // stamina increase ~1_val~
tempEntry.ourText = oldstrutil::number( cItem.GetStaminaBonus() );
FinalizeData( tempEntry, totalStringLen );
}

if( cItem.GetManaBonus() > 0 )
{
tempEntry.stringNum = 1060439; // mana increase ~1_val~
tempEntry.ourText = oldstrutil::number( cItem.GetManaBonus() );
FinalizeData( tempEntry, totalStringLen );
}

if( cItem.GetStrength() > 1 )
{
tempEntry.stringNum = 1061170; // strength requirement ~1_val~
Expand Down
15 changes: 14 additions & 1 deletion source/Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
13/06/2024 - Dragon Slayer
Added three More AOS Props
-HEALTHBONUS=#
-MANABONUS=#
-STAMINABONUS=#
Add this properties to any weapon/armor/jewlery will give the player more hp/mana/stam why its equiped. depending on number you add with it
These are also available as JS Engine object properties: .healthBonus, .staminaBonus, .manaBonus

29/05/2024 - Dragon Slayer
House add-on deeds are now returned when an add-on is present in the house on demolish.

27/05/2024 - Dragon Slayer
Added Missing Wand ID's to combat weapon type in core and in js.

13/05/2024 - Dragon Slayer
Added New Shield Type 107 so shield ID's no longer have to be in hard code for shields to work properly

11/05/2024 - Dragon Slayer
Updated 'get command (js/commands/targeting/get.js) to use correct object reference when getting resist values for items, and added support for getting resist values for chars

09/05/2024 - Dragon Slayer
Added ArtifactRarity AOS Property for items
-ARTIFACTRARITY=#
-Artifact Rarity is an item property that is visible on some artifacts and meant to give players an idea of how rare the item is. Items with rarity 1 are supposed to be common while rarity 12 are extremely scarce.


1/05/2024 - Dragon Slayer/Xuri
Fixed AutoUnequipAttempt function in clumsy.js, createfood.js level1target.js, will no longer fail on casting and return to hardcode.
Fixed createfood to check for reagents on cast.
Expand Down
3 changes: 3 additions & 0 deletions source/UOXJSPropertyEnums.h
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,9 @@ enum CI_Properties
CIP_ISCONTTYPE,
CIP_CARVESECTION,
CIP_SPEED,
CIP_HEALTHBONUS,
CIP_STAMINABONUS,
CIP_MANABONUS,
CIP_MULTI,
CIP_AMMOID,
CIP_AMMOHUE,
Expand Down
6 changes: 6 additions & 0 deletions source/UOXJSPropertyFuncs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,9 @@ JSBool CItemProps_getProperty( JSContext *cx, JSObject *obj, jsval id, jsval *vp
case CIP_DAMAGERAIN: *vp = BOOLEAN_TO_JSVAL( gPriv->GetWeatherDamage( RAIN )); break;
case CIP_DAMAGESNOW: *vp = BOOLEAN_TO_JSVAL( gPriv->GetWeatherDamage( SNOW )); break;
case CIP_SPEED: *vp = INT_TO_JSVAL( gPriv->GetSpeed() ); break;
case CIP_HEALTHBONUS: *vp = INT_TO_JSVAL( gPriv->GetHealthBonus() ); break;
case CIP_STAMINABONUS: *vp = INT_TO_JSVAL( gPriv->GetStaminaBonus() ); break;
case CIP_MANABONUS: *vp = INT_TO_JSVAL( gPriv->GetManaBonus() ); break;
case CIP_ARTIFACTRARITY: *vp = INT_TO_JSVAL( gPriv->GetArtifactRarity() ); break;
case CIP_NAME2:
tString = JS_NewStringCopyZ( cx, gPriv->GetName2().c_str() );
Expand Down Expand Up @@ -1322,6 +1325,9 @@ JSBool CItemProps_setProperty( JSContext *cx, JSObject *obj, jsval id, jsval *vp
case CIP_DAMAGERAIN: gPriv->SetWeatherDamage( RAIN, encaps.toBool() ); break;
case CIP_DAMAGESNOW: gPriv->SetWeatherDamage( SNOW, encaps.toBool() ); break;
case CIP_SPEED: gPriv->SetSpeed( static_cast<UI08>( encaps.toInt() )); break;
case CIP_HEALTHBONUS: gPriv->SetHealthBonus( static_cast<SI16>( encaps.toInt() )); break;
case CIP_STAMINABONUS: gPriv->SetStaminaBonus( static_cast<SI16>( encaps.toInt() )); break;
case CIP_MANABONUS: gPriv->SetManaBonus( static_cast<SI16>( encaps.toInt() )); break;
case CIP_ARTIFACTRARITY: gPriv->SetArtifactRarity( static_cast<SI16>( encaps.toInt() )); break;
case CIP_NAME2: gPriv->SetName2( encaps.toString() ); break;
case CIP_RACE: gPriv->SetRace( static_cast<RACEID>( encaps.toInt() )); break;
Expand Down
3 changes: 3 additions & 0 deletions source/UOXJSPropertySpecs.h
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,9 @@ inline JSPropertySpec CItemProps[] =
{ "ammoFXHue", CIP_AMMOFXHUE, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "ammoFXRender", CIP_AMMOFXRENDER, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "speed", CIP_SPEED, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "healthBonus", CIP_HEALTHBONUS, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "staminaBonus", CIP_STAMINABONUS, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "manaBonus", CIP_MANABONUS, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "artifactRarity", CIP_ARTIFACTRARITY, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "multi", CIP_MULTI, JSPROP_ENUMANDPERM, nullptr, nullptr },
{ "maxRange", CIP_MAXRANGE, JSPROP_ENUMANDPERM, nullptr, nullptr },
Expand Down
69 changes: 68 additions & 1 deletion source/cBaseObject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ const SI16 DEFBASE_KILLS = 0;
const UI16 DEFBASE_RESIST = 0;
const bool DEFBASE_NAMEREQUESTACTIVE = 0;
const ExpansionRuleset DEFBASE_ORIGIN = ER_UO;
const SI16 DEFBASE_HEALTHBONUS = 0;
const SI16 DEFBASE_STAMINABONOS = 0;
const SI16 DEFBASE_MANABONUS = 0;

//o------------------------------------------------------------------------------------------------o
//| Function - CBaseObject constructor
Expand All @@ -110,7 +113,8 @@ loDamage( DEFBASE_LODAMAGE ), weight( DEFBASE_WEIGHT ),
mana( DEFBASE_MANA ), stamina( DEFBASE_STAMINA ), scriptTrig( DEFBASE_SCPTRIG ), st2( DEFBASE_STR2 ), dx2( DEFBASE_DEX2 ),
in2( DEFBASE_INT2 ), FilePosition( DEFBASE_FP ),
poisoned( DEFBASE_POISONED ), carve( DEFBASE_CARVE ), oldLocX( 0 ), oldLocY( 0 ), oldLocZ( 0 ), oldTargLocX( 0 ), oldTargLocY( 0 ),
fame( DEFBASE_FAME ), karma( DEFBASE_KARMA ), kills( DEFBASE_KILLS ), subRegion( DEFBASE_SUBREGION ), nameRequestActive( DEFBASE_NAMEREQUESTACTIVE ), origin( DEFBASE_ORIGIN )
fame( DEFBASE_FAME ), karma( DEFBASE_KARMA ), kills( DEFBASE_KILLS ), subRegion( DEFBASE_SUBREGION ), nameRequestActive( DEFBASE_NAMEREQUESTACTIVE ), origin( DEFBASE_ORIGIN ),
healthBonus( DEFBASE_HEALTHBONUS ),staminaBonus( DEFBASE_STAMINABONOS ), manaBonus( DEFBASE_MANABONUS )
{
multis = nullptr;
tempMulti = INVALIDSERIAL;
Expand Down Expand Up @@ -1631,6 +1635,69 @@ void CBaseObject::SetIntelligence2( SI16 nVal )
}
}

//o------------------------------------------------------------------------------------------------o
//| Function - CBaseObject::GetHealthBonus()
//| CBaseObject::SetHealthBonus()
//o------------------------------------------------------------------------------------------------o
//| Purpose - Gets/Sets the health max var associated with the object. For chars, it's the
//| bonuses (via armour and such)
//o------------------------------------------------------------------------------------------------o
SI16 CBaseObject::GetHealthBonus( void ) const
{
return healthBonus;
}
void CBaseObject::SetHealthBonus( SI16 nVal )
{
healthBonus = nVal;

if( CanBeObjType( OT_ITEM ))
{
( static_cast<CItem *>( this ))->UpdateRegion();
}
}

//o------------------------------------------------------------------------------------------------o
//| Function - CBaseObject::GetStaminaBonus()
//| CBaseObject::SetStaminaBonus()
//o------------------------------------------------------------------------------------------------o
//| Purpose - Gets/Sets the stamina max var associated with the object. For chars, it's the
//| bonuses (via armour and such)
//o------------------------------------------------------------------------------------------------o
SI16 CBaseObject::GetStaminaBonus( void ) const
{
return staminaBonus;
}
void CBaseObject::SetStaminaBonus( SI16 nVal )
{
staminaBonus = nVal;

if( CanBeObjType( OT_ITEM ))
{
( static_cast<CItem *>( this ))->UpdateRegion();
}
}

//o------------------------------------------------------------------------------------------------o
//| Function - CBaseObject::GetManaBonus()
//| CBaseObject::SetManaBonus()
//o------------------------------------------------------------------------------------------------o
//| Purpose - Gets/Sets the Mana max var associated with the object. For chars, it's the
//| bonuses (via armour and such)
//o------------------------------------------------------------------------------------------------o
SI16 CBaseObject::GetManaBonus( void ) const
{
return manaBonus;
}
void CBaseObject::SetManaBonus( SI16 nVal )
{
manaBonus = nVal;

if( CanBeObjType( OT_ITEM ))
{
( static_cast<CItem *>( this ))->UpdateRegion();
}
}

//o------------------------------------------------------------------------------------------------o
//| Function - CBaseObject::IncStrength()
//o------------------------------------------------------------------------------------------------o
Expand Down
12 changes: 12 additions & 0 deletions source/cBaseObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ class CBaseObject
SI16 st2;
SI16 dx2;
SI16 in2;
SI16 healthBonus;
SI16 staminaBonus;
SI16 manaBonus;
mutable SI32 FilePosition;
SERIAL tempMulti;
std::string name;
Expand Down Expand Up @@ -256,6 +259,15 @@ class CBaseObject
void IncDexterity( SI16 toInc = 1 );
void IncIntelligence( SI16 toInc = 1 );

SI16 GetHealthBonus( void ) const;
virtual void SetHealthBonus( SI16 nVal );

SI16 GetStaminaBonus( void ) const;
virtual void SetStaminaBonus( SI16 nVal );

SI16 GetManaBonus( void ) const;
virtual void SetManaBonus( SI16 nVal );

virtual void PostLoadProcessing( void );
virtual bool LoadRemnants( void ) = 0;

Expand Down
Loading

0 comments on commit 4506d44

Please sign in to comment.