mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-11 21:45:43 -04:00
Merge pull request #475 from CharonInferar/JunkDealer
Junk dealer added
This commit is contained in:
@@ -0,0 +1,572 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from resources.common import RadialOptions
|
||||
from services.sui import SUIWindow
|
||||
from services.sui.SUIWindow import Trigger
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
sellItemListRef = 0
|
||||
buyItemListRef = 0
|
||||
coreRef = 0
|
||||
junkDealerRef = 0
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
#core.lootService.prepInv(actor)
|
||||
global coreRef
|
||||
global junkDealerRef
|
||||
global sellItemListRef
|
||||
sellItemListRef = core.lootService.getSellableInventoryItems(actor)
|
||||
coreRef = core
|
||||
junkDealerRef = npc
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_bef51e38')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
prose2 = ProsePackage('conversation/junk_dealer_generic', 's_54fab04f')
|
||||
outOfBand2 = OutOfBand()
|
||||
outOfBand2.addProsePackage(prose2)
|
||||
prose3 = ProsePackage('conversation/junk_dealer_generic', 's_48')
|
||||
outOfBand3 = OutOfBand()
|
||||
outOfBand3.addProsePackage(prose3)
|
||||
prose4 = ProsePackage('conversation/junk_dealer_generic', 's_3aa18b2d')
|
||||
outOfBand4 = OutOfBand()
|
||||
outOfBand4.addProsePackage(prose4)
|
||||
option1 = ConversationOption(outOfBand2, 0)
|
||||
option2 = ConversationOption(outOfBand3, 1)
|
||||
option3 = ConversationOption(outOfBand4, 1)
|
||||
|
||||
options = Vector()
|
||||
options.add(option1)
|
||||
options.add(option2)
|
||||
options.add(option3)
|
||||
|
||||
if len(core.lootService.getBuyHistory(actor,npc))!= 0:
|
||||
prose5 = ProsePackage('conversation/junk_dealer_generic', 's_43')
|
||||
outOfBand5 = OutOfBand()
|
||||
outOfBand5.addProsePackage(prose5)
|
||||
option4 = ConversationOption(outOfBand5, 1)
|
||||
options.add(option4)
|
||||
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
|
||||
return
|
||||
|
||||
def handleFirstScreen(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
|
||||
if selection == 0:
|
||||
# sell items
|
||||
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_84a67771')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
sellItemListRef = core.lootService.getSellableInventoryItems(actor)
|
||||
|
||||
if len(sellItemListRef) == 0:
|
||||
actor.sendSystemMessage('@loot_dealer:no_items', 1)
|
||||
startConversation(coreRef,actor,junkDealerRef)
|
||||
return # no point
|
||||
|
||||
window = core.suiService.createSUIWindow('Script.listBox', actor, npc, 0)
|
||||
window.setProperty('bg.caption.lblTitle:Text', '@loot_dealer:sell_title')
|
||||
window.setProperty('Prompt.lblPrompt:Text', '@loot_dealer:sell_prompt')
|
||||
|
||||
for item in sellItemListRef:
|
||||
window.addListBoxMenuItem(item.getCustomName(), 0);
|
||||
|
||||
window.setProperty('btnOther:visible', 'True')
|
||||
window.setProperty('btnCancel:visible', 'True')
|
||||
window.setProperty('btnOk:visible', 'True')
|
||||
window.setProperty('btnOther:Text', '@loot_dealer:examine')
|
||||
window.setProperty('btnCancel:Text', '@cancel')
|
||||
window.setProperty('btnOk:Text', '@loot_dealer:btn_sell')
|
||||
returnList = Vector()
|
||||
returnList.add('List.lstList:SelectedRow')
|
||||
|
||||
window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, sellWindowCallBack)
|
||||
window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, sellWindowCallBack)
|
||||
window.addHandler(2, '', Trigger.TRIGGER_UPDATE, returnList, sellWindowCallBack)
|
||||
core.suiService.openSUIWindow(window);
|
||||
|
||||
return
|
||||
|
||||
if selection == 1:
|
||||
# mark items
|
||||
window = core.suiService.createSUIWindow('Script.listBox', actor, npc, 0)
|
||||
window.setProperty('bg.caption.lblTitle:Text', '@loot_dealer:junk_no_sell_title')
|
||||
window.setProperty('Prompt.lblPrompt:Text', '@loot_dealer:junk_no_sell_desc')
|
||||
|
||||
sellItemListRef = core.lootService.getSellableInventoryItems(actor)
|
||||
|
||||
for item in sellItemListRef:
|
||||
nameString = item.getCustomName()
|
||||
nameString = 'TestJunkItem'
|
||||
if item.isNoSell():
|
||||
nameString = '[*No Sell*]' + item.getCustomName()
|
||||
window.addListBoxMenuItem(nameString, 0)
|
||||
else:
|
||||
nameString = '[Sellable]' + item.getCustomName()
|
||||
window.addListBoxMenuItem(nameString, 0)
|
||||
|
||||
window.setProperty('btnOther:visible', 'True')
|
||||
window.setProperty('btnCancel:visible', 'True')
|
||||
window.setProperty('btnOk:visible', 'True')
|
||||
window.setProperty('btnOther:Text', '@loot_dealer:examine')
|
||||
window.setProperty('btnCancel:Text', '@cancel')
|
||||
window.setProperty('btnOk:Text', '@loot_dealer:junk_no_sell_button')
|
||||
returnList = Vector()
|
||||
returnList.add('List.lstList:SelectedRow')
|
||||
|
||||
#window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, noSellWindowCallBack)
|
||||
#window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, noSellWindowCallBack)
|
||||
window.addHandler(0, '',9, returnList, noSellWindowCallBack)
|
||||
window.addHandler(1, '',10, returnList, noSellWindowCallBack)
|
||||
window.addHandler(2, '',11, returnList, noSellWindowCallBack)
|
||||
core.suiService.openSUIWindow(window);
|
||||
return
|
||||
|
||||
if selection == 2:
|
||||
lootKitScreen1(core, actor, npc)
|
||||
|
||||
|
||||
if selection == 3:
|
||||
# buy back
|
||||
|
||||
buyHistory = coreRef.lootService.getBuyHistory(actor,npc)
|
||||
if len(buyHistory) == 0:
|
||||
actor.sendSystemMessage('@loot_dealer:no_buy_back_items_found', 1)
|
||||
startConversation(coreRef,actor,npc)
|
||||
return
|
||||
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_44')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
window = core.suiService.createSUIWindow('Script.listBox', actor, npc, 0)
|
||||
window.setProperty('bg.caption.lblTitle:Text', '@loot_dealer:buy_back_title')
|
||||
window.setProperty('Prompt.lblPrompt:Text', '@loot_dealer:buy_back_prompt')
|
||||
|
||||
buyHistory = core.lootService.getBuyHistory(actor,junkDealerRef)
|
||||
if buyHistory==None:
|
||||
return
|
||||
|
||||
|
||||
|
||||
for item in buyHistory:
|
||||
junkDealerPrice = item.getJunkDealerPrice()
|
||||
if junkDealerPrice == 0:
|
||||
junkDealerPrice = 20
|
||||
nameString = '[%s' % junkDealerPrice + ']' + item.getCustomName() #%
|
||||
window.addListBoxMenuItem(nameString, 0)
|
||||
|
||||
window.setProperty('btnOther:visible', 'True')
|
||||
window.setProperty('btnCancel:visible', 'True')
|
||||
window.setProperty('btnOk:visible', 'True')
|
||||
window.setProperty('btnOther:Text', '@loot_dealer:examine')
|
||||
window.setProperty('btnCancel:Text', '@cancel')
|
||||
window.setProperty('btnOk:Text', '@loot_dealer:btn_buy_back')
|
||||
returnList = Vector()
|
||||
returnList.add('List.lstList:SelectedRow')
|
||||
|
||||
window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, buyBackWindowCallBack)
|
||||
window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, buyBackWindowCallBack)
|
||||
window.addHandler(2, '', Trigger.TRIGGER_UPDATE, returnList, buyBackWindowCallBack)
|
||||
core.suiService.openSUIWindow(window);
|
||||
|
||||
return
|
||||
|
||||
def handleRespecScreen(core, actor, npc, selection):
|
||||
|
||||
if selection == 0:
|
||||
core.skillService.sendRespecWindow(actor)
|
||||
|
||||
core.conversationService.handleEndConversation(actor, npc)
|
||||
|
||||
return
|
||||
|
||||
|
||||
def handleResetScreen(core, actor, npc, selection):
|
||||
|
||||
if selection == 0:
|
||||
core.skillService.resetExpertise(actor)
|
||||
|
||||
core.conversationService.handleEndConversation(actor, npc)
|
||||
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/junk_dealer_generic', 's_4bd9d15e')
|
||||
return
|
||||
|
||||
|
||||
def sellWindowCallBack(owner, window, eventType, returnList):
|
||||
|
||||
sellItemListRef = coreRef.lootService.getSellableInventoryItems(owner)
|
||||
|
||||
#sell
|
||||
if eventType == 0:
|
||||
|
||||
sellItem = sellItemListRef.get(int(returnList.get(0)))
|
||||
|
||||
#if len(sellItemListRef):
|
||||
#owner.sendSystemMessage('@junk_dealer:no_items', 1)
|
||||
#return
|
||||
|
||||
if sellItem == None:
|
||||
owner.sendSystemMessage('@junk_dealer:no_items', 1)
|
||||
return
|
||||
|
||||
inventory = owner.getSlottedObject('inventory')
|
||||
|
||||
|
||||
junkDealerPrice = sellItem.getJunkDealerPrice()
|
||||
if junkDealerPrice == 0:
|
||||
junkDealerPrice = 20
|
||||
owner.setCashCredits(owner.getCashCredits()+junkDealerPrice)
|
||||
|
||||
# add item to 10-item junk dealer history
|
||||
coreRef.lootService.addToBuyHistory(owner,junkDealerRef,sellItem)
|
||||
|
||||
owner.sendSystemMessage(OutOfBand.ProsePackage("@junk_dealer:prose_sold_junk", "TT", sellItem.getCustomName(),junkDealerPrice), 0)
|
||||
|
||||
inventory.remove(sellItem)
|
||||
|
||||
coreRef.suiService.closeSUIWindow(owner,window.getWindowId())
|
||||
handleFirstScreen(coreRef, owner, junkDealerRef, 0)
|
||||
return
|
||||
|
||||
#cancel
|
||||
if eventType == 1:
|
||||
owner.sendSystemMessage("cancel ", 1)
|
||||
coreRef.suiService.closeSUIWindow(owner,window.getWindowId())
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
#examine
|
||||
if eventType == 2:
|
||||
owner.sendSystemMessage("examine ", 1)
|
||||
#coreRef.suiService.closeSUIWindow(window,window.getWindowId())
|
||||
#startConversation(coreRef,owner,junkDealerRef)
|
||||
#owner.sendSystemMessage('Examine', 0)
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
def noSellWindowCallBack(owner, window, eventType, returnList):
|
||||
|
||||
if returnList.get(0) == 0:
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
#toggle
|
||||
if eventType == 0:
|
||||
owner.sendSystemMessage('Toggle', 0)
|
||||
toggleItem = sellItemListRef.get(int(returnList.get(0)))
|
||||
if toggleItem.isNoSell():
|
||||
toggleItem.setNoSell(0)
|
||||
else:
|
||||
toggleItem.setNoSell(1)
|
||||
|
||||
#core.suiService.closeSUIWindow(window)
|
||||
handleFirstScreen(coreRef, owner, junkDealerRef, 1)
|
||||
return
|
||||
|
||||
#cancel
|
||||
if eventType == 1:
|
||||
owner.sendSystemMessage('Cancle', 0)
|
||||
sellItem = returnList.get(0)
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
#examine
|
||||
if eventType == 2:
|
||||
owner.sendSystemMessage('Ex', 0)
|
||||
sellItem = returnList.get(0)
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
owner.sendSystemMessage('Examine', 0)
|
||||
return
|
||||
|
||||
def buyBackWindowCallBack(owner, window, eventType, returnList):
|
||||
|
||||
convSvc = coreRef.conversationService
|
||||
|
||||
if returnList.get(0) == 0:
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
#buy
|
||||
if eventType == 0:
|
||||
index = int(returnList.get(0))
|
||||
buyHistory = coreRef.lootService.getBuyHistory(owner,junkDealerRef)
|
||||
if len(buyHistory) == 0:
|
||||
owner.sendSystemMessage('@loot_dealer:no_buy_back_items_found', 1)
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
buyBackItem = buyHistory.get(index)
|
||||
|
||||
if buyBackItem == None:
|
||||
owner.sendSystemMessage('@loot_dealer:no_buy_back_items_found', 0)
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
if owner.getInventoryItemCount() >= 80:
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_47')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(owner, junkDealerRef, outOfBand)
|
||||
return
|
||||
|
||||
junkDealerPrice = buyBackItem.getJunkDealerPrice()
|
||||
if junkDealerPrice == 0:
|
||||
junkDealerPrice = 20
|
||||
owner.setCashCredits(owner.getCashCredits()+junkDealerPrice)
|
||||
|
||||
if owner.getCashCredits()>=junkDealerPrice:
|
||||
owner.setCashCredits(owner.getCashCredits()-junkDealerPrice)
|
||||
inventory = owner.getSlottedObject('inventory')
|
||||
inventory.add(buyBackItem)
|
||||
owner.sendSystemMessage('You buy back ' + buyBackItem.getCustomName() + ' for %s' % junkDealerPrice + ' credits.', 0)
|
||||
# remove from junk dealer history
|
||||
coreRef.lootService.removeBoughtBackItemFromHistory(owner,junkDealerRef,buyBackItem)
|
||||
else:
|
||||
owner.sendSystemMessage('@loot_dealer:prose_no_buy_back', 0)
|
||||
|
||||
coreRef.suiService.closeSUIWindow(owner,window.getWindowId());
|
||||
handleFirstScreen(coreRef, owner, junkDealerRef, 3)
|
||||
return
|
||||
|
||||
#cancel
|
||||
if eventType == 1:
|
||||
owner.sendSystemMessage('Cancel', 0)
|
||||
sellItem = returnList.get(0)
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
return
|
||||
|
||||
#examine
|
||||
if eventType == 2:
|
||||
owner.sendSystemMessage('Ex', 0)
|
||||
sellItem = returnList.get(0)
|
||||
startConversation(coreRef,owner,junkDealerRef)
|
||||
owner.sendSystemMessage('Examine', 0)
|
||||
return
|
||||
|
||||
def handleLootScreenSelection1(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
if selection == 0:
|
||||
lootKitScreen1(core, actor, npc)
|
||||
|
||||
return
|
||||
|
||||
def handleLootScreenSelection2(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
if selection == 0:
|
||||
lootKitScreen2(core, actor, npc)
|
||||
|
||||
return
|
||||
|
||||
def handleLootScreenSelection3(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
if selection == 0:
|
||||
lootKitScreen3(core, actor, npc)
|
||||
|
||||
return
|
||||
|
||||
def handleLootScreenSelection4(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
if selection == 0:
|
||||
lootKitScreen4(core, actor, npc)
|
||||
|
||||
return
|
||||
|
||||
def handleLootScreenSelection5(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
if selection == 0:
|
||||
lootKitScreen5a(core, actor, npc)
|
||||
|
||||
if selection == 1:
|
||||
lootKitScreen5b(core, actor, npc)
|
||||
|
||||
return
|
||||
|
||||
def handleLootScreenSelection6(core, actor, npc, selection):
|
||||
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_14efaaa2')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
if selection == 0:
|
||||
template = 'object/tangible/loot/collectible/kits/shared_orange_rug_kit.iff'
|
||||
addLootKit(core, actor, npc,template)
|
||||
|
||||
if selection == 1:
|
||||
template = 'object/tangible/loot/collectible/kits/shared_blue_rug_kit.iff'
|
||||
addLootKit(core, actor, npc,template)
|
||||
|
||||
if selection == 2:
|
||||
template = 'object/tangible/loot/collectible/kits/shared_gong_kit.iff'
|
||||
addLootKit(core, actor, npc,template)
|
||||
|
||||
if selection == 3:
|
||||
template = 'object/tangible/loot/collectible/kits/shared_light_table_kit.iff'
|
||||
addLootKit(core, actor, npc,template)
|
||||
|
||||
if selection == 4:
|
||||
template = 'object/tangible/loot/collectible/kits/shared_sculpture_kit.iff'
|
||||
addLootKit(core, actor, npc,template)
|
||||
|
||||
return
|
||||
|
||||
def addLootKit(core, actor, npc,template):
|
||||
|
||||
kit = core.objectService.createObject(template, actor.getPlanet())
|
||||
inventory = actor.getSlottedObject('inventory')
|
||||
inventory.add(kit)
|
||||
return
|
||||
|
||||
def lootKitScreen1(core, actor, npc):
|
||||
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_d9e6b751')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
prose2 = ProsePackage('conversation/junk_dealer_generic', 's_6d53d062')
|
||||
outOfBand2 = OutOfBand()
|
||||
outOfBand2.addProsePackage(prose2)
|
||||
|
||||
option1 = ConversationOption(outOfBand2, 0)
|
||||
|
||||
options = Vector()
|
||||
options.add(option1)
|
||||
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection2)
|
||||
|
||||
return
|
||||
|
||||
def lootKitScreen2(core, actor, npc):
|
||||
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_e29f48dc')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
prose2 = ProsePackage('conversation/junk_dealer_generic', 's_324b9b0f')
|
||||
outOfBand2 = OutOfBand()
|
||||
outOfBand2.addProsePackage(prose2)
|
||||
|
||||
option1 = ConversationOption(outOfBand2, 0)
|
||||
|
||||
options = Vector()
|
||||
options.add(option1)
|
||||
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection3)
|
||||
|
||||
return
|
||||
|
||||
def lootKitScreen3(core, actor, npc):
|
||||
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_12fe83a6')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
prose2 = ProsePackage('conversation/junk_dealer_generic', 's_e1a103e5')
|
||||
outOfBand2 = OutOfBand()
|
||||
outOfBand2.addProsePackage(prose2)
|
||||
|
||||
option1 = ConversationOption(outOfBand2, 0)
|
||||
|
||||
options = Vector()
|
||||
options.add(option1)
|
||||
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection4)
|
||||
|
||||
return
|
||||
|
||||
def lootKitScreen4(core, actor, npc):
|
||||
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_4d65752')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
prose2 = ProsePackage('conversation/junk_dealer_generic', 's_d347bee3')
|
||||
outOfBand2 = OutOfBand()
|
||||
outOfBand2.addProsePackage(prose2)
|
||||
prose3 = ProsePackage('conversation/junk_dealer_generic', 's_b60b73f8')
|
||||
outOfBand3 = OutOfBand()
|
||||
outOfBand3.addProsePackage(prose3)
|
||||
|
||||
option1 = ConversationOption(outOfBand2, 0)
|
||||
option2 = ConversationOption(outOfBand3, 0)
|
||||
|
||||
options = Vector()
|
||||
options.add(option1)
|
||||
options.add(option2)
|
||||
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection5)
|
||||
|
||||
return
|
||||
|
||||
def lootKitScreen5a(core, actor, npc):
|
||||
|
||||
convSvc = core.conversationService
|
||||
prose = ProsePackage('conversation/junk_dealer_generic', 's_3fc7eb45')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
prose2 = ProsePackage('conversation/junk_dealer_generic', 's_ee977dee')
|
||||
outOfBand2 = OutOfBand()
|
||||
outOfBand2.addProsePackage(prose2)
|
||||
prose3 = ProsePackage('conversation/junk_dealer_generic', 's_8f39769')
|
||||
outOfBand3 = OutOfBand()
|
||||
outOfBand3.addProsePackage(prose3)
|
||||
prose4 = ProsePackage('conversation/junk_dealer_generic', 's_fe657cdd')
|
||||
outOfBand4 = OutOfBand()
|
||||
outOfBand4.addProsePackage(prose4)
|
||||
prose5 = ProsePackage('conversation/junk_dealer_generic', 's_9ede4b84')
|
||||
outOfBand5 = OutOfBand()
|
||||
outOfBand5.addProsePackage(prose5)
|
||||
prose6 = ProsePackage('conversation/junk_dealer_generic', 's_87c5851b')
|
||||
outOfBand6 = OutOfBand()
|
||||
outOfBand6.addProsePackage(prose6)
|
||||
|
||||
option1 = ConversationOption(outOfBand2, 0)
|
||||
option2 = ConversationOption(outOfBand3, 0)
|
||||
option3 = ConversationOption(outOfBand4, 0)
|
||||
option4 = ConversationOption(outOfBand5, 0)
|
||||
option5 = ConversationOption(outOfBand6, 0)
|
||||
|
||||
options = Vector()
|
||||
options.add(option1)
|
||||
options.add(option2)
|
||||
options.add(option3)
|
||||
options.add(option4)
|
||||
options.add(option5)
|
||||
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection6)
|
||||
|
||||
return
|
||||
|
||||
def lootKitScreen5b(core, actor, npc):
|
||||
|
||||
startConversation(core,actor,npc)
|
||||
return
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Left Bicep'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Right Bicep'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Boots'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Bracer Left'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Bracer Right'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Chestplate'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Gloves'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Helmet'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Composite Armor Leggings'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -5,4 +5,4 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Tusken Raider Bandolier'
|
||||
|
||||
@@ -5,4 +5,4 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Tusken Raider Boots'
|
||||
|
||||
@@ -5,4 +5,4 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Tusken Raider Dress'
|
||||
|
||||
@@ -5,4 +5,4 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Tusken Raider Gloves'
|
||||
|
||||
@@ -5,4 +5,4 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Tusken Raider Helmet'
|
||||
|
||||
+4
@@ -2,3 +2,7 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/creature_loot/generic/shared_generic_antennae.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Antenna'
|
||||
@@ -2,3 +2,7 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/creature_loot/generic/shared_generic_eye.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Eye'
|
||||
@@ -2,3 +2,7 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/creature_loot/generic/shared_generic_heart.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Heart'
|
||||
+4
@@ -2,3 +2,7 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/creature_loot/generic/shared_generic_stomach.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Stomach'
|
||||
@@ -2,3 +2,20 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_armor_repair_device_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Armor Repair Device'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 28
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
@@ -5,4 +5,16 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Chassis Blueprint'
|
||||
return 'Chassis Blueprint'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 21
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
@@ -5,4 +5,16 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Comlink'
|
||||
return 'Comlink'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 15
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
@@ -6,4 +6,16 @@ def itemTemplate():
|
||||
def customItemName():
|
||||
|
||||
return 'Damaged Datapad'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 8
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
@@ -2,3 +2,7 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['/object/tangible/loot/npc_loot/shared_jewelry_ear_s02.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Ear jewel'
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_firework_dud_s1.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Explosive Dud'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 10
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/misc/shared_hyperdrive_part_s01.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Hyperdrive Unit'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 34
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -6,3 +6,15 @@ def itemTemplate():
|
||||
def customItemName():
|
||||
|
||||
return 'ID Chip'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 14
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_impulse_detector_01_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Impulse Detector'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 17
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_laser_trap_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Laser Trap'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 22
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -5,4 +5,16 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Launcher Tube'
|
||||
return 'Launcher Tube'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 16
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_ledger_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Ledger'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 13
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_magseal_detector_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'MagSeal Detector'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 15
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_medical_console_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Medical Console'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 24
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_medical_device_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Medical Device'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 17
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_small_motor_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Motor'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 13
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_power_output_analyzer_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Power Output Analyzer'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 21
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_red_wiring_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Red Wiring'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 12
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_shield_module_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Shield Module'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 20
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_software_module_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Software Module'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 12
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_survival_equipment_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Survival Gear'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 11
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_survey_pad_adv_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Underpowered Survey Pad'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 13
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_serum_vial_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Unidentified Serum Vial'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 14
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_notebook_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Used Notebook'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 12
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/generic/shared_battery_useable_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Weak Droid Battery'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 9
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -2,3 +2,19 @@
|
||||
def itemTemplate():
|
||||
|
||||
return ['object/tangible/loot/npc_loot/shared_worklight_generic.iff']
|
||||
|
||||
def customItemName():
|
||||
|
||||
return 'Generic Worklight'
|
||||
|
||||
def stackable():
|
||||
|
||||
return 1
|
||||
|
||||
def junkDealerPrice():
|
||||
|
||||
return 10
|
||||
|
||||
def junkType():
|
||||
|
||||
return 0
|
||||
|
||||
@@ -5,7 +5,7 @@ def itemTemplate():
|
||||
|
||||
def customItemName():
|
||||
|
||||
return ''
|
||||
return 'Gaderiffi Baton'
|
||||
|
||||
def customItemStackCount():
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
object = stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288))
|
||||
object.setOptionsBitmask(264)
|
||||
@@ -11,7 +11,12 @@ def addPlanetSpawns(core, planet):
|
||||
stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(3525), float(4), float(-4801), float(0.70), float(0.71))
|
||||
#object = stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288))
|
||||
#object.setOptionsBitmask(264)
|
||||
|
||||
|
||||
junkdealer = stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3525), float(4), float(-4804), float(0.70), float(0.71))
|
||||
junkdealer.setOptionsBitmask(264)
|
||||
junkdealer.setCustomName('a Junk Dealer')
|
||||
junkdealer.setAttachment('radial_filename', 'conversation');
|
||||
junkdealer.setAttachment('conversationFile','junk_dealer')
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ import engine.resources.scene.Planet;
|
||||
import engine.resources.scene.Point3D;
|
||||
import engine.resources.scene.Quaternion;
|
||||
|
||||
@Persistent(version=9)
|
||||
@Persistent(version=11)
|
||||
public class TangibleObject extends SWGObject {
|
||||
|
||||
// TODO: Thread safety
|
||||
@@ -89,6 +89,13 @@ public class TangibleObject extends SWGObject {
|
||||
@NotPersistent
|
||||
private boolean lootItem = false;
|
||||
|
||||
private boolean stackable = false;
|
||||
private int stackCount = 1;
|
||||
private boolean noSell = false;
|
||||
private byte junkType = -1;
|
||||
private int junkDealerPrice = 0;
|
||||
|
||||
|
||||
private String serialNumber;
|
||||
|
||||
@NotPersistent
|
||||
@@ -499,6 +506,46 @@ public class TangibleObject extends SWGObject {
|
||||
this.lootItem = lootItem;
|
||||
}
|
||||
|
||||
public boolean isStackable() {
|
||||
return stackable;
|
||||
}
|
||||
|
||||
public void setStackable(boolean stackable) {
|
||||
this.stackable = stackable;
|
||||
}
|
||||
|
||||
public int getStackCount() {
|
||||
return stackCount;
|
||||
}
|
||||
|
||||
public void setStackCount(int stackCount) {
|
||||
this.stackCount = stackCount;
|
||||
}
|
||||
|
||||
public boolean isNoSell() {
|
||||
return noSell;
|
||||
}
|
||||
|
||||
public void setNoSell(boolean noSell) {
|
||||
this.noSell = noSell;
|
||||
}
|
||||
|
||||
public byte getJunkType() {
|
||||
return junkType;
|
||||
}
|
||||
|
||||
public void setJunkType(byte junkType) {
|
||||
this.junkType = junkType;
|
||||
}
|
||||
|
||||
public int getJunkDealerPrice() {
|
||||
return junkDealerPrice;
|
||||
}
|
||||
|
||||
public void setJunkDealerPrice(int junkDealerPrice) {
|
||||
this.junkDealerPrice = junkDealerPrice;
|
||||
}
|
||||
|
||||
public boolean isCreditRelieved() {
|
||||
return creditRelieved;
|
||||
}
|
||||
|
||||
@@ -29,14 +29,12 @@ import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.Vector;
|
||||
|
||||
import protocol.swg.PlayClientEffectObjectMessage;
|
||||
import protocol.swg.PlayClientEffectObjectTransformMessage;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.group.GroupObject;
|
||||
@@ -45,9 +43,7 @@ import resources.objects.loot.LootRollSession;
|
||||
import resources.objects.tangible.TangibleObject;
|
||||
import resources.objects.weapon.WeaponObject;
|
||||
import main.NGECore;
|
||||
import engine.clientdata.ClientFileManager;
|
||||
import engine.clientdata.visitors.CrcStringTableVisitor;
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.container.Traverser;
|
||||
import engine.resources.objects.SWGObject;
|
||||
import engine.resources.scene.Planet;
|
||||
import engine.resources.scene.Point3D;
|
||||
@@ -62,6 +58,7 @@ import engine.resources.service.INetworkRemoteEvent;
|
||||
public class LootService implements INetworkDispatch {
|
||||
|
||||
private NGECore core;
|
||||
private static int prepInvCnt = 0;
|
||||
|
||||
public LootService(NGECore core) {
|
||||
this.core = core;
|
||||
@@ -87,7 +84,7 @@ public class LootService implements INetworkDispatch {
|
||||
return;
|
||||
SWGObject lootedObjectInventory = lootedObject.getSlottedObject("inventory");
|
||||
core.simulationService.openContainer(requester, lootedObjectInventory);
|
||||
setLooted(lootedObject);
|
||||
setLooted(requester,lootedObject);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,6 +242,7 @@ public class LootService implements INetworkDispatch {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private void handleLootPoolItems(String itemName,LootRollSession lootRollSession){
|
||||
|
||||
List<String> subfolders = new ArrayList<String>(); // Consider all sub-folders
|
||||
@@ -283,6 +281,9 @@ public class LootService implements INetworkDispatch {
|
||||
int stackCount = 1;
|
||||
int biolink = 0;
|
||||
int requiredCL = 1;
|
||||
int stackable = -1;
|
||||
int junkDealerPrice = 0;
|
||||
byte junkType = -1;
|
||||
String requiredProfession = "";
|
||||
String requiredFaction = "";
|
||||
Vector<String> customizationAttributes = null;
|
||||
@@ -330,7 +331,15 @@ public class LootService implements INetworkDispatch {
|
||||
if(core.scriptService.getMethod(itemPath,"","requiredFaction")!=null)
|
||||
requiredFaction = (String)core.scriptService.fetchString(itemPath,"requiredFaction");
|
||||
|
||||
|
||||
if(core.scriptService.getMethod(itemPath,"","stackable")!=null)
|
||||
stackable = (Integer)core.scriptService.fetchInteger(itemPath,"stackable");
|
||||
|
||||
if(core.scriptService.getMethod(itemPath,"","junkDealerPrice")!=null)
|
||||
junkDealerPrice = (Integer)core.scriptService.fetchInteger(itemPath,"junkDealerPrice");
|
||||
|
||||
if(core.scriptService.getMethod(itemPath,"","junkType")!=null)
|
||||
junkType = (byte)core.scriptService.fetchInteger(itemPath,"junkType");
|
||||
|
||||
System.out.println("itemTemplate " + itemTemplate);
|
||||
|
||||
TangibleObject droppedItem = createDroppedItem(itemTemplate,lootRollSession.getSessionPlanet());
|
||||
@@ -340,6 +349,21 @@ public class LootService implements INetworkDispatch {
|
||||
|
||||
if (customName!=null)
|
||||
handleCustomDropName(droppedItem, customName);
|
||||
|
||||
if (stackable!=-1){
|
||||
if(stackable==1)
|
||||
droppedItem.setStackable(true);
|
||||
else
|
||||
droppedItem.setStackable(false);
|
||||
}
|
||||
|
||||
if (junkDealerPrice!=0){
|
||||
droppedItem.setJunkDealerPrice(junkDealerPrice);
|
||||
}
|
||||
|
||||
if (junkType!=-1){
|
||||
droppedItem.setJunkType(junkType);
|
||||
}
|
||||
|
||||
if (itemStats!=null){
|
||||
if (itemStats.size()%3!=0){
|
||||
@@ -368,6 +392,7 @@ public class LootService implements INetworkDispatch {
|
||||
droppedItem.setStringAttribute("required_faction", requiredFaction);
|
||||
}
|
||||
|
||||
|
||||
lootRollSession.addDroppedItem(droppedItem);
|
||||
}
|
||||
|
||||
@@ -774,13 +799,199 @@ public class LootService implements INetworkDispatch {
|
||||
return 42%42;
|
||||
}
|
||||
|
||||
public void setLooted(TangibleObject lootedObject){
|
||||
public void setLooted(TangibleObject lootedObject,TangibleObject requester){
|
||||
lootedObject.setLooted(true);
|
||||
float y = -5.0F;
|
||||
float qz= 1.06535322E9F;
|
||||
Point3D effectorPosition = new Point3D(0,y,0);
|
||||
Quaternion effectorOrientation = new Quaternion(0,0,0,qz);
|
||||
PlayClientEffectObjectTransformMessage lmsg = new PlayClientEffectObjectTransformMessage("",lootedObject.getObjectID(),"",effectorPosition,effectorOrientation);
|
||||
//((CreatureObject) requester).getClient().getSession().write(lmsg.serialize());
|
||||
}
|
||||
|
||||
|
||||
// ********* Junk-dealer related *********
|
||||
|
||||
public Vector<SWGObject> getSellableInventoryItems(CreatureObject actor){
|
||||
TangibleObject playerInventory = (TangibleObject) actor.getSlottedObject("inventory");
|
||||
final Vector<SWGObject> sellableItems = new Vector<SWGObject>();
|
||||
playerInventory.viewChildren(actor, false, false, new Traverser() {
|
||||
@Override
|
||||
public void process(SWGObject obj) {
|
||||
String itemTemplate = obj.getTemplate();
|
||||
TangibleObject tano = (TangibleObject) obj;
|
||||
if (tano.getCustomName()!=null){
|
||||
if (itemTemplate.contains("loot/")){
|
||||
sellableItems.add(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return sellableItems;
|
||||
}
|
||||
|
||||
public void addToSoldHistory(CreatureObject actor, TangibleObject item){
|
||||
|
||||
}
|
||||
|
||||
public boolean haveBusinessHistory(CreatureObject actor, CreatureObject dealer){
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Vector<TangibleObject> getBuyHistory(CreatureObject actor, CreatureObject dealer){
|
||||
LinkedHashMap<Long,TangibleObject[]> businessHistory = (LinkedHashMap<Long,TangibleObject[]> )dealer.getAttachment("BusinessHistory");
|
||||
if (businessHistory==null){
|
||||
businessHistory = new LinkedHashMap<Long,TangibleObject[]>();
|
||||
dealer.setAttachment("BusinessHistory",businessHistory);
|
||||
}
|
||||
|
||||
TangibleObject[] actorsBuyHistory = businessHistory.get(actor.getObjectID());
|
||||
if (actorsBuyHistory==null)
|
||||
return new Vector<TangibleObject>();
|
||||
|
||||
Vector<TangibleObject> actorHistory = new Vector<TangibleObject>();
|
||||
for (TangibleObject item : actorsBuyHistory){
|
||||
if (item!=null)
|
||||
actorHistory.add(item);
|
||||
}
|
||||
return actorHistory;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public boolean addToBuyHistory(CreatureObject actor, CreatureObject dealer, TangibleObject item){
|
||||
LinkedHashMap<Long,TangibleObject[]> businessHistory = (LinkedHashMap<Long,TangibleObject[]> )dealer.getAttachment("BusinessHistory");
|
||||
if (businessHistory==null){
|
||||
businessHistory = new LinkedHashMap<Long,TangibleObject[]>();
|
||||
dealer.setAttachment("BusinessHistory",businessHistory);
|
||||
}
|
||||
|
||||
TangibleObject[] actorsBuyHistory = businessHistory.get(actor.getObjectID());
|
||||
if (actorsBuyHistory==null){
|
||||
actorsBuyHistory = new TangibleObject[10];
|
||||
actorsBuyHistory[0] = item;
|
||||
} else {
|
||||
// Check Array for zeros
|
||||
int lastObject=0;
|
||||
for (int i=0;i<actorsBuyHistory.length;i++){
|
||||
if (actorsBuyHistory[i]!=null)
|
||||
lastObject=i;
|
||||
}
|
||||
if (lastObject==actorsBuyHistory.length-1){
|
||||
//>>shift right and add
|
||||
for (int i = 8; i >= 0; i--) {
|
||||
actorsBuyHistory[i+1] = actorsBuyHistory[i];
|
||||
}
|
||||
actorsBuyHistory[0] = item;
|
||||
} else {
|
||||
actorsBuyHistory[lastObject+1] = item;
|
||||
}
|
||||
}
|
||||
businessHistory.put(actor.getObjectID(),actorsBuyHistory);
|
||||
dealer.setAttachment("BusinessHistory",businessHistory);
|
||||
//printArrayElements(actorsBuyHistory);
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public boolean removeBoughtBackItemFromHistory(CreatureObject actor, CreatureObject dealer, TangibleObject item){
|
||||
if (item==null)
|
||||
return false; // Player has hit the button without selecting an item
|
||||
LinkedHashMap<Long,TangibleObject[]> businessHistory = (LinkedHashMap<Long,TangibleObject[]> )dealer.getAttachment("BusinessHistory");
|
||||
if (businessHistory==null){
|
||||
return false; // something went seriously wrong. At this point the dealer should have a history
|
||||
}
|
||||
TangibleObject[] actorsBuyHistory = businessHistory.get(actor.getObjectID());
|
||||
if (actorsBuyHistory==null)
|
||||
return false; // Player has no history entry
|
||||
// Find the element index
|
||||
int index = -1;
|
||||
for (int i=0;i<10;i++){
|
||||
if (actorsBuyHistory[i]!=null){
|
||||
if (item.getObjectID()==actorsBuyHistory[i].getObjectID()){
|
||||
index = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (index==-1)
|
||||
return false;
|
||||
|
||||
// Shift everything to the right of the found index to the left
|
||||
for (int i = index; i < 9; i++) {
|
||||
actorsBuyHistory[i] = actorsBuyHistory[i+1]; // 0 1 2 3 4 5 6 7 8 9
|
||||
}
|
||||
if (index!=-1)
|
||||
actorsBuyHistory[9]=null;
|
||||
|
||||
businessHistory.put(actor.getObjectID(),actorsBuyHistory);
|
||||
dealer.setAttachment("BusinessHistory",businessHistory);
|
||||
//printArrayElements(actorsBuyHistory);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// util method
|
||||
@SuppressWarnings("unused")
|
||||
private void printArrayElements(TangibleObject[] array){
|
||||
System.out.print("Array [");
|
||||
for (int i=0;i<array.length;i++){
|
||||
if (array[i]!=null){
|
||||
//System.out.print(array[i].getObjectID() + ", ");
|
||||
System.out.print(array[i].getCustomName() + ", ");
|
||||
}
|
||||
}
|
||||
System.out.print("]");
|
||||
}
|
||||
|
||||
public void prepInv(CreatureObject player){
|
||||
if (prepInvCnt>0)
|
||||
return;
|
||||
prepInvCnt++;
|
||||
SWGObject playerInventory = player.getSlottedObject("inventory");
|
||||
TangibleObject item1 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_impulse_detector_01_generic.iff", player.getPlanet());
|
||||
item1.setCustomName("Impulse Detector");
|
||||
playerInventory.add(item1);
|
||||
|
||||
TangibleObject item2 = (TangibleObject)core.objectService.createObject("object/tangible/loot/misc/shared_damaged_datapad.iff", player.getPlanet());
|
||||
item2.setCustomName("Damaged Datapad");
|
||||
playerInventory.add(item2);
|
||||
|
||||
TangibleObject item3 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_software_module_generic.iff", player.getPlanet());
|
||||
item3.setCustomName("Software Module");
|
||||
playerInventory.add(item3);
|
||||
|
||||
TangibleObject item4 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_survival_equipment_generic.iff", player.getPlanet());
|
||||
item4.setCustomName("Survival Gear");
|
||||
playerInventory.add(item4);
|
||||
|
||||
TangibleObject item5 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_shield_module_generic.iff", player.getPlanet());
|
||||
item5.setCustomName("Shield Module");
|
||||
playerInventory.add(item5);
|
||||
|
||||
TangibleObject item6 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_firework_generic.iff", player.getPlanet());
|
||||
item6.setCustomName("Explosive Dud");
|
||||
playerInventory.add(item6);
|
||||
|
||||
TangibleObject item7 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_launcher_tube_generic.iff", player.getPlanet());
|
||||
item7.setCustomName("Launcher Tube");
|
||||
playerInventory.add(item7);
|
||||
|
||||
TangibleObject item8 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_red_wiring_generic.iff", player.getPlanet());
|
||||
item8.setCustomName("Red Wiring");
|
||||
playerInventory.add(item8);
|
||||
|
||||
TangibleObject item9 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_laser_trap_generic.iff", player.getPlanet());
|
||||
item9.setCustomName("Laser Trap");
|
||||
playerInventory.add(item9);
|
||||
|
||||
TangibleObject item10 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_comlink_civilian_generic.iff", player.getPlanet());
|
||||
item10.setCustomName("Comlink");
|
||||
playerInventory.add(item10);
|
||||
|
||||
TangibleObject item11 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_armor_repair_device_generic.iff", player.getPlanet());
|
||||
item11.setCustomName("Armor Repair Device");
|
||||
playerInventory.add(item11);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user