185 lines
3.7 KiB
TypeScript
185 lines
3.7 KiB
TypeScript
/*
|
||
* @Author: WoNiu
|
||
* @Date: 2024-03-26 11:44:58
|
||
* @LastEditTime: 2024-03-26 15:41:01
|
||
* @LastEditors: WoNiu
|
||
* @Description: 幸运硬币效果类型
|
||
*/
|
||
import {
|
||
_decorator,
|
||
Sprite,
|
||
Director,
|
||
director,
|
||
Node,
|
||
tween,
|
||
UITransform,
|
||
v2,
|
||
Color,
|
||
} from "cc";
|
||
import { AnimationNode } from "../../GlobalScript/Animation/AnimationNode";
|
||
import { BaseSprite } from "../../GlobalScript/CommonComponent/BaseSprite";
|
||
import { NpkImage } from "../../Tool/NPKImage";
|
||
import { CloseButtonNode } from "../Common/CloseButtonNode";
|
||
import { GameRootSingleton } from "../GameRootController";
|
||
import { ShowNodeBorder } from "../../GlobalScript/CommonComponent/ShowNodeBorder";
|
||
const { ccclass, property } = _decorator;
|
||
|
||
/**
|
||
* @description: 幸运硬币效果类型
|
||
*/
|
||
export enum LuckyType {
|
||
// 前进三格
|
||
GoThree = 0,
|
||
// 移动到月光酒馆
|
||
YeGuangJiuGuan,
|
||
// 移动到决斗场
|
||
JueDouChang,
|
||
// 移动到海上列车
|
||
HaiShangLieChe,
|
||
// 我要双倍,点数x2
|
||
Double,
|
||
// 这是我的钱,点数减半
|
||
Halve,
|
||
// 骑士马战 ,点数+2w
|
||
HorseCombat,
|
||
// 装备修理, 点数-2w
|
||
Servicing,
|
||
// 收取费用,夺取其他人 2w 点数
|
||
Charge,
|
||
}
|
||
|
||
@ccclass("LuckyCoinsNode")
|
||
export class LuckyCoinsNode extends Node {
|
||
luckyType: LuckyType;
|
||
|
||
// 幸运硬币的结果
|
||
resultNode: Node;
|
||
|
||
static show(type: LuckyType) {
|
||
const node = new LuckyCoinsNode(type);
|
||
GameRootSingleton.getInstance().DialogRootNode.addChild(node);
|
||
}
|
||
|
||
constructor(type: LuckyType) {
|
||
super();
|
||
this.luckyType = type;
|
||
|
||
this.addComponent(UITransform).anchorPoint = v2(0, 1);
|
||
this.addComponent(ShowNodeBorder);
|
||
|
||
this.initResultNode();
|
||
this.initLuckyAni();
|
||
this.delayShowResult();
|
||
}
|
||
|
||
initActionButton() {
|
||
const node = new CloseButtonNode(() => {
|
||
this.initLuckyAni();
|
||
});
|
||
this.addChild(node);
|
||
}
|
||
|
||
initResultNode() {
|
||
const node = new Node();
|
||
this.addChild(node);
|
||
|
||
node.setPosition(443, -200);
|
||
this.resultNode = node;
|
||
|
||
node.active = false;
|
||
|
||
const bs = node.addComponent(BaseSprite);
|
||
bs.updateSpriteFrame(NpkImage.luckycoin, this.luckyType);
|
||
}
|
||
|
||
initLuckyAni() {
|
||
const lucky = new AnimationNode("ani/luckycoin01.ani", () => {
|
||
/// 这一帧结束之后调用
|
||
director.once(Director.EVENT_END_FRAME, () => {
|
||
// 销毁,销毁节点只能在当前帧结束后
|
||
lucky.destroy();
|
||
});
|
||
});
|
||
lucky.setPosition(318.5, -107.5);
|
||
this.addChild(lucky);
|
||
}
|
||
|
||
// 延迟显示结果
|
||
delayShowResult() {
|
||
setTimeout(() => {
|
||
this.resultNode.active = true;
|
||
setTimeout(() => {
|
||
this.resultTweenDestroy();
|
||
}, 1000);
|
||
}, 1600);
|
||
}
|
||
|
||
// 缓动消失
|
||
resultTweenDestroy() {
|
||
|
||
let obj = { x: 255 };
|
||
|
||
tween(obj)
|
||
.to(0.5, { x: 1 }, { onUpdate: () => {
|
||
const spr = this.resultNode.getComponent(Sprite);
|
||
spr.color = new Color(255,255,255,obj.x);
|
||
|
||
console.log(spr.color.a + ' - ' + obj.x);
|
||
|
||
}, onComplete: () => {
|
||
this.resultNode.active = false;
|
||
},easing:'linear'})
|
||
.start();
|
||
}
|
||
|
||
close(){
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @description: 幸运硬币事件
|
||
*/
|
||
export class LuckyAction {
|
||
// 前进三格
|
||
static GoThreeAction(){
|
||
|
||
}
|
||
// 移动到月光酒馆
|
||
YeGuangJiuGuanAction(){
|
||
|
||
}
|
||
// 移动到决斗场
|
||
JueDouChangAction(){
|
||
|
||
}
|
||
// 移动到海上列车
|
||
HaiShangLieCheAction(){
|
||
|
||
}
|
||
// 我要双倍,点数x2
|
||
DoubleAction(){
|
||
|
||
}
|
||
// 这是我的钱,点数减半
|
||
HalveAction(){
|
||
|
||
}
|
||
// 骑士马战 ,点数+2w
|
||
HorseCombatAction(){
|
||
|
||
}
|
||
// 装备修理, 点数-2w
|
||
ServicingAction(){
|
||
|
||
}
|
||
// 收取费用,夺取其他人 2w 点数
|
||
ChargeAction(){
|
||
|
||
}
|
||
|
||
|
||
} |