diff --git a/src/assets/questline-data.json b/src/assets/questline-data.json index 1773bd87a..06c73485b 100644 --- a/src/assets/questline-data.json +++ b/src/assets/questline-data.json @@ -13,8 +13,7 @@ { "id": "4_2", "name": "Increase your Gitcoin Passport score", - "description": "The more you increase your Gitcoin Passport score in a week, the more of the weekly XP drop you will get.", - "isNew": true + "description": "The more you increase your Gitcoin Passport score in a week, the more of the weekly XP drop you will get." } ] }, @@ -31,14 +30,12 @@ { "id": "7_2", "name": "Mint W3ST", - "description": "The more W3ST you mint, the more of the weekly XP drop you will get.", - "isNew": true + "description": "The more W3ST you mint, the more of the weekly XP drop you will get." }, { "id": "7_3", "name": "Collect post essence", - "description": "The more post essence you collect, the more of the weekly XP drop you will get.", - "isNew": true + "description": "The more post essence you collect, the more of the weekly XP drop you will get." } ] }, @@ -51,6 +48,13 @@ "id": "8_1", "name": "Interact with unique contracts on Base", "description": "The more interactions you execute with different unique contracts on Base compared to other members of this realm in a week, the more of the weekly XP drop you will get." + }, + { + "id": "8_2", + "name": "Vampire Attack: Bridge funds from Arbitrum", + "description": "Bridge ETH or USDC from Arbitrum to Base using Hop Exchange", + "isNew": true, + "isAttack": true } ] }, @@ -67,8 +71,7 @@ { "id": "9_2", "name": "Earn fUSDC rewards using Fluidity", - "description": "The more fUSDC rewards you earn using Fluidity in a week, the more of the weekly XP drop you will get.", - "isNew": true + "description": "The more fUSDC rewards you earn using Fluidity in a week, the more of the weekly XP drop you will get." } ] }, @@ -85,8 +88,7 @@ { "id": "19_2", "name": "Claim NFTs during the week using the Galxe space station", - "description": "The more NFTs you claim via a Galxe [`SpaceStation` contract](https://docs.galxe.com/developer/smart-contract/contracts/spacestation/), the more of the weekly XP drop you will get.", - "isNew": true + "description": "The more NFTs you claim via a Galxe [`SpaceStation` contract](https://docs.galxe.com/developer/smart-contract/contracts/spacestation/), the more of the weekly XP drop you will get." } ] }, @@ -103,8 +105,7 @@ { "id": "22_2", "name": "Bridge tokens using FraxFerry", - "description": "The more unique tokens you bridge over FraxFerry, the more of the weekly XP drop you will get.", - "isNew": true + "description": "The more unique tokens you bridge over FraxFerry, the more of the weekly XP drop you will get." } ] } diff --git a/src/shared/assets/attack-line.svg b/src/shared/assets/attack-line.svg new file mode 100644 index 000000000..8ee2c6289 --- /dev/null +++ b/src/shared/assets/attack-line.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/shared/assets/attack.svg b/src/shared/assets/attack.svg new file mode 100644 index 000000000..7bb8a7d5d --- /dev/null +++ b/src/shared/assets/attack.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/shared/constants/realms.ts b/src/shared/constants/realms.ts index 97c218f5c..780703d5d 100644 --- a/src/shared/constants/realms.ts +++ b/src/shared/constants/realms.ts @@ -75,12 +75,13 @@ export const REALMS_WITH_CONTRACT_ADDRESS: { export const BASE_REALMS_MAP_DATA: RealmMapData[] = [ realm4, realm7, + realm8, realm9, realm19, realm22, ] -export const NEW_REALMS_MAP_DATA: RealmMapData[] = [realm8] +export const NEW_REALMS_MAP_DATA: RealmMapData[] = [] export const REALMS_MAP_DATA = [ ...BASE_REALMS_MAP_DATA, diff --git a/src/shared/types/quest.ts b/src/shared/types/quest.ts index 24bd3da39..9ca97ee12 100644 --- a/src/shared/types/quest.ts +++ b/src/shared/types/quest.ts @@ -3,4 +3,5 @@ export type Quest = { name: string description: string isNew?: boolean + isAttack?: boolean } diff --git a/src/shared/utils/shift.ts b/src/shared/utils/shift.ts index cc7108634..b07198cab 100644 --- a/src/shared/utils/shift.ts +++ b/src/shared/utils/shift.ts @@ -35,7 +35,7 @@ export function getNewQuestLabelShift(realmId: string) { case "7": return { x: 900, y: 300 } case "8": - return { x: 700, y: 150 } + return { x: 850, y: 300 } case "9": return { x: 850, y: 350 } case "19": diff --git a/src/ui/Island/InteractiveIsland.tsx b/src/ui/Island/InteractiveIsland.tsx index d2a879584..cfb65e476 100644 --- a/src/ui/Island/InteractiveIsland.tsx +++ b/src/ui/Island/InteractiveIsland.tsx @@ -27,6 +27,7 @@ import Background from "./Background" import Realms from "./IslandRealms" import RealmPin from "./IslandRealmsDetails/RealmPin" import Clouds from "./Clouds" +import AttackLine from "./IslandRealmsDetails/AttackLine" function InteractiveIsland() { const settingsRef = useRef({ minScale: 0 }) @@ -167,6 +168,7 @@ function InteractiveIsland() { + diff --git a/src/ui/Island/IslandRealmsDetails/AttackLine.tsx b/src/ui/Island/IslandRealmsDetails/AttackLine.tsx new file mode 100644 index 000000000..850cdc303 --- /dev/null +++ b/src/ui/Island/IslandRealmsDetails/AttackLine.tsx @@ -0,0 +1,20 @@ +import React from "react" +import { Image } from "react-konva" +import attackLineImg from "shared/assets/attack-line.svg" +import { FIGMA_FACTOR } from "shared/constants" +import useImage from "use-image" + +export default function VampireQuest() { + const [attackLine] = useImage(attackLineImg) + + return ( + + ) +} diff --git a/src/ui/Island/RealmDetails/Quests/QuestItem.tsx b/src/ui/Island/RealmDetails/Quests/QuestItem.tsx index 4a6e84f71..47424f9ef 100644 --- a/src/ui/Island/RealmDetails/Quests/QuestItem.tsx +++ b/src/ui/Island/RealmDetails/Quests/QuestItem.tsx @@ -3,11 +3,18 @@ import Markdown from "react-markdown" import Accordion from "shared/components/Accordion" import starIcon from "shared/assets/icons/star.svg" import newQuestLabel from "shared/assets/new-quest-label.svg" +import attackLabel from "shared/assets/attack.svg" import Icon from "shared/components/Icon" import { Quest } from "shared/types" import { useDisplayedQuests } from "shared/hooks/quest" -export default function QuestItem({ id, name, description, isNew }: Quest) { +export default function QuestItem({ + id, + name, + description, + isNew, + isAttack, +}: Quest) { const { isQuestDisplayed, updateDisplayedQuest } = useDisplayedQuests() const handleQuestClick = useCallback(() => { @@ -17,7 +24,7 @@ export default function QuestItem({ id, name, description, isNew }: Quest) { return (
- {isNew && !isQuestDisplayed(id) && ( + {isNew && !isAttack && !isQuestDisplayed(id) && ( )} + {isAttack && ( + + )}
- {quests.map(({ id, name, description, isNew }) => ( + {quests.map(({ id, name, description, isNew, isAttack }) => ( ))}