Files
cardsforscience/index.html
T

401 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en" ng-app="scienceAlchemy">
<head>
<title>Science Alchemy</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Science Alchemy">
<meta property="og:type" content="game">
<meta property="og:description" content="An addictive incremental game that was made during the CERN Webfest 2014. It takes the player on a historic journey through modern particle physics.">
<meta property="og:image" content="https://avatars2.githubusercontent.com/u/8345868">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="bower_components/angular-ui-grid/ui-grid.min.css">
<link rel="stylesheet" href="css/ui-grid.css">
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/png" href="assets/favicon.png" />
<link rel="apple-touch-icon" href="assets/mobile/icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="assets/mobile/icon.png">
<meta name="apple-mobile-web-app-capable" content="yes">
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand pc-icon" href="#" data-toggle="modal" data-target="#myModal"> Science Alchemy</a>
</div>
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav navbar-left">
<li><a href="#" data-toggle="modal" data-target="#achievements-modal"><i class="fa fa-trophy"></i> Achievements</a></li>
<li><a href="#" data-toggle="modal" data-target="#stats-modal"><i class="fa fa-bar-chart"></i> Statistics</a></li>
<li class="dropdown" ng-controller="SaveController">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-floppy-o"></i> Saved: <span ng-cloak>{{ lastSaved | date : 'H:mm' }}</span> <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#" ng-click="saveNow()"><i class="fa fa-save"></i> Save now</a></li>
<li class="divider"></li>
<li><a href="#" ng-click="restart()"><i class="fa fa-refresh"></i> Restart</a></li>
</ul>
</li>
<!--<li><a href="#" data-toggle="modal" data-target="#myModal"><i class="fa fa-users"></i> About</a></li>-->
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="https://github.com/particle-clicker/particle-clicker/" target="_blank"><i class="fa fa-github"></i> GitHub</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-share-alt"></i> Social<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="https://facebook.com/particleclicker"><i class="fa fa-facebook-square"></i> Facebook</a></li>
<li><a href="https://twitter.com/particleclicker"><i class="fa fa-twitter"></i> Twitter</a></li>
<li><a href="https://plus.google.com/share?url=http%3A%2F%2Fcern.ch%2Fparticle-clicker" target="_blank" title="Share on Google+"><i class="fa fa-google-plus-square"></i> Google+</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div id="main-content" class="container-fluid col-no-padding Paired">
<div class="row">
<div class="col-md-3 col-md-3s col-lg-2 col-no-padding visible-md-block visible-lg-block">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<i class="fa fa-cogs"></i> Hand
</h4>
</div>
<div class="panel-body large" id="elementLarge"
ng-controller="ElementController as rc"
>
<div id="elementContent">
<div class="row" ng-cloak>
<div class="col-md-4" ng-repeat="r in rc.elements" ng-show="rc.isAvailable(r)">
<span ng-show="rc.isAvailable(r)"
id="{{r.key}}"
class="{{r.key}} element element-store {{ r.state.interesting ? 'blink' : '' }} {{r.color}} {{rc.isAvailable(r) ? ' ui-draggable': 'empty'}}"
ng-click="rc.onClick(r,$event)"
data-element="{{r.key}}"
data-drag="rc.isAvailable(r)"
jqyoui-draggable="rc.dragOptions"
data-jqyoui-options="rc.jqyouiDragOptions"
data-hashkey={{r.$$hashKey}}
>
{{r.key}}
</span>
<span ng-show="r.state.amount > 1" class="{{rc.isAvailable(r) ? '': 'empty'}} white-badge ng-binding">{{r.state.amount}}</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="column-lab" class="col-xs-6 col-md-6 col-md-6s col-lg-7 col-no-padding-xs" ng-controller="LabController as lc">
<!-- <input class="hidden-xs" id="labname" value="{{ lc.lab.state.name }}" ng-model="lc.lab.state.name" ng-cloak> -->
<div class="row status" ng-cloak>
<div class="col-xs-12 text-center col-no-padding-xs">
<strong>Score</strong><br>
{{ lc.lab.state.score | niceNumber }}
<div class="update-value" id="update-data"></div>
</div>
</div>
<hr class="hidden-xs">
<div id="detector-holder">
<div id="detector" ng-controller="DetectorController as dc">
<div id="detector-element-container"
ng-cloak
jqyoui-droppable="dc.dropOptions"
data-jqyoui-options="dc.jqyouiDropOptions"
data-drop="true"
>
<div class="main-line card-line" id="lastCards">
<div class="row" >
<div class="col-md-1" ng-repeat="r in dc.lastCards | limitTo: -10" ng-cloak>
<span
class="{{r.key}} element {{r.color}}"
data-element="{{r.key}}"
data-hashkey={{r.$$hashKey}}
>
{{r.key}}
</span>
</div>
</div>
</div>
<div class="side-line card-line short-lines" id="incorrectCards">
<div class="row">
<div ng-repeat="rr in dc.incorrectCards | limitTo: -10" class="col-md-1" ng-cloak>
<div ng-repeat="r in rr| limitTo: -10" class="row">
<div class="col-md-12">
<span
class="{{r.key}} element {{r.color}}"
data-element="{{r.key}}"
data-hashkey={{r.$$hashKey}}
>
{{r.key}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row" id="hints">
<div ng-click="dc.revealHint()" class="col-md-6">
<div class="panel panel-default left-list card-panel">
<div class="panel-heading">
<h3 class="panel-title">Hint</h3>
<div ng-cloak> (-{{dc.hintCost}} score)</div>
</div>
<div class="panel-body">
<ul>
<li ng-repeat="h in dc.hints" ng-cloak><i>{{h}}</i></li>
</ul>
</div>
</div>
</div>
<div id="rule" ng-click="dc.revealRule()" class="col-md-6">
<div class="panel panel-default left-list card-panel">
<div class="panel-heading">
<h3 class="panel-title">Rule</h3>
<div ng-cloak>(-{{dc.ruleCost}} score)</div>
</div>
<div class="panel-body">
<i ng-cloak>{{dc.rule}}</i>
</div>
</div>
</div>
</div>
<!-- <span id="card-deck" title="deal more cards" ng-click="dc.click()" class="prevent-select">🂠</span> -->
<!-- <button id="clearall" class="btn btn-default" ng-click="dc.clearAll()"><i class="fa fa-refresh"></i></button> -->
</div>
</div>
<button id="detector-info" type="button" class="btn btn-info" ng-click="lc.showDetectorInfo()"><i class="fa fa-info"></i></button>
<!-- <div class="row status" ng-cloak>
<div class="col-xs-4 text-center col-no-padding-xs">
<strong>Score</strong><br>
{{ lc.lab.state.score | niceNumber }}
<div class="update-value" id="update-data"></div>
</div>
<div class="col-xs-4 text-center col-no-padding-xs">
<strong>Rank</strong><br>
{{ lc.lab.state.rank | niceNumber }}
<div class="update-value" id="update-reputation"></div>
</div>
<div class="col-xs-4 text-center col-no-padding-xs">
<strong>High Score</strong><br>
{{ lc.lab.state.highScore | niceNumber }}
<div class="update-value" id="update-funding"></div>
</div>
</div> -->
</div>
<div class="col-md-3 col-md-3s col-lg-2 col-no-padding visible-md-block visible-lg-block">
<div class="panel panel-default hidden-xs hidden-sm">
<div class="panel-heading">
<h4 class="panel-title">
<i class="fa fa-wrench"></i> Guess the rule
</h4>
</div>
<div class="panel-body scrollable large" id="upgradesLarge">
<div id="upgradesContent" class="left-list" ng-controller="UpgradesController as uc">
<!-- <label>Search: <input ng-model="searchText"></label> -->
<!-- <ul class="form-inline hypotheses" ng-cloak>
<li ng-repeat="rule in uc.rules|filter:searchText">
<div cfs-rule="rule" index="$index" ng-model="uc.rules[$index]"></div>
<button ng-click="uc.guess($event,rule)" class="btn btn-sm btn-default" type="submit">Guess</button>
</li>
</ul> -->
<form class="form-inline hypotheses" ng-submit="uc.guess($event,uc.rules2[uc.guessedIndex])">
<div class="radio" ng-repeat="rule in uc.rules2">
<label class="{{uc.isGuessed(rule)}}" ng-cloak>
<input type="radio" ng-model="uc.guessedIndex" name="ruleRadios" id="ruleRadios-{{$index}}" value="{{$index}}" class="btn btn-sm btn-default">
</input>
{{rule.describe()}}
</label>
</div>
<button class="btn btn-sm btn-default" type="submit">Guess</button>
</form>
</div>
</div>
</div>
</div>
<div id="column-tabs" class="col-xs-6 visible-xs-block visible-sm-block col-no-padding">
<ul id="TabList" class="nav nav-tabs" role="tablist">
<li class="active"><a href="#element" role="tab" data-toggle="tab"><i class="fa fa-cogs"></i> Elements </a></li>
<li><a href="#hr" role="tab" data-toggle="tab"><i class="fa fa-users"></i> HR</a></li>
<li><a href="#upgrades" role="tab" data-toggle="tab"><i class="fa fa-wrench"></i> Upgrades</a></li>
</ul>
<div id="TabContent" class="tab-content">
<div class="tab-pane active scrollable" id="element">
</div>
<div class="tab-pane scrollable" id="hr">
</div>
<div class="tab-pane scrollable" id="upgrades">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="infoBox" tabindex="-1" role="dialog" aria-labelledby="infoBoxLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="infoBoxLabel"></h4>
</div>
<div class="modal-body"></div>
</div>
</div>
</div>
<div class="modal fade" id="achievements-modal" tabindex="-1" role="dialog" aria-labelledby="achievements-label" aria-hidden="true" ng-controller="AchievementsController">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="achievements-label"><i class="fa fa-trophy"></i> Achievements</h4>
</div>
<div class="modal-body">
<p class="text-center"><strong>Progress</strong> <span class="label label-info">{{ progress() }} / {{ achievements.length }}</span></p>
<ul class="list-group">
<li class="list-group-item" ng-repeat="a in achievements | orderBy:'state.timeAchieved' | reverse" ng-show="a.isAchieved()">
<i class="fa {{ a.icon }}"></i>
{{ a.description }}
<span class="badge">{{ a.state.timeAchieved | niceTime }}</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="modal fade" id="stats-modal" tabindex="-1" role="dialog" aria-labelledby="stats-label" aria-hidden="true" ng-controller="StatsController">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="stats-label"><i class="fa fa-bar-chart"></i> Statistics</h4>
</div>
<div class="modal-body">
<ul class="list-group">
<li class="list-group-item"><i class="fa fa-location-arrow"></i> : <strong>{{ lab.state.clicks | niceNumber }}</strong></li>
<li class="list-group-item"><i class="fa fa-database"></i> : <strong>{{ lab.state.dataSpent | niceNumber }}</strong> used / <strong>{{ lab.state.dataCollected | niceNumber }}</strong> collected</li>
<li class="list-group-item"><i class="fa fa-money"></i> : <strong>{{ lab.state.moneySpent | niceNumber }}</strong> spent / <strong>{{ lab.state.moneyCollected | niceNumber }}</strong> gathered</li>
</ul>
</div>
</div>
</div>
</div>
<div id="achievements-container" class="col-xs-6 col-sm-3"></div>
<div id="messages-container" class="col-xs-6 col-sm-3"></div>
<div id="mobile-orientation-container">
<div id="mobile-orientation-message">
You can only play Science Alchemy on your mobile device in landscape orientation.
</div>
</div>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Science Alchemy</h4>
</div>
<div class="modal-body">
<h4>About</h4>
<p class="small">Version: 0.9</p>
<p class="small bg-warning">This is a pre-release. If you encounter any bugs please report them using <a href="https://github.com/particle-clicker/particle-clicker/issues"><i class="fa fa-github"></i> GitHub issues</a>. This game runs best in landscape mode. Performance of the event display may rely heavily on your hardware.</p>
<p>Science Alchemy is a game that was made during the <a href="https://webfest.web.cern.ch">CERN Webfest 2014</a>. The idea is borrowed from <a href="http://orteil.dashnet.org/cookieclicker/">Cookie Clicker</a>, an amazing and addictive cookie-themed game.</p>
<h5>Libraries</h5>
<p>This game is realised using a few libraries. Those are</p>
<ul>
<li><a href="http://angularjs.org">AngularJS</a></li>
<li><a href="http://getbootstrap.com/">Bootstrap</a></li>
<li><a href="http://fortawesome.github.io/">Fontawesome</a></li>
<li><a href="http://jquery.com">jQuery</a></li>
<li><a href="http://imulus.github.io/retinajs/">retina.js</a></li>
<li><a href="https://github.com/ftlabs/fastclick">fastclick.js</a></li>
</ul>
<h5>Authors</h5>
<ul>
<li><a href="https://github.com/gbiro">Gabor Biro</a></li>
<li><a href="https://github.com/ibab">Igor Babuschkin</a></li>
<li><a href="https://github.com/kdungs">Kevin Dungs</a></li>
<li><a href="https://github.com/ntadej">Tadej Novak</a></li>
<li><a href="https://github.com/zhangjiannan">Jiannan Zhang</a></li>
</ul>
<p>Feel free to get in touch with us via GitHub or by shooting us an email on<br><a href="mailto:particle-clicker@googlegroups.com">particle-clicker@googlegroups.com</a>.</p>
<h5>Source</h5>
<p>The source code of this game is freely available on <a href="https://github.com/particle-clicker/particle-clicker"><i class="fa fa-github"></i> GitHub</a> under the terms of an MIT license.</p>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="bower_components/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="bower_components/jquery-ui/jquery-ui.js"></script>
<script type="text/javascript" src="js/external/jquery.ui.touch-punch.min.js"></script>
<script type="text/javascript" src="js/external/jquery.cookie-1.4.1.min.js"></script>
<script type="text/javascript" src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script type="text/javascript" src="bower_components/angular/angular.js"></script>
<script type="text/javascript" src="bower_components/angular-dragdrop/src/angular-dragdrop.js"></script>
<script type="text/javascript" src="bower_components/angular-animate/angular-animate.js"></script>
<script type="text/javascript" src="js/external/retina.js"></script>
<script type="text/javascript" src="js/external/fastclick.js"></script>
<script type="text/javascript" src="bower_components/chai/chai.js"></script>
<script type="text/javascript" src="bower_components/lodash/dist/lodash.js"></script>
<script type="text/javascript" src="bower_components/angular-ui-grid/ui-grid.js"></script>
<!-- Google Analytics -->
<!-- <script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
</script> -->
<!-- End Google Analytics -->
<script src="js/storage.js"></script>
<script src="js/helpers.js"></script>
<script src="js/analytics.js"></script>
<script src="js/gameobjects.js"></script>
<script src="js/rules.js"></script>
<script src="js/ui.js"></script>
<script src="js/game.js"></script>
<script src="js/app.js"></script>
</body>
</html>