| 618 | // Mingo's Fortune Giblets |
| 619 | case 40802: |
| 620 | { |
| 621 | if (m_caster->GetTypeId() != TYPEID_PLAYER) return; |
| 622 | |
| 623 | Player *player = (Player*)m_caster; |
| 624 | uint32 newitemid; |
| 625 | |
| 626 | switch(urand(1,20)) |
| 627 | { |
| 628 | case 1: newitemid = 32688; break; |
| 629 | case 2: newitemid = 32689; break; |
| 630 | case 3: newitemid = 32690; break; |
| 631 | case 4: newitemid = 32691; break; |
| 632 | case 5: newitemid = 32692; break; |
| 633 | case 6: newitemid = 32693; break; |
| 634 | case 7: newitemid = 32700; break; |
| 635 | case 8: newitemid = 32701; break; |
| 636 | case 9: newitemid = 32702; break; |
| 637 | case 10: newitemid = 32703; break; |
| 638 | case 11: newitemid = 32704; break; |
| 639 | case 12: newitemid = 32705; break; |
| 640 | case 13: newitemid = 32706; break; |
| 641 | case 14: newitemid = 32707; break; |
| 642 | case 15: newitemid = 32708; break; |
| 643 | case 16: newitemid = 32709; break; |
| 644 | case 17: newitemid = 32710; break; |
| 645 | case 18: newitemid = 32711; break; |
| 646 | case 19: newitemid = 32712; break; |
| 647 | case 20: newitemid = 32713; break; |
| 648 | } |
| 649 | ItemPosCountVec dest; |
| 650 | uint8 msg = player->CanStoreNewItem( NULL_BAG, NULL_SLOT, dest, newitemid, 1, false); |
| 651 | if (msg != EQUIP_ERR_OK) |
| 652 | { |
| 653 | player->SendEquipError(msg, NULL, NULL); |
| 654 | return; |
| 655 | } |
| 656 | Item *pItem = player->StoreNewItem(dest, newitemid, true, Item::GenerateItemRandomPropertyId(newitemid)); |
| 657 | |
| 658 | if (!pItem) |
| 659 | { |
| 660 | player->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, NULL, NULL); |
| 661 | return; |
| 662 | } |
| 663 | player->SendNewItem(pItem, 1, true, true); |
| 664 | |
| 665 | return; |
| 666 | } |
| 667 | // Encapsulate Voidwalker |
| 668 | case 29364: |
| 669 | { |
| 670 | if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || ((Creature*)unitTarget)->isPet()) return; |
| 671 | |
| 672 | Creature* creatureTarget = (Creature*)unitTarget; |
| 673 | GameObject* pGameObj = new GameObject; |
| 674 | |
| 675 | if (!creatureTarget || !pGameObj) return; |
| 676 | |
| 677 | if (!pGameObj->Create(objmgr.GenerateLowGuid(HIGHGUID_GAMEOBJECT), 181574, creatureTarget->GetMap(), |
| 678 | creatureTarget->GetPositionX(), creatureTarget->GetPositionY(), creatureTarget->GetPositionZ(), |
| 679 | creatureTarget->GetOrientation(), 0, 0, 0, 0, 100, 1)) |
| 680 | { |
| 681 | delete pGameObj; |
| 682 | return; |
| 683 | } |
| 684 | |
| 685 | pGameObj->SetRespawnTime(0); |
| 686 | pGameObj->SetOwnerGUID(m_caster->GetGUID()); |
| 687 | pGameObj->SetUInt32Value(GAMEOBJECT_LEVEL, m_caster->getLevel()); |
| 688 | pGameObj->SetSpellId(m_spellInfo->Id); |
| 689 | |
| 690 | MapManager::Instance().GetMap(creatureTarget->GetMapId(), pGameObj)->Add(pGameObj); |
| 691 | |
| 692 | WorldPacket data(SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE, 8); |
| 693 | data << uint64(pGameObj->GetGUID()); |
| 694 | m_caster->SendMessageToSet(&data,true); |
| 695 | |
| 696 | return; |
| 697 | } |
| 698 | // Demon Broiled Surprise |
| 699 | case 43723: |
| 700 | { |
| 701 | if (!unitTarget || unitTarget->isAlive() || unitTarget->GetTypeId() != TYPEID_UNIT || |
| 702 | ((Creature*)unitTarget)->isPet()) return; |
| 703 | |
| 704 | Player *player = (Player*)m_caster; |
| 705 | |
| 706 | if (!player) return; |
| 707 | |
| 708 | player->CastSpell(unitTarget, 43753, true); |
| 709 | |
| 710 | if (player->GetQuestStatus(11379) == QUEST_STATUS_INCOMPLETE && unitTarget->GetEntry() == 19973) |
| 711 | player->CastedCreatureOrGO(19973, unitTarget->GetGUID(), 43723); |
| 712 | |
| 713 | return; |
| 714 | } |