diff --git a/data/json/monsters/zed-pupating.json b/data/json/monsters/zed-pupating.json index f91e5faf54bd4..cd6e145d79967 100644 --- a/data/json/monsters/zed-pupating.json +++ b/data/json/monsters/zed-pupating.json @@ -12,7 +12,7 @@ "bleed_rate": 50, "special_attacks": [ { "type": "bite", "cooldown": 3 } ], "regenerates": 10, - "extend": { "flags": [ "SLUDGETRAIL", "SLUDGEPROOF" ] } + "extend": { "flags": [ "SMALLSLUDGETRAIL", "SLUDGEPROOF" ] } }, { "id": "mon_zombie_crawler_pupa", @@ -44,7 +44,7 @@ "bleed_rate": 50, "special_attacks": [ { "type": "bite", "cooldown": 3 } ], "regenerates": 10, - "extend": { "flags": [ "SLUDGETRAIL", "SLUDGEPROOF" ] } + "extend": { "flags": [ "SMALLSLUDGETRAIL", "SLUDGEPROOF" ] } }, { "id": "mon_zombie_pupa", @@ -73,7 +73,7 @@ "speed": 95, "regenerates": 10, "upgrades": { "half_life": 21, "into_group": "GROUP_BRUTE_PUPA" }, - "extend": { "flags": [ "SLUDGETRAIL", "SLUDGEPROOF" ] } + "extend": { "flags": [ "SMALLSLUDGETRAIL", "SLUDGEPROOF" ] } }, { "id": "mon_brute_pupa", @@ -137,7 +137,7 @@ "REVIVES", "PUSH_MON", "PUSH_VEH", - "SLUDGETRAIL", + "SMALLSLUDGETRAIL", "SLUDGEPROOF", "FILTHY" ] @@ -195,7 +195,7 @@ "REVIVES", "PUSH_MON", "PUSH_VEH", - "SLUDGETRAIL", + "SMALLSLUDGETRAIL", "SLUDGEPROOF", "FILTHY" ] @@ -215,7 +215,7 @@ "bleed_rate": 0, "vision_day": 8, "vision_night": 15, - "extend": { "flags": [ "SLUDGETRAIL", "SLUDGEPROOF", "NIGHT_INVISIBILITY" ] } + "extend": { "flags": [ "SMALLSLUDGETRAIL", "SLUDGEPROOF", "NIGHT_INVISIBILITY" ] } }, { "id": "mon_zombie_pupa_shady", diff --git a/doc/JSON_FLAGS.md b/doc/JSON_FLAGS.md index 7c75993b77649..af0ad7b09603b 100644 --- a/doc/JSON_FLAGS.md +++ b/doc/JSON_FLAGS.md @@ -971,6 +971,7 @@ Other monster flags. - ```SHEARABLE``` This monster can be sheared for wool. - ```SLUDGEPROOF``` Ignores the effect of sludge trails. - ```SLUDGETRAIL``` Causes the monster to leave a sludge trap trail when moving. +- ```SMALLSLUDGETRAIL``` Causes the monster to occasionally leave a 1-tile sludge trail when moving. - ```SMELLS``` It can smell you. - ```STUMBLES``` Stumbles in its movement. - ```SUNDEATH``` Dies in full sunlight. diff --git a/src/monmove.cpp b/src/monmove.cpp index 3ea2800dd6ef2..7fdc4face1c6d 100644 --- a/src/monmove.cpp +++ b/src/monmove.cpp @@ -1755,6 +1755,12 @@ bool monster::move_to( const tripoint &p, bool force, bool step_on_critter, } } + if( has_flag ( MF_SMALLSLUDGETRAIL ) ) { + if( one_in( 2 ) ) { + here.add_field( pos(), fd_sludge, 1 ); + } + } + if( has_flag( MF_DRIPS_NAPALM ) ) { if( one_in( 10 ) ) { // if it has more napalm, drop some and reduce ammo in tank diff --git a/src/monstergenerator.cpp b/src/monstergenerator.cpp index 352c976c45909..69caaafe9ca9c 100644 --- a/src/monstergenerator.cpp +++ b/src/monstergenerator.cpp @@ -130,6 +130,7 @@ std::string enum_to_string( m_flag data ) case MF_FIREPROOF: return "FIREPROOF"; case MF_SLUDGEPROOF: return "SLUDGEPROOF"; case MF_SLUDGETRAIL: return "SLUDGETRAIL"; + case MF_SMALLSLUDGETRAIL: return "SMALLSLUDGETRAIL"; case MF_COLDPROOF: return "COLDPROOF"; case MF_FIREY: return "FIREY"; case MF_QUEEN: return "QUEEN"; diff --git a/src/mtype.h b/src/mtype.h index 09d71eba54263..56876bf2d4fb5 100644 --- a/src/mtype.h +++ b/src/mtype.h @@ -100,6 +100,7 @@ enum m_flag : int { MF_FIREPROOF, // Immune to fire MF_SLUDGEPROOF, // Ignores the effect of sludge trails MF_SLUDGETRAIL, // Causes monster to leave a sludge trap trail when moving + MF_SMALLSLUDGETRAIL, // Causes monster to leave a low intensity, 1 tile sludge pool approximately every other tile when moving MF_COLDPROOF, // Immune to cold damage MF_FIREY, // Burns stuff and is immune to fire MF_QUEEN, // When it dies, local populations start to die off too