Compare commits
1 Commits
af5b79b9a1
...
card
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
882f2b8536 |
@@ -1382,7 +1382,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -330,
|
||||
"y": 372.03,
|
||||
"y": 390.888,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -2604,7 +2604,7 @@
|
||||
"__id__": 148
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 156
|
||||
@@ -2621,8 +2621,8 @@
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 259.067,
|
||||
"y": 158.268,
|
||||
"x": 0,
|
||||
"y": 208.926,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -2715,7 +2715,7 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 510.00000000000006,
|
||||
"width": 720,
|
||||
"height": 50
|
||||
},
|
||||
"_anchorPoint": {
|
||||
@@ -3166,7 +3166,7 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 510.00000000000006,
|
||||
"width": 720,
|
||||
"height": 50
|
||||
},
|
||||
"_anchorPoint": {
|
||||
@@ -3236,8 +3236,8 @@
|
||||
},
|
||||
"_alignFlags": 40,
|
||||
"_target": null,
|
||||
"_left": 4.06699999999995,
|
||||
"_right": -4.06699999999995,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
@@ -3316,7 +3316,7 @@
|
||||
"_left": 30,
|
||||
"_right": 515,
|
||||
"_top": 0,
|
||||
"_bottom": 242.02999999999997,
|
||||
"_bottom": 260.888,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
|
||||
@@ -320,7 +320,6 @@ export class HeroAttrsComp extends ecs.Comp {
|
||||
this.maxSkillDistance = 0;
|
||||
this.minSkillDistance = 0;
|
||||
|
||||
|
||||
this.is_dead = false;
|
||||
this.is_count_dead = false;
|
||||
this.is_atking = false;
|
||||
|
||||
@@ -446,14 +446,13 @@ export class HeroViewComp extends CCComp {
|
||||
}
|
||||
|
||||
if(this.model.fac === FacSet.HERO){
|
||||
// 将英雄移到玩家看不到的墓地
|
||||
this.node.setPosition(v3(-2000, -2000, 0));
|
||||
// 英雄直接销毁,不再进入墓地
|
||||
const collider = this.node.getComponent(Collider2D);
|
||||
if (collider) {
|
||||
collider.enabled = false;
|
||||
}
|
||||
// 隐藏UI
|
||||
this.top_node.active = false;
|
||||
this.ent.destroy();
|
||||
} else {
|
||||
// 🔥 方案B:治理性措施 - 在销毁实体前先禁用碰撞体,从源头减少"尸体"参与碰撞
|
||||
const collider = this.node.getComponent(Collider2D);
|
||||
|
||||
@@ -432,13 +432,6 @@ export class MissionCardComp extends CCComp {
|
||||
private onUseHeroCard(event: string, args: any) {
|
||||
const payload = args ?? event;
|
||||
if (!payload) return;
|
||||
|
||||
if (this.isBattlePhase) {
|
||||
payload.cancel = true;
|
||||
payload.reason = "battle_phase";
|
||||
oops.gui.toast("战斗阶段无法召唤英雄");
|
||||
return;
|
||||
}
|
||||
|
||||
const current = this.getAliveHeroCount();
|
||||
this.syncMissionHeroData(current);
|
||||
@@ -671,16 +664,10 @@ export class MissionCardComp extends CCComp {
|
||||
private enterBattlePhase() {
|
||||
if (!this.cards_node || !this.cards_node.isValid) return;
|
||||
this.initCardsPanelPos();
|
||||
// 战斗阶段不再隐藏抽卡面板
|
||||
// Tween.stopAllByTarget(this.cards_node);
|
||||
// tween(this.cards_node)
|
||||
// .to(this.cardsPanelMoveDuration, { scale: this.cardsHideScale })
|
||||
// .call(() => {
|
||||
// if (this.cards_node && this.cards_node.isValid) {
|
||||
// this.cards_node.active = false;
|
||||
// }
|
||||
// })
|
||||
// .start();
|
||||
// 战斗阶段抽卡面板不再收起
|
||||
this.cards_node.active = true;
|
||||
Tween.stopAllByTarget(this.cards_node);
|
||||
this.cards_node.setScale(this.cardsShowScale);
|
||||
|
||||
this.cachedHInfoComps.forEach(comp => {
|
||||
if (comp && comp.isValid) {
|
||||
@@ -693,7 +680,8 @@ export class MissionCardComp extends CCComp {
|
||||
private buildDrawCards(): CardConfig[] {
|
||||
let targetType: CardType | CardType[] | undefined = undefined;
|
||||
if (this.isBattlePhase) {
|
||||
targetType = CardType.Skill;
|
||||
// 战斗阶段只刷英雄卡牌,不刷其他卡牌
|
||||
targetType = CardType.Hero;
|
||||
} else {
|
||||
targetType = [CardType.Hero, CardType.SpecialRefresh];
|
||||
}
|
||||
|
||||
@@ -520,9 +520,9 @@ export class MissionComp extends CCComp {
|
||||
case MissionPhase.BattleEnd:
|
||||
// BattleEnd 计时结束后,如果是因为全灭或手动调用的 fight_end,进入 Settle
|
||||
// 需要注意的是,open_Victory / fight_end 现在只需切换到 BattleEnd 即可,Settle 由这里自动接管
|
||||
// 如果游戏正在运行(波次更迭),则自动进入 PrepareStart 阶段
|
||||
// 如果游戏正在运行(波次更迭),直接进入下一波的 BattleStart,不再进入 PrepareStart
|
||||
if (smc.mission.play && !smc.mission.pause) {
|
||||
this.changePhase(MissionPhase.PrepareStart);
|
||||
this.changePhase(MissionPhase.BattleStart);
|
||||
} else {
|
||||
this.changePhase(MissionPhase.Settle);
|
||||
|
||||
@@ -566,7 +566,7 @@ export class MissionComp extends CCComp {
|
||||
* - 显示开始按钮
|
||||
* - 触发英雄战斗结束技能
|
||||
*/
|
||||
private enterPreparePhase() {
|
||||
enterPreparePhase() {
|
||||
this.changePhase(MissionPhase.PrepareStart);
|
||||
}
|
||||
|
||||
|
||||
@@ -121,24 +121,14 @@ export class MissionHeroCompComp extends CCComp {
|
||||
}
|
||||
}
|
||||
|
||||
/** 战斗准备阶段:重置出战英雄计数,恢复满血重新登场 */
|
||||
/** 战斗准备阶段:重置出战英雄计数,恢复满血 */
|
||||
fight_ready(){
|
||||
const heroes = this.getAllHeroes();
|
||||
smc.vmdata.mission_data.hero_num = heroes.length;
|
||||
for (let i = 0; i < heroes.length; i++) {
|
||||
const hero = heroes[i];
|
||||
const model = hero.get(HeroAttrsComp);
|
||||
const view = hero.get(HeroViewComp);
|
||||
if (model && view) {
|
||||
if (model.is_dead) {
|
||||
view.alive();
|
||||
const landingPos = this.pickPositionForHero([hero.eid]);
|
||||
// 不再直接设置位置,而是播放下落入场动画
|
||||
// 计算出出生点(空中)
|
||||
const spawnPos: Vec3 = v3(landingPos.x, landingPos.y + MissionHeroCompComp.HERO_DROP_HEIGHT, 0);
|
||||
view.node.setPosition(spawnPos);
|
||||
hero.playDropAnim(spawnPos, landingPos.y);
|
||||
}
|
||||
if (model) {
|
||||
model.dirty_hp = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user