This commit is contained in:
2024-09-10 17:52:32 +08:00
parent 90350d0503
commit 77a168628a
8 changed files with 818 additions and 607 deletions

View File

@@ -1,4 +1,4 @@
import { _decorator,Label,resources,Sprite,SpriteAtlas,v3 } from "cc";
import { _decorator,Button,EventHandler,EventTouch,Label,NodeEventType,resources,Sprite,SpriteAtlas,v3 } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { smc } from "../common/SingletonModuleComp";
@@ -7,20 +7,83 @@ import { HeroCard } from "../monster/HeroCard";
import { HeroCardViewComp } from "../monster/HeroCardViewComp";
import { RandomManager } from "../../../../extensions/oops-plugin-framework/assets/core/common/random/RandomManager";
import { CardList } from "../common/config/CardSet";
import { HeroModelComp } from "../monster/HeroModelComp";
import { SkillSet } from "../common/config/SkillSet";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@ccclass('CardControllerComp')
@ecs.register('CardController', false)
export class CardControllerComp extends CCComp {
card_level:number = 1;
in_load:boolean = false
card1:any ={x:0,y:0,uuid:1101,type:1,active:false}
card2:any ={x:0,y:0,uuid:1102,type:1,active:false}
card3:any ={x:0,y:0,uuid:1103,type:1,active:false}
card4:any ={x:0,y:0,uuid:1104,type:1,active:false}
card5:any ={x:0,y:0,uuid:1105,type:1,active:false}
card6:any ={x:0,y:0,uuid:1106,type:1,active:false}
cards:any = {
1:{uuid:1101,type:1,alive:false},
2:{uuid:1102,type:1,alive:false},
3:{uuid:1103,type:1,alive:false},
4:{uuid:1104,type:1,alive:false},
5:{uuid:1105,type:1,alive:false},
6:{uuid:1106,type:1,alive:false},
}
protected onLoad(): void {
let card1 = this.node.getChildByName("cards").getChildByName("card1");
let card2 = this.node.getChildByName("cards").getChildByName("card2");
let card3 = this.node.getChildByName("cards").getChildByName("card3");
let card4 = this.node.getChildByName("cards").getChildByName("card4");
let card5 = this.node.getChildByName("cards").getChildByName("card5");
let card6 = this.node.getChildByName("cards").getChildByName("card6");
// info_button.on(NodeEventType.TOUCH_START, this.onTouchMove, this);
// info_button.on(NodeEventType.TOUCH_MOVE, this.onTouchMove, this);
card1.on(NodeEventType.TOUCH_START, this.touch1, this);
card1.on(NodeEventType.TOUCH_MOVE, this.touch1, this);
card2.on(NodeEventType.TOUCH_START, this.touch2, this);
card2.on(NodeEventType.TOUCH_MOVE, this.touch2, this);
card3.on(NodeEventType.TOUCH_START, this.touch3, this);
card3.on(NodeEventType.TOUCH_MOVE, this.touch3, this);
card4.on(NodeEventType.TOUCH_START, this.touch4, this);
card4.on(NodeEventType.TOUCH_MOVE, this.touch4, this);
card5.on(NodeEventType.TOUCH_START, this.touch5, this);
card5.on(NodeEventType.TOUCH_MOVE, this.touch5, this);
card6.on(NodeEventType.TOUCH_START, this.touch6, this);
card6.on(NodeEventType.TOUCH_MOVE, this.touch6, this);
card1.on(NodeEventType.TOUCH_END, this.onTouchEnd, this);
card1.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this);
card2.on(NodeEventType.TOUCH_END, this.onTouchEnd, this);
card2.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this);
card3.on(NodeEventType.TOUCH_END, this.onTouchEnd, this);
card3.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this);
card4.on(NodeEventType.TOUCH_END, this.onTouchEnd, this);
card4.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this);
card5.on(NodeEventType.TOUCH_END, this.onTouchEnd, this);
card5.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this);
card6.on(NodeEventType.TOUCH_END, this.onTouchEnd, this);
card6.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this);
const clickEventHandler = new EventHandler();
clickEventHandler.target = this.node; // 这个 node 节点是你的事件处理代码组件所属的节点
clickEventHandler.component = 'CardControllerComp';// 这个是脚本类名
clickEventHandler.handler = 'user_card';
clickEventHandler.customEventData = 'foobar';
const button1 = this.node.getChildByName('cards').getChildByName('card1').getComponent(Button);
const button2 = this.node.getChildByName('cards').getChildByName('card2').getComponent(Button);
const button3 = this.node.getChildByName('cards').getChildByName('card3').getComponent(Button);
const button4 = this.node.getChildByName('cards').getChildByName('card4').getComponent(Button);
const button5 = this.node.getChildByName('cards').getChildByName('card5').getComponent(Button);
const button6 = this.node.getChildByName('cards').getChildByName('card6').getComponent(Button);
button1.clickEvents.push(clickEventHandler);
button2.clickEvents.push(clickEventHandler);
button3.clickEvents.push(clickEventHandler);
button4.clickEvents.push(clickEventHandler);
button5.clickEvents.push(clickEventHandler);
button6.clickEvents.push(clickEventHandler);
}
start() {
this.load_cards()
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
@@ -34,6 +97,65 @@ export class CardControllerComp extends CCComp {
// break;
// }
// }
touch1(event: EventTouch) {
console.log("touch 1");
}
touch2(event: EventTouch) {
console.log("touch 2");
}
touch3(event: EventTouch) {
console.log("touch 3");
}
touch4(event: EventTouch) {
console.log("touch 4");
}
touch5(event: EventTouch) {
console.log("touch 5");
}
touch6(event: EventTouch) {
console.log("touch 6");
}
show_info(uuid:number,type:number){
console.log("show_info",uuid)
let node =this.node.getChildByName("item_box")
if(type == 2){
smc.vm_data.item_box.info = SkillSet[uuid].info
smc.vm_data.item_box.name = SkillSet[uuid].name
smc.vm_data.item_box.skillcd = SkillSet[uuid].cd
smc.vm_data.item_box.skillsd = SkillSet[uuid].sd
smc.vm_data.item_box.atk = SkillSet[uuid].atk
smc.vm_data.item_box.hp = SkillSet[uuid].hp
node.active=true
}
if(type == 3){
console.log(SkillSet[uuid])
smc.vm_data.item_box.info = SkillSet[uuid].info
smc.vm_data.item_box.name = SkillSet[uuid].name
smc.vm_data.item_box.skillcd = SkillSet[uuid].cd
smc.vm_data.item_box.skillsd = SkillSet[uuid].sd
smc.vm_data.item_box.atk = SkillSet[uuid].atk
smc.vm_data.item_box.hp = SkillSet[uuid].hp
smc.vm_data.item_box.shield = SkillSet[uuid].shield
node.active=true
if(SkillSet[uuid].shield > 0){
node.getChildByName("data").getChildByName("shield").active=true
}
if(SkillSet[uuid].hp > 0){
node.getChildByName("data").getChildByName("hp").active=true
}
}
}
onTouchEnd(){
let node = this.node.getChildByName("item_box")
node.active=false
node.getChildByName("data").getChildByName("shield").active=false
node.getChildByName("data").getChildByName("hp").active=false
}
shuaxin(dt: number) {
smc.vm_data.shuaxin.min += smc.vm_data.shuaxin.speed*dt;
if (smc.vm_data.shuaxin.min >= smc.vm_data.shuaxin.max) {
@@ -78,15 +200,14 @@ export class CardControllerComp extends CCComp {
if(smc.vm_data.shuaxin.min <=0 ){
smc.vm_data.shuaxin.min = 0
}
}
load_cards() {
this.in_load = true
let card:any=null
for (let index = 1; index <= 6; index++) {
card=RandomManager.instance.getRandomByObjectList(CardList, 1);
this['card'+index].uuid=card[0].uuid
this['card'+index].type=card[0].type
this.cards[index].uuid=card[0].uuid
this.cards[index].type=card[0].type
let url: string = "";
let pathName: string = "";
let name: string = "";
@@ -115,13 +236,52 @@ export class CardControllerComp extends CCComp {
const sprite = node.getChildByName("item").getComponent(Sprite);
sprite.spriteFrame = atlas.getSpriteFrame(pathName);
});
this['card'+index].active=true
this.cards[index].alive=true
}
// console.log("cards:",this.cards)
this.in_load = false
}
load_card(){
}
use_card(event:Event,index: number){
this.cards[index].alive=false
this.check_card(index)
console.log("cards:",this.cards)
}
check_card(index:number){
let heros = ecs.query(ecs.allOf(HeroModelComp))
// let heross= ecs.query(ecs.allOf(MonsterViewComp))
// console.log("heross",heross)
if(heros.length >= 4&&this.cards[index].type == 1){
oops.gui.toast("英雄数量达到上限");
return;
}
if(smc.vm_data.gold.min >= this.card_level){
this.cards[index].alive=false
this.do_use_card(index)
smc.vm_data.gold.min -= this.card_level;
}else{
oops.gui.toast("金币不够");
}
}
do_use_card(index:number){
switch (this.cards[index].type) {
case 1:
oops.message.dispatchEvent("do_add_hero", { uuid: this.cards[index].uuid });
break;
case 2:
oops.message.dispatchEvent("do_use_skill", { uuid: this.cards[index].uuid });
break;
case 3:
oops.message.dispatchEvent("do_use_skill", { uuid: this.cards[index].uuid });
break;
default:
break;
}
}
protected update(dt: number): void {
this.shuaxin(dt)