const HomeApi = require("../net/HomeApi");
const DWTool = require("../utils/DWTool");
cc.Class({
extends: cc.Component,
properties: {
propSprite: cc.Sprite,
nameRichText: cc.RichText,
},
init(buildingId, propData, pickupCallback) {
this.buildingId = buildingId;
DWTool.loadResSpriteFrame(`./item/${propData.id}`)
.then((spriteFrame) => {
this.propSprite.spriteFrame = spriteFrame;
}).catch((err) => {
console.log(err);
});
this.nameRichText.string = `X${propData.count}`;
this.pickupCallback = pickupCallback;
},
updateProp(propData) {
console.log(propData);
this.nameRichText.string = `X${propData.count}`;
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
this.node.y = -26;
this.node.x = 150;
this.node.on(cc.Node.EventType.TOUCH_END, _.debounce(() => {
HomeApi.itemCollect(this.buildingId, () => {
this.pickupCallback();
this.node.destroy();
}, (err) => {
console.log(err);
})
}, 1000, true), this);
},
showAnimation() {
if (this.isPlaying) { return; }
this.node.stopAllActions();
this.node.active = true;
this.isPlayed = true;
this.isPlaying = true;
let jumpHeight = 175;
let duration = 0.3;
let animationArray = [];
let moveAction1 = cc.moveBy(duration, 0, jumpHeight).easing(cc.easeCubicActionOut());
let moveAction2 = cc.moveBy(duration, 0, -95).easing(cc.easeCubicActionIn());
animationArray.push(moveAction1);
animationArray.push(moveAction2);
while(jumpHeight > 0.1) {
jumpHeight = jumpHeight - (jumpHeight / 3);
duration = duration - (duration / 3);
let upAction = cc.moveBy(duration, 0, jumpHeight).easing(cc.easeCubicActionOut());
let downAction = cc.moveBy(duration, 0, -jumpHeight).easing(cc.easeCubicActionIn());
animationArray.push(upAction);
animationArray.push(downAction);
}
let callback = cc.callFunc(() => {
this.isPlaying = false;
});
animationArray.push(callback);
this.node.runAction(cc.sequence(animationArray));
},
updateAnimation() {
if (this.isPlaying) { return; }
this.node.active = true
this.node.y = -28;
this.node.stopAllActions();
this.isPlaying = true;
let upAction = cc.moveBy(0.1, 0, 30);
let downAction = cc.moveBy(0.1, 0, -30);
let callback = cc.callFunc(() => {
this.isPlaying = false;
});
this.coinNode.runAction(cc.sequence(upAction, downAction, callback));
},
});