Skip to content

Commit

Permalink
Merge pull request #5077 from Colfer1/master
Browse files Browse the repository at this point in the history
Makes hivebots a bit cooler
  • Loading branch information
Kilmented authored Apr 29, 2024
2 parents 05a21b5 + 242aa80 commit 1a485ef
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 39 deletions.
7 changes: 3 additions & 4 deletions code/datums/components/crafting/recipes/recipes_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,10 @@
/datum/crafting_recipe/cheaphivebot
name = "Cheap Hivebot"
result = /mob/living/simple_animal/advanced/hivebot/cheap
reqs = list(/obj/item/stack/crafting/electronicparts = 4,
/obj/item/stack/crafting/metalparts = 4,
/obj/item/stack/crafting/goodparts = 2,
reqs = list(/obj/item/stack/crafting/electronicparts = 8,
/obj/item/stack/rods = 12,
/obj/item/stack/sheet/metal = 5)
tools = list(TOOL_WORKBENCH)
tools = list()
time = 30
subcategory = CAT_SCAVENGING
category = CAT_CRAFTING
Expand Down
21 changes: 11 additions & 10 deletions code/modules/WVM/wvm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -906,6 +906,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("Rift Repellent", /obj/item/packaged_respawner_blocker, 0), // let's encourage players to clear out areas constantly
new /datum/data/wasteland_equipment("Glowstick", /obj/item/flashlight/glowstick, 0),
new /datum/data/wasteland_equipment("Roadside flare", /obj/item/flashlight/flare, 0), // larp
new /datum/data/wasteland_equipment("Hand teleporter", /obj/item/hand_tele, 0),
)
highpop_list = list(
new /datum/data/wasteland_equipment("Drinking glass", /obj/item/reagent_containers/food/drinks/drinkingglass, 5),
Expand All @@ -916,7 +917,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("Craftsmanship Monthly", /obj/item/book/granter/trait/techno, 150),
new /datum/data/wasteland_equipment("Scav! Vol.1", /obj/item/book/granter/crafting_recipe/scav_one, 250),
new /datum/data/wasteland_equipment("Weapons of Texarkana", /obj/item/book/granter/crafting_recipe/ODF, 350),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 500),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 0),
)

/* These are shit, don't add them.
Expand Down Expand Up @@ -973,7 +974,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("E.N.H.A.N.C.E. Your Datapal: Health Scanner", /obj/item/cartridge/medical, 10),
new /datum/data/wasteland_equipment("E.N.H.A.N.C.E. Your Datapal: Signaler", /obj/item/cartridge/signal, 10),
new /datum/data/wasteland_equipment("V270-Band Signal Divination Device", /obj/item/pinpointer/validball_finder, 10),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 100),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 0),
)

/obj/machinery/mineral/wasteland_vendor/special
Expand Down Expand Up @@ -1077,9 +1078,9 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("Uranium x1", /obj/item/stack/sheet/mineral/uranium, 30),
new /datum/data/wasteland_equipment("Crystal x1", /obj/item/stack/ore/bluespace_crystal, 300),
new /datum/data/wasteland_equipment("Titanium x1", /obj/item/stack/sheet/mineral/titanium, 30),
new /datum/data/wasteland_equipment("Ferrite x20", /obj/item/stack/sheet/metal/twenty, 10),
new /datum/data/wasteland_equipment("Silicate x10", /obj/item/stack/sheet/glass/ten, 5),
new /datum/data/wasteland_equipment("Plasteel x1", /obj/item/stack/sheet/plasteel, 200),
new /datum/data/wasteland_equipment("Metal x20", /obj/item/stack/sheet/metal/twenty, 10),
new /datum/data/wasteland_equipment("Glass x10", /obj/item/stack/sheet/glass/ten, 5),
new /datum/data/wasteland_equipment("Plasteel x5", /obj/item/stack/sheet/plasteel/five, 200),
new /datum/data/wasteland_equipment("Plastic x5", /obj/item/stack/sheet/plastic/five, 25),
new /datum/data/wasteland_equipment("Electronic Scrap x3", /obj/item/stack/crafting/electronicparts/three, 3),
new /datum/data/wasteland_equipment("Metal Scrap x5", /obj/item/stack/crafting/metalparts/five, 5),
Expand All @@ -1102,9 +1103,9 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("Uranium x1", /obj/item/stack/sheet/mineral/uranium, 30),
new /datum/data/wasteland_equipment("Crystal x1", /obj/item/stack/ore/bluespace_crystal, 300),
new /datum/data/wasteland_equipment("Titanium x1", /obj/item/stack/sheet/mineral/titanium, 30),
new /datum/data/wasteland_equipment("Ferrite x20", /obj/item/stack/sheet/metal/twenty, 10),
new /datum/data/wasteland_equipment("Silicate x10", /obj/item/stack/sheet/glass/ten, 5),
new /datum/data/wasteland_equipment("Plasteel x1", /obj/item/stack/sheet/plasteel, 200),
new /datum/data/wasteland_equipment("Metal x20", /obj/item/stack/sheet/metal/twenty, 10),
new /datum/data/wasteland_equipment("Glass x10", /obj/item/stack/sheet/glass/ten, 5),
new /datum/data/wasteland_equipment("Plasteel x5", /obj/item/stack/sheet/plasteel/five, 200),
new /datum/data/wasteland_equipment("Plastic x5", /obj/item/stack/sheet/plastic/five, 25),
new /datum/data/wasteland_equipment("Electronic Scrap x3", /obj/item/stack/crafting/electronicparts/three, 3),
new /datum/data/wasteland_equipment("Metal Scrap x5", /obj/item/stack/crafting/metalparts/five, 5),
Expand All @@ -1129,7 +1130,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("Focused crystal lenses", /obj/item/advanced_crafting_components/lenses, 50),
new /datum/data/wasteland_equipment("Flux capacitator", /obj/item/advanced_crafting_components/flux, 50),
new /datum/data/wasteland_equipment("Superlight Alloys", /obj/item/advanced_crafting_components/alloys, 50),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 100),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 0),
)
highpop_list = list(
new /datum/data/wasteland_equipment("Advanced Modular Receiver", /obj/item/advanced_crafting_components/receiver, 50),
Expand Down Expand Up @@ -1281,7 +1282,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0)
new /datum/data/wasteland_equipment("Electrician Toolbox", /obj/item/storage/toolbox/electrical, 15),
new /datum/data/wasteland_equipment("Insulated Gloves", /obj/item/clothing/gloves/color/yellow, 15),
new /datum/data/wasteland_equipment("Military Engineer Gloves", /obj/item/clothing/gloves/f13/military/engineer, 75),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 100),
new /datum/data/wasteland_equipment("Nest Repellant", /obj/item/packaged_respawner_blocker, 0),
)
highpop_list = list(
new /datum/data/wasteland_equipment("Metal Parts (x5)", /obj/item/stack/crafting/metalparts/five, 10),
Expand Down
47 changes: 22 additions & 25 deletions modular_coyote/code/mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1203,15 +1203,19 @@

/mob/living/simple_animal/advanced/hivebot
name = "General Hivebot"
desc = "WAAAAAA?"
desc = "A hivebot?"
health = 70
see_in_dark = 3
maxHealth = 70
mob_armor = ARMOR_VALUE_ZERO
AIStatus = AI_IDLE
light_color = "#2BFF2B"
light_range = 2.5
light_power = 2
can_have_ai = TRUE
is_blacklisted = TRUE
death_sound = 'modular_coyote/sound/typing/hivebot-attack.ogg'
deathmessage = "was destroyed, use a multi-tool to repair them!"
deathmessage = "was destroyed, use a multi-tool to revive them!"
idlesound = 'modular_coyote/sound/typing/hivebot-bark-003.ogg'
bubble_icon = "machine"
icon = 'icons/mob/playerswarmer.dmi'
Expand All @@ -1223,27 +1227,19 @@
icon_living = "mediumarm_hivebot"
icon_dead = "mediumarm_hivebot_dead"

/datum/quirk/machine_lang/add()
var/mob/living/simple_animal/advanced/hivebot/H = quirk_holder
H.grant_language(/datum/language/machine)

/datum/quirk/machine_lang/remove()
var/mob/living/simple_animal/advanced/hivebot/H = quirk_holder
if(!QDELETED(H))
H.remove_language(/datum/language/machine)

/mob/living/simple_animal/advanced/hivebot/cheap
name = "Cheap Hivebot"
desc = "WAAAAAA?"
health = 35
maxHealth = 35
desc = "Cheap hivebot with little health, no special traits."
see_in_dark = 4
health = 25
maxHealth = 25
icon_state = "small_hivebot"
icon_living = "small_hivebot"
icon_dead = "small_hivebot_dead"

/mob/living/simple_animal/advanced/hivebot/ranged
name = "Ranged Hivebot"
desc = "WAAAAAA?"
desc = "Ranged hivebot, comes with deadeye."
health = 50
maxHealth = 50
icon_state = "rangedarm_hivebot"
Expand All @@ -1252,7 +1248,7 @@

/mob/living/simple_animal/advanced/hivebot/factory
name = "Factory Hivebot"
desc = "WAAAAAA?"
desc = "Factory hivebot, comes with treasure hunter, quick build, and technophreak"
health = 50
maxHealth = 50
icon_state = "factory_hivebot"
Expand All @@ -1261,7 +1257,7 @@

/mob/living/simple_animal/advanced/hivebot/crystal
name = "Crystaline Hivebot"
desc = "WAAAAAA?"
desc = "Comes with improved healing, magegrab, and wand usage."
health = 60
maxHealth = 60
icon_state = "crystal_hivebot"
Expand All @@ -1273,10 +1269,11 @@
. = ..()
ADD_TRAIT(src, TRAIT_WAND_PROFICIENT, "wand_proficient")
ADD_TRAIT(src, TRAIT_IMPROVED_HEALING, "improved_healing")
ADD_TRAIT(src, TRAIT_MAGEGRAB, "Mage Grab")

/mob/living/simple_animal/advanced/hivebot/ranged/Initialize(trait_source = TRAIT_GENERIC)
. = ..()
ADD_TRAIT(src, TRAIT_CRIT_SHOT, "crit_shot")
ADD_TRAIT(src, TRAIT_NICE_SHOT, "nice_shot")

/mob/living/simple_animal/advanced/hivebot/factory/Initialize(trait_source = TRAIT_GENERIC)
. = ..()
Expand Down Expand Up @@ -1315,7 +1312,7 @@

if(stat == DEAD)
if(client)
. += span_deadsay("A message repeatedly flashes on its display: \"REBOOT -- REQUIRED\".")
. += span_deadsay("A message repeatedly flashes on its display: \"MULTITOOL -- REQUIRED\".")
else
. += span_deadsay("A message repeatedly flashes on its display: \"ERROR -- OFFLINE\".")
. += "*---------*</span>"
Expand All @@ -1325,7 +1322,7 @@
if(istype(I, /obj/item/screwdriver) && stat != DEAD)
if(health < maxHealth)
to_chat(user, span_notice("You start to tighten loose screws on [src]..."))
if(I.use_tool(src, user, 80))
if(I.use_tool(src, user, 20))
adjustBruteLoss(-getBruteLoss())
visible_message(span_notice("[user] tightens [src == user ? "[user.p_their()]" : "[src]'s"] loose screws!"), span_notice("You tighten [src == user ? "your" : "[src]'s"] loose screws."))
else
Expand All @@ -1340,7 +1337,7 @@
try_reactivating(user)

/mob/living/simple_animal/advanced/hivebot/proc/try_reactivating(mob/living/user)
var/mob/dead/observer/G = get_ghost()
/*var/mob/dead/observer/G = get_ghost()
if(!client && (!G || !G.client))
var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\
"anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\
Expand All @@ -1352,13 +1349,13 @@
" kernels to function properly","can't start their neurotube console")
to_chat(user, span_warning("You can't seem to find the [pick(faux_gadgets)]! Without it, [src] [pick(faux_problems)]."))
return
return*/
user.visible_message(span_notice("[user] begins to reactivate [src]."), span_notice("You begin to reactivate [src]..."))
if(do_after(user, 30, 1, target = src))
if(do_after(user, 130, 1, target = src))
revive(full_heal = 1)
user.visible_message(span_notice("[user] reactivates [src]!"), span_notice("You reactivate [src]."))
if(G)
to_chat(G, span_ghostalert("You([name]) were reactivated by [user]!"))
/*if(G)
to_chat(G, span_ghostalert("You([name]) were reactivated by [user]!"))*/
else
to_chat(user, span_warning("You need to remain still to reactivate [src]!"))

Expand Down

0 comments on commit 1a485ef

Please sign in to comment.