games/BladeStruggle/assets/script/tscript/ui/main/AccountUI.ts

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) {
}*/
}