From 52e7726b235fbdbf7c646ae204718e7667c9bd6d Mon Sep 17 00:00:00 2001 From: fernerr <35879136+fernerr@users.noreply.github.com> Date: Wed, 29 May 2019 20:28:59 +0200 Subject: [PATCH] Replaces the sprites of hivebots and enhances/fixes their behaviour (#6262) Replaced the hivebot sprites (Thanks to Kyres1) as suggested in this thread. https://forums.aurorastation.org/topic/11610-hivebotspace-bear-resprite/ Hivebot beacons now spawn in as one of three different variants, their only difference right now is the type of defensive weaponry they use. (Rapid firing taser, Radioactive/toxic beam or an incendiary beam) Hivebot beacons keep track of their spawned bots, halting further spawns if the number of existing bots becomes that of the max allowed. Added a red variant of the hivebot sprite, to easily differentiate between the melee and ranged variants Hivebots are now affected by emps. The timer now works properly, the hivebots will all not spawn at once. New: Added a snoozing var, that if set to 1 will not allow the beacon to spawn bots until it has spotted an enemy. Will possibly be used in future mapping stuff related to dungeons and the like. The balancing is something I'm torn on and will likely tinker with further in the future, pending feedback. --- .../effects/projectile/projectile_impact.dm | 4 + .../effects/projectile/projectile_muzzle.dm | 8 +- .../effects/projectile/projectile_tracer.dm | 4 + code/modules/events/infestation.dm | 10 +- .../living/simple_animal/hostile/hivebot.dm | 292 ++++++++++++++---- .../artifact/artifact_unknown.dm | 2 +- .../[Ferner]-[060419-sprites_hivebots].yml | 42 +++ icons/mob/npc/hivebot.dmi | Bin 16260 -> 21615 bytes 8 files changed, 292 insertions(+), 70 deletions(-) create mode 100644 html/changelogs/[Ferner]-[060419-sprites_hivebots].yml diff --git a/code/game/objects/effects/projectile/projectile_impact.dm b/code/game/objects/effects/projectile/projectile_impact.dm index ef6ac8659ed..125f4c8b4fe 100644 --- a/code/game/objects/effects/projectile/projectile_impact.dm +++ b/code/game/objects/effects/projectile/projectile_impact.dm @@ -71,3 +71,7 @@ name = "xray impact" icon_state = "impact_tachyon" light_color = LIGHT_COLOR_RED + +/obj/effect/projectile/impact/bfg + icon_state = "impact_bfg" + light_color = LIGHT_COLOR_GREEN diff --git a/code/game/objects/effects/projectile/projectile_muzzle.dm b/code/game/objects/effects/projectile/projectile_muzzle.dm index a7c479095fa..702f4643204 100644 --- a/code/game/objects/effects/projectile/projectile_muzzle.dm +++ b/code/game/objects/effects/projectile/projectile_muzzle.dm @@ -7,7 +7,7 @@ light_color = LIGHT_COLOR_RED /obj/effect/projectile/muzzle/laser/blue - icon_state = "muzzle_laser_blue" + icon_state = "muzzle_blue" light_color = LIGHT_COLOR_BLUE /obj/effect/projectile/muzzle/disabler @@ -70,4 +70,8 @@ light_color = LIGHT_COLOR_FIRE /obj/effect/projectile/muzzle/gauss - icon_state = "muzzle_gauss" \ No newline at end of file + icon_state = "muzzle_gauss" + +/obj/effect/projectile/muzzle/bfg + icon_state = "muzzle_bfg" + light_color = LIGHT_COLOR_GREEN diff --git a/code/game/objects/effects/projectile/projectile_tracer.dm b/code/game/objects/effects/projectile/projectile_tracer.dm index 62776d7fcc1..d36fde88a50 100644 --- a/code/game/objects/effects/projectile/projectile_tracer.dm +++ b/code/game/objects/effects/projectile/projectile_tracer.dm @@ -82,3 +82,7 @@ name = "particle beam" icon_state = "invisible" light_color = LIGHT_COLOR_VIOLET + +/obj/effect/projectile/tracer/bfg + icon_state = "bfg" + light_color = LIGHT_COLOR_GREEN diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index 287c53c013b..a611d4389c1 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -48,9 +48,15 @@ switch(chosen_mob) if(INFESTATION_HIVEBOTS) - event_name = "Minor Hivebot Invasion" + event_name = "Hivebot Invasion" chosen_verb = "have invaded" - chosen_mob_types += /mob/living/simple_animal/hostile/hivebot/tele + var/list/beacon_types = list( + /mob/living/simple_animal/hostile/hivebotbeacon = 1, + /mob/living/simple_animal/hostile/hivebotbeacon/toxic = 1, + /mob/living/simple_animal/hostile/hivebotbeacon/incendiary = 1 + ) + chosen_mob_types += pickweight(beacon_types) + if(INFESTATION_SPACE_BATS) event_name = "Space Bat Nest" chosen_verb = "have been breeding in" diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index a5946f70a8c..18122684e70 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -2,24 +2,61 @@ #define RANGED 2 #define RAPID 3 -/obj/item/projectile/hivebotbullet +/obj/item/projectile/bullet/pistol/hivebotspike + name = "spike" damage = 10 - damage_type = BRUTE + sharp = 1 + embed = 0 + +/obj/item/projectile/bullet/pistol/hivebotspike/needle + name = "needle" + damage = 5 + +/obj/item/projectile/beam/hivebotdischarge + name = "electrical discharge" + damage = 3 + damage_type = HALLOSS + taser_effect = 1 + agony = 20 + nodamage = 1 + armor_penetration = 30 + muzzle_type = /obj/effect/projectile/muzzle/stun + tracer_type = /obj/effect/projectile/tracer/stun + impact_type = /obj/effect/projectile/impact/stun + +/obj/item/projectile/beam/hivebotbeam + name = "concentrated gamma burst" + damage = 12 + damage_type = TOX + irradiate = 30 + agony = 30 + armor_penetration = 30 + muzzle_type = /obj/effect/projectile/muzzle/bfg + tracer_type = /obj/effect/projectile/tracer/bfg + impact_type = /obj/effect/projectile/impact/bfg + +/obj/item/projectile/beam/hivebotincendiary + name = "archaic energy welder" + damage = 10 + incinerate = 3 + muzzle_type = /obj/effect/projectile/muzzle/laser/blue + tracer_type = /obj/effect/projectile/tracer/laser/blue + impact_type = /obj/effect/projectile/impact/laser/blue /mob/living/simple_animal/hostile/hivebot name = "Hivebot" - desc = "A small robot" + desc = "A primitive in design, hovering robot, with some menacing looking blades jutting out from it. It bears no manufacturer markings of any kind." icon = 'icons/mob/npc/hivebot.dmi' - icon_state = "basic" - icon_living = "basic" - icon_dead = "basic" - health = 15 - maxHealth = 15 - melee_damage_lower = 2 - melee_damage_upper = 3 - attacktext = "clawed" - projectilesound = 'sound/weapons/gunshot/gunshot1.ogg' - projectiletype = /obj/item/projectile/hivebotbullet + icon_state = "hivebot" + health = 10 + maxHealth = 10 + harm_intent_damage = 3 + melee_damage_lower = 10 + melee_damage_upper = 10 + break_stuff_probability = 25 + attacktext = "slashed" + projectilesound = 'sound/weapons/bladeslice.ogg' + projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike faction = "hivebot" min_oxy = 0 max_oxy = 0 @@ -31,85 +68,210 @@ max_n2 = 0 minbodytemp = 0 speed = 4 - tameable = FALSE + flying = 1 + see_in_dark = 8 + pass_flags = PASSTABLE + attack_emote = "focuses on" + var/mob/living/simple_animal/hostile/hivebotbeacon/linked_parent = null /mob/living/simple_animal/hostile/hivebot/range name = "Hivebot" - desc = "A smallish robot, this one is armed!" + desc = "A primitive in design, hovering robot, with a simple looking launcher sticking out of it. It bears no manufacturer markings of any kind." + icon_state = "hivebotranged" ranged = 1 smart = TRUE /mob/living/simple_animal/hostile/hivebot/range/rapid + projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike/needle rapid = 1 -/mob/living/simple_animal/hostile/hivebot/range/strong - name = "Strong Hivebot" - desc = "A robot, this one is armed and looks tough!" - health = 80 +//Creates a reference to its parent beacon on init. +/mob/living/simple_animal/hostile/hivebot/Initialize(mapload,mob/living/simple_animal/hostile/hivebot/hivebotbeacon) + if(hivebotbeacon) + linked_parent = hivebotbeacon + .=..() /mob/living/simple_animal/hostile/hivebot/death() - ..() - visible_message("[src] blows apart!") - new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc) - spark(src, 3, alldirs) + ..(null,"blows apart!") + var/T = get_turf(src) + new /obj/effect/gibspawner/robot(T) + spark(T, 1, alldirs) + qdel(src) + +/mob/living/simple_animal/hostile/hivebot/Destroy() + . = ..() + if(linked_parent) + linked_parent.linked_bots -= src + +/mob/living/simple_animal/hostile/hivebot/think() + . =..() + if(stance == HOSTILE_STANCE_IDLE) + icon_state = "[initial(icon_state)]" + else + icon_state = "[initial(icon_state)]_armed" + +/mob/living/simple_animal/hostile/hivebot/proc/wakeup() + stance = HOSTILE_STANCE_IDLE + +/mob/living/simple_animal/hostile/hivebot/emp_act(severity) + LoseTarget() + stance = HOSTILE_STANCE_TIRED + addtimer(CALLBACK(src, .proc/wakeup), 150) + if(severity == 1.0) + apply_damage(10) + +/mob/living/simple_animal/hostile/hivebotbeacon + name = "Hivebot beacon" + desc = "An odd and primitive looking machine. It emanates of strange and powerful energies. It bears no manufacturer markings of any kind." + icon = 'icons/mob/npc/hivebot.dmi' + icon_state = "hivebotbeacon_active" + icon_living = "hivebotbeacon_active" + health = 200 + maxHealth = 200 + projectilesound = 'sound/weapons/taser2.ogg' + projectiletype = /obj/item/projectile/beam/hivebotdischarge + wander = 0 + status_flags = 0 + faction = "hivebot" + ranged = 1 + rapid = 1 + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 + speed = -10 + see_in_dark = 8 + smart = 1 + destroy_surroundings = 0 + var/bot_type = NORMAL // type of bot, 1 is normal, 2 is ranged, 3 is rapid ranged + var/bot_amt = 48 //Number of total bots that are spawned before the beacon disappears completely. + var/max_bots = 16 //Number of bots linked to this beacon specifically that can exist, before spawning more is halted. + var/list/linked_bots = list() + var/spawn_delay = 300 + var/activated = 0 + var/snoozing = 0 //If set to 1, it will be prevented from spawning bots, unless it spots an enemy. + attack_emote = "focuses on" + +/mob/living/simple_animal/hostile/hivebotbeacon/toxic + projectiletype = /obj/item/projectile/beam/hivebotbeam + projectilesound = 'sound/weapons/laser3.ogg' + rapid = 0 + +/mob/living/simple_animal/hostile/hivebotbeacon/incendiary + projectiletype = /obj/item/projectile/beam/hivebotincendiary + projectilesound = 'sound/weapons/plasma_cutter.ogg' + rapid = 0 + +/mob/living/simple_animal/hostile/hivebotbeacon/Initialize(mapload) + .=..() + if(!mapload) + var/datum/effect/effect/system/smoke_spread/S = new /datum/effect/effect/system/smoke_spread() + S.set_up(5, 0, src.loc) + S.start() + + icon_state = "hivebotbeacon_off" + visible_message("[src] warps in!") + playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) + +/mob/living/simple_animal/hostile/hivebotbeacon/death() + ..(null,"blows apart and erupts in a cloud of noxious smoke!") + new /obj/effect/decal/cleanable/greenglow(src.loc) + var/T = get_turf(src) + new /obj/effect/gibspawner/robot(T) + spark(T, 3, alldirs) qdel(src) return -/mob/living/simple_animal/hostile/hivebot/tele//this still needs work - name = "Beacon" - desc = "Some odd beacon thing" - icon_state = "def_radar-off" - icon_living = "def_radar-off" - health = 200 - maxHealth = 200 - status_flags = 0 - anchored = 1 - stop_automated_movement = 1 - var/bot_type = NORMAL // type of bot, 1 is normal, 2 is ranged, 3 is rapid rnaged. - var/bot_amt = 10 - var/spawn_delay = 600 +/mob/living/simple_animal/hostile/hivebotbeacon/Destroy() + for (var/mob/living/simple_animal/hostile/hivebot/latest_child in linked_bots) + latest_child.linked_parent = null + linked_bots.Cut() + var/datum/effect/effect/system/smoke_spread/S = new /datum/effect/effect/system/smoke_spread() + S.set_up(5, 0, src.loc) + S.start() + .=..() -/mob/living/simple_animal/hostile/hivebot/tele/New() - ..() - var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread() - smoke.set_up(5, 0, src.loc) - smoke.start() - visible_message("\The [src] warps in!") - playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1) +/mob/living/simple_animal/hostile/hivebotbeacon/think() + . =..() + if(stance != HOSTILE_STANCE_IDLE && activated == 0) + visible_message("[src] suddenly activates!") + icon_state = "hivebotbeacon_raising" + addtimer(CALLBACK(src, .proc/reset_activation), 16) + else if(activated == 1) + icon_state = "hivebotbeacon_active" -/mob/living/simple_animal/hostile/hivebot/tele/proc/warpbots() +/mob/living/simple_animal/hostile/hivebotbeacon/MoveToTarget() + ..() + walk(src, 0) +/mob/living/simple_animal/hostile/hivebotbeacon/proc/reset_activation() + icon_state = "hivebotbeacon_active" + activated = 1 + snoozing = 0 + +/mob/living/simple_animal/hostile/hivebotbeacon/emp_act(severity) + LoseTarget() + stance = HOSTILE_STANCE_TIRED + addtimer(CALLBACK(src, .proc/wakeup), 200) + if(severity == 1.0) + apply_damage(80) + icon_state = "hivebotbeacon_off" + activated = -1 + +/mob/living/simple_animal/hostile/hivebotbeacon/proc/wakeup() + stance = HOSTILE_STANCE_IDLE + activated = 0 + +/mob/living/simple_animal/hostile/hivebotbeacon/proc/warpbots() if(!bot_amt) + visible_message("[src] disappears in a cloud of smoke!") + playsound(src.loc, 'sound/effects/teleport.ogg', 25, 1) + new /obj/effect/decal/cleanable/greenglow(src.loc) qdel(src) return - icon_state = "def_radar" - visible_message("\The [src] turns on!") - - switch(bot_type) - if(NORMAL) - new /mob/living/simple_animal/hostile/hivebot(get_turf(src)) - if(RANGED) - new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src)) - if(RAPID) - new /mob/living/simple_animal/hostile/hivebot/range/rapid(get_turf(src)) - - if(prob(30)) - if(prob(20)) - bot_type = RAPID + if(activated != 1) + if(activated == -1) + return else - bot_type = RANGED - else - bot_type = NORMAL - bot_amt-- - addtimer(CALLBACK(src, .proc/warpbots, spawn_delay)) + icon_state = "hivebotbeacon_raising" + sleep(16) + icon_state = "hivebotbeacon_active" + sleep(4) + activated = 1 + if(linked_bots.len < max_bots) + visible_message("[src] radiates with energy!") + var/mob/living/simple_animal/hostile/hivebot/latest_child + switch(bot_type) + if(NORMAL) + latest_child = new /mob/living/simple_animal/hostile/hivebot(get_turf(src), src) + if(RANGED) + latest_child = new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src), src) + if(RAPID) + latest_child = new /mob/living/simple_animal/hostile/hivebot/range/rapid(get_turf(src), src) + linked_bots += latest_child //Adds the spawned hivebot to the list of the beacon's children. + if(prob(30)) + if(prob(65)) + bot_type = RANGED + else + bot_type = RAPID + else + bot_type = NORMAL + bot_amt-- + if(bot_amt>0 && linked_bots.len < max_bots) + addtimer(CALLBACK(src, .proc/warpbots), spawn_delay) -/mob/living/simple_animal/hostile/hivebot/tele/Life() +/mob/living/simple_animal/hostile/hivebotbeacon/Life() ..() if(stat == 0) - if(prob(2))//Might be a bit low, will mess with it likely + if((!snoozing) && (prob(2))) warpbots() #undef NORMAL diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index aaa162e1bb0..94e24e258da 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -285,7 +285,7 @@ /obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) if(istype(P,/obj/item/projectile/bullet) ||\ - istype(P,/obj/item/projectile/hivebotbullet)) + istype(P,/obj/item/projectile/bullet/pistol/hivebotspike)) if(my_effect.trigger == TRIGGER_FORCE) my_effect.ToggleActivate() if(secondary_effect && secondary_effect.trigger == TRIGGER_FORCE && prob(25)) diff --git a/html/changelogs/[Ferner]-[060419-sprites_hivebots].yml b/html/changelogs/[Ferner]-[060419-sprites_hivebots].yml new file mode 100644 index 00000000000..307b2e58266 --- /dev/null +++ b/html/changelogs/[Ferner]-[060419-sprites_hivebots].yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Ferner, Kyres1 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - imageadd: "Replaced the sprites of hivebots with new versions by Kyres1." + - tweak: "Tweaked, fixed and enhanced the behaviour of hivebot beacons." diff --git a/icons/mob/npc/hivebot.dmi b/icons/mob/npc/hivebot.dmi index cb13996361caab12bc902dec8ecbc1c1cde4d2e2..2b84314d8c8db90db282814c7e29ba3653bfe36d 100644 GIT binary patch literal 21615 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 BpmhKM literal 16260 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