158 lines
3.8 KiB
JavaScript
158 lines
3.8 KiB
JavaScript
|
|
var BonusChangeEventCommand = defineObject(BaseEventCommand,
|
|
{
|
|
_bonusChangeView: null,
|
|
|
|
enterEventCommandCycle: function() {
|
|
this._prepareEventCommandMemberData();
|
|
|
|
if (!this._checkEventCommand()) {
|
|
return EnterResult.NOTENTER;
|
|
}
|
|
|
|
return this._completeEventCommandMemberData();
|
|
},
|
|
|
|
moveEventCommandCycle: function() {
|
|
if (this._bonusChangeView.moveNoticeView() !== MoveResult.CONTINUE) {
|
|
this.mainEventCommand();
|
|
return MoveResult.END;
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
drawEventCommandCycle: function() {
|
|
var x = LayoutControl.getCenterX(-1, this._bonusChangeView.getNoticeViewWidth());
|
|
var y = LayoutControl.getCenterY(-1, this._bonusChangeView.getNoticeViewHeight());
|
|
|
|
this._bonusChangeView.drawNoticeView(x, y);
|
|
},
|
|
|
|
mainEventCommand: function() {
|
|
var bonus;
|
|
var max = DataConfig.getMaxBonus();
|
|
|
|
bonus = root.getMetaSession().getBonus();
|
|
bonus += root.getEventCommandObject().getBonus();
|
|
|
|
if (bonus < 0) {
|
|
bonus = 0;
|
|
}
|
|
else if (bonus > max) {
|
|
bonus = max;
|
|
}
|
|
|
|
root.getMetaSession().setBonus(bonus);
|
|
},
|
|
|
|
_prepareEventCommandMemberData: function() {
|
|
this._bonusChangeView = createWindowObject(BonusChangeNoticeView, this);
|
|
},
|
|
|
|
_checkEventCommand: function() {
|
|
return this.isEventCommandContinue();
|
|
},
|
|
|
|
_completeEventCommandMemberData: function() {
|
|
var eventCommandData = root.getEventCommandObject();
|
|
|
|
this._bonusChangeView.setBonusChangeData(eventCommandData.getBonus());
|
|
|
|
return EnterResult.OK;
|
|
}
|
|
}
|
|
);
|
|
|
|
var BonusNoticeMode = {
|
|
WAIT: 0,
|
|
COUNT: 1,
|
|
INPUT: 2
|
|
};
|
|
|
|
var BonusChangeNoticeView = defineObject(BaseNoticeView,
|
|
{
|
|
_bonus: 0,
|
|
_counter: null,
|
|
_balancer: null,
|
|
|
|
setBonusChangeData: function(n) {
|
|
var speed = 30;
|
|
|
|
this._bonus = 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(BonusNoticeMode.WAIT);
|
|
},
|
|
|
|
moveNoticeView: function() {
|
|
var mode = this.getCycleMode();
|
|
var result = MoveResult.CONTINUE;
|
|
|
|
if (mode === BonusNoticeMode.WAIT) {
|
|
result = this._moveWait();
|
|
}
|
|
else if (mode === BonusNoticeMode.COUNT) {
|
|
result = this._moveCount();
|
|
}
|
|
else if (mode === BonusNoticeMode.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._bonus > 0 ? StringTable.GetTitle_BonusChange : StringTable.LostTitle_BonusChange;
|
|
var infoColor = this._bonus > 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._bonus > 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._playBonusChangeSound();
|
|
this.changeCycleMode(GoldNoticeMode.INPUT);
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_moveInput: function() {
|
|
if (InputControl.isSelectAction()) {
|
|
return MoveResult.END;
|
|
}
|
|
|
|
return MoveResult.CONTINUE;
|
|
},
|
|
|
|
_playBonusChangeSound: function() {
|
|
MediaControl.soundDirect('itemsale');
|
|
}
|
|
}
|
|
);
|