158 lines
3.7 KiB
JavaScript
158 lines
3.7 KiB
JavaScript
|
|
var GoldChangeEventCommand = defineObject(BaseEventCommand,
|
|
{
|
|
_goldChangeView: null,
|
|
|
|
enterEventCommandCycle: function() {
|
|
this._prepareEventCommandMemberData();
|
|
|
|
if (!this._checkEventCommand()) {
|
|
return EnterResult.NOTENTER;
|
|
}
|
|
|
|
return this._completeEventCommandMemberData();
|
|
},
|
|
|
|
moveEventCommandCycle: function() {
|
|
if (this._goldChangeView.moveNoticeView() !== MoveResult.CONTINUE) {
|
|
this.mainEventCommand();
|
|
return MoveResult.END;
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawEventCommandCycle: function() {
|
|
var x = LayoutControl.getCenterX(-1, this._goldChangeView.getNoticeViewWidth());
|
|
var y = LayoutControl.getCenterY(-1, this._goldChangeView.getNoticeViewHeight());
|
|
|
|
this._goldChangeView.drawNoticeView(x, y);
|
|
},
|
|
|
|
mainEventCommand: function() {
|
|
var gold;
|
|
var max = DataConfig.getMaxGold();
|
|
|
|
gold = root.getMetaSession().getGold();
|
|
gold += root.getEventCommandObject().getGold();
|
|
|
|
if (gold < 0) {
|
|
gold = 0;
|
|
}
|
|
else if (gold > max) {
|
|
gold = max;
|
|
}
|
|
|
|
root.getMetaSession().setGold(gold);
|
|
},
|
|
|
|
_prepareEventCommandMemberData: function() {
|
|
this._goldChangeView = createWindowObject(GoldChangeNoticeView, this);
|
|
},
|
|
|
|
_checkEventCommand: function() {
|
|
return this.isEventCommandContinue();
|
|
},
|
|
|
|
_completeEventCommandMemberData: function() {
|
|
var eventCommandData = root.getEventCommandObject();
|
|
|
|
this._goldChangeView.setGoldChangeData(eventCommandData.getGold());
|
|
|
|
return EnterResult.OK;
|
|
}
|
|
}
|
|
);
|
|
|
|
var GoldNoticeMode = {
|
|
WAIT: 0,
|
|
COUNT: 1,
|
|
INPUT: 2
|
|
};
|
|
|
|
var GoldChangeNoticeView = defineObject(BaseNoticeView,
|
|
{
|
|
_gold: 0,
|
|
_counter: null,
|
|
_balancer: null,
|
|
|
|
setGoldChangeData: function(n) {
|
|
var speed = 30;
|
|
|
|
this._gold = n;
|
|
if (n < 0) {
|
|
n *= -1;
|
|
}
|
|
|
|
this._counter = createObject(CycleCounter);
|
|
this._counter.setCounterInfo(4);
|
|
|
|
this._balancer = createObject(SimpleBalancer);
|
|
this._balancer.setBalancerInfo(0, n);
|
|
this._balancer.setBalancerSpeed(speed);
|
|
this._balancer.startBalancerMove(n);
|
|
|
|
this.changeCycleMode(GoldNoticeMode.WAIT);
|
|
},
|
|
|
|
moveNoticeView: function() {
|
|
var mode = this.getCycleMode();
|
|
var result = MoveResult.CONTINUE;
|
|
|
|
if (mode === GoldNoticeMode.WAIT) {
|
|
result = this._moveWait();
|
|
}
|
|
else if (mode === GoldNoticeMode.COUNT) {
|
|
result = this._moveCount();
|
|
}
|
|
else if (mode === GoldNoticeMode.INPUT) {
|
|
result = this._moveInput();
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
drawNoticeViewContent: function(x, y) {
|
|
var textui = this.getTitleTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
var text = this._gold > 0 ? StringTable.GetTitle_GoldChange : StringTable.LostTitle_GoldChange;
|
|
var infoColor = this._gold > 0 ? ColorValue.KEYWORD : ColorValue.INFO;
|
|
var n = this._balancer.getCurrentValue();
|
|
var width = TextRenderer.getTextWidth(text, font) + 5;
|
|
|
|
TextRenderer.drawKeywordText(x, y, text, -1, infoColor, font);
|
|
TextRenderer.drawKeywordText(x + width, y, this._gold > 0 ? '+' : '-', -1, color, font);
|
|
NumberRenderer.drawRightNumber(x + width + 10, y, n);
|
|
},
|
|
|
|
_moveWait: function() {
|
|
if (this._counter.moveCycleCounter() !== MoveResult.CONTINUE) {
|
|
this.changeCycleMode(GoldNoticeMode.COUNT);
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveCount: function() {
|
|
if (this._balancer.moveBalancer() !== MoveResult.CONTINUE) {
|
|
this._playGoldChangeSound();
|
|
this.changeCycleMode(GoldNoticeMode.INPUT);
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveInput: function() {
|
|
if (InputControl.isSelectAction()) {
|
|
return MoveResult.END;
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_playGoldChangeSound: function() {
|
|
MediaControl.soundDirect('itemsale');
|
|
}
|
|
}
|
|
);
|