mirror of
https://github.com/billsonnn/nitro-react.git
synced 2024-11-23 06:40:50 +01:00
started marketplace
This commit is contained in:
parent
a97ca4b040
commit
1546a0446b
@ -120,24 +120,24 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
{
|
||||
if(userData.ownerId === ownerId)
|
||||
{
|
||||
if(userData.hasSaddle && (specialType === FurniCategory._Str_6096)) replace = true;
|
||||
if(userData.hasSaddle && (specialType === FurniCategory.PET_SADDLE)) replace = true;
|
||||
|
||||
const figureParts = userData.figure.split(' ');
|
||||
const figurePart = (figureParts.length ? parseInt(figureParts[0]) : -1);
|
||||
|
||||
if(figurePart === part)
|
||||
{
|
||||
if(specialType === FurniCategory._Str_6915)
|
||||
if(specialType === FurniCategory.MONSTERPLANT_REVIVAL)
|
||||
{
|
||||
if(!userData.canRevive) continue;
|
||||
}
|
||||
|
||||
if(specialType === FurniCategory._Str_8726)
|
||||
if(specialType === FurniCategory.MONSTERPLANT_REBREED)
|
||||
{
|
||||
if((userData.petLevel < 7) || userData.canRevive || userData.canBreed) continue;
|
||||
}
|
||||
|
||||
if(specialType === FurniCategory._Str_9449)
|
||||
if(specialType === FurniCategory.MONSTERPLANT_FERTILIZE)
|
||||
{
|
||||
if((userData.petLevel >= 7) || userData.canRevive) continue;
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
@import './frontpage4/CatalogLayoutFrontpage4View';
|
||||
@import './info-loyalty/CatalogLayoutInfoLoyaltyView.scss';
|
||||
@import './vip-buy/CatalogLayoutVipBuyView';
|
||||
@import './marketplace/marketplace-item/MarketplaceItemView';
|
||||
|
@ -6,6 +6,8 @@ import { CatalogLayouGuildCustomFurniView } from './guild-custom-furni/CatalogLa
|
||||
import { CatalogLayouGuildForumView } from './guild-forum/CatalogLayoutGuildForumView';
|
||||
import { CatalogLayouGuildFrontpageView } from './guild-frontpage/CatalogLayoutGuildFrontpageView';
|
||||
import { CatalogLayoutInfoLoyaltyView } from './info-loyalty/CatalogLayoutInfoLoyaltyView';
|
||||
import { CatalogLayoutMarketplaceOwnItemsView } from './marketplace/own-items/CatalogLayoutMarketplaceOwnItemsView';
|
||||
import { CatalogLayoutMarketplacePublicItemsView } from './marketplace/public-items/CatalogLayoutMarketplacePublicItemsView';
|
||||
import { CatalogLayoutPetView } from './pets/CatalogLayoutPetView';
|
||||
import { CatalogLayoutPets2View } from './pets2/CatalogLayoutPets2View';
|
||||
import { CatalogLayoutPets3View } from './pets3/CatalogLayoutPets3View';
|
||||
@ -41,9 +43,9 @@ export const GetCatalogLayout = (pageParser: CatalogPageMessageParser, roomPrevi
|
||||
case 'club_gifts':
|
||||
return null;
|
||||
case 'marketplace_own_items':
|
||||
return null;
|
||||
return <CatalogLayoutMarketplaceOwnItemsView roomPreviewer={ roomPreviewer } pageParser={ pageParser } />;
|
||||
case 'marketplace':
|
||||
return null;
|
||||
return <CatalogLayoutMarketplacePublicItemsView roomPreviewer={ roomPreviewer } pageParser={ pageParser } />;
|
||||
case 'single_bundle':
|
||||
return <CatalogLayoutSingleBundleView roomPreviewer={ roomPreviewer } pageParser={ pageParser } />;
|
||||
case 'spaces_new':
|
||||
|
@ -0,0 +1,6 @@
|
||||
export class MarketplaceConfirmType
|
||||
{
|
||||
public static readonly PURCHASE_CONFIRM_TYPE_NORMAL = 1;
|
||||
public static readonly PURCHASE_CONFIRM_TYPE_HIGHER = 2;
|
||||
public static readonly PURCHASE_CONFIRM_TYPE_INVALID = 3;
|
||||
}
|
@ -0,0 +1,128 @@
|
||||
import { IObjectData } from '@nitrots/nitro-renderer';
|
||||
|
||||
export class MarketplaceOfferData
|
||||
{
|
||||
public static TYPE_LANDSCAPE: number = 1;
|
||||
public static TYPE_FLOOR: number = 2;
|
||||
|
||||
private _offerId: number;
|
||||
private _furniId: number;
|
||||
private _furniType: number;
|
||||
private _extraData: string;
|
||||
private _stuffData: IObjectData;
|
||||
private _price: number;
|
||||
private _averagePrice: number;
|
||||
private _imageCallback: number;
|
||||
private _status: number;
|
||||
private _timeLeftMinutes: number = -1;
|
||||
private _offerCount: number;
|
||||
private _image: string;
|
||||
|
||||
constructor(offerId: number, furniId: number, furniType: number, extraData: string, stuffData: IObjectData, price: number, status: number, averagePrice: number, offerCount: number = -1)
|
||||
{
|
||||
this._offerId = offerId;
|
||||
this._furniId = furniId;
|
||||
this._furniType = furniType;
|
||||
this._extraData = extraData;
|
||||
this._stuffData = stuffData;
|
||||
this._price = price;
|
||||
this._status = status;
|
||||
this._averagePrice = averagePrice;
|
||||
this._offerCount = offerCount;
|
||||
}
|
||||
|
||||
public get offerId(): number
|
||||
{
|
||||
return this._offerId;
|
||||
}
|
||||
|
||||
public set offerId(offerId: number)
|
||||
{
|
||||
this._offerId = offerId;
|
||||
}
|
||||
|
||||
public get furniId(): number
|
||||
{
|
||||
return this._furniId;
|
||||
}
|
||||
|
||||
public get furniType(): number
|
||||
{
|
||||
return this._furniType;
|
||||
}
|
||||
|
||||
public get extraData(): string
|
||||
{
|
||||
return this._extraData;
|
||||
}
|
||||
|
||||
public get stuffData(): IObjectData
|
||||
{
|
||||
return this._stuffData;
|
||||
}
|
||||
|
||||
public get price(): number
|
||||
{
|
||||
return this._price;
|
||||
}
|
||||
|
||||
public set price(price: number)
|
||||
{
|
||||
this._price = price;
|
||||
}
|
||||
|
||||
public get averagePrice(): number
|
||||
{
|
||||
return this._averagePrice;
|
||||
}
|
||||
|
||||
public get image(): string
|
||||
{
|
||||
return this._image;
|
||||
}
|
||||
|
||||
public set image(image: string)
|
||||
{
|
||||
this._image = image;
|
||||
}
|
||||
|
||||
public get imageCallback(): number
|
||||
{
|
||||
return this._imageCallback;
|
||||
}
|
||||
|
||||
public set imageCallback(callback: number)
|
||||
{
|
||||
this._imageCallback = callback;
|
||||
}
|
||||
|
||||
public get status(): number
|
||||
{
|
||||
return this._status;
|
||||
}
|
||||
|
||||
public get timeLeftMinutes(): number
|
||||
{
|
||||
return this._timeLeftMinutes;
|
||||
}
|
||||
|
||||
public set timeLeftMinutes(minutes: number)
|
||||
{
|
||||
this._timeLeftMinutes = minutes;
|
||||
}
|
||||
|
||||
public get offerCount(): number
|
||||
{
|
||||
return this._offerCount;
|
||||
}
|
||||
|
||||
public set offerCount(count: number)
|
||||
{
|
||||
this._offerCount = count;
|
||||
}
|
||||
|
||||
public get isUniqueLimitedItem(): boolean
|
||||
{
|
||||
return (this.stuffData && (this.stuffData.uniqueSeries > 0));
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
export class MarketPlaceOfferState
|
||||
{
|
||||
public static readonly ONGOING = 1;
|
||||
public static readonly ONGOING_OWN = 1;
|
||||
public static readonly SOLD = 2;
|
||||
public static readonly EXPIRED = 3;
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
.marketplace-item {
|
||||
max-height: 70px;
|
||||
height: 70px;
|
||||
}
|
@ -0,0 +1,91 @@
|
||||
import { FC, useCallback } from 'react';
|
||||
import { GetRoomEngine, LocalizeText } from '../../../../../../../api';
|
||||
import { NitroCardGridItemView } from '../../../../../../../layout';
|
||||
import { MarketplaceOfferData } from '../common/MarketplaceOfferData';
|
||||
|
||||
export const OWN_OFFER = 1;
|
||||
export const OTHER_OFFER = 2;
|
||||
|
||||
export interface MarketplaceItemViewProps
|
||||
{
|
||||
offerData: MarketplaceOfferData;
|
||||
type?: number;
|
||||
}
|
||||
|
||||
export const MarketplaceItemView: FC<MarketplaceItemViewProps> = props =>
|
||||
{
|
||||
const { offerData = null, type = OTHER_OFFER } = props;
|
||||
|
||||
const getImageUrlForOffer = useCallback( () =>
|
||||
{
|
||||
if(!offerData) return '';
|
||||
|
||||
switch(offerData.furniType)
|
||||
{
|
||||
case 1:
|
||||
return GetRoomEngine().getFurnitureFloorIconUrl(offerData.furniId);
|
||||
case 2:
|
||||
return GetRoomEngine().getFurnitureWallIconUrl(offerData.furniId, offerData.extraData);
|
||||
}
|
||||
|
||||
return '';
|
||||
}, [offerData]);
|
||||
|
||||
const getMarketplaceOfferTitle = useCallback(() =>
|
||||
{
|
||||
if(!offerData) return '';
|
||||
|
||||
const localizationKey = offerData.furniType === 2 ? 'wallItem.name.' + offerData.furniId: 'roomItem.name.' + offerData.furniId;
|
||||
|
||||
return LocalizeText(localizationKey);
|
||||
}, [offerData]);
|
||||
|
||||
const getMarketplaceOfferDescription = useCallback( () =>
|
||||
{
|
||||
if(!offerData) return '';
|
||||
|
||||
const localizationKey = offerData.furniType === 2 ? 'wallItem.desc.' + offerData.furniId : 'roomItem.desc.' + offerData.furniId;
|
||||
|
||||
return LocalizeText(localizationKey);
|
||||
}, [offerData]);
|
||||
|
||||
const offerTime = useCallback( () =>
|
||||
{
|
||||
if(!offerData) return '';
|
||||
|
||||
const time = Math.max(1, offerData.timeLeftMinutes);
|
||||
const hours = Math.floor(time / 60);
|
||||
const minutes = time - (hours * 60);
|
||||
|
||||
let text = minutes + ' ' + LocalizeText('catalog.marketplace.offer.minutes');
|
||||
if(hours > 0)
|
||||
{
|
||||
text = hours + ' ' + LocalizeText('catalog.marketplace.offer.hours') + ' ' + text;
|
||||
}
|
||||
|
||||
return LocalizeText('catalog.marketplace.offer.time_left', ['time'], [text] );
|
||||
}, [offerData]);
|
||||
|
||||
return (
|
||||
<NitroCardGridItemView className='w-100 marketplace-item'>
|
||||
<img src={ getImageUrlForOffer() } className='mx-3'/>
|
||||
<div className='h-100 flex-grow-1 lh-1'>
|
||||
<div className='fw-bold'>{getMarketplaceOfferTitle()}</div>
|
||||
<div className='fst-italic fs-6'>{getMarketplaceOfferDescription()}</div>
|
||||
|
||||
{ type === OWN_OFFER && <>
|
||||
<div>{ LocalizeText('catalog.marketplace.offer.price_own_item', ['price'], [offerData.price.toString()])}</div>
|
||||
<div>{ offerTime() }</div>
|
||||
</>
|
||||
}
|
||||
{ type === OTHER_OFFER && <>
|
||||
<div>{ LocalizeText('catalog.marketplace.offer.price_public_item', ['price', 'average'], [offerData.price.toString(), offerData.averagePrice.toString() ]) }</div>
|
||||
<div>{ LocalizeText('catalog.marketplace.offer_count', ['count'], [offerData.offerCount.toString()]) }</div>
|
||||
</>
|
||||
}
|
||||
</div>
|
||||
<div className='btn-group-vertical mx-1'>
|
||||
{ type === OWN_OFFER && <button className='btn btn-secondary btn-sm'>{LocalizeText('catalog.marketplace.offer.pick')}</button>}
|
||||
</div>
|
||||
</NitroCardGridItemView>)
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
import { GetMarketplaceOwnOffersMessageComposer, MarketplaceOwnOffersEvent } from '@nitrots/nitro-renderer';
|
||||
import { FC, useCallback, useState } from 'react';
|
||||
import { LocalizeText } from '../../../../../../../api';
|
||||
import { BatchUpdates, CreateMessageHook, SendMessageHook, UseMountEffect } from '../../../../../../../hooks';
|
||||
import { NitroCardGridView } from '../../../../../../../layout';
|
||||
import { NitroLayoutBase } from '../../../../../../../layout/base';
|
||||
import { CatalogLayoutProps } from '../../CatalogLayout.types';
|
||||
import { MarketplaceOfferData } from '../common/MarketplaceOfferData';
|
||||
import { MarketplaceItemView, OWN_OFFER } from '../marketplace-item/MarketplaceItemView';
|
||||
|
||||
export interface CatalogLayoutMarketplaceOwnItemsViewProps extends CatalogLayoutProps
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
export const CatalogLayoutMarketplaceOwnItemsView: FC<CatalogLayoutMarketplaceOwnItemsViewProps> = props =>
|
||||
{
|
||||
const [ creditsWaiting, setCreditsWaiting ] = useState(0);
|
||||
const [ offers, setOffers ] = useState(new Map<number, MarketplaceOfferData>());
|
||||
|
||||
UseMountEffect(() =>
|
||||
{
|
||||
SendMessageHook(new GetMarketplaceOwnOffersMessageComposer());
|
||||
});
|
||||
|
||||
const onMarketPlaceOwnOffersEvent = useCallback((event: MarketplaceOwnOffersEvent) =>
|
||||
{
|
||||
const parser = event.getParser();
|
||||
|
||||
if(!parser) return;
|
||||
|
||||
const latestOffers = new Map<number, MarketplaceOfferData>();
|
||||
parser.offers.forEach(entry =>
|
||||
{
|
||||
const offerEntry = new MarketplaceOfferData(entry.offerId, entry.furniId, entry.furniType, entry.extraData, entry.stuffData, entry.price, entry.status, entry.averagePrice, entry.offerCount);
|
||||
offerEntry.timeLeftMinutes = entry.timeLeftMinutes;
|
||||
latestOffers.set(entry.offerId, offerEntry);
|
||||
});
|
||||
|
||||
BatchUpdates(() =>
|
||||
{
|
||||
setCreditsWaiting(parser.creditsWaiting);
|
||||
setOffers(latestOffers);
|
||||
});
|
||||
}, []);
|
||||
|
||||
CreateMessageHook(MarketplaceOwnOffersEvent, onMarketPlaceOwnOffersEvent);
|
||||
|
||||
return (
|
||||
<>
|
||||
{ (creditsWaiting <= 0) && <NitroLayoutBase className='text-black'>{LocalizeText('catalog.marketplace.redeem.no_sold_items')}</NitroLayoutBase>}
|
||||
|
||||
{ (creditsWaiting > 0) && <NitroLayoutBase className='text-black'>{LocalizeText('catalog.marketplace.redeem.get_credits', ['count', 'credits'], ['0', creditsWaiting.toString()])}</NitroLayoutBase>}
|
||||
|
||||
<button className='btn btn-primary btn-sm mx-auto' disabled={creditsWaiting <= 0}>{LocalizeText('catalog.marketplace.offer.redeem')}</button>
|
||||
|
||||
<div className='text-black'>{LocalizeText('catalog.marketplace.items_found', ['count'], [offers.size.toString()])}</div>
|
||||
<NitroCardGridView columns={1} className='text-black'>
|
||||
{
|
||||
Array.from(offers.values()).map( (entry, index) => <MarketplaceItemView key={ index } offerData={ entry } type={ OWN_OFFER } />)
|
||||
}
|
||||
</NitroCardGridView>
|
||||
</>
|
||||
);
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
import { FC } from 'react';
|
||||
import { UseMountEffect } from '../../../../../../../hooks';
|
||||
import { CatalogLayoutProps } from '../../CatalogLayout.types';
|
||||
|
||||
export interface CatalogLayoutMarketplacePublicItemsViewProps extends CatalogLayoutProps
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
export const CatalogLayoutMarketplacePublicItemsView: FC<CatalogLayoutMarketplacePublicItemsViewProps> = props =>
|
||||
{
|
||||
UseMountEffect(() =>
|
||||
{
|
||||
//request stuff
|
||||
});
|
||||
|
||||
return null;
|
||||
}
|
@ -1,26 +1,26 @@
|
||||
export class FurniCategory
|
||||
{
|
||||
public static DEFAULT: number = 1;
|
||||
public static _Str_3639: number = 2;
|
||||
public static _Str_3683: number = 3;
|
||||
public static _Str_3432: number = 4;
|
||||
public static _Str_12351: number = 5;
|
||||
public static _Str_5186: number = 6;
|
||||
public static _Str_21911: number = 7;
|
||||
public static _Str_9125: number = 8;
|
||||
public static _Str_5922: number = 9;
|
||||
public static _Str_18231: number = 10;
|
||||
public static _Str_4255: number = 11;
|
||||
public static _Str_19933: number = 12;
|
||||
public static _Str_7696: number = 13;
|
||||
public static _Str_7297: number = 14;
|
||||
public static _Str_7954: number = 15;
|
||||
public static _Str_6096: number = 16;
|
||||
public static _Str_12454: number = 17;
|
||||
public static _Str_19144: number = 18;
|
||||
public static WALL_PAPER: number = 2;
|
||||
public static FLOOR: number = 3;
|
||||
public static LANDSCAPE: number = 4;
|
||||
public static POST_IT: number = 5;
|
||||
public static POSTER: number = 6;
|
||||
public static SOUND_SET: number = 7;
|
||||
public static TRAX_SONG: number = 8;
|
||||
public static PRESENT: number = 9;
|
||||
public static ECOTRON_BOX: number = 10;
|
||||
public static TROPHY: number = 11;
|
||||
public static CREDIT_FURNI: number = 12;
|
||||
public static PET_SHAMPOO: number = 13;
|
||||
public static PET_CUSTOM_PART: number = 14;
|
||||
public static PET_CUSTOM_PART_SHAMPOO: number = 15;
|
||||
public static PET_SADDLE: number = 16;
|
||||
public static GUILD_FURNI: number = 17;
|
||||
public static GAME_FURNI: number = 18;
|
||||
public static MONSTERPLANT_SEED: number = 19;
|
||||
public static _Str_6915: number = 20;
|
||||
public static _Str_8726: number = 21;
|
||||
public static _Str_9449: number = 22;
|
||||
public static _Str_12534: number = 23;
|
||||
public static MONSTERPLANT_REVIVAL: number = 20;
|
||||
public static MONSTERPLANT_REBREED: number = 21;
|
||||
public static MONSTERPLANT_FERTILIZE: number = 22;
|
||||
public static FIGURE_PURCHASABLE_SET: number = 23;
|
||||
}
|
@ -18,7 +18,7 @@ export function attemptItemPlacement(groupItem: GroupItem, flag: boolean = false
|
||||
|
||||
if(!item) return false;
|
||||
|
||||
if((item.category === FurniCategory._Str_3683) || (item.category === FurniCategory._Str_3639) || (item.category === FurniCategory._Str_3432))
|
||||
if((item.category === FurniCategory.FLOOR) || (item.category === FurniCategory.WALL_PAPER) || (item.category === FurniCategory.LANDSCAPE))
|
||||
{
|
||||
if(flag) return false;
|
||||
|
||||
@ -36,7 +36,7 @@ export function attemptItemPlacement(groupItem: GroupItem, flag: boolean = false
|
||||
if(item.isWallItem) category = RoomObjectCategory.WALL;
|
||||
else category = RoomObjectCategory.FLOOR;
|
||||
|
||||
if((item.category === FurniCategory._Str_5186)) // or external image from furnidata
|
||||
if((item.category === FurniCategory.POSTER)) // or external image from furnidata
|
||||
{
|
||||
isMoving = GetRoomEngine().processRoomObjectPlacement(RoomObjectPlacementSource.INVENTORY, item.id, category, item.type, item.stuffData.getLegacyString());
|
||||
}
|
||||
@ -108,7 +108,7 @@ function getAllItemIds(groupItems: GroupItem[]): number[]
|
||||
{
|
||||
let totalCount = groupItem.getTotalCount();
|
||||
|
||||
if(groupItem.category === FurniCategory._Str_12351) totalCount = 1;
|
||||
if(groupItem.category === FurniCategory.POST_IT) totalCount = 1;
|
||||
|
||||
let i = 0;
|
||||
|
||||
@ -240,7 +240,7 @@ function addGroupableFurnitureItem(set: GroupItem[], item: FurnitureItem, unseen
|
||||
{
|
||||
if((groupItem.type === item.type) && (groupItem.isWallItem === item.isWallItem) && groupItem.isGroupable)
|
||||
{
|
||||
if(item.category === FurniCategory._Str_5186)
|
||||
if(item.category === FurniCategory.POSTER)
|
||||
{
|
||||
if(groupItem.stuffData.getLegacyString() === item.stuffData.getLegacyString())
|
||||
{
|
||||
@ -250,7 +250,7 @@ function addGroupableFurnitureItem(set: GroupItem[], item: FurnitureItem, unseen
|
||||
}
|
||||
}
|
||||
|
||||
else if(item.category === FurniCategory._Str_12454)
|
||||
else if(item.category === FurniCategory.GUILD_FURNI)
|
||||
{
|
||||
if(item.stuffData.compare(groupItem.stuffData))
|
||||
{
|
||||
@ -309,7 +309,7 @@ export function createGroupItem(type: number, category: number, stuffData: IObje
|
||||
{
|
||||
// const iconImage: HTMLImageElement = null;
|
||||
|
||||
if(category === FurniCategory._Str_3639)
|
||||
if(category === FurniCategory.WALL_PAPER)
|
||||
{
|
||||
// const icon = this._windowManager.assets.getAssetByName("inventory_furni_icon_wallpaper");
|
||||
// if (icon != null)
|
||||
@ -318,7 +318,7 @@ export function createGroupItem(type: number, category: number, stuffData: IObje
|
||||
// }
|
||||
}
|
||||
|
||||
else if(category === FurniCategory._Str_3683)
|
||||
else if(category === FurniCategory.FLOOR)
|
||||
{
|
||||
// const icon = this._windowManager.assets.getAssetByName("inventory_furni_icon_floor");
|
||||
// if (icon != null)
|
||||
@ -327,7 +327,7 @@ export function createGroupItem(type: number, category: number, stuffData: IObje
|
||||
// }
|
||||
}
|
||||
|
||||
else if(category === FurniCategory._Str_3432)
|
||||
else if(category === FurniCategory.LANDSCAPE)
|
||||
{
|
||||
// const icon = this._windowManager.assets.getAssetByName("inventory_furni_icon_landscape");
|
||||
// if (icon != null)
|
||||
|
@ -199,7 +199,7 @@ export class GroupItem
|
||||
|
||||
public getTotalCount(): number
|
||||
{
|
||||
if(this._category === FurniCategory._Str_12351)
|
||||
if(this._category === FurniCategory.POST_IT)
|
||||
{
|
||||
let count = 0;
|
||||
let index = 0;
|
||||
@ -221,7 +221,7 @@ export class GroupItem
|
||||
|
||||
public getUnlockedCount(): number
|
||||
{
|
||||
if(this.category === FurniCategory._Str_12351) return this.getTotalCount();
|
||||
if(this.category === FurniCategory.POST_IT) return this.getTotalCount();
|
||||
|
||||
let count = 0;
|
||||
let index = 0;
|
||||
@ -318,10 +318,10 @@ export class GroupItem
|
||||
|
||||
switch(this._category)
|
||||
{
|
||||
case FurniCategory._Str_5186:
|
||||
case FurniCategory.POSTER:
|
||||
key = (('poster_' + k.stuffData.getLegacyString()) + '_name');
|
||||
break;
|
||||
case FurniCategory._Str_9125:
|
||||
case FurniCategory.TRAX_SONG:
|
||||
this._name = 'SONG_NAME';
|
||||
return;
|
||||
default:
|
||||
|
@ -30,12 +30,12 @@ export function parseTradeItems(items: ItemDataStructure[], _arg_2: AdvancedMap<
|
||||
name = ('itemid' + item.itemId);
|
||||
}
|
||||
|
||||
if(item.category === FurniCategory._Str_5186)
|
||||
if(item.category === FurniCategory.POSTER)
|
||||
{
|
||||
name = (item.itemId + 'poster' + item.stuffData.getLegacyString());
|
||||
}
|
||||
|
||||
else if(item.category === FurniCategory._Str_12454)
|
||||
else if(item.category === FurniCategory.GUILD_FURNI)
|
||||
{
|
||||
name = '';
|
||||
}
|
||||
|
@ -76,15 +76,15 @@ export const InventoryFurnitureView: FC<InventoryFurnitureViewProps> = props =>
|
||||
roomPreviewer.updateObjectRoom(floorType, wallType, landscapeType);
|
||||
roomPreviewer.updateRoomWallsAndFloorVisibility(true, true);
|
||||
|
||||
if((furnitureItem.category === FurniCategory._Str_3639) || (furnitureItem.category === FurniCategory._Str_3683) || (furnitureItem.category === FurniCategory._Str_3432))
|
||||
if((furnitureItem.category === FurniCategory.WALL_PAPER) || (furnitureItem.category === FurniCategory.FLOOR) || (furnitureItem.category === FurniCategory.LANDSCAPE))
|
||||
{
|
||||
floorType = ((furnitureItem.category === FurniCategory._Str_3683) ? groupItem.stuffData.getLegacyString() : floorType);
|
||||
wallType = ((furnitureItem.category === FurniCategory._Str_3639) ? groupItem.stuffData.getLegacyString() : wallType);
|
||||
landscapeType = ((furnitureItem.category === FurniCategory._Str_3432) ? groupItem.stuffData.getLegacyString() : landscapeType);
|
||||
floorType = ((furnitureItem.category === FurniCategory.FLOOR) ? groupItem.stuffData.getLegacyString() : floorType);
|
||||
wallType = ((furnitureItem.category === FurniCategory.WALL_PAPER) ? groupItem.stuffData.getLegacyString() : wallType);
|
||||
landscapeType = ((furnitureItem.category === FurniCategory.LANDSCAPE) ? groupItem.stuffData.getLegacyString() : landscapeType);
|
||||
|
||||
roomPreviewer.updateObjectRoom(floorType, wallType, landscapeType);
|
||||
|
||||
if(furnitureItem.category === FurniCategory._Str_3432)
|
||||
if(furnitureItem.category === FurniCategory.LANDSCAPE)
|
||||
{
|
||||
const data = GetSessionDataManager().getWallItemDataByName('noob_window_double');
|
||||
|
||||
|
@ -41,13 +41,13 @@ export const InventoryTradeView: FC<InventoryTradeViewProps> = props =>
|
||||
|
||||
let type = spriteId.toString();
|
||||
|
||||
if(category === FurniCategory._Str_5186)
|
||||
if(category === FurniCategory.POSTER)
|
||||
{
|
||||
type = ((type + 'poster') + stuffData.getLegacyString());
|
||||
}
|
||||
else
|
||||
{
|
||||
if(category === FurniCategory._Str_12454)
|
||||
if(category === FurniCategory.GUILD_FURNI)
|
||||
{
|
||||
type = _Str_16998(spriteId, stuffData);
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ export const AvatarInfoUseProductConfirmView: FC<AvatarInfoUseProductConfirmView
|
||||
|
||||
switch(furniData.specialType)
|
||||
{
|
||||
case FurniCategory._Str_7696: {
|
||||
case FurniCategory.PET_SHAMPOO: {
|
||||
if(customParts.length < 2) return null;
|
||||
|
||||
const currentPalette = GetRoomEngine().getPetColorResult(petIndex, petFigureData.paletteId);
|
||||
@ -68,7 +68,7 @@ export const AvatarInfoUseProductConfirmView: FC<AvatarInfoUseProductConfirmView
|
||||
|
||||
return <PetImageView typeId={ petFigureData.typeId } paletteId={ paletteId } color={ petFigureData.color } customParts={ petFigureData.customParts } direction={ 2 } />
|
||||
}
|
||||
case FurniCategory._Str_7297: {
|
||||
case FurniCategory.PET_CUSTOM_PART: {
|
||||
if(customParts.length < 4) return null;
|
||||
|
||||
const newCustomParts: PetCustomPart[] = [];
|
||||
@ -95,7 +95,7 @@ export const AvatarInfoUseProductConfirmView: FC<AvatarInfoUseProductConfirmView
|
||||
|
||||
return <PetImageView typeId={ petFigureData.typeId } paletteId={ petFigureData.paletteId } color={ petFigureData.color } customParts={ newCustomParts } direction={ 2 } />;
|
||||
}
|
||||
case FurniCategory._Str_7954: {
|
||||
case FurniCategory.PET_CUSTOM_PART_SHAMPOO: {
|
||||
if(customParts.length < 3) return null;
|
||||
|
||||
const newCustomParts: PetCustomPart[] = [];
|
||||
@ -121,7 +121,7 @@ export const AvatarInfoUseProductConfirmView: FC<AvatarInfoUseProductConfirmView
|
||||
|
||||
return <PetImageView typeId={ petFigureData.typeId } paletteId={ petFigureData.paletteId } color={ petFigureData.color } customParts={ newCustomParts } direction={ 2 } />;
|
||||
}
|
||||
case FurniCategory._Str_6096: {
|
||||
case FurniCategory.PET_SADDLE: {
|
||||
if(customParts.length < 4) return null;
|
||||
|
||||
const newCustomParts: PetCustomPart[] = [];
|
||||
@ -149,9 +149,9 @@ export const AvatarInfoUseProductConfirmView: FC<AvatarInfoUseProductConfirmView
|
||||
|
||||
return <PetImageView typeId={ petFigureData.typeId } paletteId={ petFigureData.paletteId } color={ petFigureData.color } customParts={ newCustomParts } direction={ 2 } />;
|
||||
}
|
||||
case FurniCategory._Str_8726:
|
||||
case FurniCategory._Str_6915:
|
||||
case FurniCategory._Str_9449: {
|
||||
case FurniCategory.MONSTERPLANT_REBREED:
|
||||
case FurniCategory.MONSTERPLANT_REVIVAL:
|
||||
case FurniCategory.MONSTERPLANT_FERTILIZE: {
|
||||
let posture = 'rip';
|
||||
|
||||
const roomObject = GetRoomEngine().getRoomObject(roomSession.roomId, petData.roomIndex, RoomObjectCategory.UNIT);
|
||||
@ -190,25 +190,25 @@ export const AvatarInfoUseProductConfirmView: FC<AvatarInfoUseProductConfirmView
|
||||
|
||||
switch(furniData.specialType)
|
||||
{
|
||||
case FurniCategory._Str_7696:
|
||||
case FurniCategory.PET_SHAMPOO:
|
||||
mode = _Str_11906;
|
||||
break;
|
||||
case FurniCategory._Str_7297:
|
||||
case FurniCategory.PET_CUSTOM_PART:
|
||||
mode = _Str_11214;
|
||||
break;
|
||||
case FurniCategory._Str_7954:
|
||||
case FurniCategory.PET_CUSTOM_PART_SHAMPOO:
|
||||
mode = _Str_11733;
|
||||
break;
|
||||
case FurniCategory._Str_6096:
|
||||
case FurniCategory.PET_SADDLE:
|
||||
mode = _Str_11369;
|
||||
break;
|
||||
case FurniCategory._Str_6915:
|
||||
case FurniCategory.MONSTERPLANT_REVIVAL:
|
||||
mode = _Str_8759;
|
||||
break;
|
||||
case FurniCategory._Str_8726:
|
||||
case FurniCategory.MONSTERPLANT_REBREED:
|
||||
mode = _Str_8432;
|
||||
break;
|
||||
case FurniCategory._Str_9449:
|
||||
case FurniCategory.MONSTERPLANT_FERTILIZE:
|
||||
mode = _Str_9653;
|
||||
break;
|
||||
}
|
||||
|
@ -8,14 +8,14 @@ import { ContextMenuHeaderView } from '../../../context-menu/views/header/Contex
|
||||
import { ContextMenuListItemView } from '../../../context-menu/views/list-item/ContextMenuListItemView';
|
||||
import { AvatarInfoUseProductViewProps } from './AvatarInfoUseProductView.types';
|
||||
|
||||
const _Str_2906: number = 0;
|
||||
const _Str_13718: number = 1;
|
||||
const _Str_14146: number = 2;
|
||||
const _Str_15667: number = 3;
|
||||
const _Str_14658: number = 4;
|
||||
const _Str_14165: number = 5;
|
||||
const _Str_12577: number = 6;
|
||||
const _Str_14611: number = 7;
|
||||
const PRODUCT_PAGE_UKNOWN: number = 0;
|
||||
const PRODUCT_PAGE_SHAMPOO: number = 1;
|
||||
const PRODUCT_PAGE_CUSTOM_PART: number = 2;
|
||||
const PRODUCT_PAGE_CUSTOM_PART_SHAMPOO: number = 3;
|
||||
const PRODUCT_PAGE_SADDLE: number = 4;
|
||||
const PRODUCT_PAGE_REVIVE: number = 5;
|
||||
const PRODUCT_PAGE_REBREED: number = 6;
|
||||
const PRODUCT_PAGE_FERTILIZE: number = 7;
|
||||
|
||||
export const AvatarInfoUseProductView: FC<AvatarInfoUseProductViewProps> = props =>
|
||||
{
|
||||
@ -31,30 +31,30 @@ export const AvatarInfoUseProductView: FC<AvatarInfoUseProductViewProps> = props
|
||||
|
||||
if(!furniData) return;
|
||||
|
||||
let mode = _Str_2906;
|
||||
let mode = PRODUCT_PAGE_UKNOWN;
|
||||
|
||||
switch(furniData.specialType)
|
||||
{
|
||||
case FurniCategory._Str_7696:
|
||||
mode = _Str_13718;
|
||||
case FurniCategory.PET_SHAMPOO:
|
||||
mode = PRODUCT_PAGE_SHAMPOO;
|
||||
break;
|
||||
case FurniCategory._Str_7297:
|
||||
mode = _Str_14146;
|
||||
case FurniCategory.PET_CUSTOM_PART:
|
||||
mode = PRODUCT_PAGE_CUSTOM_PART;
|
||||
break;
|
||||
case FurniCategory._Str_7954:
|
||||
mode = _Str_15667;
|
||||
case FurniCategory.PET_CUSTOM_PART_SHAMPOO:
|
||||
mode = PRODUCT_PAGE_CUSTOM_PART_SHAMPOO;
|
||||
break;
|
||||
case FurniCategory._Str_6096:
|
||||
mode = _Str_14658;
|
||||
case FurniCategory.PET_SADDLE:
|
||||
mode = PRODUCT_PAGE_SADDLE;
|
||||
break;
|
||||
case FurniCategory._Str_6915:
|
||||
mode = _Str_14165;
|
||||
case FurniCategory.MONSTERPLANT_REVIVAL:
|
||||
mode = PRODUCT_PAGE_REVIVE;
|
||||
break;
|
||||
case FurniCategory._Str_8726:
|
||||
mode = _Str_12577;
|
||||
case FurniCategory.MONSTERPLANT_REBREED:
|
||||
mode = PRODUCT_PAGE_REBREED;
|
||||
break;
|
||||
case FurniCategory._Str_9449:
|
||||
mode = _Str_14611;
|
||||
case FurniCategory.MONSTERPLANT_FERTILIZE:
|
||||
mode = PRODUCT_PAGE_FERTILIZE;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -86,23 +86,23 @@ export const AvatarInfoUseProductView: FC<AvatarInfoUseProductViewProps> = props
|
||||
<ContextMenuHeaderView>
|
||||
{ item.name }
|
||||
</ContextMenuHeaderView>
|
||||
{ (mode === _Str_2906) &&
|
||||
{ (mode === PRODUCT_PAGE_UKNOWN) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('use_product') }>
|
||||
{ LocalizeText('infostand.button.useproduct') }
|
||||
</ContextMenuListItemView> }
|
||||
{ (mode === _Str_13718) &&
|
||||
{ (mode === PRODUCT_PAGE_SHAMPOO) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('use_product_shampoo') }>
|
||||
{ LocalizeText('infostand.button.useproduct_shampoo') }
|
||||
</ContextMenuListItemView> }
|
||||
{ (mode === _Str_14146) &&
|
||||
{ (mode === PRODUCT_PAGE_CUSTOM_PART) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('use_product_custom_part') }>
|
||||
{ LocalizeText('infostand.button.useproduct_custom_part') }
|
||||
</ContextMenuListItemView> }
|
||||
{ (mode === _Str_15667) &&
|
||||
{ (mode === PRODUCT_PAGE_CUSTOM_PART_SHAMPOO) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('use_product_custom_part_shampoo') }>
|
||||
{ LocalizeText('infostand.button.useproduct_custom_part_shampoo') }
|
||||
</ContextMenuListItemView> }
|
||||
{ (mode === _Str_14658) &&
|
||||
{ (mode === PRODUCT_PAGE_SADDLE) &&
|
||||
<>
|
||||
{ item.replace &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('replace_product_saddle') }>
|
||||
@ -113,15 +113,15 @@ export const AvatarInfoUseProductView: FC<AvatarInfoUseProductViewProps> = props
|
||||
{ LocalizeText('infostand.button.useproduct_saddle') }
|
||||
</ContextMenuListItemView> }
|
||||
</> }
|
||||
{ (mode === _Str_14165) &&
|
||||
{ (mode === PRODUCT_PAGE_REVIVE) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('revive_monsterplant') }>
|
||||
{ LocalizeText('infostand.button.revive_monsterplant') }
|
||||
</ContextMenuListItemView> }
|
||||
{ (mode === _Str_12577) &&
|
||||
{ (mode === PRODUCT_PAGE_REBREED) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('rebreed_monsterplant') }>
|
||||
{ LocalizeText('infostand.button.rebreed_monsterplant') }
|
||||
</ContextMenuListItemView> }
|
||||
{ (mode === _Str_14611) &&
|
||||
{ (mode === PRODUCT_PAGE_FERTILIZE) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('fertilize_monsterplant') }>
|
||||
{ LocalizeText('infostand.button.fertilize_monsterplant') }
|
||||
</ContextMenuListItemView> }
|
||||
|
@ -43,7 +43,7 @@ export const PurchasableClothingConfirmView: FC<PurchasableClothingConfirmViewPr
|
||||
{
|
||||
switch(furniData.specialType)
|
||||
{
|
||||
case FurniCategory._Str_12534:
|
||||
case FurniCategory.FIGURE_PURCHASABLE_SET:
|
||||
mode = MODE_PURCHASABLE_CLOTHING;
|
||||
|
||||
const setIds = furniData.customParams.split(',').map(part => parseInt(part));
|
||||
|
Loading…
Reference in New Issue
Block a user