mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-05-18 07:04:08 +00:00
crystal:: added a conduct for doing Camelot without compasses
This commit is contained in:
parent
8e4e627a37
commit
444bb762d7
@ -22,6 +22,8 @@ bool pure() {
|
|||||||
bool view_coordinates = false;
|
bool view_coordinates = false;
|
||||||
bool view_east = false;
|
bool view_east = false;
|
||||||
|
|
||||||
|
bool used_compass_inside;
|
||||||
|
|
||||||
const int MAXDIM = 7;
|
const int MAXDIM = 7;
|
||||||
|
|
||||||
typedef array<int, MAXDIM> coord;
|
typedef array<int, MAXDIM> coord;
|
||||||
|
@ -668,8 +668,11 @@ bool drawItemType(eItem it, cell *c, const transmatrix& V, int icol, int pticks,
|
|||||||
|
|
||||||
else if(it == itCompass) {
|
else if(it == itCompass) {
|
||||||
transmatrix V2;
|
transmatrix V2;
|
||||||
if(geometry == gCrystal)
|
if(geometry == gCrystal) {
|
||||||
|
if(crystal::compass_probability <= 0) return true;
|
||||||
|
if(cwt.at->land == laCamelot && celldistAltRelative(cwt.at) < 0) crystal::used_compass_inside = true;
|
||||||
V2 = V * spin(crystal::compass_angle() + M_PI);
|
V2 = V * spin(crystal::compass_angle() + M_PI);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
cell *c1 = c ? findcompass(c) : NULL;
|
cell *c1 = c ? findcompass(c) : NULL;
|
||||||
if(c1) {
|
if(c1) {
|
||||||
|
12
help.cpp
12
help.cpp
@ -710,6 +710,18 @@ string generateHelpForLand(eLand l) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(l == laCamelot && geometry == gCrystal) {
|
||||||
|
if(!crystal::used_compass_inside) s += XLAT("\nSpecial conduct (still valid)\n");
|
||||||
|
else s += XLAT("\nSpecial conduct failed:\n");
|
||||||
|
|
||||||
|
s += XLAT(
|
||||||
|
"Do not use compases.\n\n");
|
||||||
|
|
||||||
|
s += XLAT("Crystal Camelot is an octahedron in 'pure' 3D crystal geometry (and a similar polytope in other pure crystals), "
|
||||||
|
"and an Euclidean ball in bitruncated/Goldberg crystals.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
auto lv = land_validity(specialland);
|
auto lv = land_validity(specialland);
|
||||||
if(lv.flags & lv::display_in_help)
|
if(lv.flags & lv::display_in_help)
|
||||||
s += "\n\n" + XLAT(lv.msg);
|
s += "\n\n" + XLAT(lv.msg);
|
||||||
|
@ -267,6 +267,7 @@ void initgame() {
|
|||||||
timerghost = true;
|
timerghost = true;
|
||||||
truelotus = 0;
|
truelotus = 0;
|
||||||
survivalist = true;
|
survivalist = true;
|
||||||
|
crystal::used_compass_inside = false;
|
||||||
got_survivalist = false;
|
got_survivalist = false;
|
||||||
#if CAP_INV
|
#if CAP_INV
|
||||||
if(inv::on) inv::init();
|
if(inv::on) inv::init();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user