import { _decorator, Component, Label, Node, tween, Vec3,sys } from 'cc';
import { AudioMgr } from './AudioMgr';
import { Clips, DJ, DJ_TYPE } from './Enums';
import { Global } from './Global';
import { PropsAction } from './PropsAction';
import { AdManger } from './ad/AdManger';
import { DjManger } from './DjManger';


import ATRewardedVideoSDK from "./AnyThinkAds/ATRewardedVideoTSSDK"
import AAJS2 from "./utils/ATAndroidJS2";
import ATJSSDK from "./AnyThinkAds/ATJSSDK";
import { CoinsAction } from './CoinsAction';
//import { EncryptUtil } from './utils/EncryptUtil';

const { ccclass, property } = _decorator;

@ccclass('Props2Action')
export class Props2Action extends Component {
    @property([Node])
    pin_img_arr:Node[] = [];

    pos_:Vec3[]  = [];

    @property({ type: Label })
    conis_label: Label;  

    /**
     * 
     */
    start() {
        this.conis_label.string = Global.get_need_coins() + "";
        if(this.pin_img_arr){
            this.pin_img_arr.forEach((ele)=>{
              if(ele){
                this.pos_.push(ele.getPosition().clone());
              }
            });
        }
        this.initAdForPage();
    }
    /**
     * 初始化广告
     */
    initAdForPage(){
        console.log('zh:initAdForPage foir props3Action.ts')
        if(sys.os===sys.OS.ANDROID){
            let deviceId = AAJS2.getDeviceUserId();
            console.log("zh:checkstatus:",ATRewardedVideoSDK.checkAdStatus(AAJS2.getPlacementId()));
            var setting = {};
            setting[ATRewardedVideoSDK.userIdKey] = deviceId;
            ATRewardedVideoSDK.loadRewardedVideo(AAJS2.getPlacementId(), setting);
        }
    }




    dt:number = 0;
    times:number = 0;
    update(deltaTime: number) {
        if(!this.node.active){
            return;
        }
        if(this.times==0){
            this.times++;
            this.show_tween();
        }else{
            this.dt+=deltaTime;
            if(this.dt>=1.5){
                this.dt = 0;
                this.show_tween();
            }
        }
    }

   

    private show_tween(){
         this.pin_img_arr.sort(() => {
            return 0.5 - Math.random();
        });
        for(let i = 0;i<this.pin_img_arr.length;i++){
            this.play_tween(this.pin_img_arr[i],this.pos_[i]);
        }
    }

    private play_tween(pin:Node,pos:Vec3){
        
        tween(pin)
            .to(0.75, { position: pos },Global.our_easing)
            .call(() => {

            }).delay(0.3)
            .start();
    }


    random_pins_coins(){
        AudioMgr.ins.playSound(Clips.btn_1);

        if (Global.cur_coins < Global.get_need_coins()) {
            Global.tips_action.show("Gold Quantity Insufficient");//钻石数量不够
            return;
        }

        if (!DjManger.use_dj(DJ.Btn_2,DJ_TYPE.Type_coin)) {
            Global.tips_action.show("Current Level: Props Exhausted");//当前关卡次数已经用完   
            return;
        }
        //消耗
        Global.use_coins(Global.get_need_coins());
        Global.layer_root_action.random_pin();
        Global.coins_action.refrush_coins();
       
        this.node.parent.getComponent(PropsAction)?.close();
    }

    random_pins_videos(){
        console.log('zh:random_pins_videos 555')
        AudioMgr.ins.playSound(Clips.btn_1);

        if (!DjManger.use_dj(DJ.Btn_2,DJ_TYPE.Type_video)) {
            Global.tips_action.show("Current Level: Props Exhausted");//当前关卡次数已经用完   
            return;
        }


        if(sys.os == sys.OS.ANDROID){
            if(ATRewardedVideoSDK.hasAdReady(AAJS2.getPlacementId())){
                console.log('zh:random_pins_videos ad  ok')
                sys.localStorage.setItem('yxAdMark', 'randomPins');//看广告用于 变颜色 标记
                ATRewardedVideoSDK.showAd(AAJS2.getPlacementId());
            }else{
                console.log('zh:random_pins_videos ad  no ok')
                Global.tips_action.show("No reward video for now");//没有奖励视频
               // this.useCoinsForAdPlayEnd();
            }
        }

        //下面是原先的代码
        // AdManger.show_video((data) => {
        //     if (data == 1) {
        //         console.log("random_pins_videos 获取奖励成功");
        //         this.node.parent.getComponent(PropsAction)?.close();
        //         //解锁
        //         Global.layer_root_action.random_pin();
        //     } else {
        //         Global.tips_action.show("Gain reward failure");//获取奖励失败
        //         //退款
        //         DjManger.return_used_dj(DJ.Btn_2,DJ_TYPE.Type_video);
        //     } 
        // })
       
    }

        /**
     * 消耗钻石  ad 播放完毕  消耗钻石
     */
    useCoinsForAdPlayEnd(){
        console.log("zh:clear_pins_videos 变颜色 奖励start");
        this.node.parent.getComponent(PropsAction)?.close();
        //解锁
        Global.layer_root_action.random_pin();
        console.log("zh:clear_pins_videos 变颜色 奖励end");
        //清理AD奖励标记
        sys.localStorage.removeItem('yxAdMark')
    }



    open(){
        this.conis_label.string = Global.get_need_coins() + "";
    }

}

