diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index ffaaa04d0f7..c08898891eb 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -70,6 +70,8 @@ #define STATUS_EFFECT_ICHORIAL_STAIN /datum/status_effect/ichorial_stain //Prevents a servant from being revived by vitality matrices for one minute. +#define STATUS_EFFECT_GONBOLAPACIFY /datum/status_effect/gonbolaPacify //Gives the user gondola traits while the gonbola is attached to them. + ///////////// // NEUTRAL // ///////////// diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 9904a28d846..63b826a8989 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -507,3 +507,21 @@ desc = "Your body is covered in blue ichor! You can't be revived by vitality matrices." icon_state = "ichorial_stain" alerttooltipstyle = "clockcult" + +/datum/status_effect/gonbolaPacify + id = "gonbolaPacify" + status_type = STATUS_EFFECT_MULTIPLE + tick_interval = -1 + alert_type = null + +/datum/status_effect/gonbolaPacify/on_apply() + owner.add_trait(TRAIT_PACIFISM, "gonbolaPacify") + owner.add_trait(TRAIT_MUTE, "gonbolaMute") + owner.add_trait(TRAIT_JOLLY, "gonbolaJolly") + to_chat(owner, "You suddenly feel at peace and feel no need to make any sudden or rash actions...") + return ..() + +/datum/status_effect/gonbolaPacify/on_remove() + owner.remove_trait(TRAIT_PACIFISM, "gonbolaPacify") + owner.remove_trait(TRAIT_MUTE, "gonbolaMute") + owner.remove_trait(TRAIT_JOLLY, "gonbolaJolly") \ No newline at end of file diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 8a2e5d12925..b92186a467d 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -363,3 +363,22 @@ B.Crossed(hit_atom) qdel(src) ..() + +/obj/item/restraints/legcuffs/bola/gonbola + name = "gonbola" + desc = "Hey, if you have to be hugged in the legs by anything, it might as well be this little guy." + icon_state = "gonbola" + breakouttime = 300 + slowdown = 0 + var/datum/status_effect/gonbolaPacify/effectReference + +/obj/item/restraints/legcuffs/bola/gonbola/throw_impact(atom/hit_atom) + . = ..() + if(iscarbon(hit_atom)) + var/mob/living/carbon/C = hit_atom + effectReference = C.apply_status_effect(STATUS_EFFECT_GONBOLAPACIFY) + +/obj/item/restraints/legcuffs/bola/gonbola/dropped(mob/user) + . = ..() + if(effectReference) + QDEL_NULL(effectReference) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 586819ed8f8..ea1c13600f2 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -94,6 +94,16 @@ category= CAT_WEAPONRY subcategory = CAT_WEAPON +/datum/crafting_recipe/gonbola + name = "Gonbola" + result = /obj/item/restraints/legcuffs/bola/gonbola + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/stack/sheet/metal = 6, + /obj/item/stack/sheet/animalhide/gondola = 1) + time = 40 + category= CAT_WEAPONRY + subcategory = CAT_WEAPON + /datum/crafting_recipe/tailclub name = "Tail Club" result = /obj/item/tailclub diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 543d57ff56e..1884766dfae 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ