375 lines
11 KiB
TypeScript
375 lines
11 KiB
TypeScript
import DuanWei from "./DuanWei";
|
|
import BaseUI from "../base/BaseUI";
|
|
import GameScene from "../../gamescene/GameScene";
|
|
import GameManager from "../../core/GameManager";
|
|
import Player, { PlayerStatus } from "../../gamescene/Player";
|
|
import DataManager from "../../core/DataManager";
|
|
import WXSdk from "../../wx/WXSdk";
|
|
import UIManager from "../UIManager";
|
|
import AccountRankData from "../../configdata/AccountRankData";
|
|
import LevelIcon from "./LevelIcon";
|
|
import MainUI from "./MainUI";
|
|
import Mathf from "../../util/Mathf";
|
|
import SoundManager from "../../core/SoundManager";
|
|
import { SoundClipType } from "../../audio/SoundClip";
|
|
import {TrackingManager, TrackingType} from "../../../Tracking/TrackingManager";
|
|
|
|
// Learn TypeScript:
|
|
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/typescript.html
|
|
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
|
|
// Learn Attribute:
|
|
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
|
|
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
|
|
// Learn life-cycle callbacks:
|
|
// - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
|
|
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html
|
|
|
|
const {ccclass, property} = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class AccountUI extends BaseUI {
|
|
|
|
@property(LevelIcon)
|
|
levelIcon: LevelIcon = null;
|
|
|
|
@property(cc.ProgressBar)
|
|
levelProgress: cc.ProgressBar = null;
|
|
|
|
@property(cc.Label)
|
|
levelvalueTxt: cc.Label = null;
|
|
|
|
@property(cc.Label)
|
|
rankValueTxt: cc.Label = null;
|
|
|
|
@property(cc.Label)
|
|
killValueTxt: cc.Label = null;
|
|
|
|
@property(cc.Label)
|
|
totalValueTxt: cc.Label = null;
|
|
|
|
@property(cc.Label)
|
|
winStarTxt1: cc.Label = null;
|
|
|
|
@property(cc.Label)
|
|
killTxt: cc.Label = null;
|
|
|
|
@property(cc.Label)
|
|
winStarTxt2: cc.Label = null;
|
|
|
|
@property(cc.Button)
|
|
turnBack: cc.Button = null;
|
|
|
|
@property(cc.Button)
|
|
lookRankBtn: cc.Button = null;
|
|
|
|
@property(cc.Button)
|
|
huoquBtn1: cc.Button = null;
|
|
|
|
@property(cc.Button)
|
|
huoquBtn2: cc.Button = null;
|
|
|
|
@property(cc.Button)
|
|
recoverBtn: cc.Button = null;
|
|
|
|
@property(cc.Button)
|
|
replayBtn: cc.Button = null;
|
|
|
|
@property(cc.Sprite)
|
|
rankImg: cc.Sprite = null;
|
|
|
|
@property(cc.SpriteFrame)
|
|
numArr: cc.SpriteFrame[] = [];
|
|
|
|
|
|
private gameScene:GameScene = null;
|
|
|
|
private star:number = 0;
|
|
|
|
// LIFE-CYCLE CALLBACKS:
|
|
|
|
/*public onLoad () {
|
|
//this.basePos = this.node.position;
|
|
}*/
|
|
|
|
private isInit:boolean;
|
|
|
|
|
|
start () {
|
|
|
|
this.gameScene = GameManager.instance.gameScene.getComponent(GameScene);
|
|
|
|
|
|
this.turnBack.node.on(cc.Node.EventType.TOUCH_END,(event)=>{
|
|
|
|
var lastStar = DataManager.instance.getPlayerData().star;
|
|
var lastLevelId = DataManager.instance.getLevelId(DataManager.instance.getPlayerData().star);
|
|
|
|
DataManager.instance.getPlayerData().addStar(this.star);
|
|
DataManager.instance.savePlayerData();
|
|
|
|
WXSdk.instance.setUserRankStorage("star",DataManager.instance.getPlayerData().star);
|
|
|
|
var levelId = DataManager.instance.getLevelId(DataManager.instance.getPlayerData().star);
|
|
|
|
if(levelId > lastLevelId)
|
|
{
|
|
this.close();
|
|
UIManager.instance.upgradeUI.open();
|
|
UIManager.instance.upgradeUI.showUpgrade(levelId,true);
|
|
UIManager.instance.upgradeUI.onExit = ()=>{
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
};
|
|
}else if(levelId < lastLevelId)
|
|
{
|
|
this.close();
|
|
UIManager.instance.upgradeUI.open();
|
|
UIManager.instance.upgradeUI.showUpgrade(levelId,false);
|
|
UIManager.instance.upgradeUI.onExit = ()=>{
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
};
|
|
|
|
UIManager.instance.upgradeUI.onRecover = ()=>{
|
|
|
|
DataManager.instance.getPlayerData().star = lastStar;
|
|
DataManager.instance.savePlayerData();
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
};
|
|
}else
|
|
{
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
}
|
|
|
|
});
|
|
|
|
this.huoquBtn2.node.on(cc.Node.EventType.TOUCH_END,(event)=>{
|
|
|
|
TrackingManager.send(TrackingType.TriplePickup);
|
|
WXSdk.instance.showVideo("adunit-82c0e31583967848",(closeState:number)=>{
|
|
|
|
if(closeState == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var lastStar = DataManager.instance.getPlayerData().star;
|
|
var lastLevelId = DataManager.instance.getLevelId(DataManager.instance.getPlayerData().star);
|
|
|
|
DataManager.instance.getPlayerData().addStar(this.star * 3);;
|
|
DataManager.instance.savePlayerData();
|
|
|
|
WXSdk.instance.setUserRankStorage("star",DataManager.instance.getPlayerData().star);
|
|
|
|
var levelId = DataManager.instance.getLevelId(DataManager.instance.getPlayerData().star);
|
|
|
|
|
|
if(levelId > lastLevelId)
|
|
{
|
|
this.close();
|
|
UIManager.instance.upgradeUI.open();
|
|
UIManager.instance.upgradeUI.showUpgrade(levelId,true);
|
|
UIManager.instance.upgradeUI.onExit = ()=>{
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
};
|
|
}else if(levelId < lastLevelId)
|
|
{
|
|
this.close();
|
|
UIManager.instance.upgradeUI.open();
|
|
UIManager.instance.upgradeUI.showUpgrade(levelId,false);
|
|
UIManager.instance.upgradeUI.onExit = ()=>{
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
};
|
|
|
|
UIManager.instance.upgradeUI.onRecover = ()=>{
|
|
|
|
DataManager.instance.getPlayerData().star = lastStar;
|
|
DataManager.instance.savePlayerData();
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
};
|
|
|
|
}else
|
|
{
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
this.recoverBtn.node.on(cc.Node.EventType.TOUCH_END,(event)=>{
|
|
|
|
TrackingManager.send(TrackingType.Recover);
|
|
WXSdk.instance.showVideo("adunit-58c67892748cf639",(closeState:number)=>{
|
|
|
|
if(closeState == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
this.lookRankBtn.node.on(cc.Node.EventType.TOUCH_END,(event)=>
|
|
{
|
|
UIManager.instance.wxOpenDataUI.openRankUI();
|
|
|
|
},this);
|
|
|
|
this.replayBtn.node.on(cc.Node.EventType.TOUCH_END,(event)=>{
|
|
|
|
DataManager.instance.getPlayerData().addStar(this.star);
|
|
DataManager.instance.savePlayerData();
|
|
|
|
WXSdk.instance.setUserRankStorage("star",DataManager.instance.getPlayerData().star);
|
|
|
|
MainUI.startRightAway = true;
|
|
cc.director.loadScene(cc.director.getScene().name);
|
|
});
|
|
|
|
|
|
}
|
|
|
|
public init()
|
|
{
|
|
this.gameScene = GameManager.instance.gameScene.getComponent(GameScene);
|
|
|
|
if(this.gameScene.player.status == PlayerStatus.die)
|
|
{
|
|
DataManager.instance.getPlayerData().continueStraking = 0;
|
|
|
|
}else
|
|
{
|
|
|
|
if(this.gameScene.player.rank == 1)
|
|
{
|
|
DataManager.instance.getPlayerData().num1 +=1;
|
|
|
|
//cc.log("用时",this.gameScene.clock.currentCount - 1);
|
|
|
|
if(this.gameScene.clock.currentCount - 1 > DataManager.instance.getPlayerData().timelimitnum1)
|
|
{
|
|
DataManager.instance.getPlayerData().timelimitnum1 = this.gameScene.clock.currentCount - 1;
|
|
}
|
|
|
|
}
|
|
|
|
DataManager.instance.getPlayerData().continueStraking ++;
|
|
|
|
if(DataManager.instance.getPlayerData().continueStraking > DataManager.instance.getPlayerData().straking)
|
|
{
|
|
DataManager.instance.getPlayerData().straking = DataManager.instance.getPlayerData().continueStraking;
|
|
}
|
|
}
|
|
|
|
|
|
this.star = 0;
|
|
|
|
var rank:number = Mathf.clamp(this.gameScene.player.rank,1,8);
|
|
|
|
|
|
//this.rankTxt.string = `第${rank}名`;
|
|
this.rankImg.spriteFrame = this.numArr[rank - 1];
|
|
this.rankImg.node.width = this.numArr[rank - 1].getRect().width;
|
|
this.rankImg.node.height = this.numArr[rank - 1].getRect().height;
|
|
|
|
var levelId:number = DataManager.instance.getLevelId(DataManager.instance.getPlayerData().star);
|
|
var rankData:AccountRankData = DataManager.instance.accountRankCnfDatasDic[levelId][rank - 1];
|
|
|
|
var rw:number = rankData.reward;
|
|
|
|
this.star += rw;
|
|
|
|
this.rankValueTxt.string = rw >= 0 ? `+${rw}` : `${rw}`;
|
|
if(rw < 0)
|
|
{
|
|
this.rankValueTxt.node.color = cc.Color.RED;
|
|
}
|
|
|
|
var killCount:number = this.gameScene.player.killCount;
|
|
|
|
var kr:number = 0;
|
|
|
|
if(killCount < 2)
|
|
{
|
|
//------
|
|
}else
|
|
{
|
|
kr = killCount - 1;
|
|
}
|
|
|
|
this.killTxt.string = `${killCount}`
|
|
this.killValueTxt.string = `+${kr}`;
|
|
|
|
this.star += kr;
|
|
|
|
this.totalValueTxt.string = this.star >= 0 ? `+${this.star}` : `${this.star}`;
|
|
|
|
|
|
//this.winStarTxt1.string = `+${this.star}`;
|
|
//this.winStarTxt2.string = `+${this.star * 3}`;
|
|
|
|
|
|
if(this.star < 0)
|
|
{
|
|
this.totalValueTxt.node.color = cc.Color.RED;
|
|
|
|
this.recoverBtn.node.active = true;
|
|
this.huoquBtn2.node.active = false;
|
|
|
|
SoundManager.instance.playAudioClip(SoundClipType.fail);
|
|
|
|
}else
|
|
{
|
|
this.recoverBtn.node.active = false;
|
|
this.huoquBtn2.node.active = true;
|
|
|
|
SoundManager.instance.playAudioClip(SoundClipType.victory);
|
|
}
|
|
|
|
DataManager.instance.savePlayerData();
|
|
|
|
var levelId = DataManager.instance.getLevelId(DataManager.instance.getPlayerData().star);
|
|
var leveCnfdatas = DataManager.instance.levelConfigDatas;
|
|
|
|
if(levelId == leveCnfdatas.length)
|
|
{
|
|
this.levelvalueTxt.string = "" + DataManager.instance.getPlayerData().star;
|
|
this.levelProgress.progress = 1;
|
|
|
|
}else
|
|
{
|
|
this.levelvalueTxt.string = DataManager.instance.getPlayerData().star + "/" + leveCnfdatas[levelId].stars;
|
|
this.levelProgress.progress = DataManager.instance.getPlayerData().star / leveCnfdatas[levelId].stars;
|
|
}
|
|
|
|
this.levelIcon.updatePlayerSkin();
|
|
|
|
|
|
}
|
|
|
|
public open()
|
|
{
|
|
super.open();
|
|
this.init();
|
|
|
|
WXSdk.instance.showBottomBanner("adunit-d39672ca59cf15a2");
|
|
|
|
//cc.log("account open",this.node.position.toString());
|
|
}
|
|
|
|
public close()
|
|
{
|
|
super.close();
|
|
WXSdk.instance.removeBanner();
|
|
}
|
|
|
|
|
|
/*update (dt) {
|
|
|
|
|
|
|
|
}*/
|
|
}
|