Files
2023-09-25 19:51:08 -04:00

304 lines
15 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" ng-app="particleClicker">
<head>
<!-- Google tag (gtag.js) -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-7L02W3ZMS5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-7L02W3ZMS5');
</script>
<script async="" crossorigin="anonymous" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5648726754785335"></script>
<title>Particle Clicker</title>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<meta content="Particle Clicker" property="og:title"/>
<meta content="game" property="og:type"/>
<meta 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." property="og:description"/>
<meta content="https://avatars2.githubusercontent.com/u/8345868" property="og:image"/>
<link href="css/bootstrap.min.css" rel="stylesheet"/>
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="css/style.css" rel="stylesheet"/>
<link href="assets/favicon.png" rel="icon" type="image/png"/>
<link href="assets/mobile/icon.png" rel="apple-touch-icon">
<link href="assets/mobile/icon.png" rel="apple-touch-icon" sizes="72x72"/>
<meta content="yes" name="apple-mobile-web-app-capable"/>
</link></head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle collapsed" data-target="#navbar-collapse" data-toggle="collapse" type="button">
<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" data-target="#myModal" data-toggle="modal" href="#"> Particle Clicker</a>
</div>
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav navbar-left">
<li><a data-target="#achievements-modal" data-toggle="modal" href="#"><i class="fa fa-trophy"></i> Achievements</a></li>
<li><a data-target="#stats-modal" data-toggle="modal" href="#"><i class="fa fa-bar-chart"></i> Statistics</a></li>
<li class="dropdown" ng-controller="SaveController">
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><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 class="dropdown-toggle" data-toggle="dropdown" href="#"><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 class="container-fluid col-no-padding" id="main-content">
<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> Research
</h4>
</div>
<div class="panel-body scrollable large" id="researchLarge" ng-controller="ResearchController as rc">
<div id="researchContent" ng-controller="ResearchController as rc">
<ul class="media-list" ng-cloak="">
<li class="media" ng-repeat="r in rc.research" ng-show="rc.isVisible(r)">
<img alt="" class="research-icon media-object" ng-show="r.state.level &gt; 0" ng-src="{{ r.image }}"/>
<img alt="" class="research-icon media-object" ng-hide="r.state.level &gt; 0" src="assets/icons/png/unknown.png"/>
<div class="media-body">
<h4 class="media-heading">{{ r.state.level &gt; 0 ? r.name : '?????' }} <span class="badge" ng-show="r.state.level &gt; 0">Level {{ r.state.level }}</span></h4>
<p ng-show="r.state.level &gt; 0">{{ r.description }}</p>
<p class="small" ng-show="r.state.level &gt; 0">Research yields <strong>{{ r.state.reputation | niceNumber }}</strong> reputation.</p>
<div class="btn-group">
<button class="btn btn-primary" ng-click="rc.doResearch(r)" ng-disabled="!rc.isAvailable(r)"><i class="fa fa-cogs"></i> <small>{{ r.state.cost | niceNumber }} data</small></button>
<button class="btn btn-info {{ r.state.interesting ? 'blink' : '' }}" ng-click="rc.showInfo(r)" ng-show="r.state.level &gt; 0"><i class="fa {{ r.state.interesting ? 'fa-exclamation' : 'fa-info' }}"></i></button>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-xs-6 col-md-5 col-md-5s col-lg-6 col-no-padding-xs" id="column-lab" ng-controller="LabController as lc">
<input class="hidden-xs" id="labname" ng-cloak="" ng-model="lc.lab.state.name" value="{{ lc.lab.state.name }}"/>
<hr class="hidden-xs"/>
<div id="detector-holder">
<div id="detector" ng-controller="DetectorController as dc">
<canvas height="400" id="detector-core" width="400">
Your detector. Click on it to generate events.
</canvas>
<canvas class="prevent-select" height="400" id="detector-events" ng-click="dc.click()" width="400">
Your detector. Click on it to generate events.
</canvas>
</div>
</div>
<button class="btn btn-info" id="detector-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>Data</strong><br/>
{{ lc.lab.state.data | niceNumber }}
<div class="update-value" id="update-data"></div>
</div>
<div class="col-xs-4 text-center col-no-padding-xs">
<strong>Reputation</strong><br/>
{{ lc.lab.state.reputation | niceNumber }}
<div class="update-value" id="update-reputation"></div>
</div>
<div class="col-xs-4 text-center col-no-padding-xs">
<strong>Funding</strong><br/>
{{ lc.lab.state.money | currency }}
<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 panel-stick">
<div class="panel-heading">
<h4 class="panel-title">
<i class="fa fa-users"></i> HR
</h4>
</div>
<div class="panel-body scrollable large" id="hrLarge">
<div id="hrContent" ng-controller="HRController as hrc">
<ul class="media-list" ng-cloak="">
<li class="media" ng-repeat="w in hrc.workers" ng-show="hrc.isVisible(w)">
<div class="media-body">
<h4 class="media-heading">{{ w.name }} <span class="badge" ng-show="w.state.hired &gt; 0">{{ w.state.hired | niceNumber }}</span></h4>
<p ng-show="w.state.hired &gt; 0">{{ w.description }}</p>
<p class="small" ng-show="w.state.hired &gt; 0">Produce <strong>{{ w.state.rate | niceNumber }}</strong> data per second.</p>
<button class="btn btn-primary" ng-click="hrc.hire(w)" ng-disabled="!hrc.isAvailable(w)"><i class="fa fa-user"></i> <small>{{ w.state.cost | currency }}</small></button>
</div>
</li>
</ul>
</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> Upgrades
</h4>
</div>
<div class="panel-body scrollable large" id="upgradesLarge">
<div id="upgradesContent" ng-controller="UpgradesController as uc">
<ul class="media-list media-list-no-margin" ng-cloak="">
<li class="media" ng-show="false"></li>
<li class="media" ng-repeat="u in uc.upgrades" ng-show="uc.isVisible(u)">
<div class="media-body">
<h4 class="media-heading"><i class="fa {{ u.icon }} media-object"></i> {{ u.name }}</h4>
<p>{{ u.description }}</p>
<p class="small">{{ u.effect }}</p>
<button class="btn btn-primary" ng-click="uc.upgrade(u)" ng-disabled="!uc.isAvailable(u)"><i class="fa fa-money"></i> <small>{{ u.cost | currency }}</small></button>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-xs-6 visible-xs-block visible-sm-block col-no-padding" id="column-tabs">
<ul class="nav nav-tabs" id="TabList" role="tablist">
<li class="active"><a data-toggle="tab" href="#research" role="tab"><i class="fa fa-cogs"></i> Research</a></li>
<li><a data-toggle="tab" href="#hr" role="tab"><i class="fa fa-users"></i> HR</a></li>
<li><a data-toggle="tab" href="#upgrades" role="tab"><i class="fa fa-wrench"></i> Upgrades</a></li>
</ul>
<div class="tab-content" id="TabContent">
<div class="tab-pane active scrollable" id="research">
</div>
<div class="tab-pane scrollable" id="hr">
</div>
<div class="tab-pane scrollable" id="upgrades">
</div>
</div>
</div>
</div>
<div aria-hidden="true" aria-labelledby="infoBoxLabel" class="modal fade" id="infoBox" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal" type="button"><span aria-hidden="true">×</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 aria-hidden="true" aria-labelledby="achievements-label" class="modal fade" id="achievements-modal" ng-controller="AchievementsController" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal" type="button"><span aria-hidden="true">×</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 aria-hidden="true" aria-labelledby="stats-label" class="modal fade" id="stats-modal" ng-controller="StatsController" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal" type="button"><span aria-hidden="true">×</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 class="col-xs-6 col-sm-3" id="achievements-container"></div>
<div class="col-xs-6 col-sm-3" id="messages-container"></div>
<div id="mobile-orientation-container">
<div id="mobile-orientation-message">
You can only play Particle Clicker on your mobile device in landscape orientation.
</div>
</div>
<div aria-hidden="true" aria-labelledby="myModalLabel" class="modal fade" id="myModal" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal" type="button"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Particle Clicker</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>Particle Clicker 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 src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.17/angular.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script src="js/external/jquery.cookie-1.4.1.min.js"></script>
<script src="js/external/retina.js"></script>
<script src="js/external/fastclick.js"></script>
<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/event.js"></script>
<script src="js/detector.js"></script>
<script src="js/ui.js"></script>
<script src="js/game.js"></script>
<script src="js/app.js"></script>
</body>
</html>