mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	ls:: Galapagos now works and is fun in H/V
This commit is contained in:
		
							
								
								
									
										23
									
								
								landgen.cpp
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								landgen.cpp
									
									
									
									
									
								
							| @@ -275,6 +275,11 @@ EX void place_random_gate_continuous(cell *c) { | ||||
|   else toggleGates(c, waOpenPlate, 1); | ||||
|   } | ||||
|  | ||||
| EX void gen_baby_tortoise(cell *c) { | ||||
|   c->item = itBabyTortoise; | ||||
|   tortoise::babymap[c] = tortoise::getb(c) ^ tortoise::getRandomBits(); | ||||
|   } | ||||
|  | ||||
| EX void giantLandSwitch(cell *c, int d, cell *from) { | ||||
|   bool fargen = d == 9; | ||||
|   switch(c->land) { | ||||
| @@ -1060,10 +1065,8 @@ EX void giantLandSwitch(cell *c, int d, cell *from) { | ||||
|             else c2->mondir = NODIR; | ||||
|             } | ||||
|           } | ||||
|         if(!c->monst && !ls::single() && !racing::on && !yendor::on && !randomPatternsMode && !peace::on && !euclid && hrand(4000) < 10 && !safety) { | ||||
|           c->item = itBabyTortoise; | ||||
|           tortoise::babymap[c] = tortoise::getb(c) ^ tortoise::getRandomBits(); | ||||
|           } | ||||
|         if(!c->monst && !ls::single() && !racing::on && !yendor::on && !randomPatternsMode && !peace::on && !euclid && hrand(4000) < 10 && !safety)  | ||||
|           gen_baby_tortoise(c); | ||||
|         } | ||||
|       break; | ||||
|      | ||||
| @@ -1786,12 +1789,18 @@ EX void giantLandSwitch(cell *c, int d, cell *from) { | ||||
|           } | ||||
|         } | ||||
|       ONEMPTY { | ||||
|         if(hrand_monster(4000) < (peace::on ? 750 : 50 + items[itBabyTortoise]*2 + yendor::hardness() * 6) && !safety) { | ||||
|         if(hrand_monster(ls::hv_structure() ? 8000 : 4000) < (peace::on ? 750 : 50 + items[itBabyTortoise]*2 + yendor::hardness() * 6) && !safety) { | ||||
|           c->monst = moTortoise; | ||||
|           c->hitpoints = 3; | ||||
|           auto val = tortoise::getb(c); | ||||
|           tortoise::emap[c] = val; | ||||
|           } | ||||
|         else if(ls::hv_structure() && hrand(10000) <= 250) { | ||||
|           c->item = itCompass; | ||||
|           } | ||||
|         else if(ls::hv_structure() && hrand_monster(10000) <= 15) { | ||||
|           c->monst = moPirate; | ||||
|           } | ||||
|  | ||||
|         int chance = 50 + items[itBabyTortoise]*2; | ||||
|         if(quickfind(laTortoise)) chance += 150; | ||||
| @@ -2467,7 +2476,9 @@ EX void giantLandSwitch(cell *c, int d, cell *from) { | ||||
|           int freq = 4000; | ||||
|           if(ls::single() && specialland == laCrossroads5 && !racing::on) | ||||
|             freq = 250; | ||||
|           if(ls::hv_structure() && hrand(10000) < 10) { c->monst = moPirate; } | ||||
|           if(ls::hv_structure() && hrand(10000) < 10 && !c->monst) { c->monst = moPirate; } | ||||
|           if(ls::horodisk_structure() && !c->item && hrand(10000) < 10 && !safety) | ||||
|             gen_baby_tortoise(c); | ||||
|           if(hrand_monster(freq) < items[itHyperstone] && !c->monst) { | ||||
|             // only interesting monsters here! | ||||
|             eMonster cm = crossroadsMonster(); | ||||
|   | ||||
| @@ -591,6 +591,8 @@ EX eLand getNewLand(eLand old, eLand old2 IS(laBarrier)) { | ||||
|     if(old == laOcean) tab[cnt++] = laCrossroads2; | ||||
|     } | ||||
|  | ||||
|   if(ls::horodisk_structure() && tortoise::seek()) LIKELY tab[cnt++] = laTortoise; | ||||
|    | ||||
|   eLand n = old; | ||||
|   while(incompatible(n, old) || incompatible(n, old2) || !isLandIngame(n)) { | ||||
|     n = tab[hrand(cnt)]; | ||||
| @@ -861,7 +863,7 @@ EX land_validity_t& land_validity(eLand l) { | ||||
|     if(l == laMirrorOld && !shmup::on) return not_implemented; | ||||
|     } | ||||
|  | ||||
|   if(ls::hv_structure() && among(l, laPrairie, laIvoryTower, laDungeon, laEndorian, laBrownian, laTortoise, laElementalWall, laWarpCoast, laWarpSea, laHive, laPrincessQuest)) return not_in_hv; | ||||
|   if(ls::hv_structure() && among(l, laPrairie, laIvoryTower, laDungeon, laEndorian, laBrownian, laElementalWall, laWarpCoast, laWarpSea, laHive, laPrincessQuest)) return not_in_hv; | ||||
|   if(ls::voronoi_structure() && among(l, laCamelot, laWhirlpool, laClearing)) return not_in_hv; | ||||
|   if(ls::horodisk_structure() && l != laCrossroads && isCrossroads(l)) return not_in_hv; | ||||
|    | ||||
|   | ||||
| @@ -1045,7 +1045,7 @@ bool pcmove::attack() { | ||||
|     changes.ccell(c2); | ||||
|     c2->stuntime = 2; | ||||
|     changes.at_commit([c2] { | ||||
|       items[itBabyTortoise] += 4; | ||||
|       items[itBabyTortoise] += (ls::hv_structure() ? 9 : 4); | ||||
|       updateHi(itBabyTortoise, items[itBabyTortoise]); | ||||
|       c2->item = itBabyTortoise; | ||||
|       tortoise::babymap[c2] = tortoise::seekbits; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue