加血技能完成 怪物动画减少
This commit is contained in:
@@ -18,7 +18,6 @@ import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/
|
||||
import { RandomManager } from "../../../../extensions/oops-plugin-framework/assets/core/common/random/RandomManager";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { MoveToComp } from "../common/ecs/position/MoveTo";
|
||||
import { RoleBuffComp } from "./RoleBuffComp";
|
||||
import { RoleRangComp } from "./RoleRangComp";
|
||||
import { Tooltip } from "../skills/Tooltip";
|
||||
import { MonViewComp } from "../mon/MonViewComp";
|
||||
@@ -37,16 +36,14 @@ export class RoleViewComp extends CCComp {
|
||||
BoxRang:Node =null!
|
||||
|
||||
as:RoleSpine =null!;
|
||||
buff:RoleBuffComp =null!
|
||||
is_role:boolean = false;
|
||||
enemy_pos:Vec3=null!;
|
||||
enemy:any=null!;
|
||||
/** 角色动画 */
|
||||
hero_uuid:number = 1001;
|
||||
hero_name : string = "hero";
|
||||
hero_name : string = "role";
|
||||
level:number =1;
|
||||
scale: number = 1; /** 角色阵营 1:hero -1 :monster */
|
||||
type: number = 1; /**角色类型 1:前排 2 后排 */
|
||||
state: number = 1; /** 状态 1:move ,2: act 3: stop */
|
||||
|
||||
hp: number = 100; /** 血量 */
|
||||
@@ -56,10 +53,14 @@ export class RoleViewComp extends CCComp {
|
||||
power: number = 0; /**能量**/
|
||||
power_max: number = 1200; /** 能量最大值 */
|
||||
power_speed: number = 1; //能量回复速度每0.1秒回复量
|
||||
|
||||
|
||||
skill_uuid:number = 1005;
|
||||
max_skill_uuid:number = 1005;
|
||||
skill:8001;
|
||||
skills:{
|
||||
1:{uuid:8001,cd:2,alive:true },
|
||||
2:{uuid:8001,cd:2,alive:false},
|
||||
3:{uuid:8001,cd:2,alive:false},
|
||||
4:{uuid:8001,cd:2,alive:false},
|
||||
5:{uuid:8001,cd:2,alive:false},
|
||||
}
|
||||
atk: number = 10; /**攻击力 */
|
||||
// atk_speed: number = 1;
|
||||
atk_cd: number = 1.3; /**攻击速度 攻击间隔 */
|
||||
@@ -83,7 +84,6 @@ export class RoleViewComp extends CCComp {
|
||||
is_atking:boolean = false;
|
||||
|
||||
onLoad() {
|
||||
this.buff=this.node.getComponent(RoleBuffComp);
|
||||
this.BoxRang = this.node.getChildByName("range_box");
|
||||
this.as = this.node.getComponent(RoleSpine);
|
||||
|
||||
@@ -104,7 +104,6 @@ export class RoleViewComp extends CCComp {
|
||||
// this.BoxRang.getComponent(RoleRangComp).offset_x = this.scale*smc.skills[this.skill_uuid].dis/3;
|
||||
// console.log("monseter ",this.BoxRang);
|
||||
|
||||
this.buff.group=this.box_group
|
||||
// 注册单个碰撞体的回调函数
|
||||
let collider = this.getComponent(Collider2D);
|
||||
collider.group = this.box_group;
|
||||
@@ -159,7 +158,7 @@ export class RoleViewComp extends CCComp {
|
||||
|
||||
update(dt: number){
|
||||
if (this.timer.update(dt)) {
|
||||
this.power_change(this.power_speed)
|
||||
|
||||
}
|
||||
this.in_destroy();
|
||||
this.in_shield();
|
||||
@@ -178,56 +177,32 @@ export class RoleViewComp extends CCComp {
|
||||
}
|
||||
this.node.setPosition(this.node.position.x+dt*this.speed*this.scale, this.node.position.y, this.node.position.z);
|
||||
}
|
||||
power_change(power: number){
|
||||
this.power += power;
|
||||
if(this.power >= this.power_max&&this.check_enemy_alive()){
|
||||
this.as.atk()
|
||||
this.scheduleOnce(()=>{
|
||||
this.do_max_skill();
|
||||
},0.5)
|
||||
this.power = 0
|
||||
}
|
||||
}
|
||||
shoot(skill_uuid:number){
|
||||
|
||||
shoot(skill_uuid:number,y:number=0,x:number=0){
|
||||
// console.log("mon shoot");
|
||||
let skill = ecs.getEntity<Skill>(Skill);
|
||||
let scale = this.scale
|
||||
let speed =smc.skills[skill_uuid].speed;
|
||||
let dis = smc.skills[skill_uuid].dis;
|
||||
let atk = smc.skills[skill_uuid].atk+this.atk;
|
||||
let {pos,angle,t_pos}=this.get_enemy_pos()
|
||||
skill.load(pos,speed,dis,scale,this.node,skill_uuid,atk,angle,t_pos);
|
||||
let {pos,t_pos}=this.get_enemy_pos()
|
||||
pos.y=pos.y + y
|
||||
pos.x=pos.x + x
|
||||
skill.load(pos,BoxSet.HERO,this.node,skill_uuid,atk,t_pos);
|
||||
// this.tooltip(3,smc.skills[skill_uuid].name,this.skill_uuid);
|
||||
}
|
||||
//使用max_skill
|
||||
do_max_skill(){
|
||||
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);
|
||||
this.tooltip(3,smc.skills[this.max_skill_uuid].name,this.max_skill_uuid);
|
||||
}
|
||||
|
||||
get_enemy_pos(){
|
||||
let pos = v3(35*this.scale,50)
|
||||
let angle=0
|
||||
let pos = v3(0,50)
|
||||
let t_pos:Vec3 = v3(0,0)
|
||||
if(this.enemy){
|
||||
if(!this.enemy.isValid){
|
||||
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)
|
||||
angle = Math.atan2(t_pos.y,t_pos.x) * 180 / Math.PI;
|
||||
if(this.scale == -1){
|
||||
angle = angle +180
|
||||
}
|
||||
t_pos = v3(this.enemy.position.x-(this.node.position.x),this.enemy.position.y-(this.node.position.y+pos.y)+BoxSet.ATK_Y)
|
||||
}else{
|
||||
t_pos=null
|
||||
t_pos=v3(720,BoxSet.GAME_LINE)
|
||||
}
|
||||
return {pos,t_pos,angle}
|
||||
return {pos,t_pos}
|
||||
}
|
||||
check_enemy_alive(){
|
||||
if(this.enemy){
|
||||
@@ -246,7 +221,7 @@ export class RoleViewComp extends CCComp {
|
||||
// console.log("atk_cd:"+this.atk_cd);
|
||||
this.as.atk();
|
||||
this.scheduleOnce(()=>{
|
||||
this.shoot(this.skill_uuid);
|
||||
this.shoot(this.skill,-30);
|
||||
},0.4)
|
||||
}
|
||||
}else{
|
||||
@@ -254,7 +229,7 @@ export class RoleViewComp extends CCComp {
|
||||
}
|
||||
}
|
||||
in_shield(){
|
||||
|
||||
|
||||
}
|
||||
hp_change(hp: number){
|
||||
if(this.is_dead){
|
||||
@@ -356,6 +331,9 @@ export class RoleViewComp extends CCComp {
|
||||
var node = instantiate(prefab);
|
||||
node.setPosition(this.node.position.x,this.node.position.y+30,this.node.position.z);
|
||||
node.parent = this.node.parent;
|
||||
}
|
||||
heathed(){
|
||||
|
||||
}
|
||||
toDestroy(){
|
||||
|
||||
|
||||
Reference in New Issue
Block a user