mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-07-30 00:15:57 -04:00
130 lines
5.2 KiB
Python
130 lines
5.2 KiB
Python
from resources.common import RadialOptions, ProsePackage, OutOfBand
|
|
from java.util import HashMap
|
|
from java.lang import Long
|
|
from services.sui.SUIService import ListBoxType
|
|
from services.sui.SUIService import InputBoxType
|
|
from services.sui.SUIWindow import Trigger
|
|
import sys
|
|
|
|
def createRadial(core, owner, target, radials):
|
|
radials.clear()
|
|
radials.add(RadialOptions(0, 7, 1, ''))
|
|
radials.add(RadialOptions(0, 11, 1, ''))
|
|
if not long(target.getAttachment('vendorOwner')) == owner.getObjectID():
|
|
return
|
|
radials.add(RadialOptions(0, 55, 0, ''))
|
|
radials.add(RadialOptions(0, 52, 0, ''))
|
|
radials.add(RadialOptions(0, 112, 3, '@player_structure:vendor_control'))
|
|
radials.add(RadialOptions(3, 56, 1, ''))
|
|
radials.add(RadialOptions(3, 57, 1, ''))
|
|
radials.add(RadialOptions(3, 58, 1, ''))
|
|
radials.add(RadialOptions(3, 59, 1, ''))
|
|
radials.add(RadialOptions(4, 53, 1, ''))
|
|
radials.add(RadialOptions(4, 54, 1, ''))
|
|
|
|
|
|
if target.getAttachment('initialized') == False:
|
|
radials.add(RadialOptions(5, 118, 3, '@player_structure:vendor_init'))
|
|
else:
|
|
# soe reuses option 118
|
|
radials.add(RadialOptions(5, 118, 3, '@player_structure:vendor_status'))
|
|
radials.add(RadialOptions(5, 217, 3, '@player_structure:give_maintenance'))
|
|
radials.add(RadialOptions(5, 115, 3, '@player_structure:take_maintenance'))
|
|
if owner.getSkillModBase('private_register_vendor') >= 1:
|
|
radials.add(RadialOptions(5, 116, 3, '@player_structure:register_vendor'))
|
|
radials.add(RadialOptions(5, 205, 3, '@player_structure:enable_vendor_search'))
|
|
radials.add(RadialOptions(5, 206, 3, '@player_structure:disable_vendor_search'))
|
|
radials.add(RadialOptions(5, 121, 3, '@player_structure:customize_vendor'))
|
|
|
|
radials.add(RadialOptions(5, 114, 3, '@player_structure:vendor_pack'))
|
|
radials.add(RadialOptions(5, 117, 3, '@player_structure:remove_vendor'))
|
|
|
|
return
|
|
|
|
def handleSelection(core, owner, target, option):
|
|
|
|
if not target.getAttachment('vendorOwner') == owner.getObjectID():
|
|
return
|
|
|
|
if target.getAttachment('initialized') == False:
|
|
if option == 118:
|
|
owner.sendSystemMessage('@player_structure:vendor_initialized', 0)
|
|
target.setAttachment('initialized', True)
|
|
core.bazaarService.startVendorUpdateTask(owner, target)
|
|
else:
|
|
if option == 118:
|
|
suiOptions = HashMap()
|
|
suiOptions.put(Long(1), 'Owner: ' + owner.getCustomName())
|
|
suiOptions.put(Long(2), 'Maintenance Pool: ' + str(target.getAttachment('maintenanceAmount')) + ' cr')
|
|
maintenanceRate = 15
|
|
if target.getAttachment('onMap') is True:
|
|
maintenanceRate += 6
|
|
suiOptions.put(Long(3), 'Maintenance Rate: ' + str(maintenanceRate) + ' cr/hr')
|
|
suiOptions.put(Long(4), 'Number of Items For Sale: ' + str(core.bazaarService.getNumberOfItemsForSale(target.getObjectID())))
|
|
window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, '@player_structure:vendor_status', 'Vendor Status', suiOptions, owner, None, 5)
|
|
core.suiService.openSUIWindow(window)
|
|
if option == 205:
|
|
target.setAttachment('vendorSearchEnabled', True)
|
|
owner.sendSystemMessage('@player_structure:vendor_search_enabled', 0)
|
|
if option == 206:
|
|
target.setAttachment('vendorSearchEnabled', False)
|
|
owner.sendSystemMessage('@player_structure:vendor_search_disabled', 0)
|
|
if option == 217:
|
|
window = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, '@player_structure:pay_vendor_t', '@player_structure:pay_vendor_d', owner, target, 5, handlePayMaintenance)
|
|
core.suiService.openSUIWindow(window)
|
|
if option == 115:
|
|
window = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, '@player_structure:withdraw_vendor_t', '@player_structure:withdraw_vendor_d', owner, target, 5, handleWithdrawMaintenance)
|
|
core.suiService.openSUIWindow(window)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
def handlePayMaintenance(actor, window, eventType, returnList):
|
|
|
|
value = int(returnList.get(0))
|
|
|
|
if value > 100000:
|
|
actor.sendSystemMessage('@player_structure:vendor_maint_invalid', 0)
|
|
return
|
|
if value <= 0:
|
|
actor.sendSystemMessage('@player_structure:amt_greater_than_zero', 0)
|
|
return
|
|
if actor.getBankCredits() + actor.getCashCredits() <= value:
|
|
actor.sendSystemMessage('@player_structure:vendor_maint_denied', 0)
|
|
return
|
|
|
|
if actor.getBankCredits() < value:
|
|
actor.setCashCredits(actor.getCashCredits() - (value - actor.getBankCredits()))
|
|
actor.setBankCredits(0)
|
|
else:
|
|
actor.setBankCredits(actor.getBankCredits() - value)
|
|
|
|
maintAmount = window.getRangeObject().getAttachment('maintenanceAmount')
|
|
maintAmount += value
|
|
window.getRangeObject().setAttachment('maintenanceAmount', maintAmount)
|
|
|
|
#actor.sendSystemMessage('@player_structure:vendor_maint_accepted', OutOfBand(ProsePackage(maintAmount)), 0)
|
|
|
|
return
|
|
|
|
def handleWithdrawMaintenance(actor, window, eventType, returnList):
|
|
|
|
value = int(returnList.get(0))
|
|
maintAmount = window.getRangeObject().getAttachment('maintenanceAmount')
|
|
|
|
if value > maintAmount:
|
|
#actor.sendSystemMessage('@player_structure:vendor_withdraw_fail', OutOfBand(ProsePackage(value)), 0)
|
|
return
|
|
if value <= 0:
|
|
actor.sendSystemMessage('@player_structure:amt_greater_than_zero', 0)
|
|
|
|
maintAmount -= value
|
|
window.getRangeObject().setAttachment('maintenanceAmount', maintAmount)
|
|
#actor.sendSystemMessage('@player_structure:vendor_withdraw', OutOfBand(ProsePackage(value)), 0)
|
|
|
|
return
|
|
|