re-up
26
.gitignore
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
.DS_Store
|
||||||
|
node_modules
|
||||||
|
/dist
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# Log files
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Editor directories and files
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
|
|
||||||
|
#Electron-builder output
|
||||||
|
/dist_electron
|
||||||
|
thegame.zip
|
||||||
|
thegame
|
||||||
5
babel.config.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
module.exports = {
|
||||||
|
presets: [
|
||||||
|
'@vue/cli-plugin-babel/preset'
|
||||||
|
]
|
||||||
|
}
|
||||||
12000
package-lock.json
generated
Normal file
49
package.json
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"name": "thegame-dist",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"homepage": "./",
|
||||||
|
"scripts": {
|
||||||
|
"serve": "vue-cli-service serve",
|
||||||
|
"build": "vue-cli-service build",
|
||||||
|
"lint": "vue-cli-service lint"
|
||||||
|
},
|
||||||
|
"main": "./src/main.js",
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": "^3.6.4",
|
||||||
|
"vue": "^2.6.11",
|
||||||
|
"vuetify": "^2.2.29"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vue/cli-plugin-babel": "~4.3.0",
|
||||||
|
"@vue/cli-plugin-eslint": "~4.3.0",
|
||||||
|
"@vue/cli-service": "~4.3.0",
|
||||||
|
"babel-eslint": "^10.1.0",
|
||||||
|
"eslint": "^6.7.2",
|
||||||
|
"eslint-plugin-vue": "^6.2.2",
|
||||||
|
"sass": "^1.26.5",
|
||||||
|
"sass-loader": "^8.0.0",
|
||||||
|
"vue-cli-plugin-vuetify": "~2.0.5",
|
||||||
|
"vue-template-compiler": "^2.6.11",
|
||||||
|
"vuetify-loader": "^1.4.4"
|
||||||
|
},
|
||||||
|
"eslintConfig": {
|
||||||
|
"root": true,
|
||||||
|
"env": {
|
||||||
|
"node": true
|
||||||
|
},
|
||||||
|
"extends": [
|
||||||
|
"plugin:vue/essential",
|
||||||
|
"eslint:recommended"
|
||||||
|
],
|
||||||
|
"parserOptions": {
|
||||||
|
"parser": "babel-eslint"
|
||||||
|
},
|
||||||
|
"rules": {}
|
||||||
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"> 1%",
|
||||||
|
"last 2 versions",
|
||||||
|
"not dead"
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
public/assets/aoooga.gif
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
public/assets/applause.gif
Normal file
|
After Width: | Height: | Size: 340 KiB |
BIN
public/assets/babylickingwindow.gif
Normal file
|
After Width: | Height: | Size: 1009 KiB |
BIN
public/assets/background0.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
public/assets/bambi-datass.gif
Normal file
|
After Width: | Height: | Size: 449 KiB |
BIN
public/assets/bonuspoints.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
public/assets/bouncingjello.gif
Normal file
|
After Width: | Height: | Size: 560 KiB |
BIN
public/assets/cat-bigeyes.gif
Normal file
|
After Width: | Height: | Size: 994 KiB |
BIN
public/assets/catplease.gif
Normal file
|
After Width: | Height: | Size: 528 KiB |
BIN
public/assets/dildogirl.gif
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
public/assets/frydancing.gif
Normal file
|
After Width: | Height: | Size: 668 KiB |
BIN
public/assets/giggity.gif
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
public/assets/girlsonly.gif
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
public/assets/girlspreading.gif
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
public/assets/heygirl.gif
Normal file
|
After Width: | Height: | Size: 476 KiB |
BIN
public/assets/homerdance.gif
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
public/assets/levelupfireworks.gif
Normal file
|
After Width: | Height: | Size: 225 KiB |
BIN
public/assets/maskheart.gif
Normal file
|
After Width: | Height: | Size: 503 KiB |
BIN
public/assets/pikechuwannaplay.gif
Normal file
|
After Width: | Height: | Size: 382 KiB |
BIN
public/assets/salutejerk.gif
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
public/assets/sparklelips.gif
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
public/assets/stitchcrying.gif
Normal file
|
After Width: | Height: | Size: 383 KiB |
BIN
public/assets/stitchsmashing.gif
Normal file
|
After Width: | Height: | Size: 638 KiB |
BIN
public/assets/tedhump.gif
Normal file
|
After Width: | Height: | Size: 347 KiB |
BIN
public/assets/webm0.webm
Normal file
BIN
public/assets/webm1.webm
Normal file
BIN
public/assets/webm10.webm
Normal file
BIN
public/assets/webm11.webm
Normal file
BIN
public/assets/webm12.webm
Normal file
BIN
public/assets/webm13.webm
Normal file
BIN
public/assets/webm14.webm
Normal file
BIN
public/assets/webm15.webm
Normal file
BIN
public/assets/webm16.webm
Normal file
BIN
public/assets/webm17.webm
Normal file
BIN
public/assets/webm18.webm
Normal file
BIN
public/assets/webm19.webm
Normal file
BIN
public/assets/webm2.webm
Normal file
BIN
public/assets/webm20.webm
Normal file
BIN
public/assets/webm21.webm
Normal file
BIN
public/assets/webm22.webm
Normal file
BIN
public/assets/webm23.webm
Normal file
BIN
public/assets/webm24.webm
Normal file
BIN
public/assets/webm25.webm
Normal file
BIN
public/assets/webm26.webm
Normal file
BIN
public/assets/webm27.webm
Normal file
BIN
public/assets/webm28.webm
Normal file
BIN
public/assets/webm29.webm
Normal file
BIN
public/assets/webm3.webm
Normal file
BIN
public/assets/webm30.webm
Normal file
BIN
public/assets/webm31.webm
Normal file
BIN
public/assets/webm32.webm
Normal file
BIN
public/assets/webm33.webm
Normal file
BIN
public/assets/webm34.webm
Normal file
BIN
public/assets/webm35.webm
Normal file
BIN
public/assets/webm36.webm
Normal file
BIN
public/assets/webm37.webm
Normal file
BIN
public/assets/webm38.webm
Normal file
BIN
public/assets/webm39.webm
Normal file
BIN
public/assets/webm4.webm
Normal file
BIN
public/assets/webm40.webm
Normal file
BIN
public/assets/webm41.webm
Normal file
BIN
public/assets/webm5.webm
Normal file
BIN
public/assets/webm6.webm
Normal file
BIN
public/assets/webm7.webm
Normal file
BIN
public/assets/webm8.webm
Normal file
BIN
public/assets/webm9.webm
Normal file
BIN
public/assets/woodysmile.gif
Normal file
|
After Width: | Height: | Size: 449 KiB |
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
19
public/index.html
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
|
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>
|
||||||
|
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||||
|
</noscript>
|
||||||
|
<div id="app"></div>
|
||||||
|
<!-- built files will be auto injected -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
469
src/App.vue
Normal file
@@ -0,0 +1,469 @@
|
|||||||
|
<template>
|
||||||
|
<v-app>
|
||||||
|
<v-content>
|
||||||
|
<v-container>
|
||||||
|
<div id="gamediv" style="width: 640px; height: 480px; display: block; position: relative">
|
||||||
|
<div style="width: 640px; height: 480px; position: absolute; overflow: hidden;">
|
||||||
|
<video loop autoplay muted :src="webmsource"></video>
|
||||||
|
</div>
|
||||||
|
<v-card
|
||||||
|
width="640"
|
||||||
|
height="480"
|
||||||
|
style="position: absolute; top:0; left:0;z-index: 5"
|
||||||
|
:img="slides[currentLevel].background"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style="position: absolute; top: 0; left: 0; z-index: 20; width: 640px; height: 480px; display: block;"
|
||||||
|
:style="{ backgroundImage: 'url(' + overlayimg + ')', backgroundSize: 'cover' }"
|
||||||
|
v-if="showoverlay"
|
||||||
|
></div>
|
||||||
|
<template v-if="currentLevel==0">
|
||||||
|
<v-card-title class="pa-6 font-weight-black levelscore">
|
||||||
|
High Score: {{ highscore }} by {{ highscorer }}
|
||||||
|
<br />
|
||||||
|
</v-card-title>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<v-card-title class="pa-6 font-weight-black levelscore">
|
||||||
|
{{ name }}
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
{{ score }}
|
||||||
|
</v-card-title>
|
||||||
|
</template>
|
||||||
|
<v-card-text v-if="currentLevel>0" style="height: 400px;">
|
||||||
|
<v-carousel
|
||||||
|
:show-arrows="false"
|
||||||
|
:hide-delimiters="true"
|
||||||
|
height="100%"
|
||||||
|
v-model="currenttask"
|
||||||
|
>
|
||||||
|
<v-carousel-item
|
||||||
|
v-for="(t,i) in slides[currentLevel].tasks"
|
||||||
|
:key="i"
|
||||||
|
@click="completetask(i)"
|
||||||
|
>
|
||||||
|
<v-container
|
||||||
|
style="display: flex; justify-content: center"
|
||||||
|
class="task font-weight-black"
|
||||||
|
>
|
||||||
|
<v-row align="center" style="height: 300px;">
|
||||||
|
<v-col :class="{ completed: t.completed }">
|
||||||
|
{{ t.task }}
|
||||||
|
<br />
|
||||||
|
<v-icon v-if="t.completed">mdi-check</v-icon>
|
||||||
|
{{ t.points }} Points
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</v-carousel-item>
|
||||||
|
</v-carousel>
|
||||||
|
</v-card-text>
|
||||||
|
<v-card-text v-else>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="12" class="task pa-6 font-weight-black">Type your name to start!</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<v-card>
|
||||||
|
<v-card-text>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-btn x-small dense @click="reset">Reset</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto" v-if="currentLevel>0">
|
||||||
|
<v-btn x-small @click="previouslevel">Previous Level</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-btn x-small dense @click="previoustask">Previous Task</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-btn x-small dense @click="scramble">Shuffle</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-btn x-small dense @click="nexttask">Next Task</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto" v-if="currentLevel<(slides.length -1)">
|
||||||
|
<v-btn x-small @click="nextlevel">Next Level</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-checkbox v-model="autonext" label="Next task after complete"></v-checkbox>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
</v-row><v-row>
|
||||||
|
<v-col cols="1">
|
||||||
|
<v-text-field dense v-model="name" label="Player Name" placeholder="Player Name"></v-text-field>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="1">
|
||||||
|
<v-text-field
|
||||||
|
style="text-shadow: 0"
|
||||||
|
dense
|
||||||
|
v-model="highscorer"
|
||||||
|
label="High Score name"
|
||||||
|
placeholder="High Score Name"
|
||||||
|
></v-text-field>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="1">
|
||||||
|
<v-text-field dense v-model="highscore" label="High Score" placeholder="High Score"></v-text-field>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="1">
|
||||||
|
<v-text-field
|
||||||
|
dense
|
||||||
|
v-model="bonuspoints"
|
||||||
|
label="Bonus Points"
|
||||||
|
placeholder="Bonus Points"
|
||||||
|
></v-text-field>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="1">
|
||||||
|
<v-btn @click="givebonuspoints">Give bonus</v-btn>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-select
|
||||||
|
v-model="levelselect"
|
||||||
|
:items="slides"
|
||||||
|
item-text="title"
|
||||||
|
item-value="index"
|
||||||
|
label="Select level"
|
||||||
|
></v-select>
|
||||||
|
<v-btn @click="leveljump">Jump To Level</v-btn>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-select
|
||||||
|
v-model="overlayselect"
|
||||||
|
:items="overlayimages"
|
||||||
|
item-text="name"
|
||||||
|
item-value="file"
|
||||||
|
label="Select cutscene"
|
||||||
|
></v-select>
|
||||||
|
<v-btn @click="startoverlay">Start Cutscene</v-btn>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</v-container>
|
||||||
|
</v-content>
|
||||||
|
</v-app>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import Vuetify from "vuetify";
|
||||||
|
export default {
|
||||||
|
vuetify: new Vuetify(),
|
||||||
|
beforeMount: function() {
|
||||||
|
for (var x = 0; x < this.slides.length; x++) {
|
||||||
|
this.slides[x].index = x;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted: function() {
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
reset: function() {
|
||||||
|
this.currentLevel = 0;
|
||||||
|
this.score = 0;
|
||||||
|
this.currenttask = 0;
|
||||||
|
this.name = "";
|
||||||
|
for (var x = 0; x < this.slides.length; x++) {
|
||||||
|
for (var y = 0; y < this.slides[x].tasks.length; y++) {
|
||||||
|
this.slides[x].tasks[y].completed = false;
|
||||||
|
this.slides[x].index = x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scramble: function() {
|
||||||
|
var tmp=[];
|
||||||
|
for (var x=this.currenttask+1;x<this.slides[this.currentLevel].tasks.length; x++) {
|
||||||
|
tmp.push(this.slides[this.currentLevel].tasks[x]);
|
||||||
|
}
|
||||||
|
tmp.sort(() => Math.random() - 0.5);
|
||||||
|
for (x=this.currenttask+1;x<this.slides[this.currentLevel].tasks.length; x++) {
|
||||||
|
this.slides[this.currentLevel].tasks[x]=tmp.pop();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nexttask: function() {
|
||||||
|
if (this.currenttask < this.slides[this.currentLevel].tasks.length - 1)
|
||||||
|
this.currenttask++;
|
||||||
|
},
|
||||||
|
previoustask: function() {
|
||||||
|
if (this.currenttask > 0) this.currenttask--;
|
||||||
|
},
|
||||||
|
|
||||||
|
nextlevel: function() {
|
||||||
|
if (this.currentLevel < +this.slides.length) {
|
||||||
|
this.ready = false;
|
||||||
|
this.currenttask = 0;
|
||||||
|
this.currentLevel++;
|
||||||
|
this.ready = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
previouslevel: function() {
|
||||||
|
if (this.currentLevel > 0) {
|
||||||
|
this.ready = false;
|
||||||
|
this.currentLevel--;
|
||||||
|
this.ready = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nextTask: function() {
|
||||||
|
this.currenttask++;
|
||||||
|
},
|
||||||
|
completetask: function(num) {
|
||||||
|
if (this.slides[this.currentLevel].tasks[num].completed == false) {
|
||||||
|
this.slides[this.currentLevel].tasks[num].completed = true;
|
||||||
|
this.score += this.slides[this.currentLevel].tasks[num].points;
|
||||||
|
if (
|
||||||
|
this.autonext &&
|
||||||
|
this.slides[this.currentLevel].tasks.length > this.currenttask + 1
|
||||||
|
) {
|
||||||
|
setTimeout(this.nextTask, 600);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(this.currenttask);
|
||||||
|
},
|
||||||
|
givebonuspoints: function() {
|
||||||
|
this.score += parseInt(this.bonuspoints);
|
||||||
|
this.overlayimg = "assets/bonuspoints.png";
|
||||||
|
this.showoverlay = true;
|
||||||
|
setTimeout(this.stopoverlay, 2000);
|
||||||
|
},
|
||||||
|
leveljump: function() {
|
||||||
|
this.ready = false;
|
||||||
|
this.currentLevel = this.levelselect;
|
||||||
|
this.currenttask = 0;
|
||||||
|
this.ready = true;
|
||||||
|
},
|
||||||
|
startoverlay: function() {
|
||||||
|
this.overlayimg = this.overlayselect;
|
||||||
|
this.showoverlay = true;
|
||||||
|
setTimeout(this.stopoverlay, 5000);
|
||||||
|
},
|
||||||
|
stopoverlay: function() {
|
||||||
|
this.showoverlay = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
webmsource: function() {
|
||||||
|
return "assets/webm" + this.currentLevel + ".webm";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
overlayimages: [
|
||||||
|
{ name: "Mask Heart", file: "assets/maskheart.gif" },
|
||||||
|
{ name: "Fry Dancing", file: "assets/frydancing.gif" },
|
||||||
|
{ name: "Cat Please", file: "assets/catplease.gif" },
|
||||||
|
{ name: "Pikachu - Wanna play?", file: "assets/pikechuwannaplay.gif" },
|
||||||
|
{ name: "Stitch crying", file: "assets/stitchcrying.gif" },
|
||||||
|
{ name: "Hey Girl", file: "assets/heygirl.gif" },
|
||||||
|
{ name: "Ted Humping", file: "assets/tedhump.gif" },
|
||||||
|
{ name: "Aooooga", file: "assets/aoooga.gif" },
|
||||||
|
{ name: "Stitch Smashing", file: "assets/stitchsmashing.gif" },
|
||||||
|
{ name: "Girls Only", file: "assets/girlsonly.gif" },
|
||||||
|
{ name: "Dat Ass", file: "assets/bambi-datass.gif" },
|
||||||
|
{ name: "Cat - Big Eyes", file: "assets/cat-bigeyes.gif" },
|
||||||
|
{ name: "Salute Jerking", file: "assets/salutejerk.gif" },
|
||||||
|
{ name: "Level Up - Fireworks", file: "assets/levelupfireworks.gif" },
|
||||||
|
{ name: "Applause", file: "assets/applause.gif" },
|
||||||
|
{ name: "Woody Smile", file: "assets/woodysmile.gif" },
|
||||||
|
{ name: "Giggity", file: "assets/giggity.gif" },
|
||||||
|
{ name: "Homer Skipping", file: "assets/homerdance.gif" },
|
||||||
|
{ name: "Girl Spreading", file: "assets/girlspreading.gif" },
|
||||||
|
{ name: "Bouncing Jello", file: "assets/bouncingjello.gif" },
|
||||||
|
{ name: "Girl With Dildo", file: "assets/dildogirl.gif" },
|
||||||
|
{ name: "Baby Licking Window", file: "assets/babylickingwindow.gif" },
|
||||||
|
{ name: "Sparkling Lips", file: "assets/sparklelips.gif" }
|
||||||
|
],
|
||||||
|
slides: [
|
||||||
|
{
|
||||||
|
title: "Start",
|
||||||
|
background: "assets/background0.png",
|
||||||
|
tasks: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Wave Age Location",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Wave!", points: 5 },
|
||||||
|
{ task: "Type your age", points: 5 },
|
||||||
|
{ task: "Type your location", points: 5 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Show Fingers",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Show 1 finger", points: 10 },
|
||||||
|
{ task: "Show 2 fingers", points: 10 },
|
||||||
|
{ task: "Show 3 fingers", points: 10 },
|
||||||
|
{ task: "Show 4 fingers", points: 10 },
|
||||||
|
{ task: "Show 5 fingers", points: 10 },
|
||||||
|
{ task: "Show 6 fingers", points: 10 },
|
||||||
|
{ task: "Show 7 fingers", points: 10 },
|
||||||
|
{ task: "Show 8 fingers", points: 10 },
|
||||||
|
{ task: "Show 9 fingers", points: 10 },
|
||||||
|
{ task: "Show 10 fingers", points: 10 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Goofy Fake Checks",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Touch your nose", points: 15 },
|
||||||
|
{ task: "Stick out tongue", points: 15 },
|
||||||
|
{ task: "Make a peace sign", points: 15 },
|
||||||
|
{ task: "Make a heart", points: 15 },
|
||||||
|
{ task: "Touch your elbow", points: 15 },
|
||||||
|
{ task: "Make peace signs with both hands", points: 15 },
|
||||||
|
{ task: "Wave both hands", points: 15 },
|
||||||
|
{ task: "Brush your hair", points: 15 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "No nudity yet",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Stand and spin", points: 20 },
|
||||||
|
{ task: "Show belly button", points: 30 },
|
||||||
|
{ task: "Show bra strap", points: 40 },
|
||||||
|
{ task: "Smack that ass", points: 40 },
|
||||||
|
{ task: "Show cleavage", points: 50 },
|
||||||
|
{ task: "Flash your panties", points: 60 },
|
||||||
|
{ task: "Show your bra", points: 60 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Flashes",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Flash your ass", points: 60 },
|
||||||
|
{ task: "Flash your boobs", points: 100 },
|
||||||
|
{ task: "Topless (bra on)", points: 100 },
|
||||||
|
{ task: "Do a hand bra", points: 100 },
|
||||||
|
{ task: "Flash your pussy", points: 150 },
|
||||||
|
{ task: "Bottomless (panties on)", points: 150 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Undressed",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Squeeze your boobs", points: 150 },
|
||||||
|
{ task: "Fully nude", points: 200 },
|
||||||
|
{ task: "Lick a nipple", points: 200 },
|
||||||
|
{ task: "Play with bare boobs", points: 200 },
|
||||||
|
{ task: "Show your pussy", points: 250 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Pussy play",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Put one finger inside", points: 250 },
|
||||||
|
{ task: "Put two fingers inside", points: 250 },
|
||||||
|
{ task: "Spread your pussy", points: 250 },
|
||||||
|
{ task: "Rub your pussy", points: 250 },
|
||||||
|
{ task: "Finger yourself", points: 250 },
|
||||||
|
{ task: "Finger doggy style", points: 350 },
|
||||||
|
{ task: "Lick your finger", points: 350 },
|
||||||
|
{
|
||||||
|
task: "Squeeze hairbrush between boobs",
|
||||||
|
points: 350,
|
||||||
|
completed: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Hairbrush",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{
|
||||||
|
task: "Rub pussy with brush",
|
||||||
|
points: 400,
|
||||||
|
completed: false
|
||||||
|
},
|
||||||
|
{ task: "Fuck yourself with brush", points: 400 },
|
||||||
|
{
|
||||||
|
task: "Use brush and hands to orgasm",
|
||||||
|
points: 500,
|
||||||
|
completed: false
|
||||||
|
},
|
||||||
|
{ task: "Suck your brush", points: 600 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Extra Pussy Stuff",
|
||||||
|
background: "assets/white.png-trans.png",
|
||||||
|
tasks: [
|
||||||
|
{ task: "Push panties into pussy", points: 700 },
|
||||||
|
{ task: "Put panties in mouth", points: 700 },
|
||||||
|
{ task: "Masturbate with something else", points: 700 },
|
||||||
|
|
||||||
|
{
|
||||||
|
task: "Squeeze boobs with mouth open",
|
||||||
|
points: 1000,
|
||||||
|
completed: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
overlayselect: "",
|
||||||
|
levelselect: "",
|
||||||
|
currentLevel: 0,
|
||||||
|
score: 0,
|
||||||
|
currenttask: 0,
|
||||||
|
name: "",
|
||||||
|
autonext: true,
|
||||||
|
ready: false,
|
||||||
|
highscore: 5250,
|
||||||
|
highscorer: "Ashley",
|
||||||
|
showoverlay: false,
|
||||||
|
overlayimg: "",
|
||||||
|
bonuspoints: 100
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-size: 38px;
|
||||||
|
text-align: center;
|
||||||
|
/* text-shadow: 2px 2px rgba(0, 0, 0, 1); */
|
||||||
|
}
|
||||||
|
#gamediv {
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
.task {
|
||||||
|
/* background-color: rgba(255,255,255,0.5); */
|
||||||
|
text-shadow: 2px 2px rgba(255, 255, 255, 1);
|
||||||
|
color: black;
|
||||||
|
font-size: 38px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
.completed {
|
||||||
|
color: lightgrey;
|
||||||
|
}
|
||||||
|
.levelscore {
|
||||||
|
font-size: 44px;
|
||||||
|
color: white;
|
||||||
|
text-shadow: 2px 2px black;
|
||||||
|
}
|
||||||
|
video {
|
||||||
|
left: 50%;
|
||||||
|
min-height: 100%;
|
||||||
|
min-width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
.overlay {
|
||||||
|
width: 640px;
|
||||||
|
height: 480px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.v-card__text, .v-card__title {
|
||||||
|
word-break: normal; /* maybe !important */
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
src/assets/logo.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
1
src/assets/logo.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87.5 100"><defs><style>.cls-1{fill:#1697f6;}.cls-2{fill:#7bc6ff;}.cls-3{fill:#1867c0;}.cls-4{fill:#aeddff;}</style></defs><title>Artboard 46</title><polyline class="cls-1" points="43.75 0 23.31 0 43.75 48.32"/><polygon class="cls-2" points="43.75 62.5 43.75 100 0 14.58 22.92 14.58 43.75 62.5"/><polyline class="cls-3" points="43.75 0 64.19 0 43.75 48.32"/><polygon class="cls-4" points="64.58 14.58 87.5 14.58 43.75 100 43.75 62.5 64.58 14.58"/></svg>
|
||||||
|
After Width: | Height: | Size: 539 B |
151
src/components/HelloWorld.vue
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<v-row class="text-center">
|
||||||
|
<v-col cols="12">
|
||||||
|
<v-img
|
||||||
|
:src="require('../assets/logo.svg')"
|
||||||
|
class="my-3"
|
||||||
|
contain
|
||||||
|
height="200"
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col class="mb-4">
|
||||||
|
<h1 class="display-2 font-weight-bold mb-3">
|
||||||
|
Welcome to Vuetify
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p class="subheading font-weight-regular">
|
||||||
|
For help and collaboration with other Vuetify developers,
|
||||||
|
<br>please join our online
|
||||||
|
<a
|
||||||
|
href="https://community.vuetifyjs.com"
|
||||||
|
target="_blank"
|
||||||
|
>Discord Community</a>
|
||||||
|
</p>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
class="mb-5"
|
||||||
|
cols="12"
|
||||||
|
>
|
||||||
|
<h2 class="headline font-weight-bold mb-3">
|
||||||
|
What's next?
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<v-row justify="center">
|
||||||
|
<a
|
||||||
|
v-for="(next, i) in whatsNext"
|
||||||
|
:key="i"
|
||||||
|
:href="next.href"
|
||||||
|
class="subheading mx-3"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{{ next.text }}
|
||||||
|
</a>
|
||||||
|
</v-row>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
class="mb-5"
|
||||||
|
cols="12"
|
||||||
|
>
|
||||||
|
<h2 class="headline font-weight-bold mb-3">
|
||||||
|
Important Links
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<v-row justify="center">
|
||||||
|
<a
|
||||||
|
v-for="(link, i) in importantLinks"
|
||||||
|
:key="i"
|
||||||
|
:href="link.href"
|
||||||
|
class="subheading mx-3"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{{ link.text }}
|
||||||
|
</a>
|
||||||
|
</v-row>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
class="mb-5"
|
||||||
|
cols="12"
|
||||||
|
>
|
||||||
|
<h2 class="headline font-weight-bold mb-3">
|
||||||
|
Ecosystem
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<v-row justify="center">
|
||||||
|
<a
|
||||||
|
v-for="(eco, i) in ecosystem"
|
||||||
|
:key="i"
|
||||||
|
:href="eco.href"
|
||||||
|
class="subheading mx-3"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
{{ eco.text }}
|
||||||
|
</a>
|
||||||
|
</v-row>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'HelloWorld',
|
||||||
|
|
||||||
|
data: () => ({
|
||||||
|
ecosystem: [
|
||||||
|
{
|
||||||
|
text: 'vuetify-loader',
|
||||||
|
href: 'https://github.com/vuetifyjs/vuetify-loader',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'github',
|
||||||
|
href: 'https://github.com/vuetifyjs/vuetify',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'awesome-vuetify',
|
||||||
|
href: 'https://github.com/vuetifyjs/awesome-vuetify',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
importantLinks: [
|
||||||
|
{
|
||||||
|
text: 'Documentation',
|
||||||
|
href: 'https://vuetifyjs.com',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Chat',
|
||||||
|
href: 'https://community.vuetifyjs.com',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Made with Vuetify',
|
||||||
|
href: 'https://madewithvuejs.com/vuetify',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Twitter',
|
||||||
|
href: 'https://twitter.com/vuetifyjs',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Articles',
|
||||||
|
href: 'https://medium.com/vuetify',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
whatsNext: [
|
||||||
|
{
|
||||||
|
text: 'Explore components',
|
||||||
|
href: 'https://vuetifyjs.com/components/api-explorer',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Select a layout',
|
||||||
|
href: 'https://vuetifyjs.com/layout/pre-defined',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Frequently Asked Questions',
|
||||||
|
href: 'https://vuetifyjs.com/getting-started/frequently-asked-questions',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
</script>
|
||||||
10
src/main.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
import App from './App.vue'
|
||||||
|
import vuetify from './plugins/vuetify';
|
||||||
|
|
||||||
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
|
new Vue({
|
||||||
|
vuetify,
|
||||||
|
render: h => h(App)
|
||||||
|
}).$mount('#app')
|
||||||
7
src/plugins/vuetify.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import Vue from 'vue';
|
||||||
|
import Vuetify from 'vuetify/lib';
|
||||||
|
|
||||||
|
Vue.use(Vuetify);
|
||||||
|
|
||||||
|
export default new Vuetify({
|
||||||
|
});
|
||||||
9
vue.config.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
module.exports = {
|
||||||
|
"transpileDependencies": [
|
||||||
|
"vuetify"
|
||||||
|
],
|
||||||
|
publicPath: "./",
|
||||||
|
pluginOptions: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||