Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wasp related items in surplus crates come with a wasp implant #15982

Merged
merged 4 commits into from Sep 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 8 additions & 1 deletion code/datums/syndicate_buylist.dm
Expand Up @@ -624,16 +624,23 @@ ABSTRACT_TYPE(/datum/syndicate_buylist/traitor)
job = list("Botanist", "Apiculturist")
can_buy = UPLINK_TRAITOR | UPLINK_SPY_THIEF

run_on_spawn(obj/item/our_item, mob/living/owner, in_surplus_crate)
if(in_surplus_crate)
new /obj/item/implanter/wasp(our_item.loc)

/datum/syndicate_buylist/traitor/wasp_crossbow
name = "Wasp Crossbow"
item = /obj/item/gun/energy/wasp
cost = 6
desc = "Become the member of the Space Cobra Unit you always wanted to be! Spread pain and fear far and wide using this scattershot wasp egg launcher! Through the power of sheer wasp-y fury, this crossbow will slowly recharge between shots and is guaranteed to light up your day with maniacal joy and to bring your enemies no end of sorrow."
not_in_crates = 1 //the value of the item goes down significantly for non-botanists since only botanists are treated kindly by wasps
vr_allowed = FALSE
job = list("Botanist", "Apiculturist")
can_buy = UPLINK_TRAITOR

run_on_spawn(obj/item/our_item, mob/living/owner, in_surplus_crate)
if(in_surplus_crate)
new /obj/item/implanter/wasp(our_item.loc)

/datum/syndicate_buylist/traitor/fakegrenade
name = "Fake Cleaner Grenades"
item = /obj/item/storage/box/f_grenade_kit
Expand Down
39 changes: 39 additions & 0 deletions code/obj/item/implant.dm
Expand Up @@ -706,6 +706,35 @@ ABSTRACT_TYPE(/obj/item/implant/revenge)
src.owner?.elecgib()
. = ..()

/obj/item/implant/revenge/wasp
name = "wasp implant"
big_message = " buzzes, what?"
small_message = "buzzes loudly, uh oh!"
power = 8

implanted(var/mob/M, mob/I)
..()
if (istype(M))
M.faction |= FACTION_BOTANY

on_remove(var/mob/M)
..()
if (istype(M))
M.faction &= ~FACTION_BOTANY

do_effect(power)
// enjoy your wasps
for (var/i in 1 to power)
var/mob/living/critter/small_animal/wasp/W = new /mob/living/critter/small_animal/wasp/angry(get_turf(src))
unfunnyperson marked this conversation as resolved.
Show resolved Hide resolved
W.lying = TRUE // So wasps dont hit other wasps when being flung
W.throw_at(get_edge_target_turf(get_turf(src), pick(alldirs)), rand(1,3 + round(power / 16)), 2)
SPAWN(1 SECOND)
W.lying = FALSE

SPAWN(1)
src.owner?.gib()
. = ..()


/obj/item/implant/robotalk
name = "machine translator implant"
Expand Down Expand Up @@ -1669,6 +1698,16 @@ ABSTRACT_TYPE(/obj/item/implant/revenge)
src.imp = new /obj/item/implant/revenge/zappy(src)
..()

/obj/item/implanter/wasp
name = "wasp implanter"
icon_state = "implanter1-g"
sneaky = TRUE
HELP_MESSAGE_OVERRIDE({"When someone dies while implanted with this, they will explode into a cloud of angry wasps. Suiciding will cause no cloud of wasps to appear. This implant will also make wasps friendly to the user."})

New()
src.imp = new /obj/item/implant/revenge/wasp(src)
..()

/* ================================================================ */
/* ------------------------- Implant Case ------------------------- */
/* ================================================================ */
Expand Down