feat: 新增指定目标卡池等级抽卡功能并调整UI布局
- 在drawCardsByRule函数中增加targetPoolLv参数,支持强制从指定等级卡池抽卡 - 修改MissionCardComp中刷新英雄卡牌逻辑,使用targetPoolLv替代heroLv参数 - 调整role_controller.prefab中多个UI元素的位置和尺寸 - 将开始按钮文本从"开始"改为"开始战斗"并加宽按钮
This commit is contained in:
@@ -1059,7 +1059,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 459.545,
|
"y": 435.147,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -2239,7 +2239,7 @@
|
|||||||
"_left": 0,
|
"_left": 0,
|
||||||
"_right": 0,
|
"_right": 0,
|
||||||
"_top": 0,
|
"_top": 0,
|
||||||
"_bottom": 459.545,
|
"_bottom": 435.147,
|
||||||
"_horizontalCenter": 0,
|
"_horizontalCenter": 0,
|
||||||
"_verticalCenter": 0,
|
"_verticalCenter": 0,
|
||||||
"_isAbsLeft": true,
|
"_isAbsLeft": true,
|
||||||
@@ -2582,7 +2582,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": -180,
|
"x": -180,
|
||||||
"y": 396.244,
|
"y": 154.567,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -3016,7 +3016,7 @@
|
|||||||
"_left": 0,
|
"_left": 0,
|
||||||
"_right": 360,
|
"_right": 360,
|
||||||
"_top": 0,
|
"_top": 0,
|
||||||
"_bottom": 373.744,
|
"_bottom": 132.067,
|
||||||
"_horizontalCenter": 0,
|
"_horizontalCenter": 0,
|
||||||
"_verticalCenter": 0,
|
"_verticalCenter": 0,
|
||||||
"_isAbsLeft": true,
|
"_isAbsLeft": true,
|
||||||
@@ -4008,6 +4008,8 @@
|
|||||||
"__id__": 0
|
"__id__": 0
|
||||||
},
|
},
|
||||||
"fileId": "33rSVysAVB1LO2v7wC2zZ1",
|
"fileId": "33rSVysAVB1LO2v7wC2zZ1",
|
||||||
|
"instance": null,
|
||||||
|
"targetOverrides": null,
|
||||||
"nestedPrefabInstanceRoots": null
|
"nestedPrefabInstanceRoots": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -4970,6 +4972,8 @@
|
|||||||
"__id__": 0
|
"__id__": 0
|
||||||
},
|
},
|
||||||
"fileId": "50nlTzRABGJ4vZYBkdXijK",
|
"fileId": "50nlTzRABGJ4vZYBkdXijK",
|
||||||
|
"instance": null,
|
||||||
|
"targetOverrides": null,
|
||||||
"nestedPrefabInstanceRoots": null
|
"nestedPrefabInstanceRoots": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -5009,7 +5013,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 180,
|
"x": 180,
|
||||||
"y": 394.952,
|
"y": 153.275,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -5688,7 +5692,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": -259,
|
"x": -259,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -6142,7 +6146,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": -85,
|
"x": -85,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -6596,7 +6600,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 85,
|
"x": 85,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -7050,7 +7054,7 @@
|
|||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 259,
|
"x": 259,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
},
|
},
|
||||||
"_lrot": {
|
"_lrot": {
|
||||||
@@ -7577,7 +7581,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": -260,
|
"x": -260,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -7898,7 +7902,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": -86,
|
"x": -86,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8219,7 +8223,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 86,
|
"x": 86,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8540,7 +8544,7 @@
|
|||||||
"value": {
|
"value": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
"x": 260,
|
"x": 260,
|
||||||
"y": 252.88,
|
"y": 296.371,
|
||||||
"z": 0
|
"z": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -11990,7 +11994,7 @@
|
|||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
"width": 78,
|
"width": 148,
|
||||||
"height": 58.4
|
"height": 58.4
|
||||||
},
|
},
|
||||||
"_anchorPoint": {
|
"_anchorPoint": {
|
||||||
@@ -12026,7 +12030,7 @@
|
|||||||
"b": 255,
|
"b": 255,
|
||||||
"a": 255
|
"a": 255
|
||||||
},
|
},
|
||||||
"_string": "开始",
|
"_string": "开始战斗",
|
||||||
"_horizontalAlign": 1,
|
"_horizontalAlign": 1,
|
||||||
"_verticalAlign": 1,
|
"_verticalAlign": 1,
|
||||||
"_actualFontSize": 35,
|
"_actualFontSize": 35,
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ export const drawCardsByRule = (
|
|||||||
type?: CardType | CardType[]
|
type?: CardType | CardType[]
|
||||||
heroType?: HType
|
heroType?: HType
|
||||||
heroLv?: number
|
heroLv?: number
|
||||||
|
targetPoolLv?: number
|
||||||
} = {}
|
} = {}
|
||||||
): CardConfig[] => {
|
): CardConfig[] => {
|
||||||
const count = Math.max(0, Math.floor(options.count ?? 4))
|
const count = Math.max(0, Math.floor(options.count ?? 4))
|
||||||
@@ -233,6 +234,14 @@ export const drawCardsByRule = (
|
|||||||
const typeSet = normalizeTypeFilter(options.type)
|
const typeSet = normalizeTypeFilter(options.type)
|
||||||
pool = pool.filter(card => typeSet.has(card.type))
|
pool = pool.filter(card => typeSet.has(card.type))
|
||||||
}
|
}
|
||||||
|
if (options.targetPoolLv !== undefined) {
|
||||||
|
// 如果指定了目标卡池等级,则强制从所有配置中筛选该等级的卡牌,无视当前的卡池等级限制
|
||||||
|
pool = CardPoolList.filter(card => card.pool_lv === options.targetPoolLv)
|
||||||
|
if (options.type !== undefined) {
|
||||||
|
const typeSet = normalizeTypeFilter(options.type)
|
||||||
|
pool = pool.filter(card => typeSet.has(card.type))
|
||||||
|
}
|
||||||
|
}
|
||||||
if (options.heroType !== undefined || options.heroLv !== undefined) {
|
if (options.heroType !== undefined || options.heroLv !== undefined) {
|
||||||
pool = pool.filter(card => {
|
pool = pool.filter(card => {
|
||||||
if (card.type !== CardType.Hero) return false
|
if (card.type !== CardType.Hero) return false
|
||||||
|
|||||||
@@ -438,12 +438,12 @@ export class MissionCardComp extends CCComp {
|
|||||||
return filled;
|
return filled;
|
||||||
}
|
}
|
||||||
|
|
||||||
private tryRefreshHeroCards(heroType?: HType, heroLv?: number): boolean {
|
private tryRefreshHeroCards(heroType?: HType, targetPoolLv?: number): boolean {
|
||||||
const cards = drawCardsByRule(this.poolLv, {
|
const cards = drawCardsByRule(this.poolLv, {
|
||||||
count: 4,
|
count: 4,
|
||||||
type: CardType.Hero,
|
type: CardType.Hero,
|
||||||
heroType,
|
heroType,
|
||||||
heroLv
|
targetPoolLv
|
||||||
});
|
});
|
||||||
if (cards.length <= 0) return false;
|
if (cards.length <= 0) return false;
|
||||||
this.layoutCardSlots();
|
this.layoutCardSlots();
|
||||||
@@ -453,8 +453,8 @@ export class MissionCardComp extends CCComp {
|
|||||||
|
|
||||||
private tryRefreshHeroCardsByEffect(refreshHeroType: SpecialRefreshHeroType, refreshLv: number): boolean {
|
private tryRefreshHeroCardsByEffect(refreshHeroType: SpecialRefreshHeroType, refreshLv: number): boolean {
|
||||||
const heroType = this.resolveRefreshHeroType(refreshHeroType);
|
const heroType = this.resolveRefreshHeroType(refreshHeroType);
|
||||||
const heroLv = refreshLv > 0 ? refreshLv : undefined;
|
const targetPoolLv = refreshLv > 0 ? refreshLv : undefined;
|
||||||
return this.tryRefreshHeroCards(heroType, heroLv);
|
return this.tryRefreshHeroCards(heroType, targetPoolLv);
|
||||||
}
|
}
|
||||||
|
|
||||||
private resolveRefreshHeroType(refreshHeroType: SpecialRefreshHeroType): HType | undefined {
|
private resolveRefreshHeroType(refreshHeroType: SpecialRefreshHeroType): HType | undefined {
|
||||||
|
|||||||
11
assets/script/hearthstone-battlegrounds.md.meta
Normal file
11
assets/script/hearthstone-battlegrounds.md.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"ver": "1.0.1",
|
||||||
|
"importer": "text",
|
||||||
|
"imported": true,
|
||||||
|
"uuid": "fc76e3b0-5134-401a-b3ea-03251f9135ec",
|
||||||
|
"files": [
|
||||||
|
".json"
|
||||||
|
],
|
||||||
|
"subMetas": {},
|
||||||
|
"userData": {}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user