diff options
author | DracoOmega <draco_omega@live.com> | 2013-05-06 22:29:45 -0230 |
---|---|---|
committer | DracoOmega <draco_omega@live.com> | 2013-05-26 20:29:44 -0230 |
commit | a2da900e3c1d0e9cf3a9f1b7a358190b82058be0 (patch) | |
tree | 69dc58b57a4d1c00f45f9617819d46950a823e69 /crawl-ref/source/mapmark.h | |
parent | 5cbece94f41294ce3aa513c3f62fdd60497d6a40 (diff) | |
download | crawl-ref-a2da900e3c1d0e9cf3a9f1b7a358190b82058be0.tar.gz crawl-ref-a2da900e3c1d0e9cf3a9f1b7a358190b82058be0.zip |
Add cloud spread markers
These are map markers that create incrementally spreading clouds from
a source point, with a given maximal radius, total cloud volume, and
rate. New clouds will stop being produced when either the specific
number have been created, or all available areas within the max radius
are filled (this means that clouds can be made to flood corridors to
a wider distance than the same cloud volume would produce on open
terrain, similar to regular cloud spells)
An agent can be specified, and blame will be properly assigned based on
this, even if the agent dies before all the clouds are created.
Diffstat (limited to 'crawl-ref/source/mapmark.h')
-rw-r--r-- | crawl-ref/source/mapmark.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/crawl-ref/source/mapmark.h b/crawl-ref/source/mapmark.h index e3f03e03fe..3f62abbdf4 100644 --- a/crawl-ref/source/mapmark.h +++ b/crawl-ref/source/mapmark.h @@ -212,6 +212,33 @@ public: terrain_change_type change_type; }; +class map_cloud_spreader_marker : public map_marker +{ +public: + map_cloud_spreader_marker(const coord_def &pos = coord_def(0, 0), + cloud_type type = CLOUD_NONE, + int speed = 10, int amount = 35, + int max_radius = LOS_RADIUS, int dur = 10, + actor* agent = NULL); + + void write(writer &) const; + void read(reader &); + map_marker *clone() const; + string debug_describe() const; + + static map_marker *read(reader &, map_marker_type); + +public: + cloud_type ctype; + int speed; + int remaining; + int max_rad; + int duration; + int speed_increment; + mid_t agent_mid; + kill_category kcat; +}; + // A marker powered by Lua. class map_lua_marker : public map_marker, public dgn_event_listener { |