Skip to content

Commit 234a4b7

Browse files
committed
Update custom_creatures.cpp
1 parent 5d83865 commit 234a4b7

1 file changed

Lines changed: 70 additions & 4 deletions

File tree

src/scripts/custom/custom_creatures.cpp

Lines changed: 70 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,13 @@ enum Enchants
570570
WEP_HEAL,
571571
WEP2H_INT,
572572
WEP2H_SPIRIT,
573+
OFFHAND_CRUSADER,
574+
OFFHAND_STRENGTH,
575+
OFFHAND_AGILITY,
576+
OFFHAND_LIFESTEAL,
577+
OFFHAND_FIERY,
578+
OFFHAND_ICY,
579+
OFFHAND_DEMONSLAYING,
573580
OFFHAND_SPIRIT,
574581
OFFHAND_STAM,
575582
OFFHAND_FROSTRES,
@@ -682,10 +689,33 @@ bool GossipSelect_EnchantNPC(Player* player, Creature* creature, uint32 sender,
682689
player->ADD_GOSSIP_ITEM(5, "Demonslaying", GOSSIP_SENDER_MAIN, WEP_DEMONSLAYING);
683690
break;
684691
case EQUIPMENT_SLOT_OFFHAND:
685-
player->ADD_GOSSIP_ITEM(5, "Spirit", GOSSIP_SENDER_MAIN, OFFHAND_SPIRIT);
686-
player->ADD_GOSSIP_ITEM(5, "Stamina", GOSSIP_SENDER_MAIN, OFFHAND_STAM);
687-
player->ADD_GOSSIP_ITEM(5, "Frost Resistance", GOSSIP_SENDER_MAIN, OFFHAND_FROSTRES);
688-
player->ADD_GOSSIP_ITEM(5, "Shield Spike", GOSSIP_SENDER_MAIN, OFFHAND_SHIELDSPIKE);
692+
// If wielding shield, show shield enchants. If not, show weapon enchants.
693+
if (Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND))
694+
{
695+
if (item->GetProto()->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD)
696+
{
697+
player->ADD_GOSSIP_ITEM(5, "Spirit", GOSSIP_SENDER_MAIN, OFFHAND_SPIRIT);
698+
player->ADD_GOSSIP_ITEM(5, "Stamina", GOSSIP_SENDER_MAIN, OFFHAND_STAM);
699+
player->ADD_GOSSIP_ITEM(5, "Frost Resistance", GOSSIP_SENDER_MAIN, OFFHAND_FROSTRES);
700+
player->ADD_GOSSIP_ITEM(5, "Shield Spike", GOSSIP_SENDER_MAIN, OFFHAND_SHIELDSPIKE);
701+
}
702+
else
703+
{
704+
player->ADD_GOSSIP_ITEM(5, "Crusader", GOSSIP_SENDER_MAIN, OFFHAND_CRUSADER);
705+
player->ADD_GOSSIP_ITEM(5, "1H Strength", GOSSIP_SENDER_MAIN, OFFHAND_STRENGTH);
706+
player->ADD_GOSSIP_ITEM(5, "1H Agility", GOSSIP_SENDER_MAIN, OFFHAND_AGILITY);
707+
player->ADD_GOSSIP_ITEM(5, "Lifesteal", GOSSIP_SENDER_MAIN, OFFHAND_LIFESTEAL);
708+
player->ADD_GOSSIP_ITEM(5, "Fiery", GOSSIP_SENDER_MAIN, OFFHAND_FIERY);
709+
player->ADD_GOSSIP_ITEM(5, "Icy", GOSSIP_SENDER_MAIN, OFFHAND_ICY);
710+
player->ADD_GOSSIP_ITEM(5, "Demonslaying", GOSSIP_SENDER_MAIN, OFFHAND_DEMONSLAYING);
711+
}
712+
}
713+
else
714+
{
715+
player->GetSession()->SendNotification("You don't have anything equipped in your offhand!");
716+
player->CLOSE_GOSSIP_MENU();
717+
return true;
718+
}
689719
break;
690720
}
691721
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
@@ -755,6 +785,42 @@ bool GossipSelect_EnchantNPC(Player* player, Creature* creature, uint32 sender,
755785
id = 912;
756786
break;
757787

788+
case OFFHAND_CRUSADER:
789+
case OFFHAND_STRENGTH:
790+
case OFFHAND_AGILITY:
791+
case OFFHAND_LIFESTEAL:
792+
case OFFHAND_FIERY:
793+
case OFFHAND_ICY:
794+
case OFFHAND_DEMONSLAYING:
795+
// If wielding non-weapons like flowers, enchant fails. Else, enchant succeeds.
796+
item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
797+
if (item->GetProto()->Class != ITEM_CLASS_WEAPON ||
798+
(item && item->GetProto()->SubClass != ITEM_SUBCLASS_WEAPON_SWORD
799+
&& item->GetProto()->SubClass != ITEM_SUBCLASS_WEAPON_MACE
800+
&& item->GetProto()->SubClass != ITEM_SUBCLASS_WEAPON_AXE
801+
&& item->GetProto()->SubClass != ITEM_SUBCLASS_WEAPON_DAGGER
802+
&& item->GetProto()->SubClass != ITEM_SUBCLASS_WEAPON_FIST))
803+
{
804+
player->GetSession()->SendNotification("Requires Offhand Weapon");
805+
player->CLOSE_GOSSIP_MENU();
806+
return true;
807+
}
808+
if (action == OFFHAND_CRUSADER)
809+
id = 1900;
810+
else if (action == OFFHAND_STRENGTH)
811+
id = 2563;
812+
else if (action == OFFHAND_AGILITY)
813+
id = 2564;
814+
else if (action == OFFHAND_LIFESTEAL)
815+
id = 1898;
816+
else if (action == OFFHAND_ICY)
817+
id = 1894;
818+
else if (action == OFFHAND_FIERY)
819+
id = 803;
820+
else if (action == OFFHAND_DEMONSLAYING)
821+
id = 912;
822+
break;
823+
758824
case OFFHAND_SPIRIT:
759825
case OFFHAND_STAM:
760826
case OFFHAND_FROSTRES:

0 commit comments

Comments
 (0)