mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-06-27 07:22:51 +00:00
ru:: deadly traps
This commit is contained in:
parent
355d98f80d
commit
65f0ce2f0e
@ -368,6 +368,14 @@ struct enemy : public entity {
|
|||||||
virtual int base_xp() { return 0; }
|
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 {
|
struct boar : public enemy {
|
||||||
xy siz() override { return {18, 18}; }
|
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) {
|
void kestrel::attacked(int dmg) {
|
||||||
enemy::attacked(dmg);
|
enemy::attacked(dmg);
|
||||||
if(where.x < m.where.x) vel.x = -abs(vel.x);
|
if(where.x < m.where.x) vel.x = -abs(vel.x);
|
||||||
|
@ -870,25 +870,26 @@ OK
|
|||||||
MOVE 3 Central Cavern
|
MOVE 3 Central Cavern
|
||||||
ROOM Central Cavern Bottom Right
|
ROOM Central Cavern Bottom Right
|
||||||
# wall
|
# wall
|
||||||
. air
|
|
||||||
- staircase
|
|
||||||
A platform
|
|
||||||
+ door
|
+ door
|
||||||
|
- staircase
|
||||||
|
. air
|
||||||
|
A platform
|
||||||
|
B secret passage
|
||||||
| column
|
| column
|
||||||
MAP
|
MAP
|
||||||
....#....#.-..........-....#A..........#########################################
|
....#....#.-..........-....#A..........#########################################
|
||||||
....#....+..-........-.....#A..........#########################################
|
....#....+..-........-.....#A..........#########################################
|
||||||
....#....+...-......-......#A...........########################################
|
....#....+...-......-......#A...........########################################
|
||||||
....##########AAAAA-########A............#######################################
|
....##########AAAAA-########A............#######################################
|
||||||
....#.............-.#......#A.............######################################
|
....#.............-.#......#A.............++....................................
|
||||||
....#............-..#......#A.............######################################
|
....#............-..#......#A.............+b....................................
|
||||||
....#...........-...#......#A............#######################################
|
....#...........-...#......#A............#######################################
|
||||||
....#..........-....#......#A...........########################################
|
....#..........-....#......#A...........##.#####################################
|
||||||
....#.........-.....+......#A..........#########################################
|
....#.........-.....+......#A..........##..#####################################
|
||||||
....#........-......+......#A........###########################################
|
....#........-......+......#A........####..#####################################
|
||||||
....###AAAAA-###############A......#############################################
|
....###AAAAA-###############A......######..#####################################
|
||||||
....|......-....|..........|A.....##############################################
|
....|......-....|..........|A.....#######..#####################################
|
||||||
....|.....-.....|..........|A..#################################################
|
....|.....-.....|..........|A..##########..#####################################
|
||||||
....|....-......|..........|A.##################################################
|
....|....-......|..........|A.##################################################
|
||||||
....|...-.......|..........|####################################################
|
....|...-.......|..........|####################################################
|
||||||
....|..-........|........#######################################################
|
....|..-........|........#######################################################
|
||||||
@ -1376,3 +1377,77 @@ LOOT 1
|
|||||||
fire
|
fire
|
||||||
The giant frog extract will let you produce fire! But you need to take it to a magic fountain first.
|
The giant frog extract will let you produce fire! But you need to take it to a magic fountain first.
|
||||||
OK
|
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();
|
b->respawn = b->where; b->postfix();
|
||||||
r.entities.emplace_back(std::move(b));
|
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") {
|
else if(cap == "GRIDBUG") {
|
||||||
auto b = std::make_unique<gridbug>();
|
auto b = std::make_unique<gridbug>();
|
||||||
sscanf(param.c_str(), "%lf%lf", &b->where.x, &b->where.y);
|
sscanf(param.c_str(), "%lf%lf", &b->where.x, &b->where.y);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user