接下来 优化技能

This commit is contained in:
pan@work
2024-09-13 10:41:38 +08:00
parent c8fe4a6ebe
commit 489b045982
40 changed files with 2010 additions and 22670 deletions

View File

@@ -188,8 +188,6 @@ export class RoleViewComp extends CCComp {
},0.5)
this.power = 0
}
let power_progress= this.power/this.power_max;
this.node.getChildByName("top").getChildByName("power").getComponent(ProgressBar)!.progress = power_progress;
}
shoot(skill_uuid:number){
// console.log("mon shoot");
@@ -257,14 +255,7 @@ export class RoleViewComp extends CCComp {
}
}
in_shield(){
let shield_progress= this.shield/this.shield_max;
this.node.getChildByName("top").getChildByName("shield").getComponent(ProgressBar)!.progress = shield_progress;
// if(this.shield <= 0){
// this.node.getChildByName("shield").active=false
// }else{
// this.node.getChildByName("shield").active=true
// }
}
hp_change(hp: number){
if(this.is_dead){

View File

@@ -1,13 +1,19 @@
export const MissionNum = [1,2,3]
export const MonsetList = {
1:{
1:[1001,1002,1003,1021,1022,1023,1031,1032,1033,1011,1012,1013,1041,1042,1043],
1:[1001,1002,1003,1041,1042,1043],
},
2:{
1:[1001,1002,1003,1021,1022,1023,1031,1032,1033,1011,1012,1013,1041,1042,1043],
1:[1011,1012,1013,1041,1042,1043],
},
3:{
1:[1001,1002,1003,1021,1022,1023,1031,1032,1033,1011,1012,1013,1041,1042,1043],
1:[1041,1042,1043],
},
4:{
1:[1021,1022,1023,1041,1042,1043],
},
5:{
1:[1031,1032,1033,1041,1042,1043],
},
}

View File

@@ -26,16 +26,20 @@ export const SkillSet={
1001:{uuid: 1001,path: "1001",type: 1,level: 1,name: "火球术",sp_name:"fire",info:"释放一个火球术攻击敌人",
dis:720,count:1,atk:10,hp:0,shield:0,sd:10,cd:1,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:350, },
1002:{uuid: 1002,path: "1002",type: 1,level: 1,name: "寒冰箭",sp_name:"ice",info:"释放一个寒冰箭攻击敌人",
dis:720,count:1,atk:10,hp:0,shield:0,sd:10,cd:1,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:350, },
1003:{uuid: 1003,path: "1003",type: 1,level: 1,name: "强效射击",sp_name:"b_arrow",info:"释放一个火球术攻击敌人",
dis:720,count:1,atk:10,hp:0,shield:0,sd:10,cd:1,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:350, },
1004:{uuid: 1004,path: "1004",type: 1,level: 1,name: "奥术冲击",sp_name:"bm_ball",info:"释放一个寒冰箭攻击敌人",
dis:720,count:1,atk:10,hp:0,shield:0,sd:10,cd:1,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:350, },
4011:{uuid: 4011,path: "1011",type: 1,level: 3,name: "火焰风暴",sp_name:"fire",info:"释放多个个火球术攻击敌人",
dis:720,count:5,atk:10,hp:0,shield:0,sd:10,cd:2,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:350, },
4012:{uuid: 4012,path: "1012",type: 1,level: 3,name: "冰晶风暴",sp_name:"ice",info:"释放多个个寒冰箭攻击敌人",
dis:720,count:5,atk:10,hp:0,shield:0,sd:10,cd:2,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:350, },
9001:{uuid: 9001,path: "1001",type: 1,level: 1,name: "精准打击",sp_name:"patk",info:"释放一个魔法球攻击敌人",
9001:{uuid: 9001,path: "1001",type: 1,level: 1,name: "劈砍",sp_name:"patk",info:"释放一个魔法球攻击敌人",
dis:720,count:1,atk:0,hp:0,shield:0,sd:0,cd:0,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:450,},
9002:{uuid: 9002,path: "1001",type: 1,level: 1,name: "魔法球",sp_name:"mball",info:"释放一个魔法球攻击敌人",
9002:{uuid: 9002,path: "1001",type: 1,level: 1,name: "魔法球",sp_name:"mball",info:"释放一个魔法球攻击敌人",
dis:720,count:1,atk:0,hp:0,shield:0,sd:0,cd:0,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:450,},
9003:{uuid: 9003,path: "1001",type: 1,level: 1,name: "精准射击",sp_name:"arrow",info:"释放一个魔法球攻击敌人",
9003:{uuid: 9003,path: "1001",type: 1,level: 1,name: "射击",sp_name:"arrow",info:"释放一个魔法球攻击敌人",
dis:720,count:1,atk:0,hp:0,shield:0,sd:0,cd:0,bsd:0,bcd:0,sk_uuid:1001,sk_count:0,speed:450,},
6210:{uuid: 6210,path: "6210",type: 92,level: 1,name: "普通攻击石",sp_name:"",info:"",

View File

@@ -17,13 +17,13 @@ export const HeroSet = {
9031: {
uuid: 9005, path: "m2", type: 3, level: 1, name: "牧师", atk: 3, hp: 20, atk_dis: 200, atk_cd: 2, power: 0, power_max: 10, speed: 30,
max_skill: "治愈术", skill_uuid: 9002, max_skill_uuid: 9002, word: "守护", info: "自身护盾", atktype: 2
max_skill: "治愈术", skill_uuid: 9002, max_skill_uuid: 1004, word: "守护", info: "自身护盾", atktype: 2
},
9041: {
uuid: 9009, path: "arc1", type: 3, level: 1, name: "弓箭手", atk: 3, hp: 15, atk_dis: 300, atk_cd: 1, power: 0, power_max: 10, speed: 30,
max_skill: "精准射击", skill_uuid: 9003, max_skill_uuid: 9003, word: "狂暴", info: "全体攻击", atktype: 2
max_skill: "精准射击", skill_uuid: 9003, max_skill_uuid: 1003, word: "狂暴", info: "全体攻击", atktype: 2
},
@@ -87,6 +87,6 @@ export const MonSet = {
},
1043: {
uuid: 1043, path: "ys3", type: 1, level: 1, name: "气元素", atk: 4, hp: 30, atk_dis: 200, atk_cd: 2, power: 0, power_max: 10, speed: 30,
max_skill: "魔法球", skill_uuid: 9002, max_skill_uuid: 9002, word: "守护", info: "自身护盾", atktype: 2
max_skill: "魔法球", skill_uuid: 9002, max_skill_uuid: 1004, word: "守护", info: "自身护盾", atktype: 2
},
}

View File

@@ -179,11 +179,7 @@ export class HeroViewComp extends CCComp {
if(this.stop_cd > 0){
return
}
if (this.scale === 1 && this.node.position.x >= BoxSet.MONSTER_START-this.atk_dis) {
return;
}
if(this.scale===-1&&this.node.position.x <= BoxSet.HERO_START-this.atk_cd){
if (this.scale === 1 && this.node.position.x >= BoxSet.MONSTER_START-150) {
return;
}
if(this.enemy){
@@ -193,7 +189,7 @@ export class HeroViewComp extends CCComp {
this.node.setPosition(this.node.position.x+dt*this.speed*this.scale, this.node.position.y+dt*this.dir_y, this.node.position.z);
}
set_diry(){
this.dir_y=-(this.node.position.y-BoxSet.GAME_LINE)/60
this.dir_y=-(this.node.position.y-BoxSet.GAME_LINE)/20
}
move_to(){
var move = this.ent.get(MoveToComp) || this.ent.add(MoveToComp);
@@ -227,21 +223,8 @@ export class HeroViewComp extends CCComp {
// this.tooltip(3,smc.skills[skill_uuid].name,this.skill_uuid);
}
//使用max_skill
do_max_skill(){
if(this.max_skill_uuid==this.skill_uuid){
this.shoot(this.max_skill_uuid,10)
this.shoot(this.max_skill_uuid,0)
this.shoot(this.max_skill_uuid,-10)
return
}
let skill = ecs.getEntity<Skill>(Skill);
let scale = this.scale
let speed =smc.skills[this.max_skill_uuid].speed;
let dis = smc.skills[this.max_skill_uuid].dis;
let atk = smc.skills[this.max_skill_uuid].atk+this.atk;
let {pos,angle,t_pos}=this.get_enemy_pos()
skill.load(pos,speed,dis,scale,this.node,this.max_skill_uuid,atk,angle,t_pos);
do_max_skill(){
this.shoot(this.max_skill_uuid)
}
to_speek(words:string,time:number=0.5){
this.speek_time=0.5

View File

@@ -36,6 +36,7 @@ export class MapMonsterComp extends CCComp {
target_timer: Timer = new Timer(0.1);
setp_num:number = 5;
game_over:boolean = false;
start_ys:any[] = [120,80,40,0,-40,-80,-120];
onLoad(){
// 监听全局事件
oops.message.on("other_add_monster", this.on_other_add_monster, this);
@@ -93,7 +94,10 @@ export class MapMonsterComp extends CCComp {
/** 添加玩家 */
private addHero(uuid:number=1001) {
let hero = ecs.getEntity<Hero>(Hero);
let {pos,monster_layer}=this.set_layer(BoxSet.HERO_START)
var scene = smc.map.MapView.scene;
let oy=RandomManager.instance.getRandomByObjectList(this.start_ys,1)
let pos:Vec3 = v3(BoxSet.HERO_START,BoxSet.GAME_LINE+oy[0]);
let monster_layer = scene.entityLayer!.node!
let scale = 1
hero.load(pos,scale,uuid,monster_layer);
}
@@ -103,7 +107,8 @@ export class MapMonsterComp extends CCComp {
}
let m:any = RandomManager.instance.getRandomByObjectList(this.mission_list[this.monster_level],1)
var scene = smc.map.MapView.scene;
let pos:Vec3 = v3(BoxSet.MONSTER_START,BoxSet.GAME_LINE+RandomManager.instance.getRandomInt(-130,130, 1))
let oy=RandomManager.instance.getRandomByObjectList(this.start_ys,1)
let pos:Vec3 = v3(BoxSet.MONSTER_START,BoxSet.GAME_LINE+oy[0])
let monster_layer = scene.entityLayer!.node!
this.addMonster(m[0],monster_layer,pos)
this.setp_num -= 1
@@ -113,12 +118,7 @@ export class MapMonsterComp extends CCComp {
let scale = -1
monster.load(pos,scale,uuid,layer);
}
set_layer(start:number=0){
var scene = smc.map.MapView.scene;
let pos:Vec3 = v3(start,BoxSet.GAME_LINE+RandomManager.instance.getRandomInt(-130,130, 1));
let monster_layer = scene.entityLayer!.node!
return {pos,monster_layer}
}
private on_other_add_monster(event: string, args: any) {
var scene = smc.map.MapView.scene;
let pos:Vec3 = v3(BoxSet.MONSTER_START,BoxSet.GAME_LINE)

View File

@@ -172,19 +172,14 @@ export class MonViewComp extends CCComp {
if(this.stop_cd > 0){
return
}
if (this.scale === 1 && this.node.position.x >= 120) {
if(this.scale===-1&&this.node.position.x <= BoxSet.HERO_START){
return;
}
if(this.scale===-1&&this.node.position.x <= BoxSet.HERO_START+this.atk_cd){
return;
}
this.set_diry()
this.node.setPosition(this.node.position.x+dt*this.speed*this.scale, this.node.position.y+dt*this.dir_y, this.node.position.z);
}
set_diry(){
this.dir_y=-(this.node.position.y-BoxSet.GAME_LINE)/60
this.dir_y=-(this.node.position.y-BoxSet.GAME_LINE)/20
}
move_to(){
var move = this.ent.get(MoveToComp) || this.ent.add(MoveToComp);
@@ -218,7 +213,6 @@ export class MonViewComp extends CCComp {
}
//使用max_skill
do_max_skill(){
let skill = ecs.getEntity<Skill>(Skill);
let scale = this.scale
let speed =smc.skills[this.max_skill_uuid].speed;
@@ -244,7 +238,7 @@ export class MonViewComp extends CCComp {
}
}
get_enemy_pos(){
let pos = v3(35*this.scale,50)
let pos = v3(35*this.scale,25)
let angle=0
let t_pos:Vec3 = v3(0,0)
if(this.enemy){
@@ -252,7 +246,7 @@ export class MonViewComp extends CCComp {
console.log("move_to",this.enemy.isValid);
return
}
t_pos = v3(this.enemy.position.x-(this.node.position.x+pos.x),this.enemy.position.y-(this.node.position.y+pos.y)+BoxSet.ATK_Y)
t_pos = v3(this.enemy.position.x-(this.node.position.x+pos.x)*1.1,(this.enemy.position.y-(this.node.position.y+pos.y)+BoxSet.ATK_Y)*1.1)
angle = Math.atan2(t_pos.y,t_pos.x) * 180 / Math.PI;
if(this.scale == -1){
angle = angle +180

View File

@@ -38,8 +38,8 @@ export class Skill extends ecs.Entity {
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
// console.log("load skill parent.position :",parent.position)
pos=v3(parent.position.x+pos.x,parent.position.y+pos.y)
node.parent = parent.parent;
pos=v3(pos.x,pos.y)
node.parent = parent;
node.setScale(scale,1)
//转换pos为世界坐标
node.setPosition(pos)

View File

@@ -175,7 +175,7 @@ export class SkillCom extends CCComp {
toDestroy() {
if(this.is_destroy){
if(this.node.isValid) this.ent.destroy()
if(this.node.parent) this.ent.destroy()
}
}