mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 14:02:59 +00:00 
			
		
		
		
	Hyperstone-optional lands are now clearly marked in the Overview, and the Hunting Grounds and Galapagos are now optional in Euclidean
This commit is contained in:
		
							
								
								
									
										9
									
								
								help.cpp
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								help.cpp
									
									
									
									
									
								
							| @@ -289,6 +289,8 @@ string forbidden_unmarked() { | |||||||
|   return XLAT("When the 'mark heptagons' option (hotkey '7') is on, moves between unmarked cells are forbidden."); |   return XLAT("When the 'mark heptagons' option (hotkey '7') is on, moves between unmarked cells are forbidden."); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | string hyperstone_optional = "Completing the quest in this land is not necessary for the Hyperstone Quest."; | ||||||
|  |  | ||||||
| EX string generateHelpForItem(eItem it) { | EX string generateHelpForItem(eItem it) { | ||||||
|  |  | ||||||
|    string help = helptitle(XLATN(iinf[it].name), iinf[it].color); |    string help = helptitle(XLATN(iinf[it].name), iinf[it].color); | ||||||
| @@ -465,6 +467,9 @@ EX string generateHelpForItem(eItem it) { | |||||||
|     help += "\n\n" + XLAT(inv::helptext); |     help += "\n\n" + XLAT(inv::helptext); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |   if(in_full_game() && !required_for_hyperstones(it) && it != itHyperstone) | ||||||
|  |     help += "\n\n" + XLAT(hyperstone_optional); | ||||||
|  |      | ||||||
| #if CAP_DAILY | #if CAP_DAILY | ||||||
|   if(daily::on && it == itOrbLove) |   if(daily::on && it == itOrbLove) | ||||||
|     help += "\n\n" + XLAT("The Orb of Love gives no bonus score in the Strange Challenge."); |     help += "\n\n" + XLAT("The Orb of Love gives no bonus score in the Strange Challenge."); | ||||||
| @@ -642,8 +647,8 @@ string generateHelpForLand(eLand l) { | |||||||
|   if(isPureSealand(l))  |   if(isPureSealand(l))  | ||||||
|     s += XLAT("Aquatic region -- accessible only from coastal regions and other aquatic regions.\n"); |     s += XLAT("Aquatic region -- accessible only from coastal regions and other aquatic regions.\n"); | ||||||
|      |      | ||||||
|   if(l == laCamelot || l == laPrincessQuest) |   if(in_full_game() && !required_for_hyperstones(treasureType(l)) && !isCrossroads(l)) | ||||||
|     s += XLAT("Completing the quest in this land is not necessary for the Hyperstone Quest."); |     s += XLAT(hyperstone_optional); | ||||||
|  |  | ||||||
|   int rl = isRandland(l); |   int rl = isRandland(l); | ||||||
|   if(rl == 2) |   if(rl == 2) | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								landlock.cpp
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								landlock.cpp
									
									
									
									
									
								
							| @@ -120,14 +120,23 @@ EX bool landUnlocked(eLand l) { | |||||||
|   return false; |   return false; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | EX bool required_for_hyperstones(eItem ttype) { | ||||||
|  |   if(ttype == itHyperstone) | ||||||
|  |     return false; | ||||||
|  |   if(among(ttype, itHolyGrail, itSavedPrincess)) | ||||||
|  |     return false; | ||||||
|  |   if(euclid && among(ttype, itBabyTortoise, itHunting)) | ||||||
|  |     return false; | ||||||
|  |   return true; | ||||||
|  |   } | ||||||
|  |  | ||||||
| EX void countHyperstoneQuest(int& i1, int& i2) { | EX void countHyperstoneQuest(int& i1, int& i2) { | ||||||
|   i1 = 0; i2 = 0; |   i1 = 0; i2 = 0; | ||||||
|   generateLandList(isLandIngame); |   generateLandList(isLandIngame); | ||||||
|   for(eLand l: landlist) if(l != laCamelot && l != laPrincessQuest) { |   for(eLand l: landlist) { | ||||||
|     eItem ttype = treasureType(l); |     eItem ttype = treasureType(l); | ||||||
|     if(ttype != itHyperstone) { |     if(!required_for_hyperstones(ttype)) continue; | ||||||
|       i2++; if(items[ttype] >= R10) i1++; |     i2++; if(items[ttype] >= R10) i1++; | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -109,7 +109,7 @@ EX void showOverview() { | |||||||
|     else if(items[it]) col = 0xC0C0C0; |     else if(items[it]) col = 0xC0C0C0; | ||||||
|     else col = BLACKISH; |     else col = BLACKISH; | ||||||
|     int c8 = (vf+2)/3; |     int c8 = (vf+2)/3; | ||||||
|     if(displayfrZH(xr*24-c8*6, i0, 1, vf-4, its(items[it]), col, 16)) |     if(displayfrZH(xr*24-c8*6, i0, 1, vf-4, (required_for_hyperstones(it) ? "" : "*") + its(items[it]), col, 16)) | ||||||
|       getcstat = 2000+it; |       getcstat = 2000+it; | ||||||
|     if(!cheater) |     if(!cheater) | ||||||
|     if(displayfrZH(xr*24, i0, 1, vf-4, its(hiitems[modecode()][it]), col, 16)) |     if(displayfrZH(xr*24, i0, 1, vf-4, its(hiitems[modecode()][it]), col, 16)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue