mirror of
https://github.com/LucasVbr/EnglishRolePlayGame.git
synced 2026-05-13 17:11:50 +00:00
Edit
This commit is contained in:
Generated
+5
@@ -0,0 +1,5 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
Generated
+13
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="jquery-3.6.0" level="application" />
|
||||
</component>
|
||||
</module>
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="CssUnknownProperty" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="myCustomPropertiesEnabled" value="true" />
|
||||
<option name="myIgnoreVendorSpecificProperties" value="false" />
|
||||
<option name="myCustomPropertiesList">
|
||||
<value>
|
||||
<list size="1">
|
||||
<item index="0" class="java.lang.String" itemvalue="user-select" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptLibraryMappings">
|
||||
<file url="PROJECT" libraries="{jquery-3.6.0}" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/EnglishRolePlayGame.iml" filepath="$PROJECT_DIR$/.idea/EnglishRolePlayGame.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -15,6 +15,11 @@
|
||||
--dark-purple: #8e44ad;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow-y: hidden;
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.container {min-height: 100vh;}
|
||||
|
||||
#turn {
|
||||
@@ -24,34 +29,44 @@
|
||||
transition: 0.25s all ease-in-out;
|
||||
}
|
||||
|
||||
#turn.turn-hacker {
|
||||
|
||||
#particles-js {
|
||||
transition: 0.25s all ease-in-out;
|
||||
}
|
||||
|
||||
.start {
|
||||
background-color: var(--black);
|
||||
}
|
||||
|
||||
.turn-hacker {
|
||||
background-color: var(--red);
|
||||
}
|
||||
#turn.turn-cyber {
|
||||
.turn-cyber {
|
||||
background-color:var(--blue);
|
||||
}
|
||||
|
||||
.title {margin: 100px 0;}
|
||||
|
||||
#answers_canvas.turn_hacker .choose-btn {
|
||||
box-shadow: var(--red) 0px 0px 25px;
|
||||
box-shadow: var(--red) 0 0 25px;
|
||||
}
|
||||
|
||||
#answers_canvas.turn_hacker .choose-btn {
|
||||
box-shadow: var(--blue) 0px 0px 25px;
|
||||
box-shadow: var(--blue) 0 0 25px;
|
||||
}
|
||||
|
||||
.choose-btn {
|
||||
font-size: 2em;
|
||||
margin: 5px;
|
||||
padding: 50px;
|
||||
color: var(--white);
|
||||
border-radius: var(--border-radius);
|
||||
transition: all 0.1s ease-out;
|
||||
}
|
||||
|
||||
.choose-btn:hover {
|
||||
cursor: pointer;
|
||||
box-shadow: 0px 0px 5px;
|
||||
box-shadow: 0 0 5px;
|
||||
|
||||
}
|
||||
|
||||
+82
-58
@@ -1,73 +1,97 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<head>
|
||||
<title>Let's Hack the NASA</title>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<!-- Bootstrap CSS v5.0.2 -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"
|
||||
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container" class="container">
|
||||
<!-- Header -->
|
||||
<div style="visibility:hidden" id="turn_canvas" class="row text-center">
|
||||
<h3 id=turn class="turn-hacker unselectable">Hacker's turn</h3>
|
||||
</div>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Question -->
|
||||
<div style="padding-top: 30vh;" class="row text-center">
|
||||
<h1 id="title" class="unselectable">Input players pseudo</h1>
|
||||
<div style="z-index: -50; position: absolute; width: 100vw; height: 100vh;" class="start" id="particles-js"></div>
|
||||
|
||||
<div style="position: absolute">
|
||||
<p>
|
||||
Points:<br>
|
||||
Hacker:<span id="hacker-points">0</span><br>
|
||||
Cyber:<span id="cyber-points">0</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="container" class="container">
|
||||
<!-- Header -->
|
||||
<div style="visibility:hidden" id="turn_canvas" class="row text-center">
|
||||
<h3 id=turn class="unselectable">Hacker's turn</h3>
|
||||
</div>
|
||||
|
||||
<!-- Question -->
|
||||
<div style="padding-top: 30vh;" class="row text-center">
|
||||
<h1 id="title" class="unselectable">Input players pseudo</h1>
|
||||
</div>
|
||||
|
||||
<!-- Input pseudo -->
|
||||
<div id="pseudo_canvas" style="padding-bottom: 50px;" class="row text-center fixed-bottom">
|
||||
<div class="col-md-6">
|
||||
<input id="player_one_input" type="text" placeholder="Player 1"/>
|
||||
</div>
|
||||
|
||||
<!-- Input pseudo -->
|
||||
<div id="pseudo_canvas" style="padding-bottom: 50px;" class="row text-center fixed-bottom">
|
||||
<div class="col-md-6">
|
||||
<input id="player_one_input" type="text" placeholder="Player 1"/>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<input id="player_two_input" type="text" placeholder="Player 2"/>
|
||||
</div>
|
||||
<div style="margin-top: 100px;" class="col-md-12">
|
||||
<input onclick="startGame()" class="btn btn-primary" type="button" value="Let's start the game"/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Answers -->
|
||||
<div id="answers_canvas" style="margin-bottom: 5px;" class="row text-center fixed-bottom">
|
||||
<div class=" col-md-6">
|
||||
<div onclick="nextTurn(turn)" id="answer1" class="btn choose-btn unselectable"></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div onclick="nextTurn(turn)" id="answer2" class="btn choose-btn unselectable"></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<input id="player_two_input" type="text" placeholder="Player 2"/>
|
||||
</div>
|
||||
<div style="margin-top: 100px;" class="col-md-12">
|
||||
<input onclick="startGame()" class="btn btn-primary" type="button" value="Let's start the game"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
let turnCanvasElement = document.getElementById("turn_canvas");
|
||||
let turnTitle = document.getElementById("turn");
|
||||
|
||||
let pseudoCanvasElement = document.getElementById("pseudo_canvas");
|
||||
let playerOneInput = document.getElementById("player_one_input");
|
||||
let playerTwoInput = document.getElementById("player_two_input");
|
||||
|
||||
let titleElement = document.getElementById("title");
|
||||
|
||||
let answersCanvasElement = document.getElementById("answers_canvas");
|
||||
let answerOneInput = document.getElementById("answer1");
|
||||
let answerTwoInput = document.getElementById("answer2");
|
||||
|
||||
answersCanvasElement.style.visibility = "hidden";
|
||||
</script>
|
||||
<script src="data.js"></script>
|
||||
<script src="script.js"></script>
|
||||
<!-- Answers -->
|
||||
<div id="answers_canvas" style="margin-bottom: 5px;" class="row text-center fixed-bottom">
|
||||
<div class=" col-md-6">
|
||||
<div onclick="nextTurn(turn, 0)" id="answer1" class="btn choose-btn unselectable"></div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div onclick="nextTurn(turn, 1)" id="answer2" class="btn choose-btn unselectable"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Bootstrap JavaScript Libraries -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
<!-- Bootstrap JavaScript Libraries -->
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk="
|
||||
crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js"
|
||||
integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p"
|
||||
crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"
|
||||
integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF"
|
||||
crossorigin="anonymous"></script>
|
||||
<script src="./lib/particles.js-master/particles.js"></script>
|
||||
|
||||
<!-- My JS -->
|
||||
<script>
|
||||
let hackerPoints = document.getElementById("hacker-points");
|
||||
let cyberPoints = document.getElementById("cyber-points");
|
||||
|
||||
let backgroundElement = document.getElementById("particles-js");
|
||||
let turnCanvasElement = document.getElementById("turn_canvas");
|
||||
let turnTitle = document.getElementById("turn");
|
||||
|
||||
let pseudoCanvasElement = document.getElementById("pseudo_canvas");
|
||||
let playerOneInput = document.getElementById("player_one_input");
|
||||
let playerTwoInput = document.getElementById("player_two_input");
|
||||
|
||||
let titleElement = document.getElementById("title");
|
||||
|
||||
let answersCanvasElement = document.getElementById("answers_canvas");
|
||||
let answerOneInput = document.getElementById("answer1");
|
||||
let answerTwoInput = document.getElementById("answer2");
|
||||
|
||||
answersCanvasElement.style.visibility = "hidden";
|
||||
</script>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="js/data.js"></script>
|
||||
<script src="js/script.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
particlesJS('particles-js',
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 40,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.5,
|
||||
"random": false,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 5,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 40,
|
||||
"size_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 150,
|
||||
"color": "#ffffff",
|
||||
"opacity": 0.4,
|
||||
"width": 1
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 6,
|
||||
"direction": "none",
|
||||
"random": false,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"attract": {
|
||||
"enable": false,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": true,
|
||||
"mode": "grab"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": false,
|
||||
"mode": "push"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 200,
|
||||
"line_linked": {
|
||||
"opacity": 1
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 400,
|
||||
"size": 40,
|
||||
"duration": 2,
|
||||
"opacity": 8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 200
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 4
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true,
|
||||
"config_demo": {
|
||||
"hide_card": false,
|
||||
"background_color": "#b61924",
|
||||
"background_image": "",
|
||||
"background_position": "50% 50%",
|
||||
"background_repeat": "no-repeat",
|
||||
"background_size": "cover"
|
||||
}
|
||||
}
|
||||
);
|
||||
+102
-82
@@ -1,82 +1,102 @@
|
||||
let data = [
|
||||
{
|
||||
question:"You conceived a virus: do you sell it?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"You have to protect the NASA from cyber attacks, what do you do?",
|
||||
answers: ["I implement a password manager","I raise employee awareness"]
|
||||
},
|
||||
{
|
||||
question: "Do you send a phishing email to E-Corp (a NASA subsidiary) with your virus?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question: "Today, half of the company's computers have crashed: all the processors have imploded and caused a fire in the building, what do you do?",
|
||||
answers: ["I put water to put out the fire","I cut the company's power supply in an emergency"]
|
||||
},
|
||||
{
|
||||
question: "Do I get information about NASA employees?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"Do you update the company's VPS virus database?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"You develop a Trojan horse, do you want to publish it on the darkweb?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"Do you spend all day surfing hacking forums?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"Do you want to launch a DDoS attack on the delivery website of the local pizzeria?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"Although you have tried to protect the company, you are a victim of ransomware, what do you do?",
|
||||
answers: ["I disconnect all the power supplies and the company network","I wait for the director to pay the ransom"]
|
||||
},
|
||||
{
|
||||
question:"To protect your money do you convert it into Bitcoin?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"You have discovered a virus with interesting technology.",
|
||||
answers: ["You try to trace the hacker from it","You show it to the police and inform the director"]
|
||||
},
|
||||
{
|
||||
question:"You become more and more known in the hacking world and you decide to set up a team, do you attack the NSA?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"While surfing on darkweb forums, you heard about the creation of a suspicious team of hackers.",
|
||||
answers: ["You try to infiltrate them","You hire someone to track them down"]
|
||||
},
|
||||
{
|
||||
question:"A member of your team reported you to the authorities, what do you do?",
|
||||
answers: ["I move all my money to another bank and change my identity","I move to another country"]
|
||||
},
|
||||
{
|
||||
question:"You just got a promotion for your investment in the company. Do you invite your friends to celebrate this good news?",
|
||||
answers: ["Yes","No, I'm already invited to another party"]
|
||||
},
|
||||
{
|
||||
question:"Friends invite me to a party, do you go?",
|
||||
answers: ["Yes, no worries, my group will carry out an attack during the night","No, I could be attacked when I'm away"]
|
||||
},
|
||||
{
|
||||
question:"During your party you get a call from your boss who informs you that someone has entered the HoneyPot you set up.",
|
||||
answers: ["I continue the party because I am confident in my technology","I leave the party and drive back to work (drink driving again...)"]
|
||||
},
|
||||
{
|
||||
question:"You program a website that sells the NASA information, do you put up the information of your friend who works there?",
|
||||
answers: ["Yes","No"]
|
||||
},
|
||||
{
|
||||
question:"You hack the website and have access to the information of the hackers, do you want to reveal their identities to the public?",
|
||||
answers: ["Yes","No"]
|
||||
}
|
||||
];
|
||||
let data = [
|
||||
{
|
||||
question:"You conceived a virus: do you sell it?",
|
||||
answers: ["Yes","No"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"You have to protect the NASA from cyber attacks, what do you do?",
|
||||
answers: ["I implement a password manager","I raise employee awareness"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question: "Do you send a phishing email to E-Corp (a NASA subsidiary) with your virus?",
|
||||
answers: ["Yes","No"],
|
||||
points: [4, 1]
|
||||
},
|
||||
{
|
||||
question: "Today, half of the company's computers have crashed: all the processors have imploded and caused a fire in the building, what do you do?",
|
||||
answers: ["I put water to put out the fire","I cut the company's power supply in an emergency"],
|
||||
points: [1, 4]
|
||||
},
|
||||
{
|
||||
question: "Do I get information about NASA employees?",
|
||||
answers: ["Yes","No"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"Do you update the company's VPS virus database?",
|
||||
answers: ["Yes","No"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"You develop a Trojan horse, do you want to publish it on the darkweb?",
|
||||
answers: ["Yes","No"],
|
||||
points: [4, 1]
|
||||
},
|
||||
{
|
||||
question:"Do you spend all day surfing hacking forums?",
|
||||
answers: ["Yes","No"],
|
||||
points: [2, 3]
|
||||
},
|
||||
{
|
||||
question:"Do you want to launch a DDoS attack on the delivery website of the local pizzeria?",
|
||||
answers: ["Yes","No"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"Although you have tried to protect the company, you are a victim of ransomware, what do you do?",
|
||||
answers: ["I disconnect all the power supplies and the company network","I wait for the director to pay the ransom"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"To protect your money do you convert it into Bitcoin?",
|
||||
answers: ["Yes","No"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"You have discovered a virus with interesting technology.",
|
||||
answers: ["You try to trace the hacker from it","You show it to the police and inform the director"],
|
||||
points: [4, 1]
|
||||
},
|
||||
{
|
||||
question:"You become more and more known in the hacking world and you decide to set up a team, do you attack the NSA?",
|
||||
answers: ["Yes","No"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"While surfing on darkweb forums, you heard about the creation of a suspicious team of hackers.",
|
||||
answers: ["You try to infiltrate them","You hire someone to track them down"],
|
||||
points: [3, 3]
|
||||
},
|
||||
{
|
||||
question:"A member of your team reported you to the authorities, what do you do?",
|
||||
answers: ["I move all my money to another bank and change my identity","I move to another country"],
|
||||
points: [4, 1]
|
||||
},
|
||||
{
|
||||
question:"You just got a promotion for your investment in the company. Do you invite your friends to celebrate this good news?",
|
||||
answers: ["Yes","No, I'm already invited to another party"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"Friends invite me to a party, do you go?",
|
||||
answers: ["Yes, no worries, my group will carry out an attack during the night","No, I could be attacked when I'm away"],
|
||||
points: [3, 2]
|
||||
},
|
||||
{
|
||||
question:"During your party you get a call from your boss who informs you that someone has entered the HoneyPot you set up.",
|
||||
answers: ["I continue the party because I am confident in my technology","I leave the party and drive back to work (drink driving again...)"],
|
||||
points: [4, 1]
|
||||
},
|
||||
{
|
||||
question:"You program a website that sells the NASA information, do you put up the information of your friend who works there?",
|
||||
answers: ["Yes","No"],
|
||||
points: [4, 1]
|
||||
},
|
||||
{
|
||||
question:"You hack the website and have access to the information of the hackers, do you want to reveal their identities to the public?",
|
||||
answers: ["Yes","No"],
|
||||
points: [4, 1]
|
||||
}
|
||||
];
|
||||
+27
-33
@@ -14,35 +14,40 @@ function main() {
|
||||
|
||||
}
|
||||
|
||||
function nextTurn(id) {
|
||||
var titles = [
|
||||
"Hacker's turn (" + playerHacker + ")",
|
||||
"Cybersecurity engineer's turn (" + playerCyber + ")"
|
||||
]
|
||||
|
||||
if (id != 20) {
|
||||
function nextTurn(id, rep=0) {
|
||||
const titles = [
|
||||
`Hacker's turn (${playerHacker})`,
|
||||
`Cybersecurity engineer's turn (${playerCyber})`
|
||||
];
|
||||
|
||||
if (id !== 20) {
|
||||
turnTitle.innerText = titles[id % 2];
|
||||
|
||||
if (id % 2 == 0) {
|
||||
|
||||
hackerPoints.innerHTML = expHacker;
|
||||
cyberPoints.innerHTML = expCyber;
|
||||
|
||||
if (id % 2 === 0) {
|
||||
/* Hacker Turn */
|
||||
turnTitle.classList.remove("turn-cyber");
|
||||
turnTitle.classList.add("turn-hacker");
|
||||
backgroundElement.classList.remove("turn-cyber");
|
||||
backgroundElement.classList.add("turn-hacker");
|
||||
|
||||
answerOneInput.style.boxShadow = "var(--red) 0px 0px 25px";
|
||||
answerTwoInput.style.boxShadow = "var(--red) 0px 0px 25px";
|
||||
answerOneInput.style.boxShadow = "var(--black) 0px 0px 25px";
|
||||
answerTwoInput.style.boxShadow = "var(--black) 0px 0px 25px";
|
||||
|
||||
expHacker += data[id].points[rep];
|
||||
|
||||
expHacker += Math.floor(1+ Math.random() * 4);
|
||||
} else {
|
||||
/* Cyber Turn */
|
||||
turnTitle.classList.remove("turn-hacker");
|
||||
turnTitle.classList.add("turn-cyber");
|
||||
backgroundElement.classList.remove("turn-hacker");
|
||||
backgroundElement.classList.add("turn-cyber");
|
||||
|
||||
answerOneInput.style.boxShadow = "var(--blue) 0px 0px 25px";
|
||||
answerTwoInput.style.boxShadow = "var(--blue) 0px 0px 25px";
|
||||
answerOneInput.style.boxShadow = "var(--black) 0px 0px 25px";
|
||||
answerTwoInput.style.boxShadow = "var(--black) 0px 0px 25px";
|
||||
|
||||
expCyber += Math.floor(1 + Math.random() * 4);
|
||||
expCyber += data[id].points[rep];
|
||||
}
|
||||
|
||||
|
||||
|
||||
console.log(`expCyber:${expCyber}\nexpHacker:${expHacker}`);
|
||||
|
||||
titleElement.innerText = data[id].question;
|
||||
@@ -63,19 +68,8 @@ function nextTurn(id) {
|
||||
}
|
||||
|
||||
function startGame() {
|
||||
playerOneName = playerOneInput.value;
|
||||
playerTwoName = playerTwoInput.value;
|
||||
|
||||
if (playerOneName == "") {
|
||||
playerOneName = "Player 1";
|
||||
}
|
||||
|
||||
if (playerTwoName == "") {
|
||||
playerTwoName = "Player 2";
|
||||
}
|
||||
|
||||
console.log(playerOneName);
|
||||
console.log(playerTwoName);
|
||||
playerOneName = playerOneInput.value !== "" ? playerOneInput.value : "Player 1";
|
||||
playerTwoName = playerTwoInput.value !== "" ? playerTwoInput.value : "Player 2";
|
||||
|
||||
/* Cacher le menu de d'input des pseudos */
|
||||
pseudoCanvasElement.style.visibility = "hidden";
|
||||
@@ -0,0 +1 @@
|
||||
particles.min.js
|
||||
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015, Vincent Garreau
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,243 @@
|
||||
## particles.js
|
||||
|
||||
### A lightweight JavaScript library for creating particles.
|
||||
|
||||
------------------------------
|
||||
### `Demo / Generator`
|
||||
|
||||
<a href="http://vincentgarreau.com/particles.js/" target="_blank"><img src="http://vincentgarreau.com/particles.js/assets/img/github-screen.jpg" alt="particles.js generator" /></a>
|
||||
|
||||
Configure, export, and share your particles.js configuration on CodePen: <br />
|
||||
http://vincentgarreau.com/particles.js/
|
||||
|
||||
CodePen demo: <br />
|
||||
http://codepen.io/VincentGarreau/pen/pnlso
|
||||
|
||||
-------------------------------
|
||||
### `Usage`
|
||||
|
||||
Load particles.js and configure the particles:
|
||||
|
||||
**index.html**
|
||||
```html
|
||||
<div id="particles-js"></div>
|
||||
|
||||
<script src="particles.js"></script>
|
||||
```
|
||||
|
||||
**app.js**
|
||||
```javascript
|
||||
/* particlesJS.load(@dom-id, @path-json, @callback (optional)); */
|
||||
particlesJS.load('particles-js', 'assets/particles.json', function() {
|
||||
console.log('callback - particles.js config loaded');
|
||||
});
|
||||
```
|
||||
|
||||
**particles.json**
|
||||
```javascript
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 80,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.5,
|
||||
"random": false,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 10,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 80,
|
||||
"size_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 300,
|
||||
"color": "#ffffff",
|
||||
"opacity": 0.4,
|
||||
"width": 2
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 12,
|
||||
"direction": "none",
|
||||
"random": false,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"bounce": false,
|
||||
"attract": {
|
||||
"enable": false,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": false,
|
||||
"mode": "repulse"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": true,
|
||||
"mode": "push"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 800,
|
||||
"line_linked": {
|
||||
"opacity": 1
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 800,
|
||||
"size": 80,
|
||||
"duration": 2,
|
||||
"opacity": 0.8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 400,
|
||||
"duration": 0.4
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 4
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true
|
||||
}
|
||||
```
|
||||
|
||||
-------------------------------
|
||||
|
||||
### `Options`
|
||||
|
||||
key | option type / notes | example
|
||||
----|---------|------
|
||||
`particles.number.value` | number | `40`
|
||||
`particles.number.density.enable` | boolean | `true` / `false`
|
||||
`particles.number.density.value_area` | number | `800`
|
||||
`particles.color.value` | HEX (string) <br /> RGB (object) <br /> HSL (object) <br /> array selection (HEX) <br /> random (string) | `"#b61924"` <br /> `{r:182, g:25, b:36}` <br /> `{h:356, s:76, l:41}` <br /> `["#b61924", "#333333", "999999"]` <br /> `"random"`
|
||||
`particles.shape.type` | string <br /> array selection | `"circle"` <br /> `"edge"` <br /> `"triangle"` <br /> `"polygon"` <br /> `"star"` <br /> `"image"` <br /> `["circle", "triangle", "image"]`
|
||||
`particles.shape.stroke.width` | number | `2`
|
||||
`particles.shape.stroke.color` | HEX (string) | `"#222222"`
|
||||
`particles.shape.polygon.nb_slides` | number | `5`
|
||||
`particles.shape.image.src` | path link <br /> svg / png / gif / jpg | `"assets/img/yop.svg"` <br /> `"http://mywebsite.com/assets/img/yop.png"`
|
||||
`particles.shape.image.width` | number <br />(for aspect ratio) | `100`
|
||||
`particles.shape.image.height` | number <br />(for aspect ratio) | `100`
|
||||
`particles.opacity.value` | number (0 to 1) | `0.75`
|
||||
`particles.opacity.random` | boolean | `true` / `false`
|
||||
`particles.opacity.anim.enable` | boolean | `true` / `false`
|
||||
`particles.opacity.anim.speed` | number | `3`
|
||||
`particles.opacity.anim.opacity_min` | number (0 to 1) | `0.25`
|
||||
`particles.opacity.anim.sync` | boolean | `true` / `false`
|
||||
`particles.size.value` | number | `20`
|
||||
`particles.size.random` | boolean | `true` / `false`
|
||||
`particles.size.anim.enable` | boolean | `true` / `false`
|
||||
`particles.size.anim.speed` | number | `3`
|
||||
`particles.size.anim.size_min` | number | `0.25`
|
||||
`particles.size.anim.sync` | boolean | `true` / `false`
|
||||
`particles.line_linked.enable` | boolean | `true` / `false`
|
||||
`particles.line_linked.distance` | number | `150`
|
||||
`particles.line_linked.color` | HEX (string) | `#ffffff`
|
||||
`particles.line_linked.opacity` | number (0 to 1) | `0.5`
|
||||
`particles.line_linked.width` | number | `1.5`
|
||||
`particles.move.enable` | boolean | `true` / `false`
|
||||
`particles.move.speed` | number | `4`
|
||||
`particles.move.direction` | string | `"none"` <br /> `"top"` <br /> `"top-right"` <br /> `"right"` <br /> `"bottom-right"` <br /> `"bottom"` <br /> `"bottom-left"` <br /> `"left"` <br /> `"top-left"`
|
||||
`particles.move.random` | boolean | `true` / `false`
|
||||
`particles.move.straight` | boolean | `true` / `false`
|
||||
`particles.move.out_mode` | string <br /> (out of canvas) | `"out"` <br /> `"bounce"`
|
||||
`particles.move.bounce` | boolean <br /> (between particles) | `true` / `false`
|
||||
`particles.move.attract.enable` | boolean | `true` / `false`
|
||||
`particles.move.attract.rotateX` | number | `3000`
|
||||
`particles.move.attract.rotateY` | number | `1500`
|
||||
`interactivity.detect_on` | string | `"canvas", "window"`
|
||||
`interactivity.events.onhover.enable` | boolean | `true` / `false`
|
||||
`interactivity.events.onhover.mode` | string <br /> array selection | `"grab"` <br /> `"bubble"` <br /> `"repulse"` <br /> `["grab", "bubble"]`
|
||||
`interactivity.events.onclick.enable` | boolean | `true` / `false`
|
||||
`interactivity.events.onclick.mode` | string <br /> array selection | `"push"` <br /> `"remove"` <br /> `"bubble"` <br /> `"repulse"` <br /> `["push", "repulse"]`
|
||||
`interactivity.events.resize` | boolean | `true` / `false`
|
||||
`interactivity.events.modes.grab.distance` | number | `100`
|
||||
`interactivity.events.modes.grab.line_linked.opacity` | number (0 to 1) | `0.75`
|
||||
`interactivity.events.modes.bubble.distance` | number | `100`
|
||||
`interactivity.events.modes.bubble.size` | number | `40`
|
||||
`interactivity.events.modes.bubble.duration` | number <br /> (second) | `0.4`
|
||||
`interactivity.events.modes.repulse.distance` | number | `200`
|
||||
`interactivity.events.modes.repulse.duration` | number <br /> (second) | `1.2`
|
||||
`interactivity.events.modes.push.particles_nb` | number | `4`
|
||||
`interactivity.events.modes.push.particles_nb` | number | `4`
|
||||
`retina_detect` | boolean | `true` / `false`
|
||||
|
||||
-------------------------------
|
||||
|
||||
### `Packages install`
|
||||
|
||||
##### ***npm***
|
||||
https://www.npmjs.com/package/particles.js
|
||||
```
|
||||
npm install particles.js
|
||||
```
|
||||
|
||||
##### ***Bower***
|
||||
```
|
||||
bower install particles.js --save
|
||||
```
|
||||
|
||||
##### ***Rails Assets***
|
||||
```
|
||||
gem 'rails-assets-particles.js'
|
||||
```
|
||||
|
||||
##### ***Meteor***
|
||||
https://atmospherejs.com/newswim/particles
|
||||
```
|
||||
meteor add newswim:particles
|
||||
```
|
||||
|
||||
-------------------------------
|
||||
|
||||
### `Hosting / CDN`
|
||||
|
||||
***Please use this host or your own to load particles.js on your projects***
|
||||
|
||||
http://www.jsdelivr.com/#!particles.js
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "particles.js",
|
||||
"main": "particles.js",
|
||||
"homepage": "https://github.com/VincentGarreau/particles.js",
|
||||
"authors": [
|
||||
"Vincent Garreau <vin.garreau@gmail.com>"
|
||||
],
|
||||
"description": "A lightweight JavaScript library for creating particles.",
|
||||
"keywords": [
|
||||
"particle",
|
||||
"particles"
|
||||
],
|
||||
"license": "MIT",
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
/* =============================================================================
|
||||
HTML5 CSS Reset Minified - Eric Meyer
|
||||
========================================================================== */
|
||||
|
||||
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
|
||||
body{line-height:1}
|
||||
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
|
||||
nav ul{list-style:none}
|
||||
blockquote,q{quotes:none}
|
||||
blockquote:before,blockquote:after,q:before,q:after{content:none}
|
||||
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;text-decoration:none}
|
||||
mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}
|
||||
del{text-decoration:line-through}
|
||||
abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}
|
||||
table{border-collapse:collapse;border-spacing:0}
|
||||
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
|
||||
input,select{vertical-align:middle}
|
||||
li{list-style:none}
|
||||
|
||||
|
||||
/* =============================================================================
|
||||
My CSS
|
||||
========================================================================== */
|
||||
|
||||
/* ---- base ---- */
|
||||
|
||||
html,body{
|
||||
width:100%;
|
||||
height:100%;
|
||||
background:#111;
|
||||
}
|
||||
|
||||
html{
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
body{
|
||||
font:normal 75% Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
canvas{
|
||||
display:block;
|
||||
vertical-align:bottom;
|
||||
}
|
||||
|
||||
|
||||
/* ---- stats.js ---- */
|
||||
|
||||
.count-particles{
|
||||
background: #000022;
|
||||
position: absolute;
|
||||
top: 48px;
|
||||
left: 0;
|
||||
width: 80px;
|
||||
color: #13E8E9;
|
||||
font-size: .8em;
|
||||
text-align: left;
|
||||
text-indent: 4px;
|
||||
line-height: 14px;
|
||||
padding-bottom: 2px;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.js-count-particles{
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
#stats,
|
||||
.count-particles{
|
||||
-webkit-user-select: none;
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#stats{
|
||||
border-radius: 3px 3px 0 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.count-particles{
|
||||
border-radius: 0 0 3px 3px;
|
||||
}
|
||||
|
||||
|
||||
/* ---- particles.js container ---- */
|
||||
|
||||
#particles-js{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #b61924;
|
||||
background-image: url('');
|
||||
background-size: cover;
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>particles.js</title>
|
||||
<meta name="description" content="particles.js is a lightweight JavaScript library for creating particles.">
|
||||
<meta name="author" content="Vincent Garreau" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<link rel="stylesheet" media="screen" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- particles.js container -->
|
||||
<div id="particles-js"></div>
|
||||
|
||||
<!-- scripts -->
|
||||
<script src="../particles.js"></script>
|
||||
<script src="js/app.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,133 @@
|
||||
/* -----------------------------------------------
|
||||
/* How to use? : Check the GitHub README
|
||||
/* ----------------------------------------------- */
|
||||
|
||||
/* To load a config file (particles.json) you need to host this demo (MAMP/WAMP/local)... */
|
||||
/*
|
||||
particlesJS.load('particles-js', 'particles.json', function() {
|
||||
console.log('particles.js loaded - callback');
|
||||
});
|
||||
*/
|
||||
|
||||
/* Otherwise just put the config content (json): */
|
||||
|
||||
particlesJS('particles-js',
|
||||
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 80,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.5,
|
||||
"random": false,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 5,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 40,
|
||||
"size_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 150,
|
||||
"color": "#ffffff",
|
||||
"opacity": 0.4,
|
||||
"width": 1
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 6,
|
||||
"direction": "none",
|
||||
"random": false,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"attract": {
|
||||
"enable": false,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": true,
|
||||
"mode": "grab"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": false,
|
||||
"mode": "push"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 200,
|
||||
"line_linked": {
|
||||
"opacity": 1
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 400,
|
||||
"size": 40,
|
||||
"duration": 2,
|
||||
"opacity": 8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 200
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 4
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true,
|
||||
"config_demo": {
|
||||
"hide_card": false,
|
||||
"background_color": "#b61924",
|
||||
"background_image": "",
|
||||
"background_position": "50% 50%",
|
||||
"background_repeat": "no-repeat",
|
||||
"background_size": "cover"
|
||||
}
|
||||
}
|
||||
|
||||
);
|
||||
@@ -0,0 +1,149 @@
|
||||
/**
|
||||
* @author mrdoob / http://mrdoob.com/
|
||||
*/
|
||||
|
||||
var Stats = function () {
|
||||
|
||||
var startTime = Date.now(), prevTime = startTime;
|
||||
var ms = 0, msMin = Infinity, msMax = 0;
|
||||
var fps = 0, fpsMin = Infinity, fpsMax = 0;
|
||||
var frames = 0, mode = 0;
|
||||
|
||||
var container = document.createElement( 'div' );
|
||||
container.id = 'stats';
|
||||
container.addEventListener( 'mousedown', function ( event ) { event.preventDefault(); setMode( ++ mode % 2 ) }, false );
|
||||
container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer';
|
||||
|
||||
var fpsDiv = document.createElement( 'div' );
|
||||
fpsDiv.id = 'fps';
|
||||
fpsDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#002';
|
||||
container.appendChild( fpsDiv );
|
||||
|
||||
var fpsText = document.createElement( 'div' );
|
||||
fpsText.id = 'fpsText';
|
||||
fpsText.style.cssText = 'color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
|
||||
fpsText.innerHTML = 'FPS';
|
||||
fpsDiv.appendChild( fpsText );
|
||||
|
||||
var fpsGraph = document.createElement( 'div' );
|
||||
fpsGraph.id = 'fpsGraph';
|
||||
fpsGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0ff';
|
||||
fpsDiv.appendChild( fpsGraph );
|
||||
|
||||
while ( fpsGraph.children.length < 74 ) {
|
||||
|
||||
var bar = document.createElement( 'span' );
|
||||
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#113';
|
||||
fpsGraph.appendChild( bar );
|
||||
|
||||
}
|
||||
|
||||
var msDiv = document.createElement( 'div' );
|
||||
msDiv.id = 'ms';
|
||||
msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;display:none';
|
||||
container.appendChild( msDiv );
|
||||
|
||||
var msText = document.createElement( 'div' );
|
||||
msText.id = 'msText';
|
||||
msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
|
||||
msText.innerHTML = 'MS';
|
||||
msDiv.appendChild( msText );
|
||||
|
||||
var msGraph = document.createElement( 'div' );
|
||||
msGraph.id = 'msGraph';
|
||||
msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0';
|
||||
msDiv.appendChild( msGraph );
|
||||
|
||||
while ( msGraph.children.length < 74 ) {
|
||||
|
||||
var bar = document.createElement( 'span' );
|
||||
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131';
|
||||
msGraph.appendChild( bar );
|
||||
|
||||
}
|
||||
|
||||
var setMode = function ( value ) {
|
||||
|
||||
mode = value;
|
||||
|
||||
switch ( mode ) {
|
||||
|
||||
case 0:
|
||||
fpsDiv.style.display = 'block';
|
||||
msDiv.style.display = 'none';
|
||||
break;
|
||||
case 1:
|
||||
fpsDiv.style.display = 'none';
|
||||
msDiv.style.display = 'block';
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
var updateGraph = function ( dom, value ) {
|
||||
|
||||
var child = dom.appendChild( dom.firstChild );
|
||||
child.style.height = value + 'px';
|
||||
|
||||
};
|
||||
|
||||
return {
|
||||
|
||||
REVISION: 12,
|
||||
|
||||
domElement: container,
|
||||
|
||||
setMode: setMode,
|
||||
|
||||
begin: function () {
|
||||
|
||||
startTime = Date.now();
|
||||
|
||||
},
|
||||
|
||||
end: function () {
|
||||
|
||||
var time = Date.now();
|
||||
|
||||
ms = time - startTime;
|
||||
msMin = Math.min( msMin, ms );
|
||||
msMax = Math.max( msMax, ms );
|
||||
|
||||
msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')';
|
||||
updateGraph( msGraph, Math.min( 30, 30 - ( ms / 200 ) * 30 ) );
|
||||
|
||||
frames ++;
|
||||
|
||||
if ( time > prevTime + 1000 ) {
|
||||
|
||||
fps = Math.round( ( frames * 1000 ) / ( time - prevTime ) );
|
||||
fpsMin = Math.min( fpsMin, fps );
|
||||
fpsMax = Math.max( fpsMax, fps );
|
||||
|
||||
fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')';
|
||||
updateGraph( fpsGraph, Math.min( 30, 30 - ( fps / 100 ) * 30 ) );
|
||||
|
||||
prevTime = time;
|
||||
frames = 0;
|
||||
|
||||
}
|
||||
|
||||
return time;
|
||||
|
||||
},
|
||||
|
||||
update: function () {
|
||||
|
||||
startTime = this.end();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
if ( typeof module === 'object' ) {
|
||||
|
||||
module.exports = Stats;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 80,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.5,
|
||||
"random": false,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 5,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 40,
|
||||
"size_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 150,
|
||||
"color": "#ffffff",
|
||||
"opacity": 0.4,
|
||||
"width": 1
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 6,
|
||||
"direction": "none",
|
||||
"random": false,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"attract": {
|
||||
"enable": false,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": true,
|
||||
"mode": "repulse"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": false,
|
||||
"mode": "push"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 400,
|
||||
"line_linked": {
|
||||
"opacity": 1
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 400,
|
||||
"size": 40,
|
||||
"duration": 2,
|
||||
"opacity": 8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 200
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 4
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true,
|
||||
"config_demo": {
|
||||
"hide_card": false,
|
||||
"background_color": "#b61924",
|
||||
"background_image": "",
|
||||
"background_position": "50% 50%",
|
||||
"background_repeat": "no-repeat",
|
||||
"background_size": "cover"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "particles.js",
|
||||
"version": "2.0.0",
|
||||
"description": "A lightweight JavaScript library for creating particles",
|
||||
"homepage": "http://vincentgarreau.com/particles.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/VincentGarreau/particles.js.git"
|
||||
},
|
||||
"keywords": [
|
||||
"particles",
|
||||
"particle",
|
||||
"canvas"
|
||||
],
|
||||
"author": "Vincent Garreau",
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
"particles.js",
|
||||
"particles.min.js"
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/VincentGarreau/particles.js/issues"
|
||||
},
|
||||
"homepage": "https://github.com/VincentGarreau/particles.js"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
+110
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"particles": {
|
||||
"number": {
|
||||
"value": 80,
|
||||
"density": {
|
||||
"enable": true,
|
||||
"value_area": 800
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"value": "#ffffff"
|
||||
},
|
||||
"shape": {
|
||||
"type": "circle",
|
||||
"stroke": {
|
||||
"width": 0,
|
||||
"color": "#000000"
|
||||
},
|
||||
"polygon": {
|
||||
"nb_sides": 5
|
||||
},
|
||||
"image": {
|
||||
"src": "img/github.svg",
|
||||
"width": 100,
|
||||
"height": 100
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"value": 0.5,
|
||||
"random": false,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 1,
|
||||
"opacity_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"value": 10,
|
||||
"random": true,
|
||||
"anim": {
|
||||
"enable": false,
|
||||
"speed": 80,
|
||||
"size_min": 0.1,
|
||||
"sync": false
|
||||
}
|
||||
},
|
||||
"line_linked": {
|
||||
"enable": true,
|
||||
"distance": 300,
|
||||
"color": "#ffffff",
|
||||
"opacity": 0.4,
|
||||
"width": 2
|
||||
},
|
||||
"move": {
|
||||
"enable": true,
|
||||
"speed": 12,
|
||||
"direction": "none",
|
||||
"random": false,
|
||||
"straight": false,
|
||||
"out_mode": "out",
|
||||
"bounce": false,
|
||||
"attract": {
|
||||
"enable": false,
|
||||
"rotateX": 600,
|
||||
"rotateY": 1200
|
||||
}
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"detect_on": "canvas",
|
||||
"events": {
|
||||
"onhover": {
|
||||
"enable": false,
|
||||
"mode": "repulse"
|
||||
},
|
||||
"onclick": {
|
||||
"enable": true,
|
||||
"mode": "push"
|
||||
},
|
||||
"resize": true
|
||||
},
|
||||
"modes": {
|
||||
"grab": {
|
||||
"distance": 800,
|
||||
"line_linked": {
|
||||
"opacity": 1
|
||||
}
|
||||
},
|
||||
"bubble": {
|
||||
"distance": 800,
|
||||
"size": 80,
|
||||
"duration": 2,
|
||||
"opacity": 0.8,
|
||||
"speed": 3
|
||||
},
|
||||
"repulse": {
|
||||
"distance": 400,
|
||||
"duration": 0.4
|
||||
},
|
||||
"push": {
|
||||
"particles_nb": 4
|
||||
},
|
||||
"remove": {
|
||||
"particles_nb": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"retina_detect": true
|
||||
}
|
||||
Reference in New Issue
Block a user