From b1e780b253035074da4ec4339352d7ff2487ab9e Mon Sep 17 00:00:00 2001 From: MyNameIsBatman Date: Sun, 20 Jun 2021 15:16:23 -0300 Subject: [PATCH] PetInfoStand --- src/assets/styles/bootstrap/_variables.scss | 5 +- .../infostand/InfoStandWidgetView.scss | 6 +- .../widgets/infostand/InfoStandWidgetView.tsx | 3 + .../views/pet/InfoStandWidgetPetView.tsx | 58 +++++++++++++++++++ .../views/pet/InfoStandWidgetPetView.types.ts | 7 +++ .../views/user/InfoStandWidgetUserView.tsx | 2 +- 6 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.tsx create mode 100644 src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.types.ts diff --git a/src/assets/styles/bootstrap/_variables.scss b/src/assets/styles/bootstrap/_variables.scss index 3f74afdc..ee27f8c8 100644 --- a/src/assets/styles/bootstrap/_variables.scss +++ b/src/assets/styles/bootstrap/_variables.scss @@ -81,6 +81,7 @@ $warning: $yellow !default; $danger: #C23027 !default; $light: #DFDFDF !default; $dark: $gray-900 !default; +$light-dark: $gray-800 !default; // scss-docs-end theme-color-variables @@ -99,9 +100,11 @@ $theme-colors: ( "danger": $danger, "light": $light, "dark": $dark, + "light-dark": $light-dark, "white": $white, "black": $black, - "muted": $muted + "muted": $muted, + "purple": $purple ) !default; // scss-docs-end theme-colors-map diff --git a/src/views/room/widgets/infostand/InfoStandWidgetView.scss b/src/views/room/widgets/infostand/InfoStandWidgetView.scss index 2427adfa..cfa6c11a 100644 --- a/src/views/room/widgets/infostand/InfoStandWidgetView.scss +++ b/src/views/room/widgets/infostand/InfoStandWidgetView.scss @@ -29,7 +29,7 @@ display: flex; align-items: center; justify-content: center; - background-color: rgba($secondary, 1); + background-color: rgba($light-dark, 1); width: 100%; max-width: 68px; border-radius: 3px; @@ -77,4 +77,8 @@ .button-container { pointer-events: auto; } + + .pet-stats { + height: 21px; + } } diff --git a/src/views/room/widgets/infostand/InfoStandWidgetView.tsx b/src/views/room/widgets/infostand/InfoStandWidgetView.tsx index 9cfbfd2b..945c52ab 100644 --- a/src/views/room/widgets/infostand/InfoStandWidgetView.tsx +++ b/src/views/room/widgets/infostand/InfoStandWidgetView.tsx @@ -6,6 +6,7 @@ import { RoomWidgetRoomObjectMessage } from '../../messages'; import { InfoStandWidgetViewProps } from './InfoStandWidgetView.types'; import { InfoStandWidgetBotView } from './views/bot/InfoStandWidgetBotView'; import { InfoStandWidgetFurniView } from './views/furni/InfoStandWidgetFurniView'; +import { InfoStandWidgetPetView } from './views/pet/InfoStandWidgetPetView'; import { InfoStandWidgetRentableBotView } from './views/rentable-bot/InfoStandWidgetRentableBotView'; import { InfoStandWidgetUserView } from './views/user/InfoStandWidgetUserView'; @@ -111,6 +112,8 @@ export const InfoStandWidgetView: FC = props => return ; case RoomWidgetUpdateInfostandRentableBotEvent.RENTABLE_BOT: return ; + case RoomWidgetUpdateInfostandPetEvent.PET_INFO: + return } return null; diff --git a/src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.tsx b/src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.tsx new file mode 100644 index 00000000..a9a7f344 --- /dev/null +++ b/src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.tsx @@ -0,0 +1,58 @@ +import { FC } from 'react'; +import { LocalizeText } from '../../../../../../utils/LocalizeText'; +import { PetImageView } from '../../../../../pet-image/PetImageView'; +import { InfoStandWidgetPetViewProps } from './InfoStandWidgetPetView.types'; + +export const InfoStandWidgetPetView: FC = props => +{ + const { petData = null, close = null } = props; + + if(!petData) return null; + + return (<> +
+
+
+
{ petData.name }
+ +
+
+
+
+ +
+
+
{ LocalizeText('pet.breed.' + petData.petType + '.' + petData.petBreed) }
+
{ LocalizeText('pet.level', ['level', 'maxlevel'], [petData.level.toString(), petData.maximumLevel.toString()]) }
+
+
+
+
+
{ LocalizeText('infostand.pet.text.happiness') }
+
+
{ petData.happyness + '/' + petData.maximumHappyness }
+
+
+
+
+
{ LocalizeText('infostand.pet.text.experience') }
+
+
{ petData.experience + '/' + petData.levelExperienceGoal }
+
+
+
+
+
{ LocalizeText('infostand.pet.text.energy') }
+
+
{ petData.energy + '/' + petData.maximumEnergy }
+
+
+
+
+
{ LocalizeText('infostand.text.petrespect', ['count'], [petData.respect.toString()]) }
+
{ LocalizeText('pet.age', ['age'], [petData.age.toString()]) }
+
{ LocalizeText('infostand.text.petowner', ['name'], [petData.ownerName]) }
+
+
+ ); +} diff --git a/src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.types.ts b/src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.types.ts new file mode 100644 index 00000000..84c7f279 --- /dev/null +++ b/src/views/room/widgets/infostand/views/pet/InfoStandWidgetPetView.types.ts @@ -0,0 +1,7 @@ +import { RoomWidgetUpdateInfostandPetEvent } from '../../../../events'; + +export interface InfoStandWidgetPetViewProps +{ + petData: RoomWidgetUpdateInfostandPetEvent; + close: () => void; +} diff --git a/src/views/room/widgets/infostand/views/user/InfoStandWidgetUserView.tsx b/src/views/room/widgets/infostand/views/user/InfoStandWidgetUserView.tsx index 96190c3d..d93ba5ec 100644 --- a/src/views/room/widgets/infostand/views/user/InfoStandWidgetUserView.tsx +++ b/src/views/room/widgets/infostand/views/user/InfoStandWidgetUserView.tsx @@ -94,7 +94,7 @@ export const InfoStandWidgetUserView: FC = props =
-
+
{ userData.type !== RoomWidgetUpdateInfostandUserEvent.OWN_USER &&
{ motto }
} { userData.type === RoomWidgetUpdateInfostandUserEvent.OWN_USER &&