792 lines
20 KiB
JavaScript
792 lines
20 KiB
JavaScript
|
|
var ItemUseScreenMode = {
|
|
OPERATION: 0,
|
|
LIST: 1,
|
|
MESSENGER: 2,
|
|
HELP: 3
|
|
};
|
|
|
|
var ItemUseScreen = defineObject(BaseScreen,
|
|
{
|
|
_unit: null,
|
|
_unitList: null,
|
|
_itemUseOperationWindow: null,
|
|
_unitItemWindow: null,
|
|
_stockItemWindow: null,
|
|
_itemInfoWindow: null,
|
|
_itemUserWindow: null,
|
|
_unitSimpleWindow: null,
|
|
_dataChanger: null,
|
|
_itemMessenger: null,
|
|
|
|
setScreenData: function(screenParam) {
|
|
this._prepareScreenMemberData(screenParam);
|
|
this._completeScreenMemberData(screenParam);
|
|
},
|
|
|
|
moveScreenCycle: function() {
|
|
var mode = this.getCycleMode();
|
|
var result = MoveResult.CONTINUE;
|
|
|
|
if (mode === ItemUseScreenMode.OPERATION) {
|
|
result = this._moveOperation();
|
|
}
|
|
else if (mode === ItemUseScreenMode.LIST) {
|
|
result = this._moveList();
|
|
}
|
|
else if (mode === ItemUseScreenMode.MESSENGER) {
|
|
result = this._moveMessenger();
|
|
}
|
|
else if (mode === ItemUseScreenMode.HELP) {
|
|
result = this._moveHelp();
|
|
}
|
|
|
|
this._itemUserWindow.moveWindow();
|
|
|
|
return result;
|
|
},
|
|
|
|
drawScreenCycle: function() {
|
|
var mode = this.getCycleMode();
|
|
var width = this._getItemListWindow().getWindowWidth() + this._itemUserWindow.getWindowWidth();
|
|
var height = this._itemUserWindow.getWindowHeight();
|
|
var x = LayoutControl.getCenterX(-1, width);
|
|
var y = LayoutControl.getCenterY(-1, height);
|
|
|
|
this._itemUseOperationWindow.drawWindow(x, y);
|
|
this._getItemListWindow().drawWindow(x, y + this._itemUseOperationWindow.getWindowHeight());
|
|
|
|
if (this._itemUserWindow.getSkillInteraction().isInteraction()) {
|
|
this._drawSubWindow(x, y, this._itemUserWindow.getSkillInteraction().getInteractionWindow());
|
|
}
|
|
else if (mode === ItemUseScreenMode.OPERATION) {
|
|
this._drawSubWindow(x, y, this._unitSimpleWindow);
|
|
}
|
|
else if (mode === ItemUseScreenMode.LIST || mode === ItemUseScreenMode.USECHECK) {
|
|
this._drawSubWindow(x, y, this._itemInfoWindow);
|
|
}
|
|
|
|
this._itemUserWindow.drawWindow(x + this._getItemListWindow().getWindowWidth(), y);
|
|
|
|
if (mode === ItemUseScreenMode.MESSENGER) {
|
|
this._itemMessenger.drawMessenger();
|
|
}
|
|
},
|
|
|
|
drawScreenBottomText: function(textui) {
|
|
var item;
|
|
var mode = this.getCycleMode();
|
|
var text = '';
|
|
|
|
if (this._itemUserWindow.getSkillInteraction().isInteraction()) {
|
|
text = this._itemUserWindow.getSkillInteraction().getHelpText();
|
|
}
|
|
else if (mode === ItemUseScreenMode.OPERATION) {
|
|
text = StringTable.Marshal_StockOperation;
|
|
}
|
|
else {
|
|
item = this._itemInfoWindow.getInfoItem();
|
|
if (item !== null) {
|
|
text = item.getDescription();
|
|
}
|
|
}
|
|
|
|
TextRenderer.drawScreenBottomText(text, textui);
|
|
},
|
|
|
|
getScreenInteropData: function() {
|
|
return root.queryScreen('ItemUse');
|
|
},
|
|
|
|
isTargetSelectable: function(index) {
|
|
var count = 0;
|
|
|
|
if (index === 0) {
|
|
count = this._unitItemWindow.getItemScrollbar().getObjectCount() > 0;
|
|
}
|
|
else if (index === 1) {
|
|
count = this._stockItemWindow.getItemScrollbar().getObjectCount() > 0;
|
|
}
|
|
|
|
return count > 0;
|
|
},
|
|
|
|
_prepareScreenMemberData: function(screenParam) {
|
|
this._unit = screenParam.unit;
|
|
this._unitList = this._createUnitList();
|
|
this._itemUseOperationWindow = createWindowObject(ItemUseOperationWindow, this);
|
|
this._unitItemWindow = createWindowObject(ItemListWindow, this);
|
|
this._stockItemWindow = createWindowObject(ItemListWindow, this);
|
|
this._itemInfoWindow = createWindowObject(ItemInfoWindow, this);
|
|
this._itemUserWindow = createWindowObject(ItemUserWindow, this);
|
|
this._unitSimpleWindow = this._createSimpleWindow();
|
|
this._dataChanger = createObject(VerticalDataChanger);
|
|
this._itemMessenger = createObject(ItemMessenger);
|
|
},
|
|
|
|
_completeScreenMemberData: function(screenParam) {
|
|
this._itemUseOperationWindow.setItemUseOperationData();
|
|
this._unitItemWindow.setItemFormation(5);
|
|
this._unitItemWindow.getItemScrollbar().enablePageChange();
|
|
|
|
this._stockItemWindow.setItemFormation(5);
|
|
this._stockItemWindow.getItemScrollbar().enablePageChange();
|
|
|
|
this._updateItemAndWindow(-1);
|
|
|
|
this._processMode(ItemUseScreenMode.OPERATION);
|
|
},
|
|
|
|
_moveOperation: function() {
|
|
var index;
|
|
var input = this._itemUseOperationWindow.moveWindow();
|
|
var result = MoveResult.CONTINUE;
|
|
|
|
index = this._itemUseOperationWindow.getOperationIndex();
|
|
|
|
if (input === ScrollbarInput.SELECT) {
|
|
if (this.isTargetSelectable(index)) {
|
|
this._processMode(ItemUseScreenMode.LIST);
|
|
}
|
|
else {
|
|
this._playOperationBlockSound();
|
|
}
|
|
}
|
|
else if (input === ScrollbarInput.CANCEL) {
|
|
result = MoveResult.END;
|
|
}
|
|
else {
|
|
index = this._dataChanger.checkDataIndex(this._unitList, this._unit);
|
|
if (index !== -1) {
|
|
this._changeData(index);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
_moveList: function() {
|
|
var item, recentlyInput;
|
|
var input = this._getItemListWindow().moveWindow();
|
|
|
|
if (input === ScrollbarInput.SELECT) {
|
|
if (this._isItemAvailable()) {
|
|
this._itemMessenger.setMessenger(this._unit, this._getItemListWindow().getCurrentItem());
|
|
this._processMode(ItemUseScreenMode.MESSENGER);
|
|
}
|
|
else {
|
|
this._playOperationBlockSound();
|
|
}
|
|
}
|
|
else if (input === ScrollbarInput.CANCEL) {
|
|
this._processMode(ItemUseScreenMode.OPERATION);
|
|
}
|
|
else {
|
|
recentlyInput = this._getItemListWindow().getItemScrollbar().getRecentlyInputType();
|
|
if (recentlyInput === InputType.LEFT || recentlyInput === InputType.RIGHT) {
|
|
if (this._itemUserWindow.getSkillInteraction().setHelpMode()) {
|
|
this._processMode(ItemUseScreenMode.HELP);
|
|
}
|
|
}
|
|
else {
|
|
item = this._getItemListWindow().getCurrentItem();
|
|
this._itemInfoWindow.setInfoItem(item);
|
|
}
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveMessenger: function() {
|
|
var index;
|
|
|
|
if (this._itemMessenger.moveMessenger() !== MoveResult.CONTINUE) {
|
|
if (this._itemMessenger.isItemUsed()) {
|
|
this._getItemListWindow().getItemScrollbar().saveScroll();
|
|
this._updateItemAndWindow(this._itemUseOperationWindow.getOperationIndex());
|
|
this._getItemListWindow().getItemScrollbar().restoreScroll();
|
|
|
|
index = this._itemUseOperationWindow.getOperationIndex();
|
|
if (this.isTargetSelectable(index)) {
|
|
this._processMode(ItemUseScreenMode.LIST);
|
|
}
|
|
else {
|
|
this._processMode(ItemUseScreenMode.OPERATION);
|
|
}
|
|
}
|
|
else {
|
|
this._processMode(ItemUseScreenMode.LIST);
|
|
}
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveHelp: function() {
|
|
if (!this._itemUserWindow.getSkillInteraction().isHelpMode()) {
|
|
this._processMode(ItemUseScreenMode.LIST);
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_drawSubWindow: function(x, y, window) {
|
|
var xInfo = (x + this._getItemListWindow().getWindowWidth()) - window.getWindowWidth();
|
|
var yInfo = (y + this._itemUserWindow.getWindowHeight()) - window.getWindowHeight();
|
|
|
|
window.drawWindow(xInfo, yInfo);
|
|
},
|
|
|
|
_changeData: function(index) {
|
|
var itemIndex = this._stockItemWindow.getItemIndex();
|
|
var yScroll = this._stockItemWindow.getItemScrollbar().getScrollYValue();
|
|
|
|
this._unit = this._unitList.getData(index);
|
|
this._updateItemAndWindow(-1);
|
|
|
|
// ストックウインドウは以前の位置を維持する
|
|
this._stockItemWindow.setItemIndex(itemIndex);
|
|
this._stockItemWindow.getItemScrollbar().setScrollYValue(yScroll);
|
|
|
|
// ユニットウインドウは先頭を指す
|
|
this._unitItemWindow.setItemIndex(0);
|
|
},
|
|
|
|
_updateItemAndWindow: function(index) {
|
|
if (index === 0) {
|
|
this._resetUnitItemArray();
|
|
}
|
|
else if (index === 1) {
|
|
this._deleteFromStock();
|
|
this._resetStockItemArray();
|
|
}
|
|
else {
|
|
// 蘇生が生じている可能性があるため、再構築する
|
|
this._unitList = this._createUnitList();
|
|
|
|
this._resetUnitItemArray();
|
|
this._resetStockItemArray();
|
|
}
|
|
|
|
this._unitSimpleWindow.setFaceUnitData(this._unit);
|
|
this._itemUserWindow.setItemUserData(this._unit);
|
|
},
|
|
|
|
_resetUnitItemArray: function() {
|
|
var i, item;
|
|
var count = UnitItemControl.getPossessionItemCount(this._unit);
|
|
var unitItemArray = [];
|
|
var unitAvailableArray = [];
|
|
|
|
for (i = 0; i < count; i++) {
|
|
item = UnitItemControl.getItem(this._unit, i);
|
|
if (!this._itemMessenger.isItemAllowed(this._unit, item)) {
|
|
continue;
|
|
}
|
|
|
|
unitItemArray.push(item);
|
|
unitAvailableArray.push(this._itemMessenger.isUsable(this._unit, item));
|
|
}
|
|
|
|
this._unitItemWindow.getItemScrollbar().setObjectArray(unitItemArray);
|
|
this._unitItemWindow.getItemScrollbar().setAvailableArray(unitAvailableArray);
|
|
},
|
|
|
|
_resetStockItemArray: function() {
|
|
var i, item;
|
|
var count = StockItemControl.getStockItemCount();
|
|
var stockItemArray = [];
|
|
var stockAvailableArray = [];
|
|
|
|
for (i = 0; i < count; i++) {
|
|
item = StockItemControl.getStockItem(i);
|
|
if (!this._itemMessenger.isItemAllowed(this._unit, item)) {
|
|
continue;
|
|
}
|
|
|
|
stockItemArray.push(item);
|
|
stockAvailableArray.push(this._itemMessenger.isUsable(this._unit, item));
|
|
}
|
|
|
|
this._stockItemWindow.getItemScrollbar().setObjectArray(stockItemArray);
|
|
this._stockItemWindow.getItemScrollbar().setAvailableArray(stockAvailableArray);
|
|
},
|
|
|
|
_deleteFromStock: function() {
|
|
var i, item;
|
|
var count = StockItemControl.getStockItemCount();
|
|
|
|
for (i = 0; i < count; i++) {
|
|
item = StockItemControl.getStockItem(i);
|
|
if (item.isWeapon()) {
|
|
continue;
|
|
}
|
|
|
|
if (ItemControl.isItemBroken(item)) {
|
|
StockItemControl.cutStockItem(i);
|
|
return;
|
|
}
|
|
}
|
|
},
|
|
|
|
_isItemAvailable: function() {
|
|
var itemIndex = this._getItemListWindow().getItemIndex();
|
|
var arr = this._getItemListWindow().getItemScrollbar().getAvailableArray();
|
|
|
|
return arr[itemIndex];
|
|
},
|
|
|
|
_getItemListWindow: function() {
|
|
var index = this._itemUseOperationWindow.getOperationIndex();
|
|
|
|
return index === 0 ? this._unitItemWindow : this._stockItemWindow;
|
|
},
|
|
|
|
_playOperationBlockSound: function() {
|
|
MediaControl.soundDirect('operationblock');
|
|
},
|
|
|
|
_processMode: function(mode) {
|
|
if (mode === ItemUseScreenMode.OPERATION) {
|
|
this._itemUseOperationWindow.enableSelectCursor(true);
|
|
|
|
this._getItemListWindow().setActive(false);
|
|
this._getItemListWindow().setForceSelect(-1);
|
|
}
|
|
else if (mode === ItemUseScreenMode.LIST) {
|
|
this._getItemListWindow().enableSelectCursor(true);
|
|
this._itemUseOperationWindow.enableSelectCursor(false);
|
|
this._itemInfoWindow.setInfoItem(this._getItemListWindow().getCurrentItem());
|
|
}
|
|
else if (mode === ItemUseScreenMode.MESSENGER) {
|
|
this._getItemListWindow().enableSelectCursor(false);
|
|
}
|
|
else if (mode === ItemUseScreenMode.HELP) {
|
|
this._getItemListWindow().enableSelectCursor(false);
|
|
}
|
|
|
|
this.changeCycleMode(mode);
|
|
},
|
|
|
|
_createSimpleWindow: function() {
|
|
var obj;
|
|
|
|
if (DataConfig.isHighResolution()) {
|
|
obj = createWindowObject(UnitSimpleWindow, this);
|
|
}
|
|
else {
|
|
obj = createWindowObject(UnitSimpleNameWindow, this);
|
|
}
|
|
|
|
return obj;
|
|
},
|
|
|
|
_createUnitList: function() {
|
|
return PlayerList.getAliveList();
|
|
}
|
|
}
|
|
);
|
|
|
|
var ItemMessengerMode = {
|
|
QUESTION: 0,
|
|
SELECTION: 1,
|
|
USE: 2
|
|
};
|
|
|
|
var ItemMessenger = defineObject(BaseObject,
|
|
{
|
|
_unit: null,
|
|
_item: null,
|
|
_questionWindow: null,
|
|
_itemSelection: null,
|
|
_itemUse: null,
|
|
_isUsed: false,
|
|
|
|
setMessenger: function(unit, item) {
|
|
this._unit = unit;
|
|
this._item = item;
|
|
this._isUsed = false;
|
|
|
|
if (this._isQuestionRequired()) {
|
|
this._setQuestionData();
|
|
}
|
|
else {
|
|
this._checkSelectionAndUse();
|
|
}
|
|
},
|
|
|
|
moveMessenger: function() {
|
|
var mode = this.getCycleMode();
|
|
var result = MoveResult.CONTINUE;
|
|
|
|
if (mode === ItemMessengerMode.QUESTION) {
|
|
result = this._moveQuestion();
|
|
}
|
|
else if (mode === ItemMessengerMode.SELECTION) {
|
|
result = this._moveSelection();
|
|
}
|
|
else if (mode === ItemMessengerMode.USE) {
|
|
result = this._moveUse();
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
drawMessenger: function() {
|
|
var mode = this.getCycleMode();
|
|
|
|
if (mode === ItemMessengerMode.QUESTION) {
|
|
this._drawQuestion();
|
|
}
|
|
else if (mode === ItemMessengerMode.SELECTION) {
|
|
this._drawSelection();
|
|
}
|
|
else if (mode === ItemMessengerMode.USE) {
|
|
this._drawUse();
|
|
}
|
|
},
|
|
|
|
isItemUsed: function() {
|
|
return this._isUsed;
|
|
},
|
|
|
|
isItemAllowed: function(unit, item) {
|
|
if (item.isWeapon()) {
|
|
return false;
|
|
}
|
|
|
|
if (!this._isItemTypeAllowed(unit, item)) {
|
|
return false;
|
|
}
|
|
|
|
if (!this._isWandAllowed(unit, item)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
|
|
isUsable: function(unit, item) {
|
|
return ItemControl.isItemUsable(unit, item);
|
|
},
|
|
|
|
_isItemTypeAllowed: function(unit, item) {
|
|
var result = false;
|
|
var itemType = item.getItemType();
|
|
var rangeType = item.getRangeType();
|
|
|
|
if (itemType === ItemType.DOPING) {
|
|
result = rangeType === SelectionRangeType.SELFONLY;
|
|
}
|
|
else if (itemType === ItemType.CLASSCHANGE) {
|
|
result = true;
|
|
}
|
|
else if (itemType === ItemType.SKILLGET) {
|
|
result = rangeType === SelectionRangeType.SELFONLY;
|
|
}
|
|
else if (itemType === ItemType.RESURRECTION) {
|
|
result = true;
|
|
}
|
|
else if (itemType === ItemType.DURABILITY) {
|
|
result = rangeType === SelectionRangeType.SELFONLY;
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
_isWandAllowed: function(unit, item) {
|
|
return true;
|
|
},
|
|
|
|
_isQuestionRequired: function() {
|
|
var result = false;
|
|
var itemType = this._item.getItemType();
|
|
|
|
if (itemType === ItemType.DOPING || itemType === ItemType.SKILLGET) {
|
|
result = true;
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
_moveQuestion: function() {
|
|
if (this._questionWindow.moveWindow() !== MoveResult.CONTINUE) {
|
|
if (this._questionWindow.getQuestionAnswer() === QuestionAnswer.YES) {
|
|
this._checkSelectionAndUse();
|
|
}
|
|
else {
|
|
return MoveResult.END;
|
|
}
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveSelection: function() {
|
|
if (this._itemSelection.moveItemSelectionCycle() !== MoveResult.CONTINUE) {
|
|
if (this._itemSelection.isSelection()) {
|
|
this._useItem();
|
|
this.changeCycleMode(ItemMessengerMode.USE);
|
|
}
|
|
else {
|
|
return MoveResult.END;
|
|
}
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveUse: function() {
|
|
if (this._itemUse.moveUseCycle() !== MoveResult.CONTINUE) {
|
|
this._isUsed = true;
|
|
return MoveResult.END;
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_drawQuestion: function() {
|
|
var width = this._questionWindow.getWindowWidth();
|
|
var height = this._questionWindow.getWindowHeight();
|
|
var x = LayoutControl.getCenterX(-1, width);
|
|
var y = LayoutControl.getCenterY(-1, height);
|
|
|
|
this._questionWindow.drawWindow(x, y);
|
|
},
|
|
|
|
_drawSelection: function() {
|
|
this._itemSelection.drawItemSelectionCycle();
|
|
},
|
|
|
|
_drawUse: function() {
|
|
this._itemUse.drawUseCycle();
|
|
},
|
|
|
|
_setQuestionData: function() {
|
|
this._questionWindow = createWindowObject(QuestionWindow, this);
|
|
this._questionWindow.setQuestionMessage(StringTable.ItemUse_Question);
|
|
this._questionWindow.setQuestionActive(true);
|
|
this.changeCycleMode(ItemMessengerMode.QUESTION);
|
|
},
|
|
|
|
_checkSelectionAndUse: function() {
|
|
this._itemSelection = ItemPackageControl.getItemSelectionObject(this._item);
|
|
if (this._itemSelection !== null) {
|
|
if (this._itemSelection.enterItemSelectionCycle(this._unit, this._item) === EnterResult.NOTENTER) {
|
|
this._useItem();
|
|
this.changeCycleMode(ItemMessengerMode.USE);
|
|
}
|
|
else {
|
|
this.changeCycleMode(ItemMessengerMode.SELECTION);
|
|
}
|
|
}
|
|
},
|
|
|
|
_useItem: function() {
|
|
var itemTargetInfo;
|
|
|
|
this._itemUse = ItemPackageControl.getItemUseParent(this._item);
|
|
itemTargetInfo = this._itemSelection.getResultItemTargetInfo();
|
|
|
|
itemTargetInfo.unit = this._unit;
|
|
itemTargetInfo.item = this._item;
|
|
itemTargetInfo.isPlayerSideCall = true;
|
|
this._itemUse.enterUseCycle(itemTargetInfo);
|
|
}
|
|
}
|
|
);
|
|
|
|
var ItemUserWindow = defineObject(BaseWindow,
|
|
{
|
|
_unit: null,
|
|
_statusScrollbar: null,
|
|
_skillInteraction: null,
|
|
|
|
initialize: function() {
|
|
this._statusScrollbar = createScrollbarObject(ItemUseStatusScrollbar, this);
|
|
this._skillInteraction = createObject(SkillInteractionLong);
|
|
},
|
|
|
|
setItemUserData: function(unit) {
|
|
var i;
|
|
var weapon = ItemControl.getEquippedWeapon(unit);
|
|
var arr = SkillControl.getSkillMixArray(unit, weapon, -1, '');
|
|
var count = arr.length;
|
|
var newSkillArray = [];
|
|
|
|
for (i = 0; i < count; i++) {
|
|
if (!arr[i].skill.isHidden()) {
|
|
newSkillArray.push(arr[i]);
|
|
}
|
|
}
|
|
|
|
this._skillInteraction.setSkillArray(newSkillArray);
|
|
|
|
this._statusScrollbar.setStatusFromUnit(unit);
|
|
|
|
this._unit = unit;
|
|
},
|
|
|
|
moveWindowContent: function() {
|
|
this._statusScrollbar.moveScrollbarContent();
|
|
|
|
this._skillInteraction.moveInteraction();
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawWindowContent: function(x, y) {
|
|
this._drawTop(x, y);
|
|
|
|
this._statusScrollbar.drawScrollbar(x, y + 90);
|
|
|
|
y = y + this.getWindowHeight() - 60;
|
|
this._skillInteraction.getInteractionScrollbar().drawScrollbar(x, y);
|
|
},
|
|
|
|
getWindowWidth: function() {
|
|
return ItemRenderer.getItemWindowWidth() + 20;
|
|
},
|
|
|
|
getWindowHeight: function() {
|
|
if (root.getGameAreaHeight() > 480) {
|
|
return 400;
|
|
}
|
|
else {
|
|
return 320;
|
|
}
|
|
},
|
|
|
|
getSkillInteraction: function() {
|
|
return this._skillInteraction;
|
|
},
|
|
|
|
_drawTop: function(x, y) {
|
|
this._drawClass(x, y);
|
|
this._drawClassName(x, y);
|
|
this._drawUnitLevel(x, y);
|
|
this._drawUnitHp(x, y);
|
|
},
|
|
|
|
_drawClass: function(xBase, yBase) {
|
|
var x = xBase + 42;
|
|
var y = yBase + 10;
|
|
|
|
UnitRenderer.drawDefaultUnit(this._unit, x, y, null);
|
|
},
|
|
|
|
_drawClassName: function(xBase, yBase) {
|
|
var textui = this.getWindowTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
var cls = this._unit.getClass();
|
|
var range = createRangeObject(xBase, yBase + 47, 120, 30);
|
|
|
|
TextRenderer.drawRangeText(range, TextFormat.CENTER, cls.getName(), -1, color, font);
|
|
},
|
|
|
|
_drawUnitLevel: function(xBase, yBase) {
|
|
var x = xBase + 127;
|
|
var y = yBase + 5;
|
|
|
|
ContentRenderer.drawLevelInfo(x, y, this._unit);
|
|
},
|
|
|
|
_drawUnitHp: function(xBase, yBase) {
|
|
var x = xBase + 127;
|
|
var y = yBase + 45;
|
|
var pic = root.queryUI('unit_gauge');
|
|
|
|
ContentRenderer.drawUnitHpZone(x, y, this._unit, pic);
|
|
}
|
|
}
|
|
);
|
|
|
|
var ItemUseOperationWindow = defineObject(BaseWindow,
|
|
{
|
|
_scrollbar: null,
|
|
|
|
setItemUseOperationData: function() {
|
|
var arr = [StringTable.ItemUse_Unit, StringTable.ItemUse_Stock];
|
|
|
|
this._scrollbar = createScrollbarObject(ItemUseOperationScrollbar, this);
|
|
this._scrollbar.setScrollFormation(arr.length, 1);
|
|
this._scrollbar.setObjectArray(arr);
|
|
},
|
|
|
|
moveWindowContent: function() {
|
|
return this._scrollbar.moveInput();
|
|
},
|
|
|
|
drawWindowContent: function(x, y) {
|
|
this._scrollbar.drawScrollbar(x, y);
|
|
},
|
|
|
|
getWindowWidth: function() {
|
|
return ItemRenderer.getItemWindowWidth();
|
|
},
|
|
|
|
getWindowHeight: function() {
|
|
return this._scrollbar.getScrollbarHeight() + (this.getWindowYPadding() * 2);
|
|
},
|
|
|
|
getOperationIndex: function() {
|
|
return this._scrollbar.getIndex();
|
|
},
|
|
|
|
enableSelectCursor: function(isActive) {
|
|
this._scrollbar.enableSelectCursor(isActive);
|
|
}
|
|
}
|
|
);
|
|
|
|
var ItemUseOperationScrollbar = defineObject(BaseScrollbar,
|
|
{
|
|
drawScrollContent: function(x, y, object, isSelect, index) {
|
|
var color;
|
|
var textui = this.getParentTextUI();
|
|
var font = textui.getFont();
|
|
var length = this._getTextLength();
|
|
|
|
if (this._isEnabled(index)) {
|
|
color = textui.getColor();
|
|
}
|
|
else {
|
|
color = ColorValue.DISABLE;
|
|
}
|
|
|
|
TextRenderer.drawKeywordText(x, y, object, length, color, font);
|
|
},
|
|
|
|
playSelectSound: function() {
|
|
var index = this.getIndex();
|
|
var isSelect = this._isEnabled(index);
|
|
|
|
if (isSelect) {
|
|
MediaControl.soundDirect('commandselect');
|
|
}
|
|
else {
|
|
MediaControl.soundDirect('operationblock');
|
|
}
|
|
},
|
|
|
|
getScrollbarWidth: function() {
|
|
return ItemRenderer.getItemWidth();
|
|
},
|
|
|
|
getObjectWidth: function() {
|
|
return Math.floor(ItemRenderer.getItemWidth() / 3);
|
|
},
|
|
|
|
getObjectHeight: function() {
|
|
return DefineControl.getTextPartsHeight() - 3;
|
|
},
|
|
|
|
_getTextLength: function() {
|
|
return this.getObjectWidth();
|
|
},
|
|
|
|
_isEnabled: function(index) {
|
|
return this.getParentInstance().getParentInstance().isTargetSelectable(index);
|
|
}
|
|
}
|
|
);
|