Add rrr to appcache.
[ogre.git] / ogre.html
1 <!DOCTYPE html>
2 <html manifest="ogre.appcache">
3 <!--
4 The person who associated a work with this deed has dedicated the work
5 to the public domain by waiving all of his or her rights to the work
6 worldwide under copyright law, including all related and neighboring
7 rights, to the extent allowed by law.
8
9 You can copy, modify, distribute and perform the work, even for
10 commercial purposes, all without asking permission.
11
12 See https://creativecommons.org/publicdomain/zero/1.0/ for details.
13 -->
14 <head>
15 <meta charset="utf-8">
16 <meta name=viewport content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
17 <meta name=description content="Digital record sheets for Steve Jackson's Ogre boardgame.">
18 <meta name=apple-mobile-web-app-status-bar-style content=black-translucent>
19 <meta name=apple-mobile-web-app-capable content=yes>
20 <meta name=apple-mobile-web-app-title content=Ogre>
21 <meta name=mobile-web-app-capable content=yes>
22 <link rel=icon sizes=32x32 href=favicon_32.png>
23 <link rel=icon sizes='16x16 32x32 48x48' href=favicon.ico>
24 <link rel=icon sizes=128x128 href=favicon_128.png>
25 <link rel=icon sizes=196x196 href=favicon_196.png>
26 <link rel=icon sizes=256x256 href=favicon_256.png>
27 <link rel=apple-touch-icon href=favicon_192.png>
28 <link rel=stylesheet href=ogre.css>
29 <script src=fastclick.js></script>
30 <script src=rrr.js></script>
31 <script src=units.js></script>
32 <script src=ogre.js></script>
33 <!-- <script src=brain.js></script> -->
34 <title>Ogre Record Sheets</title>
35 </head>
36 <body onclick="boxes(event)">
37 <header>
38 <nav>
39 <div data-tray=addUnit style="float: left">+</div>
40 <h1 data-tray=legal style="float: right">Ogre</h1>
41 </nav>
42 </header>
43 <ul id=addUnit class=tray>
44 </ul>
45 <div id=legal class=tray>
46 <div class=colophon>
47 <a target=_blank href="https://yukkurigames.com">Yukkuri Games</a>
48 </div>
49 <p>
50 <a target=_blank href="http://www.sjgames.com/ogre/">Ogre</a> and
51 its associated names are trademarks of
52 <a target=_blank href="http://www.sjgames.com/">Steve Jackson Games</a>;
53 its rules are copyrighted by Steve Jackson Games. This tool is
54 not affiliated with or authorized by Steve Jackson Games, and
55 uses unofficial adaptations of some Ogre model statistics.
56 </p>
57 <p>
58 Typeset in Fira Sans by
59 <a target=_blank href="http://www.carrois.com/home/">Carrois
60 Type Design</a>,
61 Checkbook by Allen&nbsp;R.&nbsp;Walden, and
62 <a href="http://dejavu-fonts.org/wiki/Main_Page">DejaVu Sans
63 Mono</a>.
64 </p>
65 </div>
66 <!--
67 <div id=brain class=tray>
68 <a data-tray=howto>(what's this?)</a>
69 <div class=brain-movement>
70 <input name=moven type=radio id=move1 checked>
71 <label for=move1>1</label>
72 <input name=moven type=radio id=move2>
73 <label for=move2>2</label>
74 <input name=moven type=radio id=move3>
75 <label for=move3>3</label>
76 <input name=moven type=radio id=move4>
77 <label for=move4>4</label>
78 </div>
79 <div class=missiles>
80 <input type=checkbox id=missiles>
81 <label for=missiles>Missiles</label>
82 </div>
83 <div class=roll onclick="think()">Think</div>
84 <div id=report></div>
85 </div>
86 <div id=howto class=tray>
87 <h1>Automated Ogres</h1>
88 <p>
89 Set up your defensive forces as desired. The Ogre enters
90 directly opposite the CP. Each turn, select the Ogre's
91 available movement points and whether it will ram.
92 </p>
93 <h2>Movement</h2>
94 <p>
95 The Ogre first moves towards the CP ("north"), then if it
96 destroys it, retreats back to the side it started on ("south")
97 to escape off that edge of the map. If the Ogre is on the
98 final three rows of the map, or less than five hexes from the
99 CP, "ahead" refers to the shortest path directly to the goal.
100 Otherwise, it refers to the edge.
101 </p>
102 <p>
103 While moving, the Ogre may decide to ram. If it does, a
104 potential ram overrides other movement commands. It also rams
105 any vehicle in its direct path. The Ogre always re-rams a
106 disabled vehicle in the same space.
107 </p>
108 <p>
109 The Ogre never moves backward, except when it decides to ram
110 backwards. If the Ogre is adjacent to an immobile unit (e.g. a
111 howitzer or CP) it will always ram it.
112 </p>
113 <p>
114 If multiple ramming targets are possible, choose the first in
115 the direction of the sensor sweep.
116 </p>
117 <p>
118 If the Ogre tries to move into a crater or off the edge of the
119 map, choose the first space available in the direction of the
120 sensor sweep.
121 </p>
122 <h2>Attacks</h2>
123 <p>
124 The Ogre always fires AP, then secondary, primary, then
125 (maybe, if possible) missiles. Targeting order is determined
126 by explicit targeting instructions - target priority may go to
127 </p>
128 direction of the sensor sweep.
129 </p>
130 <h2>Priority</h2>
131 <p>
132 The Ogre will always prefer to target CPs, howitzers, and disabled
133 units (in that order). Otherwise, target priority is determined
134 randomly as nearest, farthest, strongest (highest defense) or most
135 threatening (highest attack).
136 </p>
137 <p>
138 Priority is also given an arc (fore or aft). All possible
139 targets in the chosen arc are considered before the other arc.
140 Units on the same line as the Ogre are in both arcs.
141 </p>
142 <p>
143 Finally, priority has a sensor sweep direction - clockwise or
144 anti-clockwise. This determines the order of targets with the
145 same combat statistics, distance, and in the same arc.
146 </p>
147
148 <h2>Suggestions</h2>
149 <ul>
150 <li>Once you find the game too easy, move your CP forward.</li>
151 </ul>
152 <h2>Further Reading</h2>
153 <p>
154 These solitaire play rules are based on
155 <a target=_blank href="http://www.sjgames.com/ogre/articles/uncertain.html">
156 Brian McCue's <em>The Uncertainty Principle</em></a>
157 as well as <em>Solitaire Ogre</em> by George Collins in
158 <em><a target=_blank href="http://www.sjgames.com/ogre/products/ogrebook/">
159 The Ogre Book</a></em>. It expands on the
160 card system suggested by McCue but hews closer to the tactics
161 suggested by Collins.
162 </p>
163 </div>
164 -->
165 <main>
166 <section id=unit-template>
167 <a onclick="removeUnit(this.parentNode)" class=close></a>
168 <div class=name
169 onclick="this.textContent = randomName(UNITS[this.parentNode.getAttribute('data-dfn')].nameScheme)"></div>
170 <div class=type></div>
171 </section>
172 </main>
173 </body>
174 </html>