827 lines
20 KiB
JavaScript
827 lines
20 KiB
JavaScript
|
|
var ItemInfoWindow = defineObject(BaseWindow,
|
|
{
|
|
_item: null,
|
|
_groupArray: null,
|
|
_windowHeight: 0,
|
|
|
|
// BaseWindowのプロパティの置き換え
|
|
_isWindowEnabled: false,
|
|
|
|
moveWindowContent: function() {
|
|
var i, count;
|
|
|
|
if (this._item === null) {
|
|
return MoveResult.CONTINUE;
|
|
}
|
|
|
|
count = this._groupArray.length;
|
|
for (i = 0; i < count; i++) {
|
|
this._groupArray[i].moveItemSentence();
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawWindowContent: function(x, y) {
|
|
var i, count;
|
|
|
|
if (this._item === null) {
|
|
return;
|
|
}
|
|
|
|
count = this._groupArray.length;
|
|
for (i = 0; i < count; i++) {
|
|
this._groupArray[i].drawItemSentence(x, y, this._item);
|
|
y += this._groupArray[i].getItemSentenceCount(this._item) * ItemInfoRenderer.getSpaceY();
|
|
}
|
|
},
|
|
|
|
getWindowWidth: function() {
|
|
return ItemRenderer.getItemWindowWidth();
|
|
},
|
|
|
|
getWindowHeight: function() {
|
|
return this._windowHeight;
|
|
},
|
|
|
|
setInfoItem: function(item) {
|
|
var i, count;
|
|
var partsCount = 0;
|
|
|
|
this._item = item;
|
|
this._groupArray = [];
|
|
this._windowHeight = 0;
|
|
|
|
if (this._item === null) {
|
|
// ウインドウの枠などが描画されないようにする
|
|
this.enableWindow(false);
|
|
return;
|
|
}
|
|
|
|
if (this._item.isWeapon()) {
|
|
this._configureWeapon(this._groupArray);
|
|
}
|
|
else {
|
|
this._configureItem(this._groupArray);
|
|
}
|
|
|
|
count = this._groupArray.length;
|
|
for (i = 0; i < count; i++) {
|
|
this._groupArray[i].setParentWindow(this);
|
|
partsCount += this._groupArray[i].getItemSentenceCount(this._item);
|
|
}
|
|
|
|
this._windowHeight = (partsCount + 1) * ItemInfoRenderer.getSpaceY();
|
|
|
|
this.enableWindow(true);
|
|
},
|
|
|
|
getInfoItem: function() {
|
|
return this._item;
|
|
},
|
|
|
|
_configureWeapon: function(groupArray) {
|
|
groupArray.appendObject(ItemSentence.AttackAndHit);
|
|
groupArray.appendObject(ItemSentence.CriticalAndRange);
|
|
groupArray.appendObject(ItemSentence.WeaponLevelAndWeight);
|
|
groupArray.appendObject(ItemSentence.AdditionState);
|
|
groupArray.appendObject(ItemSentence.WeaponOption);
|
|
groupArray.appendObject(ItemSentence.Effective);
|
|
groupArray.appendObject(ItemSentence.ReverseWeapon);
|
|
groupArray.appendObject(ItemSentence.Skill);
|
|
groupArray.appendObject(ItemSentence.Only);
|
|
groupArray.appendObject(ItemSentence.Bonus);
|
|
},
|
|
|
|
_configureItem: function(groupArray) {
|
|
groupArray.appendObject(ItemSentence.WeaponLevelAndWeight);
|
|
groupArray.appendObject(ItemSentence.Info);
|
|
groupArray.appendObject(ItemSentence.ResistState);
|
|
groupArray.appendObject(ItemSentence.Skill);
|
|
groupArray.appendObject(ItemSentence.Target);
|
|
groupArray.appendObject(ItemSentence.Only);
|
|
groupArray.appendObject(ItemSentence.Bonus);
|
|
}
|
|
}
|
|
);
|
|
|
|
var BaseItemSentence = defineObject(BaseObject,
|
|
{
|
|
_itemInfoWindow: null,
|
|
|
|
setParentWindow: function(itemInfoWindow) {
|
|
this._itemInfoWindow = itemInfoWindow;
|
|
},
|
|
|
|
moveItemSentence: function() {
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawItemSentence: function(x, y, item) {
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return 0;
|
|
}
|
|
}
|
|
);
|
|
|
|
var ItemSentence = {};
|
|
|
|
ItemSentence.AttackAndHit = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var text;
|
|
|
|
text = root.queryCommand('attack_capacity');
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
NumberRenderer.drawRightNumber(x, y, item.getPow());
|
|
|
|
x += 42;
|
|
|
|
text = root.queryCommand('hit_capacity');
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
NumberRenderer.drawRightNumber(x, y, item.getHit());
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return 1;
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.CriticalAndRange = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var text;
|
|
|
|
text = root.queryCommand('critical_capacity');
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
NumberRenderer.drawRightNumber(x, y, item.getCritical());
|
|
|
|
x += 42;
|
|
|
|
text = root.queryCommand('range_capacity');
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
this._drawRange(x, y, item);
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return 1;
|
|
},
|
|
|
|
_drawRange: function(x, y, item) {
|
|
var startRange = item.getStartRange();
|
|
var endRange = item.getEndRange();
|
|
var textui = root.queryTextUI('default_window');
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
if (startRange === endRange) {
|
|
NumberRenderer.drawRightNumber(x, y, startRange);
|
|
}
|
|
else {
|
|
NumberRenderer.drawRightNumber(x, y, startRange);
|
|
TextRenderer.drawKeywordText(x + 17, y, StringTable.SignWord_WaveDash, -1, color, font);
|
|
NumberRenderer.drawRightNumber(x + 40, y, endRange);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.WeaponLevelAndWeight = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var text;
|
|
var dx = 0;
|
|
|
|
if (this._isWeaponLevelDisplayable(item)) {
|
|
text = root.queryCommand('wlv_param');
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
NumberRenderer.drawRightNumber(x, y, item.getWeaponLevel());
|
|
|
|
x += 42;
|
|
}
|
|
|
|
if (this._isWeightDisplayable(item)) {
|
|
text = root.queryCommand('weight_capacity');
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
NumberRenderer.drawRightNumber(x, y, item.getWeight());
|
|
}
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
var isWeaponLevel = this._isWeaponLevelDisplayable(item);
|
|
var isWeight = this._isWeightDisplayable(item);
|
|
|
|
return (isWeaponLevel || isWeight) ? 1 : 0;
|
|
},
|
|
|
|
_isWeaponLevelDisplayable: function(item) {
|
|
if (!item.isWeapon()) {
|
|
return false;
|
|
}
|
|
|
|
return DataConfig.isWeaponLevelDisplayable();
|
|
},
|
|
|
|
_isWeightDisplayable: function(item) {
|
|
// アイテムについては、重さが0の場合は、その時点で非表示とする
|
|
if (!item.isWeapon() && item.getWeight() === 0) {
|
|
return false;
|
|
}
|
|
|
|
return DataConfig.isItemWeightDisplayable();
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.AdditionState = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var text, stateInvocation;
|
|
var textui = root.queryTextUI('default_window');
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
if (!this._isState(item)) {
|
|
return;
|
|
}
|
|
|
|
stateInvocation = item.getStateInvocation();
|
|
|
|
text = StringTable.State_Addition;
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
|
|
text = InvocationRenderer.getInvocationText(stateInvocation.getInvocationValue(), stateInvocation.getInvocationType());
|
|
TextRenderer.drawKeywordText(x, y, stateInvocation.getState().getName() + ' ' + text, -1, color, font);
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return this._isState(item) ? 1 : 0;
|
|
},
|
|
|
|
_isState: function(item) {
|
|
return item.getStateInvocation().getState() !== null;
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.WeaponOption = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var text;
|
|
var attackCount = item.getAttackCount();
|
|
|
|
if (attackCount > 1) {
|
|
ItemInfoRenderer.drawKeyword(x, y, attackCount + StringTable.ItemWord_MultiAttack);
|
|
x += 100;
|
|
}
|
|
|
|
text = this._getWeaponOptionText(item);
|
|
if (text !== '') {
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
}
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return (item.getAttackCount() > 1 || item.getWeaponOption() !== WeaponOption.NONE) ? 1 : 0;
|
|
},
|
|
|
|
_getWeaponOptionText: function(item) {
|
|
var text;
|
|
var option = item.getWeaponOption();
|
|
|
|
if (option === WeaponOption.HPABSORB) {
|
|
text = StringTable.WeaponOption_HpAbsorb;
|
|
}
|
|
else if (option === WeaponOption.NOGUARD) {
|
|
text = StringTable.WeaponOption_NoGuard;
|
|
}
|
|
else if (option === WeaponOption.HPMINIMUM) {
|
|
text = StringTable.WeaponOption_HpMinimum;
|
|
}
|
|
else if (option === WeaponOption.HALVEATTACK) {
|
|
text = StringTable.WeaponOption_HalveAttack;
|
|
}
|
|
else if (option === WeaponOption.HALVEATTACKBREAK) {
|
|
text = StringTable.WeaponOption_HalveAttackBreak;
|
|
}
|
|
else if (option === WeaponOption.SEALATTACK) {
|
|
text = StringTable.WeaponOption_SealAttack;
|
|
}
|
|
else if (option === WeaponOption.SEALATTACKBREAK) {
|
|
text = StringTable.WeaponOption_SealAttackBreak;
|
|
}
|
|
else {
|
|
text = '';
|
|
}
|
|
|
|
return text;
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.Effective = defineObject(BaseItemSentence,
|
|
{
|
|
_aggregationViewer: null,
|
|
|
|
setParentWindow: function(itemInfoWindow) {
|
|
var item = itemInfoWindow.getInfoItem();
|
|
var aggregation = this._getAggregation(item);
|
|
|
|
BaseItemSentence.setParentWindow.call(this, itemInfoWindow);
|
|
|
|
this._aggregationViewer = createObject(AggregationViewer);
|
|
this._aggregationViewer.setAggregationViewer(aggregation);
|
|
},
|
|
|
|
moveAggregationViewer: function() {
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawItemSentence: function(x, y, item) {
|
|
this._aggregationViewer.drawAggregationViewer(x, y, this._getName());
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return this._aggregationViewer.getAggregationViewerCount();
|
|
},
|
|
|
|
_getName: function() {
|
|
return root.queryCommand('effective_capacity');
|
|
},
|
|
|
|
_getAggregation: function(item) {
|
|
return item.getEffectiveAggregation();
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.ReverseWeapon = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var text;
|
|
|
|
if (this.getItemSentenceCount(item) === 1) {
|
|
text = Miscellaneous.isPhysicsBattle(item) ? StringTable.ReverseWeapon_Physics : StringTable.ReverseWeapon_Magic;
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
}
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return (item.isWeapon() && item.isReverseWeapon()) ? 1 : 0;
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.ResistState = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
ItemInfoRenderer.drawState(x, y, item.getStateGroup(), false);
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return ItemInfoRenderer.getStateCount(item.getStateGroup());
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.Info = defineObject(BaseItemSentence,
|
|
{
|
|
_itemInfo: null,
|
|
|
|
setParentWindow: function(itemInfoWindow) {
|
|
var item = itemInfoWindow.getInfoItem();
|
|
|
|
BaseItemSentence.setParentWindow.call(this, itemInfoWindow);
|
|
|
|
this._itemInfo = ItemPackageControl.getItemInfoObject(item);
|
|
if (this._itemInfo === null) {
|
|
return;
|
|
}
|
|
|
|
this._itemInfo.setInfoItem(item);
|
|
},
|
|
|
|
moveItemSentence: function() {
|
|
if (this._itemInfo === null) {
|
|
return MoveResult.CONTINUE;
|
|
}
|
|
|
|
return this._itemInfo.moveItemInfoCycle();
|
|
},
|
|
|
|
drawItemSentence: function(x, y, item) {
|
|
if (this._itemInfo === null) {
|
|
return;
|
|
}
|
|
|
|
this._itemInfo.drawItemInfoCycle(x, y);
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
if (this._itemInfo === null) {
|
|
return 0;
|
|
}
|
|
|
|
return this._itemInfo.getInfoPartsCount();
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.Skill = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var refList = item.getSkillReferenceList();
|
|
|
|
if (refList.getTypeCount() === 0) {
|
|
return 0;
|
|
}
|
|
|
|
ItemInfoRenderer.drawKeyword(x, y, root.queryCommand('skill_object'));
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
ItemInfoRenderer.drawList(x, y, refList);
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
var refList = item.getSkillReferenceList();
|
|
|
|
return refList.getTypeCount() - refList.getHiddenCount();
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.Target = defineObject(BaseItemSentence,
|
|
{
|
|
_aggregationViewer: null,
|
|
_matchtype: 0,
|
|
|
|
setParentWindow: function(itemInfoWindow) {
|
|
var item = itemInfoWindow.getInfoItem();
|
|
var aggregation = this._getAggregation(item);
|
|
|
|
BaseItemSentence.setParentWindow.call(this, itemInfoWindow);
|
|
|
|
this._aggregationViewer = createObject(AggregationViewer);
|
|
this._aggregationViewer.setEnabled(DataConfig.isAggregationVisible());
|
|
this._aggregationViewer.setAggregationViewer(aggregation);
|
|
|
|
this._matchtype = aggregation.getMatchType();
|
|
},
|
|
|
|
moveAggregationViewer: function() {
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawItemSentence: function(x, y, item) {
|
|
this._aggregationViewer.drawAggregationViewer(x, y, this._getMatchName());
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return this._aggregationViewer.getAggregationViewerCount();
|
|
},
|
|
|
|
_getMatchName: function() {
|
|
var text;
|
|
|
|
if (this._matchtype === MatchType.MATCH) {
|
|
text = StringTable.Aggregation_Match;
|
|
}
|
|
else if (this._matchtype === MatchType.MISMATCH) {
|
|
text = StringTable.Aggregation_Mismatch;
|
|
}
|
|
else if (this._matchtype === MatchType.MATCHALL) {
|
|
text = StringTable.Aggregation_MatchAll;
|
|
}
|
|
else {
|
|
text = StringTable.Aggregation_MismatchAll;
|
|
}
|
|
|
|
return text;
|
|
},
|
|
|
|
_getAggregation: function(item) {
|
|
return item.getTargetAggregation();
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.Only = defineObject(BaseItemSentence,
|
|
{
|
|
_aggregationViewer: null,
|
|
|
|
setParentWindow: function(itemInfoWindow) {
|
|
var item = itemInfoWindow.getInfoItem();
|
|
var aggregation = this._getAggregation(item);
|
|
|
|
BaseItemSentence.setParentWindow.call(this, itemInfoWindow);
|
|
|
|
this._aggregationViewer = createObject(AggregationViewer);
|
|
this._aggregationViewer.setAggregationViewer(aggregation);
|
|
},
|
|
|
|
moveAggregationViewer: function() {
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawItemSentence: function(x, y, item) {
|
|
this._aggregationViewer.drawAggregationViewer(x, y, this._getName());
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return this._aggregationViewer.getAggregationViewerCount();
|
|
},
|
|
|
|
_getName: function() {
|
|
return root.queryCommand('only_capacity');
|
|
},
|
|
|
|
_getAggregation: function(item) {
|
|
return item.getAvailableAggregation();
|
|
}
|
|
}
|
|
);
|
|
|
|
ItemSentence.Bonus = defineObject(BaseItemSentence,
|
|
{
|
|
drawItemSentence: function(x, y, item) {
|
|
var i, n;
|
|
var count = ParamGroup.getParameterCount();
|
|
|
|
for (i = 0; i < count; i++) {
|
|
n = ParamGroup.getParameterBonus(item, i);
|
|
if (n !== 0) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (i === count) {
|
|
return 0;
|
|
}
|
|
|
|
ItemInfoRenderer.drawKeyword(x, y, root.queryCommand('support_capacity'));
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
ItemInfoRenderer.drawDoping(x, y, item, true);
|
|
},
|
|
|
|
getItemSentenceCount: function(item) {
|
|
return ItemInfoRenderer.getDopingCount(item, true);
|
|
}
|
|
}
|
|
);
|
|
|
|
var ItemInfoRenderer = {
|
|
drawKeyword: function(x, y, text) {
|
|
var textui = this.getTextUI();
|
|
var color = ColorValue.KEYWORD;
|
|
var font = textui.getFont();
|
|
|
|
TextRenderer.drawKeywordText(x, y, text, -1, color, font);
|
|
},
|
|
|
|
drawList: function(x, y, refList) {
|
|
var i, data;
|
|
var count = refList.getTypeCount();
|
|
var objectType = refList.getObjectType();
|
|
var isCheck = false;
|
|
var textui = this.getTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
if (objectType === ObjectType.SKILL || objectType === ObjectType.STATE) {
|
|
isCheck = true;
|
|
}
|
|
|
|
// 名前の長さは一定でないため、同じ行に複数描画するのは困難。
|
|
// このため、名前の数だけ行も増えていく。
|
|
for (i = 0 ; i < count; i++) {
|
|
data = refList.getTypeData(i);
|
|
if (!isCheck || !data.isHidden()) {
|
|
TextRenderer.drawKeywordText(x, y, data.getName(), -1, color, font);
|
|
y += this.getSpaceY();
|
|
}
|
|
}
|
|
},
|
|
|
|
getSpaceX: function() {
|
|
return 60;
|
|
},
|
|
|
|
getSpaceY: function() {
|
|
return 25;
|
|
},
|
|
|
|
getTextUI: function() {
|
|
return root.queryTextUI('default_window');
|
|
},
|
|
|
|
getDopingCount: function(item, isParameter) {
|
|
var i, n;
|
|
var count = ParamGroup.getParameterCount();
|
|
var count2 = 0;
|
|
|
|
for (i = 0; i < count; i++) {
|
|
if (isParameter) {
|
|
n = ParamGroup.getParameterBonus(item, i);
|
|
}
|
|
else {
|
|
n = ParamGroup.getDopingParameter(item, i);
|
|
}
|
|
|
|
if (n !== 0) {
|
|
count2++;
|
|
}
|
|
}
|
|
|
|
return count2;
|
|
},
|
|
|
|
drawDoping: function(x, y, item, isParameter) {
|
|
var i, n, text;
|
|
var count = ParamGroup.getParameterCount();
|
|
var count2 = 0;
|
|
var xBase = x;
|
|
var textui = this.getTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
for (i = 0; i < count; i++) {
|
|
if (isParameter) {
|
|
n = ParamGroup.getParameterBonus(item, i);
|
|
}
|
|
else {
|
|
n = ParamGroup.getDopingParameter(item, i);
|
|
}
|
|
|
|
if (n !== 0) {
|
|
text = ParamGroup.getParameterName(i);
|
|
TextRenderer.drawKeywordText(x, y, text, -1, color, font);
|
|
|
|
x += TextRenderer.getTextWidth(text, font) + 5;
|
|
TextRenderer.drawSignText(x, y, n > 0 ? ' + ': ' - ');
|
|
|
|
x += 10;
|
|
x += DefineControl.getNumberSpace();
|
|
|
|
if (n < 0) {
|
|
n *= -1;
|
|
}
|
|
NumberRenderer.drawRightNumber(x, y, n);
|
|
x += 20;
|
|
|
|
y += this.getSpaceY();
|
|
|
|
count2++;
|
|
x = xBase;
|
|
}
|
|
}
|
|
|
|
return count2;
|
|
},
|
|
|
|
getStateCount: function(stateGroup) {
|
|
var count, refList;
|
|
|
|
if (stateGroup.isAllBadState()) {
|
|
count = 1;
|
|
}
|
|
else {
|
|
refList = stateGroup.getStateReferenceList();
|
|
count = refList.getTypeCount() - refList.getHiddenCount();
|
|
}
|
|
|
|
return count;
|
|
},
|
|
|
|
drawState: function(x, y, stateGroup, isRecovery) {
|
|
var text;
|
|
var textui = this.getTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
if (this.getStateCount(stateGroup) === 0) {
|
|
return;
|
|
}
|
|
|
|
if (isRecovery) {
|
|
text = StringTable.State_Recovery;
|
|
}
|
|
else {
|
|
text = StringTable.State_Regist;
|
|
}
|
|
|
|
ItemInfoRenderer.drawKeyword(x, y, text);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
|
|
if (stateGroup.isAllBadState()) {
|
|
TextRenderer.drawKeywordText(x, y, StringTable.State_AllBadState, -1, color, font);
|
|
}
|
|
else {
|
|
ItemInfoRenderer.drawList(x, y, stateGroup.getStateReferenceList());
|
|
}
|
|
}
|
|
};
|
|
|
|
var AggregationViewer = defineObject(BaseObject,
|
|
{
|
|
_arr: null,
|
|
_isEnabled: true,
|
|
|
|
setEnabled: function(isEnabled) {
|
|
this._isEnabled = isEnabled;
|
|
},
|
|
|
|
setAggregationViewer: function(aggregation) {
|
|
var i, count, obj;
|
|
|
|
this._arr = [];
|
|
|
|
if (!this._isEnabled) {
|
|
return;
|
|
}
|
|
|
|
count = aggregation.getObjectCount();
|
|
for (i = 0; i < count; i++) {
|
|
obj = {};
|
|
obj.name = aggregation.getObjectData(i).getName();
|
|
obj.objecttype = aggregation.getObjectType(i);
|
|
|
|
if (this._isUsed(this._arr, obj.name)) {
|
|
continue;
|
|
}
|
|
|
|
this._arr.push(obj);
|
|
}
|
|
},
|
|
|
|
moveAggregationViewer: function() {
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawAggregationViewer: function(x, y, name) {
|
|
if (this._arr.length === 0) {
|
|
return 0;
|
|
}
|
|
|
|
ItemInfoRenderer.drawKeyword(x, y, name);
|
|
x += ItemInfoRenderer.getSpaceX();
|
|
this._drawList(x, y);
|
|
},
|
|
|
|
getAggregationViewerCount: function() {
|
|
return this._arr.length;
|
|
},
|
|
|
|
_drawList: function(x, y) {
|
|
var i, obj, name, objecttype, suffix;
|
|
var count = this._arr.length;
|
|
var textui = ItemInfoRenderer.getTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
for (i = 0 ; i < count; i++) {
|
|
obj = this._arr[i];
|
|
name = obj.name;
|
|
objecttype = obj.objecttype;
|
|
|
|
if (objecttype === ObjectType.WEAPON) {
|
|
suffix = StringTable.Aggregation_SuffixEquipment;
|
|
}
|
|
else if (objecttype === ObjectType.ITEM || objecttype === ObjectType.SKILL) {
|
|
suffix = StringTable.Aggregation_SuffixPossession;
|
|
}
|
|
else if (objecttype === ObjectType.STATE) {
|
|
suffix = StringTable.Aggregation_SuffixAddition;
|
|
}
|
|
else {
|
|
suffix = '';
|
|
}
|
|
|
|
TextRenderer.drawKeywordText(x, y, name + suffix, -1, color, font);
|
|
y += ItemInfoRenderer.getSpaceY();
|
|
}
|
|
},
|
|
|
|
_isUsed: function(arr, name) {
|
|
var i;
|
|
var count = arr.length;
|
|
|
|
for (i = 0; i < count; i++) {
|
|
if (arr[i].name === name) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
);
|