mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	ru:: deadly traps
This commit is contained in:
		| @@ -368,6 +368,14 @@ struct enemy : public entity { | ||||
|   virtual int base_xp() { return 0; } | ||||
|   }; | ||||
|  | ||||
| struct vtrap : public entity { | ||||
|   xy siz() override { return {6, 18}; } | ||||
|   string glyph() override { return "^"; } | ||||
|   color_t color() override { return 0xD00000FF; } | ||||
|   void act() override; | ||||
|   string get_name() override { return "moving trap"; } | ||||
|   string get_help() override { return "A deadly but invisible trap."; } | ||||
|   }; | ||||
|  | ||||
| struct boar : public enemy { | ||||
|   xy siz() override { return {18, 18}; } | ||||
|   | ||||
| @@ -581,6 +581,21 @@ void bat::act() { | ||||
|     } | ||||
|   } | ||||
|  | ||||
| void vtrap::act() { | ||||
|   auto v = vel; | ||||
|   stay_on_screen(); | ||||
|   apply_walls_reflect(); | ||||
|   if(v.y * vel.y < 0) { | ||||
|     auto dat = get_dat(); | ||||
|     vel.y = (rand() % 100 + 100) * (vel.y > 0 ? 1 : -1) * 0.005 * dat.modv * dat.d; | ||||
|     } | ||||
|   apply_vel(); | ||||
|  | ||||
|   if(intersect(get_pixel_bbox(), m.get_pixel_bbox())) { | ||||
|     if(m.reduce_hp(200)) addMessage("The trap zaps you!"); | ||||
|     } | ||||
|   } | ||||
|  | ||||
| void kestrel::attacked(int dmg) { | ||||
|   enemy::attacked(dmg); | ||||
|   if(where.x < m.where.x) vel.x = -abs(vel.x); | ||||
|   | ||||
| @@ -870,25 +870,26 @@ OK | ||||
| MOVE 3 Central Cavern | ||||
| ROOM Central Cavern Bottom Right | ||||
| # wall | ||||
| . air | ||||
| - staircase | ||||
| A platform | ||||
| + door | ||||
| - staircase | ||||
| . air | ||||
| A platform | ||||
| B secret passage | ||||
| | column | ||||
| MAP | ||||
| ....#....#.-..........-....#A..........######################################### | ||||
| ....#....+..-........-.....#A..........######################################### | ||||
| ....#....+...-......-......#A...........######################################## | ||||
| ....##########AAAAA-########A............####################################### | ||||
| ....#.............-.#......#A.............###################################### | ||||
| ....#............-..#......#A.............###################################### | ||||
| ....#.............-.#......#A.............++.................................... | ||||
| ....#............-..#......#A.............+b.................................... | ||||
| ....#...........-...#......#A............####################################### | ||||
| ....#..........-....#......#A...........######################################## | ||||
| ....#.........-.....+......#A..........######################################### | ||||
| ....#........-......+......#A........########################################### | ||||
| ....###AAAAA-###############A......############################################# | ||||
| ....|......-....|..........|A.....############################################## | ||||
| ....|.....-.....|..........|A..################################################# | ||||
| ....#..........-....#......#A...........##.##################################### | ||||
| ....#.........-.....+......#A..........##..##################################### | ||||
| ....#........-......+......#A........####..##################################### | ||||
| ....###AAAAA-###############A......######..##################################### | ||||
| ....|......-....|..........|A.....#######..##################################### | ||||
| ....|.....-.....|..........|A..##########..##################################### | ||||
| ....|....-......|..........|A.################################################## | ||||
| ....|...-.......|..........|#################################################### | ||||
| ....|..-........|........####################################################### | ||||
| @@ -1376,3 +1377,77 @@ LOOT 1 | ||||
| fire | ||||
| The giant frog extract will let you produce fire! But you need to take it to a magic fountain first. | ||||
| OK | ||||
|  | ||||
| MOVE 4 Central Cavern Bottom Right | ||||
| ROOM Bouncy Spike Maze | ||||
| # wall | ||||
| - staircase | ||||
| . air | ||||
| A wall sign | ||||
| B bouncy wall | ||||
| X sign | ||||
| ^ spike | ||||
| | column | ||||
| MAP | ||||
| ################################################################################ | ||||
| ################################################################################ | ||||
| ################################################################################ | ||||
| ################################################################################ | ||||
| ................................................................................ | ||||
| ................................................................................ | ||||
| ####............................................................................ | ||||
| ####............................................................................ | ||||
| ####....XXX..................................................................... | ||||
| ####.....|...................................................................... | ||||
| ####.....|...................................................................... | ||||
| ####--########################################################################## | ||||
| ####--########################################################################## | ||||
| ####-b............................................^^^^^......^.................. | ||||
| ####--.................................^^.........^..........^.................. | ||||
| ####-b................^...........................^..........^.................. | ||||
| ####--#########--.............................^...^..........^.....--########### | ||||
| ####-b##########-.................................^..........^.....-############ | ||||
| ####--###########.................................^..........^.....############# | ||||
| ####-b###########............................................^.....############# | ||||
| ####--###########...........^^^^^^............^..............^.....############# | ||||
| ####-b###########...........^b^b^b...........................^.....############# | ||||
| ####--###########.............................^..............^.....############# | ||||
| ####-b###########..................................................############# | ||||
| ####..........###.^...........................^....................############# | ||||
| ####..........###..................................................############# | ||||
| ####..........###..................................................############# | ||||
| #######.......###.............................^....................############# | ||||
| ####..........###......................^^^^............^^^^^.......############# | ||||
| ####..........###.......................^b....^....................############# | ||||
| ####AAA##########BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB############# | ||||
| ################################################################################ | ||||
| ################################################################################ | ||||
| ################################################################################ | ||||
| ################################################################################ | ||||
| #b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b | ||||
| ################################################################################ | ||||
| #b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b | ||||
| ################################################################################ | ||||
| #b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b | ||||
| NPC 76 77 0 | ||||
| @Forest Sign | ||||
| DEADLY TRAPS AHEAD | ||||
| NPC 43 232 0 | ||||
| @Floor Engraving | ||||
| Ad Aerarium | ||||
| VTRAP 145 56 | ||||
| VTRAP 160 56 | ||||
| VTRAP 175 56 | ||||
| VTRAP 200 56 | ||||
| VTRAP 210 56 | ||||
| VTRAP 220 56 | ||||
| VTRAP 230 56 | ||||
| VTRAP 280 56 | ||||
| VTRAP 290 56 | ||||
| VTRAP 300 56 | ||||
| VTRAP 310 56 | ||||
| VTRAP 400 56 | ||||
| VTRAP 410 56 | ||||
| VTRAP 420 56 | ||||
| VTRAP 430 56 | ||||
| OK | ||||
|   | ||||
| @@ -186,6 +186,15 @@ void load_room(fhstream& f, cell *c) { | ||||
|         b->respawn = b->where; b->postfix(); | ||||
|         r.entities.emplace_back(std::move(b)); | ||||
|         } | ||||
|       else if(cap == "VTRAP") { | ||||
|         auto b = std::make_unique<vtrap>(); | ||||
|         sscanf(param.c_str(), "%lf%lf", &b->where.x, &b->where.y); | ||||
|         auto dat = b->get_dat(); | ||||
|         b->vel.x = 0; b->vel.y = 150 * 0.005 * dat.modv * dat.d; | ||||
|  | ||||
|         b->postfix(); | ||||
|         r.entities.emplace_back(std::move(b)); | ||||
|         } | ||||
|       else if(cap == "GRIDBUG") { | ||||
|         auto b = std::make_unique<gridbug>(); | ||||
|         sscanf(param.c_str(), "%lf%lf", &b->where.x, &b->where.y); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zeno Rogue
					Zeno Rogue