技能 继续
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -13,22 +13,21 @@ import { UIID } from "../common/config/GameUIConfig";
|
|||||||
import { smc } from "../common/SingletonModuleComp";
|
import { smc } from "../common/SingletonModuleComp";
|
||||||
import { RoleModelComp } from "./RoleModelComp";
|
import { RoleModelComp } from "./RoleModelComp";
|
||||||
import { RoleSpine } from "./RoleSpine";
|
import { RoleSpine } from "./RoleSpine";
|
||||||
import { MoveToComp } from "../common/ecs/position/MoveTo";
|
|
||||||
import { RoleViewComp } from "./RoleViewComp";
|
import { RoleViewComp } from "./RoleViewComp";
|
||||||
import { BoxSet } from "../common/config/BoxSet";
|
import { BoxSet } from "../common/config/BoxSet";
|
||||||
|
import { HeroModelComp } from "../hero/HeroModelComp";
|
||||||
/** 角色实体 */
|
/** 角色实体 */
|
||||||
@ecs.register(`Role`)
|
@ecs.register(`Role`)
|
||||||
export class Role extends ecs.Entity {
|
export class Role extends ecs.Entity {
|
||||||
// 数据层
|
// 数据层
|
||||||
RoleModel!: RoleModelComp;
|
RoleModel!: RoleModelComp;
|
||||||
RoleMoveTo!: MoveToComp; // 移动
|
HeroModel!: HeroModelComp;
|
||||||
|
|
||||||
// 视图层
|
// 视图层
|
||||||
RoleView!: RoleViewComp;
|
RoleView!: RoleViewComp;
|
||||||
|
|
||||||
protected init() {
|
protected init() {
|
||||||
this.addComponents<ecs.Comp>(
|
this.addComponents<ecs.Comp>(
|
||||||
RoleModelComp);
|
RoleModelComp,HeroModelComp);
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy(): void {
|
destroy(): void {
|
||||||
@@ -62,20 +61,20 @@ export class Role extends ecs.Entity {
|
|||||||
rv.st_boncus=1+smc.vm_data.talent[15].bonus*smc.vm_data.talent[15].lv;
|
rv.st_boncus=1+smc.vm_data.talent[15].bonus*smc.vm_data.talent[15].lv;
|
||||||
rv.s_boncus=1+smc.vm_data.talent[16].bonus*smc.vm_data.talent[16].lv;
|
rv.s_boncus=1+smc.vm_data.talent[16].bonus*smc.vm_data.talent[16].lv;
|
||||||
rv.power = role.power;
|
rv.power = role.power;
|
||||||
rv.skills = role.skills;
|
rv.skill1 = role.skill1;
|
||||||
for (let i = 0; i < rv.skills.length; i++) {
|
rv.skill1.cd=rv.skill1.cd_max=1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv
|
||||||
rv.skills[i].cd*(1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv)
|
rv.skill2 = role.skill2;
|
||||||
}
|
rv.skill2.cd=rv.skill2.cd_max=1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv
|
||||||
|
rv.skill3 = role.skill3;
|
||||||
|
rv.skill3.cd=rv.skill3.cd_max=1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv
|
||||||
|
rv.skill4 = role.skill4;
|
||||||
|
rv.skill4.cd=rv.skill4.cd_max=1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv
|
||||||
|
rv.skill5 = role.skill5;
|
||||||
|
rv.skill5.cd=rv.skill5.cd_max=1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv
|
||||||
rv.skill = role.skill;
|
rv.skill = role.skill;
|
||||||
rv.box_group = BoxSet.HERO;
|
rv.box_group = BoxSet.HERO;
|
||||||
this.add(rv);
|
this.add(rv);
|
||||||
}
|
}
|
||||||
move(target: Vec3) {
|
|
||||||
var move = this.get(MoveToComp) || this.add(MoveToComp);
|
|
||||||
move.target = target;
|
|
||||||
move.node = this.RoleView.node;
|
|
||||||
move.speed = 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -59,6 +59,11 @@ export class RoleViewComp extends CCComp {
|
|||||||
power_speed: number = 1; //能量回复速度每0.1秒回复量
|
power_speed: number = 1; //能量回复速度每0.1秒回复量
|
||||||
skill:8001;
|
skill:8001;
|
||||||
skills:any=[]
|
skills:any=[]
|
||||||
|
skill1:any=[]
|
||||||
|
skill2:any=[]
|
||||||
|
skill3:any=[]
|
||||||
|
skill4:any=[]
|
||||||
|
skill5:any=[]
|
||||||
st_boncus: number = 1; //技能持续时间加成
|
st_boncus: number = 1; //技能持续时间加成
|
||||||
s_boncus: number = 1; //技能效果加成
|
s_boncus: number = 1; //技能效果加成
|
||||||
buff_atks:any = [];
|
buff_atks:any = [];
|
||||||
@@ -179,16 +184,23 @@ export class RoleViewComp extends CCComp {
|
|||||||
this.check_enemys()
|
this.check_enemys()
|
||||||
}
|
}
|
||||||
skill_cds(dt:number){
|
skill_cds(dt:number){
|
||||||
this.skills.forEach((e:any) => {
|
this.skill1.cd -= dt;
|
||||||
if(e.cd > 0&&e.alive){
|
if(this.skill1.cd <= 0){
|
||||||
e.cd -= dt;
|
this.shoot(this.skill1.uuid);
|
||||||
if(e.cd <= 0){
|
this.skill1.cd=this.skill1.cd_max
|
||||||
this.shoot(e.uuid);
|
console.log("shoot uuid :"+this.skill1.uuid);
|
||||||
e.cd=smc.skills[e.uuid].cd
|
}
|
||||||
console.log("shoot uuid :"+e.uuid);
|
|
||||||
}
|
// this.skills.forEach((e:any) => {
|
||||||
}
|
// if(e.cd > 0&&e.alive){
|
||||||
});
|
// e.cd -= dt;
|
||||||
|
// if(e.cd <= 0){
|
||||||
|
// this.shoot(e.uuid);
|
||||||
|
// e.cd=smc.skills[e.uuid].cd
|
||||||
|
// console.log("shoot uuid :"+e.uuid);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
// console.log(this.skills);
|
// console.log(this.skills);
|
||||||
}
|
}
|
||||||
check_enemys(){
|
check_enemys(){
|
||||||
@@ -460,6 +472,8 @@ export class RoleViewComp extends CCComp {
|
|||||||
|
|
||||||
}
|
}
|
||||||
dead(){
|
dead(){
|
||||||
|
oops.message.dispatchEvent("minssion_defeat");
|
||||||
|
|
||||||
var path = "game/skills/dead";
|
var path = "game/skills/dead";
|
||||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||||
var node = instantiate(prefab);
|
var node = instantiate(prefab);
|
||||||
|
|||||||
@@ -77,16 +77,22 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
gems: 4,
|
gems: 4,
|
||||||
unlock:5,
|
unlock:5,
|
||||||
mission:{
|
mission:{
|
||||||
|
victory:0,
|
||||||
once:6, //每波刷新怪物数量
|
once:6, //每波刷新怪物数量
|
||||||
total:120, //总怪物数
|
total:120, //总怪物数
|
||||||
|
m_less:0,
|
||||||
|
m_alive:120,
|
||||||
|
g_level:1,
|
||||||
|
g_time:0,
|
||||||
reward:20, //怪物死亡奖励数量
|
reward:20, //怪物死亡奖励数量
|
||||||
reward_num:0, //怪物死亡数
|
reward_num:0, //怪物死亡数
|
||||||
coin:100,
|
coin:200,
|
||||||
coin_add:1,
|
coin_add:1,
|
||||||
coin_reward_add:1,
|
coin_reward_add:1,
|
||||||
normal_cost:10,
|
normal_cost:10,
|
||||||
better_cost:20,
|
better_cost:20,
|
||||||
best_cost:30,
|
best_cost:30,
|
||||||
|
enhancement_cost:100,
|
||||||
normal_lv:1,
|
normal_lv:1,
|
||||||
better_lv:1,
|
better_lv:1,
|
||||||
best_lv:1,
|
best_lv:1,
|
||||||
@@ -94,9 +100,6 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
t_dps:0,
|
t_dps:0,
|
||||||
h_dps:0,
|
h_dps:0,
|
||||||
m_dps:0,
|
m_dps:0,
|
||||||
g_level:1,
|
|
||||||
g_time:0,
|
|
||||||
m_less:0,
|
|
||||||
hero:{
|
hero:{
|
||||||
atk:1,
|
atk:1,
|
||||||
atk_cd:1,
|
atk_cd:1,
|
||||||
@@ -124,13 +127,12 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
next_exp:100,
|
next_exp:100,
|
||||||
power:300,
|
power:300,
|
||||||
skill:1004,
|
skill:1004,
|
||||||
skills:[
|
skill1:{uuid:1001,cd:3,cd_max:3,alive:true },
|
||||||
{uuid:0,cd:2,alive:false },
|
skill2:{uuid:1001,cd:3,cd_max:3,alive:false},
|
||||||
{uuid:0,cd:3,alive:false},
|
skill3:{uuid:1001,cd:3,cd_max:3,alive:false},
|
||||||
{uuid:0,cd:4,alive:false},
|
skill4:{uuid:1001,cd:3,cd_max:3,alive:false},
|
||||||
{uuid:0,cd:0,alive:false},
|
skill5:{uuid:1001,cd:3,cd_max:3,alive:false},
|
||||||
{uuid:0,cd:0,alive:false},
|
|
||||||
],
|
|
||||||
|
|
||||||
},
|
},
|
||||||
talent:{
|
talent:{
|
||||||
|
|||||||
@@ -36,7 +36,11 @@ export class CardControllerComp extends CCComp {
|
|||||||
reward_lv = 0;
|
reward_lv = 0;
|
||||||
|
|
||||||
protected onLoad(): void {
|
protected onLoad(): void {
|
||||||
oops.message.on("do_reward", this.do_reward, this)
|
// oops.message.on("do_reward", this.do_reward, this)
|
||||||
|
oops.message.on("minssion_victory", this.do_minssion_victory, this)
|
||||||
|
oops.message.on("minssion_defeat", this.do_minssion_defeat, this)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
start() {
|
start() {
|
||||||
|
|
||||||
@@ -65,13 +69,24 @@ export class CardControllerComp extends CCComp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_minssion_victory(){
|
||||||
|
this.node.getChildByName("victory").active=true
|
||||||
|
}
|
||||||
|
|
||||||
|
do_minssion_defeat(){
|
||||||
|
this.node.getChildByName("defeat").active=true
|
||||||
|
}
|
||||||
|
end_mission(){
|
||||||
|
this.node.getChildByName("victory").active=false
|
||||||
|
this.node.getChildByName("defeat").active=false
|
||||||
|
console.log("end_mission")
|
||||||
|
}
|
||||||
normal_call(){
|
normal_call(){
|
||||||
if(smc.vm_data.mission.coin >= smc.vm_data.mission.normal_cost){
|
if(smc.vm_data.mission.coin >= smc.vm_data.mission.normal_cost){
|
||||||
smc.vm_data.mission.coin -= smc.vm_data.mission.normal_cost
|
smc.vm_data.mission.coin -= smc.vm_data.mission.normal_cost
|
||||||
oops.message.dispatchEvent("normal_call");
|
oops.message.dispatchEvent("normal_call");
|
||||||
}else{
|
}else{
|
||||||
oops.gui.toast("铜币不够!");
|
oops.gui.toast("铜币不足!");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -88,7 +103,11 @@ export class CardControllerComp extends CCComp {
|
|||||||
|
|
||||||
|
|
||||||
do_reward(){
|
do_reward(){
|
||||||
|
if(!smc.vm_data.mission.coin >= smc.vm_data.mission.enhancement_cost) return
|
||||||
|
smc.vm_data.mission.coin -= smc.vm_data.mission.enhancement_cost
|
||||||
|
|
||||||
smc.vm_data.game_pause = true;
|
smc.vm_data.game_pause = true;
|
||||||
|
|
||||||
this.reward_lv+=1
|
this.reward_lv+=1
|
||||||
this.rewards_set=JSON.parse(JSON.stringify(RewardSet[1]));
|
this.rewards_set=JSON.parse(JSON.stringify(RewardSet[1]));
|
||||||
// console.log("rewards_set:",this.rewards_set,RewardSet[1])
|
// console.log("rewards_set:",this.rewards_set,RewardSet[1])
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export class MapMonsterComp extends CCComp {
|
|||||||
this.boss_list = BossList[this.cur_mission]
|
this.boss_list = BossList[this.cur_mission]
|
||||||
// console.log("当前关卡方案",this.cur_mission,this.mission_list)
|
// console.log("当前关卡方案",this.cur_mission,this.mission_list)
|
||||||
this.refresh_timer= new Timer(smc.vm_data.shuaxin.max);
|
this.refresh_timer= new Timer(smc.vm_data.shuaxin.max);
|
||||||
smc.vm_data.mission.m_less=this.total
|
smc.vm_data.mission.m_less=smc.vm_data.mission.m_alive=JSON.parse(JSON.stringify(this.total));
|
||||||
this.monster_refresh()
|
this.monster_refresh()
|
||||||
this.load_role()
|
this.load_role()
|
||||||
this.load_boss()
|
this.load_boss()
|
||||||
@@ -130,7 +130,7 @@ export class MapMonsterComp extends CCComp {
|
|||||||
}
|
}
|
||||||
is_reward(){
|
is_reward(){
|
||||||
if(smc.vm_data.mission.reward_num < smc.vm_data.mission.reward) return
|
if(smc.vm_data.mission.reward_num < smc.vm_data.mission.reward) return
|
||||||
this.do_reward()
|
// this.do_reward()
|
||||||
smc.vm_data.mission.reward_num = 0
|
smc.vm_data.mission.reward_num = 0
|
||||||
}
|
}
|
||||||
do_reward(){
|
do_reward(){
|
||||||
|
|||||||
@@ -310,7 +310,6 @@ export class MonViewComp extends CCComp {
|
|||||||
if(this.hp <= 0){
|
if(this.hp <= 0){
|
||||||
this.dead();
|
this.dead();
|
||||||
this.is_dead = true;
|
this.is_dead = true;
|
||||||
smc.vm_data.mission.reward_num += 1;
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.ent.destroy();
|
this.ent.destroy();
|
||||||
}, 15);
|
}, 15);
|
||||||
@@ -389,7 +388,7 @@ export class MonViewComp extends CCComp {
|
|||||||
let tip =ecs.getEntity<Tooltip>(Tooltip);
|
let tip =ecs.getEntity<Tooltip>(Tooltip);
|
||||||
let pos = this.node.getPosition();
|
let pos = this.node.getPosition();
|
||||||
let node =this.node.parent
|
let node =this.node.parent
|
||||||
pos.y=pos.y+60;
|
pos.y=pos.y+50;
|
||||||
tip.load(pos,type,value,s_uuid,node);
|
tip.load(pos,type,value,s_uuid,node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -427,15 +426,20 @@ export class MonViewComp extends CCComp {
|
|||||||
|
|
||||||
}
|
}
|
||||||
dead(){
|
dead(){
|
||||||
|
let coin =(GameSet.MON_COIN_ADD*smc.vm_data.mission.coin_reward_add*(1+smc.vm_data.talent[6].bonus*smc.vm_data.talent[6].lv)).toFixed(0)
|
||||||
|
smc.vm_data.mission.coin += parseFloat(coin)
|
||||||
|
smc.vm_data.mission.reward_num += 1;
|
||||||
|
smc.vm_data.mission.m_alive -= 1;
|
||||||
|
if(smc.vm_data.mission.m_alive <= 0){
|
||||||
|
smc.vm_data.mission.victory = 1;
|
||||||
|
oops.message.dispatchEvent("minssion_victory");
|
||||||
|
}
|
||||||
var path = "game/skills/dead";
|
var path = "game/skills/dead";
|
||||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||||
var node = instantiate(prefab);
|
var node = instantiate(prefab);
|
||||||
node.setPosition(this.node.position.x,this.node.position.y+30,this.node.position.z);
|
node.setPosition(this.node.position.x,this.node.position.y+30,this.node.position.z);
|
||||||
node.parent = this.node.parent;
|
node.parent = this.node.parent;
|
||||||
|
|
||||||
let coin =(GameSet.MON_COIN_ADD*smc.vm_data.mission.coin_reward_add*(1+smc.vm_data.talent[6].bonus*smc.vm_data.talent[6].lv)).toFixed(0)
|
|
||||||
smc.vm_data.mission.coin += parseFloat(coin)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
toDestroy(){
|
toDestroy(){
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export class Tooltip extends ecs.Entity {
|
|||||||
sv.stype = type;
|
sv.stype = type;
|
||||||
sv.value = vaule;
|
sv.value = vaule;
|
||||||
sv.s_uuid = s_uuid;
|
sv.s_uuid = s_uuid;
|
||||||
sv.alive_time = cd;
|
sv.alive_time = 0.3;
|
||||||
this.add(sv)
|
this.add(sv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export class TooltipCom extends CCComp {
|
|||||||
stype:number = 1; // 1:减少生命值,2:增加生命值,3:技能图标
|
stype:number = 1; // 1:减少生命值,2:增加生命值,3:技能图标
|
||||||
value:string = "";
|
value:string = "";
|
||||||
s_uuid:number = 1001;
|
s_uuid:number = 1001;
|
||||||
alive_time:number = 1;
|
alive_time:number = 0.2;
|
||||||
skill_name_time=0.5;
|
skill_name_time=0.5;
|
||||||
start() {
|
start() {
|
||||||
this.node.getChildByName("loss_life").active=false;
|
this.node.getChildByName("loss_life").active=false;
|
||||||
@@ -33,7 +33,7 @@ export class TooltipCom extends CCComp {
|
|||||||
this.node.getChildByName("loss_life").active=true;
|
this.node.getChildByName("loss_life").active=true;
|
||||||
tween(this.node).to(
|
tween(this.node).to(
|
||||||
this.alive_time,
|
this.alive_time,
|
||||||
{position:v3(this.node.position.x+10,this.node.position.y+40), },
|
{position:v3(this.node.position.x,this.node.position.y+10), },
|
||||||
{
|
{
|
||||||
onComplete:()=>{ this.ent.destroy()},
|
onComplete:()=>{ this.ent.destroy()},
|
||||||
easing:"linear"
|
easing:"linear"
|
||||||
@@ -45,7 +45,7 @@ export class TooltipCom extends CCComp {
|
|||||||
this.node.getChildByName("add_life").active=true;
|
this.node.getChildByName("add_life").active=true;
|
||||||
tween(this.node).to(
|
tween(this.node).to(
|
||||||
this.alive_time,
|
this.alive_time,
|
||||||
{position:v3(this.node.position.x+10,this.node.position.y+40), },
|
{position:v3(this.node.position.x,this.node.position.y+10), },
|
||||||
{
|
{
|
||||||
onComplete:()=>{ this.ent.destroy()},
|
onComplete:()=>{ this.ent.destroy()},
|
||||||
easing:"linear"
|
easing:"linear"
|
||||||
|
|||||||
Reference in New Issue
Block a user