ddd
This commit is contained in:
@@ -84,6 +84,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
dexp:number=0; //死亡经验 */
|
dexp:number=0; //死亡经验 */
|
||||||
|
|
||||||
ap: number = 10; /**攻击力 */
|
ap: number = 10; /**攻击力 */
|
||||||
|
ap_max: number = 0;
|
||||||
ap_buff: number = 0;
|
ap_buff: number = 0;
|
||||||
ap_buffs:any = [];
|
ap_buffs:any = [];
|
||||||
// atk_speed: number = 1;
|
// atk_speed: number = 1;
|
||||||
@@ -92,11 +93,15 @@ export class HeroViewComp extends CCComp {
|
|||||||
at: number = 0; /** 冷却时间 */
|
at: number = 0; /** 冷却时间 */
|
||||||
|
|
||||||
def: number = 0; //防御
|
def: number = 0; //防御
|
||||||
|
def_max: number = 0;
|
||||||
vun: number = 0; //易伤
|
vun: number = 0; //易伤
|
||||||
|
|
||||||
crit: number = 0; //暴击率
|
crit: number = 0; //暴击率
|
||||||
|
crit_max: number = 0;
|
||||||
crit_add: number = 0;//暴击伤害加成
|
crit_add: number = 0;//暴击伤害加成
|
||||||
dodge: number = 10; //闪避率
|
dodge: number = 10; //闪避率
|
||||||
|
dodge_max: number = 10; //闪避率
|
||||||
|
|
||||||
|
|
||||||
shield:number = 0; //护盾,免伤1次减1
|
shield:number = 0; //护盾,免伤1次减1
|
||||||
speed: number = 100; /** 角色移动速度 */
|
speed: number = 100; /** 角色移动速度 */
|
||||||
@@ -211,8 +216,20 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.in_atk(dt);
|
this.in_atk(dt);
|
||||||
// this.hp_show()
|
// this.hp_show()
|
||||||
this.move(dt);
|
this.move(dt);
|
||||||
|
this.check_mission_buf()
|
||||||
|
}
|
||||||
|
check_mission_buf(){
|
||||||
|
this.ap_max=(100+smc.vmdata.mission.ap)/100*this.ap
|
||||||
|
this.crit_max=(100+smc.vmdata.mission.crit)/100*this.crit
|
||||||
|
this.def_max=(100+smc.vmdata.mission.def)/100*this.def
|
||||||
|
this.dodge_max=(100+smc.vmdata.mission.dodge)/100*this.dodge
|
||||||
|
if(this.box_group == BoxSet.MONSTER){
|
||||||
|
this.ap_max=(100+smc.vmdata.mission.map)/100*this.ap
|
||||||
|
this.crit_max=(100+smc.vmdata.mission.mcrit)/100*this.crit
|
||||||
|
this.def_max=(100+smc.vmdata.mission.mdef)/100*this.def
|
||||||
|
this.dodge_max=(100+smc.vmdata.mission.mdodge)/100*this.dodge
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
check_enemy_alive(){
|
check_enemy_alive(){
|
||||||
let dir = 320
|
let dir = 320
|
||||||
this.enemy = v3(720,this.node.position.y)
|
this.enemy = v3(720,this.node.position.y)
|
||||||
@@ -361,11 +378,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
//暴击判断
|
//暴击判断
|
||||||
check_crit(){
|
check_crit(){
|
||||||
let i = RandomManager.instance.getRandomInt(0,100,3)
|
let i = RandomManager.instance.getRandomInt(0,100,3)
|
||||||
let crit=this.crit+smc.vmdata.mission.crit
|
if(i < this.crit_max){
|
||||||
if(this.box_group == BoxSet.MONSTER){
|
|
||||||
crit = this.crit+smc.vmdata.mission.mcrit
|
|
||||||
}
|
|
||||||
if(i < crit){
|
|
||||||
this.tooltip(5,"*会心一击*");
|
this.tooltip(5,"*会心一击*");
|
||||||
this.crit_count += 1
|
this.crit_count += 1
|
||||||
this.exp_add(this.cexp) // 暴击经验
|
this.exp_add(this.cexp) // 暴击经验
|
||||||
@@ -378,11 +391,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
//闪避判断
|
//闪避判断
|
||||||
check_dodge(){
|
check_dodge(){
|
||||||
let i = RandomManager.instance.getRandomInt(0,100,3)
|
let i = RandomManager.instance.getRandomInt(0,100,3)
|
||||||
let dodge=this.dodge+smc.vmdata.mission.dodge;
|
if(i < this.dodge_max){
|
||||||
if(this.box_group == BoxSet.MONSTER){
|
|
||||||
dodge = this.dodge+smc.vmdata.mission.mdodge;
|
|
||||||
}
|
|
||||||
if(i < dodge){
|
|
||||||
// console.log("闪避触发: i="+i+":dodge="+dodge);
|
// console.log("闪避触发: i="+i+":dodge="+dodge);
|
||||||
this.tooltip(5,"闪避");
|
this.tooltip(5,"闪避");
|
||||||
this.exp_add(this.doexp) // 闪避经验
|
this.exp_add(this.doexp) // 闪避经验
|
||||||
@@ -506,33 +515,25 @@ export class HeroViewComp extends CCComp {
|
|||||||
shoot_enemy(sk:number,y:number=0,x:number=0){
|
shoot_enemy(sk:number,y:number=0,x:number=0){
|
||||||
// console.log("mon shoot_enemy");
|
// console.log("mon shoot_enemy");
|
||||||
let skill = ecs.getEntity<Skill>(Skill);
|
let skill = ecs.getEntity<Skill>(Skill);
|
||||||
let AP = this.ap+smc.vmdata.mission.ap; //攻击力需要加上局内buff
|
|
||||||
if(this.box_group == BoxSet.MONSTER){
|
|
||||||
AP = this.ap+smc.vmdata.mission.map
|
|
||||||
}
|
|
||||||
let {pos,t_pos}=this.get_enemy_pos()
|
let {pos,t_pos}=this.get_enemy_pos()
|
||||||
pos.y=pos.y + y
|
pos.y=pos.y + y
|
||||||
pos.x=pos.x + x
|
pos.x=pos.x + x
|
||||||
let is_crit=this.check_crit()
|
let is_crit=this.check_crit()
|
||||||
skill.load(pos,this.box_group,this.node,sk,AP,t_pos,is_crit,this.crit_add);
|
skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add);
|
||||||
console.log(this.scale+this.hero_name+"使用技能:"+sk);
|
console.log(this.scale+this.hero_name+"使用技能:"+sk);
|
||||||
}
|
}
|
||||||
to_add_buff(hero:any,sk:number){
|
to_add_buff(hero:any,sk:number){
|
||||||
let skill = ecs.getEntity<Skill>(Skill);
|
let skill = ecs.getEntity<Skill>(Skill);
|
||||||
let AP = SkillSet[sk].ap+this.ap+smc.vmdata.mission.ap; //攻击力需要加上局内buff
|
|
||||||
if(this.box_group == BoxSet.MONSTER){
|
|
||||||
AP = SkillSet[sk].ap+this.ap+smc.vmdata.mission.map;
|
|
||||||
}
|
|
||||||
let {pos,t_pos}=this.get_hero_pos(hero)
|
let {pos,t_pos}=this.get_hero_pos(hero)
|
||||||
console.log("to_add_buff:"+hero.hero_name+" "+sk);
|
console.log("to_add_buff:"+hero.hero_name+" "+sk);
|
||||||
let is_crit=this.check_crit()
|
let is_crit=this.check_crit()
|
||||||
skill.load(pos,this.box_group,this.node,sk,AP,t_pos,is_crit,this.crit_add);
|
skill.load(pos,this.box_group,this.node,sk,this.ap_max,t_pos,is_crit,this.crit_add);
|
||||||
if(SkillSet[sk].hp > 0){ //buff加血
|
if(SkillSet[sk].hp > 0){ //buff加血
|
||||||
let increase_hp=Math.floor(SkillSet[sk].hp*AP)
|
let increase_hp=Math.floor(SkillSet[sk].hp*this.ap_max)
|
||||||
hero.add_hp(increase_hp)
|
hero.add_hp(increase_hp)
|
||||||
}
|
}
|
||||||
if(SkillSet[sk].ap > 0){ //buff加攻击
|
if(SkillSet[sk].ap > 0){ //buff加攻击
|
||||||
let increase_atk=Math.floor(SkillSet[sk].ap*AP)
|
let increase_atk=Math.floor(SkillSet[sk].ap*this.ap_max)
|
||||||
hero.add_ap(increase_atk,SkillSet[sk].bsd)
|
hero.add_ap(increase_atk,SkillSet[sk].bsd)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -611,7 +612,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
if(this.hp > this.hp_max){
|
if(this.hp > this.hp_max){
|
||||||
this.hp = this.hp_max;
|
this.hp = this.hp_max;
|
||||||
}
|
}
|
||||||
this.tooltip(2,hp.toString());
|
this.tooltip(2,hp.toFixed(0));
|
||||||
let hp_progress= this.hp/this.hp_max;
|
let hp_progress= this.hp/this.hp_max;
|
||||||
this.node.getChildByName("top").getChildByName("hp").getComponent(ProgressBar)!.progress = hp_progress;
|
this.node.getChildByName("top").getChildByName("hp").getComponent(ProgressBar)!.progress = hp_progress;
|
||||||
}
|
}
|
||||||
@@ -630,9 +631,9 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.hp += hp;
|
this.hp += hp;
|
||||||
|
|
||||||
if(is_crit){
|
if(is_crit){
|
||||||
this.tooltip(4,hp.toString(),250);
|
this.tooltip(4,hp.toFixed(0),250);
|
||||||
}else{
|
}else{
|
||||||
this.tooltip(1,hp.toString(),250);
|
this.tooltip(1,hp.toFixed(0),250);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.hp > this.hp_max){
|
if(this.hp > this.hp_max){
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ export class HCardComp extends CCComp {
|
|||||||
this.is_dead=false
|
this.is_dead=false
|
||||||
}
|
}
|
||||||
this.hp.string=this.heros[this.hi].HeroView.hp_max
|
this.hp.string=this.heros[this.hi].HeroView.hp_max
|
||||||
this.ap.string=this.heros[this.hi].HeroView.ap+smc.vmdata.mission.ap
|
this.ap.string=this.heros[this.hi].HeroView.ap*(smc.vmdata.mission.ap+100)/100
|
||||||
this.life.progress=this.heros[this.hi].HeroView.hp/this.heros[this.hi].HeroView.hp_max
|
this.life.progress=this.heros[this.hi].HeroView.hp/this.heros[this.hi].HeroView.hp_max
|
||||||
this.pw.progress=this.heros[this.hi].HeroView.pw/this.heros[this.hi].HeroView.pwm
|
this.pw.progress=this.heros[this.hi].HeroView.pw/this.heros[this.hi].HeroView.pwm
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user