护盾改为 护甲值
This commit is contained in:
File diff suppressed because it is too large
Load Diff
4268
assets/resources/gui/element/victory.prefab
Normal file
4268
assets/resources/gui/element/victory.prefab
Normal file
File diff suppressed because it is too large
Load Diff
13
assets/resources/gui/element/victory.prefab.meta
Normal file
13
assets/resources/gui/element/victory.prefab.meta
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"ver": "1.1.50",
|
||||||
|
"importer": "prefab",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "12eb126e-afc6-4b04-911e-8cab7f334c44",
|
||||||
|
"files": [
|
||||||
|
".json"
|
||||||
|
],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {
|
||||||
|
"syncNodeName": "victory"
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -17047,8 +17047,8 @@
|
|||||||
"rawHeight": 53,
|
"rawHeight": 53,
|
||||||
"borderTop": 0,
|
"borderTop": 0,
|
||||||
"borderBottom": 0,
|
"borderBottom": 0,
|
||||||
"borderLeft": 0,
|
"borderLeft": 54,
|
||||||
"borderRight": 0,
|
"borderRight": 54,
|
||||||
"packable": true,
|
"packable": true,
|
||||||
"pixelsToUnit": 100,
|
"pixelsToUnit": 100,
|
||||||
"pivotX": 0.5,
|
"pivotX": 0.5,
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
mission:1,//关卡
|
mission:1,//关卡
|
||||||
chapter:1,//章节
|
chapter:1,//章节
|
||||||
level:1,//关卡等级
|
level:1,//关卡等级
|
||||||
max_mission:10,//最大关卡
|
max_mission:4,//最大关卡
|
||||||
meat:0,//肉
|
meat:0,//肉
|
||||||
mon_num:0,//怪物数量
|
mon_num:0,//怪物数量
|
||||||
hero_num:0,//英雄数量
|
hero_num:0,//英雄数量
|
||||||
@@ -418,10 +418,10 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
this.vmdata.mission_data.mission=this.getGameProperty("mission", 1)
|
this.vmdata.mission_data.mission=this.getGameProperty("mission", 1)
|
||||||
this.vmdata.mission_data.score=this.getGameProperty("score", 0)
|
this.vmdata.mission_data.score=this.getGameProperty("score", 0)
|
||||||
this.vmdata.mission_data.exp=this.getGameProperty("exp", 0)
|
this.vmdata.mission_data.exp=this.getGameProperty("exp", 0)
|
||||||
// 计算章节和关卡等级
|
// // 计算章节和关卡等级
|
||||||
const currentMission = this.getGameProperty("mission", 1)
|
// const currentMission = this.getGameProperty("mission", 1)
|
||||||
this.vmdata.mission_data.chapter = Math.floor((currentMission - 1) / 10) + 1
|
// this.vmdata.mission_data.chapter = Math.floor((currentMission - 1) / 10) + 1
|
||||||
this.vmdata.mission_data.level = ((currentMission - 1) % 10) + 1
|
// this.vmdata.mission_data.level = ((currentMission - 1) % 10) + 1
|
||||||
}
|
}
|
||||||
initReward(){
|
initReward(){
|
||||||
this.vmdata.reward.gold=0
|
this.vmdata.reward.gold=0
|
||||||
@@ -507,8 +507,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
this.setGameProperty("mission", newMission, autoSave);
|
this.setGameProperty("mission", newMission, autoSave);
|
||||||
console.log(`[SMC]: 关卡进度增加: ${currentMission} -> ${newMission} (+${amount})`);
|
console.log(`[SMC]: 关卡进度增加: ${currentMission} -> ${newMission} (+${amount})`);
|
||||||
// 计算章节和关卡等级
|
// 计算章节和关卡等级
|
||||||
this.vmdata.mission_data.chapter = Math.floor((newMission - 1) / 10) + 1
|
// this.vmdata.mission_data.chapter = Math.floor((newMission - 1) / 10) + 1
|
||||||
this.vmdata.mission_data.level = ((newMission - 1) % 10) + 1
|
// this.vmdata.mission_data.level = ((newMission - 1) % 10) + 1
|
||||||
return newMission;
|
return newMission;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export var UIConfigData: { [key: number]: UIConfig } = {
|
|||||||
// [UIID.Window]: { layer: LayerType.Dialog, prefab: "common/prefab/window" },
|
// [UIID.Window]: { layer: LayerType.Dialog, prefab: "common/prefab/window" },
|
||||||
[UIID.Role_Controller]: { layer: LayerType.UI, prefab: "gui/role_controller" },
|
[UIID.Role_Controller]: { layer: LayerType.UI, prefab: "gui/role_controller" },
|
||||||
[UIID.HeroInfo]: { layer: LayerType.UI, prefab: "gui/Hinfo" },
|
[UIID.HeroInfo]: { layer: LayerType.UI, prefab: "gui/Hinfo" },
|
||||||
[UIID.Victory]: { layer: LayerType.UI, prefab: "gui/victory" },
|
[UIID.Victory]: { layer: LayerType.UI, prefab: "gui/element/victory" },
|
||||||
// [UIID.Shop_Page]: { layer: LayerType.UI, prefab: "gui/shop_page" },
|
// [UIID.Shop_Page]: { layer: LayerType.UI, prefab: "gui/shop_page" },
|
||||||
// [UIID.Hero_Page]: { layer: LayerType.UI, prefab: "gui/heros_page" },
|
// [UIID.Hero_Page]: { layer: LayerType.UI, prefab: "gui/heros_page" },
|
||||||
// [UIID.Toast]: { layer: LayerType.PopUp, prefab: "common/prefab/toast" },
|
// [UIID.Toast]: { layer: LayerType.PopUp, prefab: "common/prefab/toast" },
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ export enum TType {
|
|||||||
/** 随机目标 */
|
/** 随机目标 */
|
||||||
Random =8 // 随机目标
|
Random =8 // 随机目标
|
||||||
}
|
}
|
||||||
|
export enum SKILL_CONST {
|
||||||
|
POWER_UP = 60,
|
||||||
|
}
|
||||||
|
|
||||||
export enum DTType {
|
export enum DTType {
|
||||||
single = 0,
|
single = 0,
|
||||||
@@ -140,6 +143,7 @@ export enum BuffAttr {
|
|||||||
DIS = 33, //距离
|
DIS = 33, //距离
|
||||||
SPEED = 34, //速度
|
SPEED = 34, //速度
|
||||||
SHIELD = 35, //护盾
|
SHIELD = 35, //护盾
|
||||||
|
POWER_MAX = 36, //最大能量
|
||||||
}
|
}
|
||||||
export const getBuffNum=()=>{
|
export const getBuffNum=()=>{
|
||||||
return {
|
return {
|
||||||
@@ -179,6 +183,7 @@ export const getBuffNum=()=>{
|
|||||||
[BuffAttr.DIS]:0,//距离
|
[BuffAttr.DIS]:0,//距离
|
||||||
[BuffAttr.SPEED]:0,//速度
|
[BuffAttr.SPEED]:0,//速度
|
||||||
[BuffAttr.SHIELD]:0,//护盾
|
[BuffAttr.SHIELD]:0,//护盾
|
||||||
|
[BuffAttr.POWER_MAX]:0,//最大能量
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export const geDebuffNum=()=>{
|
export const geDebuffNum=()=>{
|
||||||
|
|||||||
@@ -44,19 +44,20 @@ export const getMonList = (quality:number=0)=>{
|
|||||||
}).map(item=>item.uuid)
|
}).map(item=>item.uuid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export const HeroPos={
|
export const HeroPos={
|
||||||
0:{pos:v3(-290,0,0)},
|
0:{pos:v3(-290,0,0)},
|
||||||
1:{pos:v3(0,0,0)},
|
1:{pos:v3(0,0,0)},
|
||||||
2:{pos:v3(-100,0,0)},
|
2:{pos:v3(-100,0,0)},
|
||||||
}
|
}
|
||||||
export const MonSet = {
|
export const MonSet = {
|
||||||
0:{pos:v3(160,0,0)},
|
0:{pos:v3(240,0,0)},
|
||||||
1:{pos:v3(220,0,0)},
|
1:{pos:v3(320,0,0)},
|
||||||
2:{pos:v3(280,0,0)},
|
2:{pos:v3(360,0,0)},
|
||||||
3:{pos:v3(340,0,0)},
|
3:{pos:v3(400,0,0)},
|
||||||
4:{pos:v3(400,0,0)},
|
4:{pos:v3(440,0,0)},
|
||||||
5:{pos:v3(460,0,0)},
|
5:{pos:v3(480,0,0)},
|
||||||
|
6:{pos:v3(520,0,0)},
|
||||||
|
7:{pos:v3(560,0,0)},
|
||||||
}
|
}
|
||||||
|
|
||||||
export const HQuality = {
|
export const HQuality = {
|
||||||
@@ -75,11 +76,11 @@ export const HQuality = {
|
|||||||
export const HeroInfo = {
|
export const HeroInfo = {
|
||||||
//主将
|
//主将
|
||||||
5001:{uuid:5001,name:"火焰骑士",path:"hk1", fac:FacSet.HERO, quality:HQuality.GREEN,lv:1,kind:1,
|
5001:{uuid:5001,name:"火焰骑士",path:"hk1", fac:FacSet.HERO, quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:100,ap:15,dis:100,cd:1,speed:150,skills:[6001],
|
type:HType.warrior,hp:100,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001],
|
||||||
buff:[],info:"剑类专精,穿刺伤害额外+10%"},
|
buff:[],info:"剑类专精,穿刺伤害额外+10%"},
|
||||||
|
|
||||||
5002:{uuid:5002,name:"hk1",path:"hk1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:1,
|
5002:{uuid:5002,name:"hk1",path:"hk1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:100,ap:15,dis:100,cd:1,speed:150,skills:[6001],
|
type:HType.warrior,hp:100,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001],
|
||||||
buff:[],info:"斧类专精,风怒概率增加10%"},
|
buff:[],info:"斧类专精,风怒概率增加10%"},
|
||||||
|
|
||||||
// 5003:{uuid:5003,name:"碎颅.赫克托",path:"k4", quality:HQuality.BLUE,lv:1,kind:1,
|
// 5003:{uuid:5003,name:"碎颅.赫克托",path:"k4", quality:HQuality.BLUE,lv:1,kind:1,
|
||||||
@@ -91,7 +92,7 @@ export const HeroInfo = {
|
|||||||
// buff:[],info:"刀类专精,易伤效果额外持续1次"},
|
// buff:[],info:"刀类专精,易伤效果额外持续1次"},
|
||||||
|
|
||||||
5005:{uuid:5005,name:"ha1",path:"ha1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2,
|
5005:{uuid:5005,name:"ha1",path:"ha1", fac:FacSet.HERO, quality:HQuality.BLUE,lv:1,kind:2,
|
||||||
type:HType.remote,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6003],
|
type:HType.remote,hp:100,ap:15,dis:400,cd:1,speed:100,skills:[6003,6003],
|
||||||
buff:[],info:"说明"},
|
buff:[],info:"说明"},
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -69,11 +69,26 @@ export class BuffComp extends Component {
|
|||||||
// this.vmdata_update()
|
// this.vmdata_update()
|
||||||
}
|
}
|
||||||
|
|
||||||
show_shield(val:boolean){
|
show_shield(shield:number=0,shield_max:number=0){
|
||||||
this.node.getChildByName("shielded").active=val
|
let shield_progress= shield/shield_max;
|
||||||
|
this.node.getChildByName("shielded").active=shield > 0
|
||||||
|
this.node.getChildByName("top").getChildByName("shield").active=shield > 0
|
||||||
|
this.node.getChildByName("top").getChildByName("shield").getComponent(ProgressBar).progress = shield_progress;
|
||||||
|
this.scheduleOnce(()=>{
|
||||||
|
this.node.getChildByName("top").getChildByName("shield").getChildByName("pb").getComponent(ProgressBar).progress = shield_progress;
|
||||||
|
},0.15)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hp_show(hp:number,hp_max:number){
|
||||||
|
// if(this.node.getComponent(HeroViewComp).fac == 0) return
|
||||||
|
let hp_progress= hp/hp_max;
|
||||||
|
this.node.getChildByName("top").getChildByName("hp").getComponent(ProgressBar).progress = hp_progress;
|
||||||
|
this.scheduleOnce(()=>{
|
||||||
|
this.node.getChildByName("top").getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp_progress;
|
||||||
|
},0.15)
|
||||||
|
// this.node.getChildByName("top").getChildByName("hp").active = (hp == hp_max) ? false : true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
update_info_lv(){
|
update_info_lv(){
|
||||||
|
|||||||
@@ -43,10 +43,13 @@ export class HeroViewComp extends CCComp {
|
|||||||
|
|
||||||
speed: number = 100; /** 角色移动速度 */
|
speed: number = 100; /** 角色移动速度 */
|
||||||
speed_base: number = 100; /** 角色初始速度 */
|
speed_base: number = 100; /** 角色初始速度 */
|
||||||
|
power:number=0;
|
||||||
|
power_max:number=100;
|
||||||
hp: number = 100; /** 血量 */
|
hp: number = 100; /** 血量 */
|
||||||
hp_max: number = 100; /** 最大血量 */
|
hp_max: number = 100; /** 最大血量 */
|
||||||
hp_base:number=0;
|
hp_base:number=0;
|
||||||
|
shield:number=0; //当前护甲值
|
||||||
|
shield_max:number=0; //最大护甲值
|
||||||
ap: number = 10; /**攻击力 */
|
ap: number = 10; /**攻击力 */
|
||||||
ap_base:number=0;
|
ap_base:number=0;
|
||||||
// atk_speed: number = 1;
|
// atk_speed: number = 1;
|
||||||
@@ -72,7 +75,6 @@ export class HeroViewComp extends CCComp {
|
|||||||
frost_no:boolean=false; //冰冻免疫
|
frost_no:boolean=false; //冰冻免疫
|
||||||
knockback:number=0; //击退概率
|
knockback:number=0; //击退概率
|
||||||
knockback_no:boolean=false; //击退免疫
|
knockback_no:boolean=false; //击退免疫
|
||||||
shield:number = 0; //护盾,免伤1次减1
|
|
||||||
reflect:number=0; //反射伤害比率
|
reflect:number=0; //反射伤害比率
|
||||||
lifesteal:number=0; //吸血比率
|
lifesteal:number=0; //吸血比率
|
||||||
skill_dmg:number=0
|
skill_dmg:number=0
|
||||||
@@ -143,6 +145,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
}
|
}
|
||||||
/* 显示角色血量 */
|
/* 显示角色血量 */
|
||||||
this.node.getChildByName("top").getChildByName("hp").active = true;
|
this.node.getChildByName("top").getChildByName("hp").active = true;
|
||||||
|
this.add_shield(100)
|
||||||
}
|
}
|
||||||
|
|
||||||
update(dt: number){
|
update(dt: number){
|
||||||
@@ -166,17 +169,6 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.processDamageQueue();
|
this.processDamageQueue();
|
||||||
|
|
||||||
}
|
}
|
||||||
hp_show(){
|
|
||||||
// if(this.node.getComponent(HeroViewComp).fac == 0) return
|
|
||||||
let hp=this.hp;
|
|
||||||
let hp_max=this.Attrs[BuffAttr.HP_MAX];
|
|
||||||
let hp_progress= hp/hp_max;
|
|
||||||
this.node.getChildByName("top").getChildByName("hp").getComponent(ProgressBar).progress = hp_progress;
|
|
||||||
this.scheduleOnce(()=>{
|
|
||||||
this.node.getChildByName("top").getChildByName("hp").getChildByName("hpb").getComponent(ProgressBar).progress = hp_progress;
|
|
||||||
},0.15)
|
|
||||||
// this.node.getChildByName("top").getChildByName("hp").active = (hp == hp_max) ? false : true;
|
|
||||||
}
|
|
||||||
do_fight_end(){
|
do_fight_end(){
|
||||||
this.as.do_buff()
|
this.as.do_buff()
|
||||||
}
|
}
|
||||||
@@ -204,9 +196,8 @@ export class HeroViewComp extends CCComp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
add_shield(shield:number){
|
add_shield(shield:number){
|
||||||
this.shield =shield
|
this.shield = this.shield_max +=shield
|
||||||
if(this.shield>6) this.shield=6
|
if(this.shield>0) this.BUFFCOMP.show_shield(this.shield,this.shield_max)
|
||||||
if(this.shield>0) this.BUFFCOMP.show_shield(true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -232,7 +223,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.hp+=real_hp;
|
this.hp+=real_hp;
|
||||||
this.BUFFCOMP.tooltip(TooltipTypes.health,real_hp.toFixed(0));
|
this.BUFFCOMP.tooltip(TooltipTypes.health,real_hp.toFixed(0));
|
||||||
}
|
}
|
||||||
this.hp_show()
|
this.BUFFCOMP.hp_show(this.hp,this.Attrs[BuffAttr.HP_MAX])
|
||||||
// this.update_vm
|
// this.update_vm
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -414,7 +405,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
if(stun_time>0){
|
if(stun_time>0){
|
||||||
this.add_debuff(DebuffAttr.STUN,stun_time,1,stun_ratio)
|
this.add_debuff(DebuffAttr.STUN,stun_time,1,stun_ratio)
|
||||||
}
|
}
|
||||||
if(this.check_shield()) return
|
|
||||||
if(this.check_dodge()) return
|
if(this.check_dodge()) return
|
||||||
let is_crit = this.check_crit(crit)
|
let is_crit = this.check_crit(crit)
|
||||||
|
|
||||||
@@ -424,8 +415,9 @@ export class HeroViewComp extends CCComp {
|
|||||||
damage = Math.floor(damage * (1 + (FightSet.CRIT_DAMAGE+crit_d)/100))
|
damage = Math.floor(damage * (1 + (FightSet.CRIT_DAMAGE+crit_d)/100))
|
||||||
}
|
}
|
||||||
console.log(this.hero_name+"[HeroViewComp]:heroview :damage|hp|hp_max",damage,this.hp,this.Attrs[BuffAttr.HP_MAX])
|
console.log(this.hero_name+"[HeroViewComp]:heroview :damage|hp|hp_max",damage,this.hp,this.Attrs[BuffAttr.HP_MAX])
|
||||||
|
damage=this.check_shield(damage)
|
||||||
|
if(damage <= 0) return
|
||||||
this.hp -= damage;
|
this.hp -= damage;
|
||||||
|
|
||||||
if(this.hp <= 0) {
|
if(this.hp <= 0) {
|
||||||
if(this == null) return;
|
if(this == null) return;
|
||||||
this.is_dead=true
|
this.is_dead=true
|
||||||
@@ -470,17 +462,23 @@ export class HeroViewComp extends CCComp {
|
|||||||
return Math.floor(Math.max(damage,min))
|
return Math.floor(Math.max(damage,min))
|
||||||
}
|
}
|
||||||
|
|
||||||
check_shield(){
|
check_shield(damage:number){
|
||||||
if(this.shield>0){
|
if(this.shield <= 0 ) return damage
|
||||||
this.shield -= 1
|
if(this.shield >= damage){
|
||||||
|
this.shield -= damage
|
||||||
this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*吸收*");
|
this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*吸收*");
|
||||||
if (this.shield <= 0) {
|
if(this.shield <= 0){
|
||||||
if(this == null) return;
|
this.shield=this.shield_max=0
|
||||||
this.BUFFCOMP.show_shield(false);
|
|
||||||
}
|
}
|
||||||
return true
|
damage = 0
|
||||||
}
|
}
|
||||||
return false
|
if(this.shield < damage){
|
||||||
|
damage=damage-this.shield
|
||||||
|
this.shield=0
|
||||||
|
this.shield_max=0
|
||||||
|
}
|
||||||
|
this.BUFFCOMP.show_shield(this.shield,this.shield_max)
|
||||||
|
return damage
|
||||||
}
|
}
|
||||||
|
|
||||||
check_dodge(){
|
check_dodge(){
|
||||||
@@ -622,7 +620,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
/** 立即显示伤害效果 */
|
/** 立即显示伤害效果 */
|
||||||
private showDamageImmediate(damage: number, isCrit: boolean,anm:string="atked") {
|
private showDamageImmediate(damage: number, isCrit: boolean,anm:string="atked") {
|
||||||
// this.as.atked()
|
// this.as.atked()
|
||||||
this.hp_show()
|
this.BUFFCOMP.hp_show(this.hp,this.Attrs[BuffAttr.HP_MAX])
|
||||||
this.BUFFCOMP.in_atked(anm,this.fac==FacSet.HERO?1:-1)
|
this.BUFFCOMP.in_atked(anm,this.fac==FacSet.HERO?1:-1)
|
||||||
this.atked_count++;
|
this.atked_count++;
|
||||||
if (isCrit) {
|
if (isCrit) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { _decorator, Component, Node, v3, Vec3 } from 'cc';
|
import { _decorator, Component, Node, ProgressBar, v3, Vec3 } from 'cc';
|
||||||
import { HeroViewComp } from './HeroViewComp';
|
import { HeroViewComp } from './HeroViewComp';
|
||||||
import { BuffAttr, DTType, SkillSet, SType, TGroup, TType } from '../common/config/SkillSet';
|
import { BuffAttr, CdType, DTType, SKILL_CONST, SkillSet, SType, TGroup, TType } from '../common/config/SkillSet';
|
||||||
import { Skill } from '../skills/Skill';
|
import { Skill } from '../skills/Skill';
|
||||||
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
|
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
|
||||||
import { oops } from 'db://oops-framework/core/Oops';
|
import { oops } from 'db://oops-framework/core/Oops';
|
||||||
@@ -11,6 +11,7 @@ import { CCComp } from 'db://oops-framework/module/common/CCComp';
|
|||||||
import { MonModelComp } from './MonModelComp';
|
import { MonModelComp } from './MonModelComp';
|
||||||
import { HeroModelComp } from './HeroModelComp';
|
import { HeroModelComp } from './HeroModelComp';
|
||||||
import { FightSet } from '../common/config/Mission';
|
import { FightSet } from '../common/config/Mission';
|
||||||
|
import { Timer } from 'db://oops-framework/core/common/timer/Timer';
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
@ccclass('SkillCon')
|
@ccclass('SkillCon')
|
||||||
@@ -35,15 +36,32 @@ export class SkillConComp extends CCComp {
|
|||||||
|
|
||||||
update(dt: number) {
|
update(dt: number) {
|
||||||
if(!smc.mission.play||smc.mission.pause) return
|
if(!smc.mission.play||smc.mission.pause) return
|
||||||
|
|
||||||
if(this.HeroView.DEBUFF_STUN <= 0&&this.HeroView.DEBUFF_FROST <= 0) {
|
if(this.HeroView.DEBUFF_STUN <= 0&&this.HeroView.DEBUFF_FROST <= 0) {
|
||||||
for(let i=0;i<this.HeroView.skills.length;i++){
|
let skills=this.HeroView.skills
|
||||||
this.HeroView.skills[i].cd += dt;
|
for(let i=0;i<skills.length;i++){
|
||||||
if(this.HeroView.skills[i].cd > (i==0?this.HeroView.Attrs[BuffAttr.ATK_CD]:this.HeroView.skills[i].cd_max)){
|
if(SkillSet[skills[i].uuid].CdType==CdType.cd) {
|
||||||
let sc=SkillSet[this.HeroView.skills[i].uuid]
|
skills[i].cd += dt;
|
||||||
if(!sc) return
|
if(skills[i].cd > (i==0?this.HeroView.Attrs[BuffAttr.ATK_CD]:skills[i].cd_max)){
|
||||||
if(sc.SType==SType.damage&&!this.HeroView.is_atking) return
|
if(SkillSet[skills[i].uuid].SType==SType.damage&&this.HeroView.is_atking){
|
||||||
this.castSkill(sc)
|
this.castSkill(SkillSet[skills[i].uuid])
|
||||||
this.HeroView.skills[i].cd = 0
|
this.HeroView.skills[i].cd = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(skills[1]){
|
||||||
|
if(this.HeroView.fac==FacSet.HERO) {
|
||||||
|
console.log("[SkillConComp] 角色状态:",this.HeroView.hero_name+"=>能量:"+this.HeroView.power+"/"+this.HeroView.power_max,skills)
|
||||||
|
}
|
||||||
|
this.HeroView.power+=(1+this.HeroView.Attrs[BuffAttr.POWER_UP])*dt*SKILL_CONST.POWER_UP
|
||||||
|
let progress=this.HeroView.power/this.HeroView.power_max
|
||||||
|
this.HeroView.node.getChildByName("top").getChildByName("pow").getComponent(ProgressBar).progress=progress
|
||||||
|
if(this.HeroView.power>this.HeroView.power_max){
|
||||||
|
this.HeroView.power=0
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(this.HeroView.fac==FacSet.HERO) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { GameEvent } from "../common/config/GameEvent";
|
|||||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||||
import { MonModelComp } from "../hero/MonModelComp";
|
import { MonModelComp } from "../hero/MonModelComp";
|
||||||
import { SkillCom } from "../skills/SkillCom";
|
import { SkillCom } from "../skills/SkillCom";
|
||||||
|
import { UIID } from "../common/config/GameUIConfig";
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
|
||||||
@@ -46,12 +47,17 @@ export class MissionComp extends CCComp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
do_mon_dead(){
|
do_mon_dead(){
|
||||||
smc.addGold(1)
|
|
||||||
smc.vmdata.mission_data.mon_num--
|
smc.vmdata.mission_data.mon_num--
|
||||||
console.log("[MissionComp] do_mon_dead",smc.vmdata.mission_data.mon_num)
|
console.log("[MissionComp] do_mon_dead",smc.vmdata.mission_data.mon_num)
|
||||||
if(smc.vmdata.mission_data.mon_num<=0) {
|
if(smc.vmdata.mission_data.mon_num<=0) {
|
||||||
smc.addMission()
|
smc.vmdata.mission_data.level++
|
||||||
|
if(smc.vmdata.mission_data.level < smc.vmdata.mission_data.max_mission){
|
||||||
|
oops.message.dispatchEvent(GameEvent.NewWave)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
smc.addMission(1)
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:true})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:true})
|
||||||
|
oops.gui.open(UIID.Victory,{victory:true})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
do_hero_dead(){
|
do_hero_dead(){
|
||||||
@@ -59,6 +65,7 @@ export class MissionComp extends CCComp {
|
|||||||
console.log("[MissionComp] do_hero_dead",smc.vmdata.mission_data.hero_num)
|
console.log("[MissionComp] do_hero_dead",smc.vmdata.mission_data.hero_num)
|
||||||
if(smc.vmdata.mission_data.hero_num<=0) {
|
if(smc.vmdata.mission_data.hero_num<=0) {
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||||
|
oops.gui.open(UIID.Victory,{victory:false})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
do_ad(){
|
do_ad(){
|
||||||
@@ -79,7 +86,6 @@ export class MissionComp extends CCComp {
|
|||||||
|
|
||||||
async mission_start(){
|
async mission_start(){
|
||||||
console.log("[MissionComp] ** 1 ** mission_start")
|
console.log("[MissionComp] ** 1 ** mission_start")
|
||||||
|
|
||||||
this.node.getChildByName("ending").getComponent(Animation).play("startFight")
|
this.node.getChildByName("ending").getComponent(Animation).play("startFight")
|
||||||
oops.message.dispatchEvent(GameEvent.FightReady)
|
oops.message.dispatchEvent(GameEvent.FightReady)
|
||||||
this.node.active=true
|
this.node.active=true
|
||||||
@@ -103,6 +109,7 @@ export class MissionComp extends CCComp {
|
|||||||
|
|
||||||
to_end_fight(){
|
to_end_fight(){
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||||
|
oops.gui.open(UIID.Victory,{victory:false})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -117,6 +124,7 @@ export class MissionComp extends CCComp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mission_end(){
|
mission_end(){
|
||||||
|
console.log("[MissionComp] mission_end")
|
||||||
this.node.getChildByName("ending").active=false
|
this.node.getChildByName("ending").active=false
|
||||||
this.node.active=false
|
this.node.active=false
|
||||||
}
|
}
|
||||||
@@ -126,6 +134,7 @@ export class MissionComp extends CCComp {
|
|||||||
smc.mission.play = true;
|
smc.mission.play = true;
|
||||||
smc.vmdata.mission_data.in_fight=false
|
smc.vmdata.mission_data.in_fight=false
|
||||||
smc.vmdata.mission_data.fight_time=0
|
smc.vmdata.mission_data.fight_time=0
|
||||||
|
smc.vmdata.mission_data.level=0
|
||||||
smc.initReward()
|
smc.initReward()
|
||||||
console.log("[MissionComp]局内数据初始化",smc.vmdata.mission_data)
|
console.log("[MissionComp]局内数据初始化",smc.vmdata.mission_data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ export class MissionMonCompComp extends CCComp { // 添加刷怪队列 - 使
|
|||||||
|
|
||||||
|
|
||||||
onLoad(){
|
onLoad(){
|
||||||
// this.on(GameEvent.NewWave,this.do_mon_wave,this)
|
|
||||||
this.on(GameEvent.FightReady,this.fight_ready,this)
|
this.on(GameEvent.FightReady,this.fight_ready,this)
|
||||||
|
this.on(GameEvent.NewWave,this.fight_ready,this)
|
||||||
|
|
||||||
}
|
}
|
||||||
/** 视图层逻辑代码分离演示 */
|
/** 视图层逻辑代码分离演示 */
|
||||||
|
|||||||
@@ -16,49 +16,34 @@ export class VictoryComp extends CCComp {
|
|||||||
reward_num:number=2
|
reward_num:number=2
|
||||||
/** 视图层逻辑代码分离演示 */
|
/** 视图层逻辑代码分离演示 */
|
||||||
protected onLoad(): void {
|
protected onLoad(): void {
|
||||||
this.on(GameEvent.MissionStart,this.mission_start,this)
|
|
||||||
this.on(GameEvent.FightEnd,this.fight_end,this)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onAdded(args: any) {
|
onAdded(args: any) {
|
||||||
console.log("[VictoryComp] onAdded",args)
|
console.log("[VictoryComp] onAdded",args)
|
||||||
|
this.node.getChildByName("title").getChildByName("victory").active=args.victory
|
||||||
|
this.node.getChildByName("title").getChildByName("defeat").active=!args.victory
|
||||||
|
this.node.getChildByName("btns").getChildByName("next").active=false
|
||||||
|
this.scheduleOnce(()=>{
|
||||||
|
this.node.getChildByName("btns").getChildByName("next").active=true
|
||||||
|
},0.2)
|
||||||
}
|
}
|
||||||
mission_start(){
|
|
||||||
this.hide()
|
|
||||||
}
|
|
||||||
fight_end(e:any,val:any){
|
|
||||||
this.node.getChildByName("title").getChildByName("victory").active=val.victory
|
|
||||||
this.node.getChildByName("title").getChildByName("defeat").active=!val.victory
|
|
||||||
this.open()
|
|
||||||
}
|
|
||||||
victory_end(){
|
victory_end(){
|
||||||
this.hide()
|
|
||||||
oops.message.dispatchEvent(GameEvent.MissionEnd)
|
oops.message.dispatchEvent(GameEvent.MissionEnd)
|
||||||
|
oops.gui.removeByNode(this.node)
|
||||||
}
|
}
|
||||||
|
|
||||||
restart(){
|
restart(){
|
||||||
this.hide()
|
|
||||||
oops.message.dispatchEvent(GameEvent.MissionStart)
|
oops.message.dispatchEvent(GameEvent.MissionStart)
|
||||||
|
oops.gui.removeByNode(this.node)
|
||||||
}
|
}
|
||||||
open(){
|
|
||||||
this.show()
|
|
||||||
}
|
|
||||||
show(){
|
|
||||||
this.node.setPosition(v3(0,640,0))
|
|
||||||
}
|
|
||||||
hide(){
|
|
||||||
this.node.setPosition(v3(-1500,640,0))
|
|
||||||
}
|
|
||||||
do_x10(){
|
|
||||||
this.clear_x1()
|
|
||||||
}
|
|
||||||
do_x1(){
|
|
||||||
this.clear_x1()
|
|
||||||
}
|
|
||||||
clear_x1(){
|
|
||||||
this.victory_end()
|
|
||||||
}
|
|
||||||
item_show(e:any,val:any){
|
item_show(e:any,val:any){
|
||||||
console.log("item_show",val)
|
console.log("item_show",val)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected onDestroy(): void {
|
protected onDestroy(): void {
|
||||||
console.log("释放胜利界面");
|
console.log("释放胜利界面");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user