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.
AdLike2048/assets/script/com/ItemQualityFrame.ts

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);
}