Files
fc/dev/project/assets/Scripts/mod/pve/adventure/cmp/cmp.adventure.people.js
T
2026-05-23 22:10:14 +08:00

118 lines
3.2 KiB
JavaScript

const BridgeWindow = require( "bridge.window" );
const ADVCT = require("adventure_controller");
const ADEVT = require("adventure_event");
const Togs = require("nx.fx.togs");
cc.Class({
extends: BridgeWindow,
properties: {
answers:{
default:null,
type:Togs
},
titles:{
default:null,
type:cc.Node
},
problem:{
default:null,
type:cc.Node
}
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
this.ctrl = ADVCT.getInstance();
this.answers.posTog = this.togAnswers.bind(this);
this.select_index = 0;
this.answers.togTo(0);
},
start () {
},
togAnswers(_index){
let oldTog = this.answers.togs[this.select_index];
let old_lb = nx.gui.find(oldTog,"on/scroll/ans");
old_lb.stopAllActions();
old_lb.x = 0;
this.select_index = _index;
let tog = this.answers.togs[_index];
let on_lb = nx.gui.find(tog,"on/scroll/ans");
if(on_lb.width > 400){
on_lb.runAction(cc.repeatForever(cc.sequence(cc.moveBy(5,cc.v2(-on_lb.width/2,0))
,cc.moveTo(0.1,cc.v2(0,0))
,cc.delayTime(2))));
}
},
onOpenConfigs(params) {
this.model_type = this.ctrl.getPlayModel();
this.evt_config = params.config;
this.room_id = params.room_id;
this.NPC_data = this.ctrl.getNPCData();
if(this.NPC_data){
this.freashProblems();
this.scheduleOnce(()=>{
this.togAnswers(0);
},0.2);
}
this.setUI();
},
setUI(){
nx.gui.setActive(this.titles,"type"+this.evt_config.evt_type,true)
},
freashProblems(){
let ids = this.NPC_data.npc_ids;
let tip = "";
for(let i = 0;i < this.answers.togs.length;i++){
let npc_data = null;
if(ids[i]){
if(this.model_type == 1){
npc_data = game.configs.adventure_endless_data.data_adventure_npc_data[ids[i].id];
}else{
npc_data = game.configs.adventure_weekly_data.data_adventure_event[ids[i].id];
}
if(!npc_data)return;
tip = npc_data.tip;
let tog = this.answers.togs[i];
if(tog){
if(this.evt_config.evt_type != 6){
nx.gui.setString(tog,"on/scroll/ans",npc_data.desc);
nx.gui.setString(tog,"off/scroll/ans",npc_data.desc);
}else{
nx.gui.setString(tog,"on/scroll/ans","??????");
nx.gui.setString(tog,"off/scroll/ans","??????");
}
}
}
}
nx.gui.setString(this.problem,"",tip);
},
onPreClosed() {
},
clickSureEvent(){
if(!this.NPC_data)return;
let id = this.NPC_data.npc_ids[this.select_index];
if(!id){
id = 0;
}
this.ctrl.send29520([this.room_id],1,[{type:1,val:id.id}],this.model_type);
this.close();
}
// update (dt) {},
});