You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.2 KiB
31 lines
1.2 KiB
|
3 weeks ago
|
import { SpriteLoad } from '../../mx/components/SpriteLoad';
|
||
|
|
import { GBundle, GPath } from '../game/ConfigRes';
|
||
|
|
|
||
|
|
/** icons/img 武器/英雄碎片框(Item.type=10) */
|
||
|
|
export const ITEM_QUALITY_FRAME_WEAPON_FRAGMENT = 99;
|
||
|
|
/** icons/img 皮肤奖励框(Item.type=5/11) */
|
||
|
|
export const ITEM_QUALITY_FRAME_SKIN = 88;
|
||
|
|
|
||
|
|
/** 皮肤奖励:完整皮肤或皮肤碎片 */
|
||
|
|
export function isSkinRewardItem(item: Pick<ITableItem, 'type'>): boolean {
|
||
|
|
return item.type === 5 || item.type === 11;
|
||
|
|
}
|
||
|
|
|
||
|
|
/** 解析道具品质框档位:碎片99 > 皮肤88 > 配表 quality */
|
||
|
|
export function resolveItemQualityFrame(item: Pick<ITableItem, 'type' | 'quality'>): number {
|
||
|
|
if (item.type === 10) return ITEM_QUALITY_FRAME_WEAPON_FRAGMENT;
|
||
|
|
if (isSkinRewardItem(item)) return ITEM_QUALITY_FRAME_SKIN;
|
||
|
|
return item.quality;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function getItemQualityFrameSpritePath(item: Pick<ITableItem, 'type' | 'quality'>): string {
|
||
|
|
return GPath.PingjiKuang(`品质${resolveItemQualityFrame(item)}`);
|
||
|
|
}
|
||
|
|
|
||
|
|
export function applyItemQualityFrame(
|
||
|
|
spriteLoad: SpriteLoad,
|
||
|
|
item: Pick<ITableItem, 'type' | 'quality'>,
|
||
|
|
): void {
|
||
|
|
spriteLoad.setSprite(getItemQualityFrameSpritePath(item), GBundle.Items);
|
||
|
|
}
|