Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • fsini-informatik/fsfahrttool
  • kleemeis/fsfahrttool
2 results
Show changes
Showing
with 477 additions and 0 deletions
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
Sound attributions
===================
# fart.ogg
http://freesound.org/people/zagi2/sounds/184321/
CC by zagi2 (April 8th, 2013)
# elevator.ogg
"Local Forecast - Elevator" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0
http://creativecommons.org/licenses/by/3.0/
Direct Link: http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1300012.
# lachen.ogg
https://sicherheit.reichsinter.net/#lac
licensed under GPL https://github.com/23x/stoll-klangbrett/blob/master/LICENSE
\ No newline at end of file
File added
File added
File added
File added
File added
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link href="ui.css" rel="stylesheet"/>
<script src="../../js/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="../../js/jquery-ui.min.js" type="text/javascript"></script>
<script src="jslib/d3.min.js" type="text/javascript"></script>
<script src="jslib/priority-queue.min.js" type="text/javascript"></script>
<script src="jslib/checkLineIntersection.js" type="text/javascript"></script>
<script src="../../js/api.js" type="text/javascript"></script>
<script src="js/events.js" type="text/javascript"></script>
<script src="js/achievements.js" type="text/javascript"></script>
<script src="js/svgUtils.js" type="text/javascript"></script>
<script src="js/pathFinder.js" type="text/javascript"></script>
<script src="js/vector.js" type="text/javascript"></script>
<script src="js/character.js" type="text/javascript"></script>
<script src="js/camera.js" type="text/javascript"></script>
<script src="js/environment.js" type="text/javascript"></script>
<script src="js/story.js" type="text/javascript"></script>
<script src="js/game.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var env_possible_dates = ["22.10.2015", "23.10.2015", "24.10.2015"];
</script>
<div id="game-root-container">
<div id="game-sidebar" class="bordered-box">
<div class="sidebar-section">
<div class="sidebar-section-head">Game log</div>
<div class="sidebar-log">
<div>
<ul id="game-log">
<li>Gehe in das Schloss!</li>
<li>Bestes Anmeldesystem aller Zeiten gestartet!</li>
</ul>
</div>
</div>
</div>
<div class="sidebar-section">
<div class="sidebar-section-head">Achievements</div>
<div class="status-bar" id="achievement-progress" style="margin-bottom: 0.5em"><span style="width:25%"
class="status-bar-bar"></span>
<div class="status-bar-text">5/43</div>
</div>
<div class="sidebar-log">
<div>
<ul id="achievement-log"></ul>
</div>
</div>
</div>
</div>
<div id="game-game">
<div id="gameCanvas" style="overflow:hidden;position:relative">
<div id="gameRoot" style="position:relative"></div>
<div id="game-overlay" class="loading"></div>
<div id="gameDialogue" class="bordered-box"></div>
</div>
</div>
</div>
<script>
g_smallValue = 0.000001; // fun with floats
Environment.fapi.methodBasepath = '';
var maps = ['map_landing', 'castle_entrance', 'castle_fs', 'dorf', 'shop', 'ufer'];
var game = new Game({
startMap: maps[UrlComponents.getValueOf('map') || 0],
showEventLayers: UrlComponents.getValueOf('showEventLayers') === 'true',
pathFindingGridSize: UrlComponents.isSet('verbosePF') ? 5 : 5,
verbosePathFinder: UrlComponents.isSet('verbosePF'),
usePathFinding: true,
moonWalk: false,
size: [800, 600]
});
game.run();
</script>
</body>
</html>
#game-root-container {
height: 600px;
width: 1000px;
overflow: hidden; /* just to be on the save side... */
position: relative;
margin: 0;
padding: 0;
background-color: #323232;
}
#game-game {
position: absolute;
left: 0;
top: 0;
width: 800px;
height: 600px;
}
#gameCanvas {
overflow:hidden;
position:relative;
height: 600px;
width: 800px;
}
#game-sidebar {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 189px;
}
#game-overlay {
position: absolute;
top: 0;
left: 0;
width: 800px;
height: 600px;
background-color: #000;
display: none;
color: white;
}
#game-overlay.loading {
background: #000 url('graphics/loader.gif') no-repeat 300px 200px !important;
display: block !important;
}
.bordered-box {
font-family: Lucida Console, Monaco, monospace;
color: white;
background-color: #323232;
border: 3px solid #4E8260;
outline: 3px solid #2E2E2E;
margin: 3px 2px 3px 3px;
}
#gameDialogue {
font-size: 11pt;
height: 4em;
position: absolute;
bottom: 20px;
left: 20px;
right: 20px;
padding: 0.5em 1em;
display: none;
}
#gameDialogue ul {
margin: 0;
padding: 0 0 0 0.5em;
list-style: none;
}
#gameDialogue ul li {
padding: 0.1em;
}
#gameDialogue ul li:hover {
background-color: #474c46;
cursor: pointer;
}
#gameDialogue ul li:before {
content: '⇢';
font-size: 15pt;
line-height: 11pt;
margin-right: 0.3em;
}
#gameDialogue ul li:hover:before {
content: '↠';
}
#gameDialogue input, #gameDialogue button {
border: 1px dotted black;
background: transparent;
color: white;
margin: 5pt 2em 0 0;
font-size: 12pt;
width: 50%;
padding: 0.3em 0.5em;
}
#gameDialogue input:hover, #gameDialogue input:focus, #gameDialogue button:hover {
background: #474c46;
}
#gameDialogue button:active {
background: #272c26;
}
#gameDialogue button:disabled {
color: red;
}
/*
#2E2E2E dark
#4E8260 green
#A7ACA6 light bg
#323232 dark bg
*/
.sidebar-section {
}
.sidebar-section-head {
border-top: 2px solid #4E8260;
border-bottom: 2px solid #4E8260;
margin: 1em 4px 0.5em 4px;
padding: 0.2em 0 0.2em 0.5em;
}
.sidebar-log {
position: relative;
overflow: hidden;
border: 1px dotted #A7ACA6;
margin: 0 3px;
padding: 0.5em 0;
}
/* following some css fun to hide the scrollbar */
.sidebar-log, .sidebar-log > div > ul {
height: 100px;
}
.sidebar-log > div {
position: absolute;
left: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.sidebar-log > div > ul {
font-size: 8pt;
margin: 0;
padding: 0;
list-style: none;
}
.sidebar-log > div::-webkit-scrollbar {
display: none;
}
.sidebar-log > div > ul > li {
padding: 0.2em 0.5em 0.2em 0.5em;
margin: 0;
border-top: 1px dotted #424242;
text-align: left;
}
.sidebar-log > div > ul > li:first-child {
border-top: 0;
}
.status-bar {
height: 8px;
position: relative;
background: #A7ACA6;
-moz-border-radius: 12px;
-webkit-border-radius: 12px;
border-radius: 12px;
padding: 1px 2px;
margin: 0 5px;
}
.status-bar > span.status-bar-bar {
display: block;
height: 100%;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
background-color: #4E8260;
position: relative;
overflow: hidden;
}
.status-bar > div.status-bar-text {
position: absolute;
margin: 0 auto;
left: 0;
right: 0;
top: 2px;
font-size: 5pt;
text-align: center;
color: black;
}
.starWars {
position: absolute;
width: 600px;
height: 50em;
bottom: 0;
left: 50%;
margin-left: -300px;
font-size: 350%;
font-weight: bold;
text-align: center;
overflow: hidden;
transform-origin: 50% 100%;
transform: perspective(300px) rotateX(25deg);
color: #ff0;
font-family: sans-serif;
}
.starWars:after {
position: absolute;
content: ' ';
left: 0;
right: 0;
top: 0;
bottom: 60%;
background-image: linear-gradient(top, rgba(0,0,0,1) 0%, transparent 100%);
pointer-events: none;
}
.starWars div {
position: absolute;
top: 100%;
animation: starWars-scroll 80s linear 0s infinite;
}
.starWars div p {
margin-bottom: 1em;
}
@keyframes starWars-scroll {
0% { top: 100%; }
100% { top: -170%; }
}
\ No newline at end of file
<?php
require_once 'abstract_signup_class.php';
class SignupMethods {
private static $__instance = NULL;
private $signup_methods = [];
private $fallback_method = 'form';
private $environment;
public static function getInstance() {
if(self::$__instance == NULL) self::$__instance = new SignupMethods();
return self::$__instance;
}
protected function __construct() {
$this->signup_methods = $this->loadSignupMethods();
$this->environment = Environment::getEnv();
}
public function getSignupMethods() {
return $this->signup_methods;
}
/**
* @return array of assoc_arrays with name, desc and contribs
*/
public function getSignupMethodsBaseInfo() {
$tmp = [];
foreach($this->signup_methods as $method) {
$tmp[$method['id']] = [
'id' => $method['id'],
'name' => $method['class']::getName(),
'description' => $method['class']::getAltText(),
'meta' => $method['class']::getMetaInfo(),
'logo' => $method['class']::getLogo(),
'score' => function($stats) use ($method) {
return $method['class']::getScore($stats);
},
'badgeDetails' => function($stats) use ($method) {
return $method['class']::getBadgeDetails($stats);
}
];
}
return $tmp;
}
/**
* @return bool returns true iff a method is set and exists
*/
public function signupMethodExists() {
try {
$this->getActiveMethod();
return true;
} catch (Exception $e) {
//echo $e;
return false;
}
}
public function getFallbackMethod() {
$method = $this->getMethodObj($this->fallback_method);
return new $method['class']();
}
/**
* @return class (instantiated) of the active signup method
* @throws ErrorException when $_GET['method'] is missing or not available in the list
*/
public function getActiveMethod() {
$method = $this->getActiveMethodObj();
return new $method['class']();
}
/**
* @return id of the class (and with that the folder)
* @throws ErrorException when $_GET['method'] is missing or not available in the list
*/
public function getActiveMethodId() {
$method = $this->getActiveMethodObj();
return $method['id'];
}
/**
* @return array
* @throws ErrorException when $_GET['method'] is missing or not available in the list
*/
private function getActiveMethodObj() {
if(!isset($_REQUEST['method'])) throw new ErrorException('No signup-method selected!');
return $this->getMethodObj($_REQUEST['method']);
}
private function getMethodObj($mode) {
if(Environment::getEnv()->formDataReceived()) $mode = $this->fallback_method;
if(!isset($this->signup_methods[$mode])) throw new ErrorException('Signup-method does not exist!');
return [ 'id' => $mode, 'class' => $this->signup_methods[$mode]['class']];
}
private function getMethodDirs() {
return glob(__DIR__ . '/*' , GLOB_ONLYDIR);
}
private function loadSignupMethod($folder_name) {
$tmp_method_folder = basename($folder_name);
$tmp_file_name = __DIR__ . '/' . $tmp_method_folder . '/index.php';
try {
if (file_exists($tmp_file_name)) {
require_once $tmp_file_name;
$tmp_class_name = ucfirst($tmp_method_folder . 'SignupMethod');
if (class_exists($tmp_class_name)) {
return [
'id' => $tmp_method_folder,
'class' => $tmp_class_name,
'classFile' => $tmp_file_name
];
}
}
} catch (Exception $e) { /* do nothing */ }
return false;
}
private function loadSignupMethods() {
$tmp_method_dirs = $this->getMethodDirs();
$tmp_methods = [];
foreach ($tmp_method_dirs as $method_dir) {
$tmp_method = $this->loadSignupMethod($method_dir);
if ($tmp_method) $tmp_methods[basename($method_dir)] = $tmp_method;
}
return $tmp_methods;
}
}
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
registration-system/view/signups/story/graphics/bell.png

11.1 KiB

File suppressed by a .gitattributes entry or the file's encoding is unsupported.