diff --git a/package-lock.json b/package-lock.json index e71d3df..85777d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,9 @@ "": { "name": "fuyo-clicker", "version": "0.0.0", + "dependencies": { + "react-fast-marquee": "^1.6.2" + }, "devDependencies": { "@dnd-kit/core": "^6.0.8", "@floating-ui/dom": "^1.5.3", @@ -8920,8 +8923,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -9741,7 +9743,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -11732,7 +11733,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -11777,7 +11777,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -11786,6 +11785,15 @@ "react": "^18.2.0" } }, + "node_modules/react-fast-marquee": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.6.2.tgz", + "integrity": "sha512-bXUuW1r+Yzd8ZjsPmMDy8WJMubHAZd/7n0W/IzUQHtd0iBfxWohP6hzCFnEHWMCOtC9wxSAq/BiEnig4kdI2Vw==", + "peerDependencies": { + "react": ">= 16.8.0 || 18.0.0", + "react-dom": ">= 16.8.0 || 18.0.0" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -12370,7 +12378,6 @@ "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0" } @@ -20386,8 +20393,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "4.1.0", @@ -20944,7 +20950,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -22443,7 +22448,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, "requires": { "loose-envify": "^1.1.0" } @@ -22473,12 +22477,17 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, "requires": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" } }, + "react-fast-marquee": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/react-fast-marquee/-/react-fast-marquee-1.6.2.tgz", + "integrity": "sha512-bXUuW1r+Yzd8ZjsPmMDy8WJMubHAZd/7n0W/IzUQHtd0iBfxWohP6hzCFnEHWMCOtC9wxSAq/BiEnig4kdI2Vw==", + "requires": {} + }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -22925,7 +22934,6 @@ "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, "requires": { "loose-envify": "^1.1.0" } diff --git a/package.json b/package.json index 0c134c7..e2a9c7e 100644 --- a/package.json +++ b/package.json @@ -41,5 +41,8 @@ "usehooks-ts": "^2.9.1", "vite": "^4.5.0", "zustand": "^4.4.4" + }, + "dependencies": { + "react-fast-marquee": "^1.6.2" } } diff --git a/src/components/news/data.ts b/src/components/news/data.ts new file mode 100644 index 0000000..b1bdedf --- /dev/null +++ b/src/components/news/data.ts @@ -0,0 +1,440 @@ +import { GameState } from "../../stores/game/index"; + +export interface NewsItem { + content: string; + author?: string; + condition?: (state: GameState) => boolean; +} + +const authors = { + fuyo: "Fuyo Cloverfield", + reporter: "Tummy Reporter", +}; + +export const newsreel: NewsItem[] = [ + { + content: "High fuyonadefall prediction tomorrow's evening.", + }, + { + content: + "Hey guys, did you know that in terms of male Lucky Charm and female leprechaun breeding, Fuyo is the most compatible leprechaun for humans? Not only are they in the short humanoid group, which is mostly comprised of mammals, Fuyos are an average of 135 cm tall and 30.2 kilograms, this means they're large enough to be able handle Lucky Charm stems, and with their impressive size for dumpy and access to flexibility, you can be rough with one. Due to their mostly Fuyonade based biology, there's no doubt in my mind that an aroused Fuyo would be incredibly wet, so wet that you could easily have sex with one for hours without getting sore. They can also learn the moves ASMR Voice, Bratty Look, Hics, Kisses, and Cuteness, along with not having panties to hide cunny, so it'd be incredibly easy for one to get you in the mood. With their abilities Choccy Milk and Water checks, they can easily recover from fatigue with enough fluids. No other leprechaun comes close to this level of compatibility. Also, fun fact, if you don't pull out, you can make your Fuyo turn into a mother. Fuyo is literally built for Lucky Charm stem. Ungodly big ass+flexibility means it can take stem all day, all shapes and sizes and still come for more.", + author: authors.fuyo, + }, + { + content: "Bazinga", + author: authors.fuyo, + }, + { + content: "Wanau", + author: "Some Boobro passing by.", + }, + { + content: "It's tummy time!", + author: authors.fuyo, + }, + { + content: "Let the coins fall baby", + author: authors.fuyo, + }, + { + content: "Yoyoyo it's Fu-yo!", + author: authors.fuyo, + }, + { + content: "Cringe", + author: "Cloverchad", + }, + { + content: "UOOOOOOH TUMMY 😭😭😭", + author: "Pent up Cloverchad", + }, + { + content: "There's no contact damage!", + author: "Someone who is very wrong and deserves to be corrected", + }, + { + content: "I wanna wake up and see myself be ravaged by tentacles", + author: "A certain leprechaun", + }, + { + content: "Why is this seat wet?", + author: "A concerned bus driver", + }, + { + content: "Breaking news: Local midgit gives birth to an army of weeds", + }, + { + content: + "Sudden increase in wallet disappearances, investigations are being held", + author: "Local police", + }, + { + content: + "News report: “Mr. Socks and Pablo Puebes in a secret relationship?” Potential Mr Hands sequel?", + }, + { + content: "There's no mistake only happy accident", + }, + { + content: "28 years later: Fuyo takes a bath again", + }, + { + content: + "Breaking News: Fuyo Cloverfield releases long awaited and overdue Pregananant ASMR, the fans are manic t- ... I have just been informed that it's just a prank bro, get rekt scrub", + }, + { + content: "I love frogs", + author: authors.fuyo, + }, + { + content: + "Will the time come where Fuyo reveals what was Dm'ed to her by Yuko. Fuyo leaves no comment", + }, + { + content: "Clover scientists conclude tummy is very soft 😭", + author: authors.reporter, + }, + { + content: "Pablo Puebes voted favorite pet by clovers", + }, + { + content: + "Coins falling from the sky at alarming rate. Cloverchads are crying.", + }, + { + content: + "Breaking news, anonymous killer claims life of another innocent sleep schedule, serial killer believed to be wearing a big green hat", + author: authors.reporter, + }, + { + content: + "It's so hard to control two pen**** at the same time! I'm struggling.", + author: authors.fuyo, + }, + { + content: "Frick", + author: authors.fuyo, + }, + { + content: "Clover stems are at an all time high, invest now!", + author: "Clover hustler", + }, + { + content: "hic", + }, + { + content: + "Mysterious disappearance of lucky charms linked to secret sacrifice to tummy god", + }, + { + content: "The time finally comes where Fuyo eats Bob Ross.", + }, + { + content: + "Hey guys, did you know that in terms of male clovers and female Leprechaun breeding, Fuyo is the most compatible Pokémon for clovers? Not only is she in the plant egg group, which is mostly comprised of plants like clovers, Fuyo is an average of 4'5\" tall , this means she's large enough to be able handle clover stems, and with her impressive Base Stats for HP and her being a giant M, you can be rough with her. Due to their mostly maigc based biology, there’s no doubt in my mind that an aroused Fuyo would could grant the wish for her to be incredibly wet, so wet that you could easily have *** with one for hours without getting sore. She can also learn the moves Attract, Baby-Doll Eyes, Captivate, Charm, and Tail Whip, along with not having fur to hide nipples, so it’d be incredibly easy for one to get you in the mood. With her coin eating ablilities, she can easily recover from fatigue with enough coins. No other idol comes close to this level of compatibility. Also, fun fact, if you whisper compliments in her ear, you can make her turn red. Fuyo is literally built for clover steam. Ungodly defense stat+high HP pool + her being an M means she can take steam all day, all shapes and sizes and still come for more.", + }, + { + content: "Take a look at my enormous STEM", + author: authors.fuyo, + }, + { + content: + "A local scientist declare that the mysterious mike honey exist", + }, + { + content: + "Global deflation crisis due to disappearing wallets all over the world!", + }, + { + content: + "Two lucky charms bonds over similar connection of being hated by a leprechaun", + }, + { + content: + "Police advises chains on wallets to prevent theft by sneaky leprechauns", + }, + { + content: "Mike Honey voted sexiest man alive", + }, + { + content: "How my life ended from the very beginning", + author: "Maya Normisbut", + }, + { + content: "Lucky charms wish granted, others look upon with horror!", + }, + { + content: "News flash: Fuyo stream actually started on time.", + }, + { + content: + "Breaking news: Maya Normisbut discovered along with the borealis", + }, + { + content: + "Deep oceans discovered as one of few save havens for wallets anymore, according to reports", + }, + { + content: + 'Local Reaper Leviathan suing Leprechaun over knife attack: "I was just peacefully swimming!"', + }, + { + content: "Diggy diggy hole", + author: "Miner Charms", + }, + { + content: + 'Breaking News: "Leprechaun and Ghost hunter discovered in cave." Reports say there was slugs involved', + }, + { + content: + "Lucky charms forging own coins to sacrifice, future of economy is uncertain", + }, + { + content: + "The miracle of Fuyo grants yet another wish for a faithful LuckyCharm, converting him into the new Mike Honey", + author: "Fuyo proverbs 10:25", + }, + { + content: + "Fuyocoin stock up by 69420% this quarter, 10/10 economists advise to invest in Fuyocoin", + }, + { + content: + "Fuyocoin surpassed all other currencies, both in value and in number, according to experts", + }, + { + content: + "Portugal is the first country among many to introduce the new Fuyocoin as legal tender", + }, + { + content: "Local leprechaun embarrassed when called cute", + }, + { + content: + "Breaking news; Fuyocoin stock price drops after her owner, Fuyo Cloverfield, allegedly forgot she had to stream", + author: authors.reporter, + }, + { + content: + "Local leprechaun forced to give kisses to Luckycharms after losing a bet. Luckycharms were happy that same evening", + }, + { + content: + "Teenagers see increased use of 😭 emote upon finding out their wallets are gone", + }, + { + content: + "Comically large spoon that requires two hands found clogging local man's plumbing, city workers dumbfounded as to its purpose and origin", + }, + { + content: "Bill Cipher senpai >///<", + }, + { + content: + "Pots of gold are appearing out of nowhere, locals left dumbfounded", + }, + { + content: + "New drink called Fuyonade proven to be a hit among teenagers, sales skyrocketed by 1300% after first few days", + }, + { + content: + 'Breaking News: “Fuyo Cloverfield finally calls local swamp frog, Pablo Puebes, "Her little pogchamp"', + }, + { + content: + "Tummy worshipping cult linked to disappearance of wallets, police investigates", + }, + { + content: "Mysterious tummy cult on the rise", + }, + { + content: + "The Tummy cult has been accepted as state religion in 12 different countries", + }, + { + content: + "The Tummy cult has become the religion with the most members world wide", + }, + { + content: "Praise the tummy!", + }, + { + content: "Nobody expected the Tummy-inquisition!", + }, + { + content: + 'This just in: Rates of taking baths are plummeting as populace watches a leprechaun make a fool of herself live. Scientists have dubbed this "Fuyo syndrome"', + }, + { + content: + "Sales of bath socks on the rise after promotion by local Leprechaun", + }, + { + content: + "Top story today: “Local leprechaun escapes prison with the help of a fellow prisoner: UGene. Was later released in court for finishing drawings. Security guard was still angry about the news and being seduced by a group of lucky charms. No comment was said.", + }, + { + content: + "Scientists found way to grow coins as crops in labs, further expansion expected", + }, + { + content: + "Global rates on insomnia hit record low as Fuyo Cloverfield ASMR sees widespread adoption", + }, + { + content: + 'Local Prison guard stood up by a bunch of clovers: "I was seriously looking forward to that date." said the crying guard', + }, + { + content: + "Fuyo Cloverfield's new hit cover, 'Enormous PP', hits number 1 in the list of most reproduced songs of 2024 in Spotychaun", + author: authors.reporter, + }, + { + content: + 'Man left confused after sentient clovers robbed him of his wallet. "they just took it and ran off!" Police has no leads so far.', + }, + { + content: "Imagine not having Fuyo's memba LMAO", + }, + { + content: "You can find true happiness in life for a mere €4.99 a month", + }, + { + content: + 'Bluyo still remains missing to this day. Lucky charms states "We miss her stories"', + }, + { + content: + "Breaking News: Fuyo Cloverfield issues worldwide ban on turning left in an attempt to erradicate Left Fuyo. Numerous cities now stuck in gridlock", + }, + { + content: + "Presidential debate between Left Fuyo and Right Fuyo at noon in Saturday, here at Shamrock 420 news", + }, + { + content: + "Left Fuyo's existence linked to a higher life expectancy and a lower 'Uoooh' rate between luckycharms, studies say", + }, + { + content: + "Sexy guard suspected to be linked to increase in prison escapes, so far no evidence found", + }, + { + content: + "UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU LUCKYCHAERMSSS", + author: authors.fuyo, + }, + { + content: + 'Local leprechaun changes username to "Alpha_Kenny_1." Cloverchads still snicker at the news', + }, + { + content: + "Bless the Fuyube and it's holy polygons. For it is an avatar of the Tummy", + }, + { + content: + "Random Fuyubes spotted in the sky, seem to suck coins out of people's wallets. Public warned of getting too close.", + }, + { + content: + 'Analysts shocked to find out that when Lucky charms are given the chance to wish for anything in the world, they ask for funny and/or mundane things. One Lucky Charm commented "Hehe" when asked why', + }, + { + content: + "Invizimals file a million dollar cease and desist lawsuit against Furry Cloverfield", + }, + { + content: + "Fuyo Cloverfield linked to furry fandom, popular artist among the community", + }, + { + content: + "Today we are here to mourn the loss of Cat, who was taken away from us too soon as he was made, by the hands of world renowned wallet stealer: Fuyo Cloverfield. She states that she couldnt stand the sight of her creation anymore.You will never be forgotten cat. R.I.P 2023-2023", + }, + { + content: + 'Fuyo Cloverfield wins "Cutest Thing" Award for the 8001th time in a row with a near unanimous vote.', + }, + { + content: + "Fuyo Cloverfield terminated after showing her enormous PP on stream. When asked for the reasoning behind such a bold move, she declared 'cuz it's funnyyyyyy", + }, + { + content: + "Authorities warn anyone who works as a maid to stay away from Roombas as an series of armed robberies continues.", + }, + { + content: + "Local ghost exorcised by Yuko Cloverfield after calling her the wrong name", + }, + { + content: + 'Lucky charms cry over new emotes . Luckycharms states: "They miss the spoon"', + }, + { + content: + "Luckycharms Leprechaun-cross-dressing on the rise. 'She hasn't streamed in two days, we are in our right to do so' Cloverchad declares", + }, + { + content: "Size doesn't matter. It does!", + }, + { + content: "She hates us uuuuuuu😭", + author: "a random clover", + }, + { + content: "Schedule yet to be posted by local leprechaun", + }, + { + content: "Praise the tummy 🙏", + author: "Local tummy cultist", + }, + { + content: + "After careful examination, Fuyo's 'W' shape has been found to be actually an \"M\" shape. It is believed that Fuyo, in a futile attempt to look less M, manipulated this luckycharm's wish", + }, + { + content: "Leprechaun fucks on a bag of McDonald's", + }, + { + content: "Brattiness rising, lucky charms demand correction 💢💢💢", + }, + { + content: '"I\'m not a furry!" claims confused furry.', + }, + { + content: + "Fuyo claims twitch chat is better, youtube chat expected to be in shambles but was caught reproducing", + }, + { + content: + "lumberjacks in the nation terrified as a small green menace keeps humping their legs during work", + }, + { + content: "Breaking news: Weekly schedule already released on Sunday!", + }, + { + content: "Local leprechaun declares Bowser daddy of the year", + }, + { + content: "BREAKING NEWS: suword", + }, + { + content: "study suggests relation between Fuyo and cute", + }, + { + content: "accento circumflexo, accento circumflexo", + }, + { + content: "I've coooooome to nail it down", + author: "Local Leprechaun", + }, + { + content: + "New study suggest that microplastic on water is causing clover stems to get shorter", + }, +]; diff --git a/src/components/news/index.module.css b/src/components/news/index.module.css index 88793fb..91c9725 100644 --- a/src/components/news/index.module.css +++ b/src/components/news/index.module.css @@ -1,5 +1,6 @@ .news { - background-color: #fff6; + background-color: rgb(255, 0, 0); + background-image: url("@/assets/images/shop/upgrades/upgrades-bg.png"); & > .controls { display: flex; diff --git a/src/components/news/index.tsx b/src/components/news/index.tsx index fbecc6a..3453fba 100644 --- a/src/components/news/index.tsx +++ b/src/components/news/index.tsx @@ -1,20 +1,39 @@ import cx from "classix"; import { useGameStore } from "@/stores/game"; import classes from "./index.module.css"; -import { HTMLProps } from "react"; +import { HTMLProps, useEffect, useState } from "react"; import { SoundType } from "@/utils/audio/sounds"; import { Button } from "../button"; import { AudioToggle } from "./audio-toggle"; - +import { newsreel } from "./data"; +import Marquee from "react-fast-marquee"; /** * Newsreel that displays news based on current or random events. */ export default function News(props: HTMLProps) { const reset = useGameStore(state => state.reset); + const [indexNews, setIndexNews] = useState(0); + const NEWS_INTERVAL_MS = 30000; + useEffect(() => { + const interval = setInterval(() => { + setIndexNews(indexNews => indexNews + 1); + }, NEWS_INTERVAL_MS); + return () => clearInterval(interval); + }, []); return (
-

News

+ +

{newsreel[indexNews].content}

+
+
+

+ -{" "} + {newsreel[indexNews].author + ? newsreel[indexNews].author + : "Unknown author"} +

+