Enhances the Smoking Experience - Adds Many New Item Interactions for Cigarettes and Items Interacting With Them (#25571)

* Refactoring and other stuff.

* moar

* More smoking

* Update energy_melee_weapons.dm

* Update code/game/objects/items/robot/cyborg_gripper.dm

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Update cigs.dm

* Update cigs.dm

* Update cigs.dm

* Update code/game/objects/items/weapons/lighters.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* eee

* Apply suggestions from code review

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* sigh

* Update cigs.dm

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* hell

* Update cigs.dm

* aa

* cool

* Fixing some minor typos for cyborg upgrade flavour text

Throws in some missing apostrophes, capitalisation, and the letter "s."

* Briefcase Full of Cash buff

Increases the amount of cash in the Syndicate Briefcase Full of Cash from 600 Cr to 1000 Cr

* Reverts double-feature PR

* Reverts a broken revert

* Reverting again because Ebba told me to

* And reverting yet again

* Update robot_upgrades.dm

* aa

* aaa

* suffering

* Soon

* Is it done!? Am I finally free!?

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Update

* Update

* No longer assume the cig is in a mouth

* Update tools.dm

* Update pronouns.dm

* Fixing some minor typos for cyborg upgrade flavour text

Throws in some missing apostrophes, capitalisation, and the letter "s."

* Briefcase Full of Cash buff

Increases the amount of cash in the Syndicate Briefcase Full of Cash from 600 Cr to 1000 Cr

* Reverts double-feature PR

* Reverts a broken revert

* Reverting again because Ebba told me to

* And reverting yet again

* Update robot_upgrades.dm

* Fixing some minor typos for cyborg upgrade flavour text

Throws in some missing apostrophes, capitalisation, and the letter "s."

* Briefcase Full of Cash buff

Increases the amount of cash in the Syndicate Briefcase Full of Cash from 600 Cr to 1000 Cr

* Reverts double-feature PR

* Reverts a broken revert

* Reverting again because Ebba told me to

* And reverting yet again

* Update robot_upgrades.dm

* update

* Attack animations for sword lighting!

* Update

* indentation

* Update cigs.dm

* minor refactor

* Update items.dm

* Update items.dm

* Update welder.dm

* Update energy_melee_weapons.dm

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* refactor

* Update items.dm

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Fixing some minor typos for cyborg upgrade flavour text

Throws in some missing apostrophes, capitalisation, and the letter "s."

* Briefcase Full of Cash buff

Increases the amount of cash in the Syndicate Briefcase Full of Cash from 600 Cr to 1000 Cr

* Reverts double-feature PR

* Reverts a broken revert

* Reverting again because Ebba told me to

* And reverting yet again

* Update robot_upgrades.dm

* Update flamethrower.dm

* clipping

* Update legion_loot.dm

* anti attack check

* Fixes a zippo runtime

* Fixes evil runtime and stops unnecessary violence.

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Update based on review

* Update cigs.dm

* Update energy_melee_weapons.dm

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* Update toys.dm

* Update energy_melee_weapons.dm

* Update legion_loot.dm

* Update code/game/objects/items/weapons/melee/energy_melee_weapons.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

---------

Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
CRUNCH
2024-09-03 14:02:13 +01:00
committed by GitHub
parent c7340b09b5
commit 9ef47e7935
18 changed files with 929 additions and 389 deletions
+57 -26
View File
@@ -1,14 +1,14 @@
/* Pens!
* Contains:
* Pens
* Sleepy Pens
* Edaggers
* CONTENTS:
* 1. PENS
* 2. SLEEPYPENS
* 3. E-DAGGERS
4. POISON PEN
*/
/*
* Pens
*/
// PENS
/obj/item/pen
desc = "It's a normal black ink pen."
name = "pen"
@@ -139,15 +139,13 @@
desc = "An expensive-looking pen only issued to heads of cargo."
icon_state = "pen_qm"
/*
* Sleepypens
*/
// SLEEPYPEN
/obj/item/pen/sleepy
container_type = OPENCONTAINER
origin_tech = "engineering=4;syndicate=2"
var/transfer_amount = 50
/obj/item/pen/sleepy/attack(mob/living/M, mob/user)
if(!istype(M))
return
@@ -169,7 +167,6 @@
add_attack_logs(user, M, "Stabbed with (sleepy) [src]. [transfered]u of reagents transfered from pen containing [english_list(contained)].")
return TRUE
/obj/item/pen/sleepy/Initialize(mapload)
. = ..()
create_reagents(100)
@@ -201,12 +198,11 @@
desc = "Used to stealthily inject targets. Comes loaded with ketamine but can be refilled with other chemicals. This one isn't disguised."
icon_state = "pen_syndie"
/*
* (Alan) Edaggers
*/
// E-DAGGER
/obj/item/pen/edagger
origin_tech = "combat=3;syndicate=1"
var/on = FALSE
var/active = FALSE
var/brightness_on = 2
light_color = LIGHT_COLOR_RED
var/backstab_sound = 'sound/items/unsheath.ogg'
@@ -215,14 +211,20 @@
throw_speed = 4
/obj/item/pen/edagger/attack(mob/living/M, mob/living/user, def_zone)
if(cigarette_lighter_act(user, M))
return
var/extra_force_applied = FALSE
if(on && user.dir == M.dir && !HAS_TRAIT(M, TRAIT_FLOORED) && user != M)
if(active && user.dir == M.dir && !HAS_TRAIT(M, TRAIT_FLOORED) && user != M)
force += backstab_damage
extra_force_applied = TRUE
add_attack_logs(user, M, "Backstabbed with [src]", ATKLOG_ALL)
M.apply_damage(40, STAMINA) //Just enough to slow
M.KnockDown(2 SECONDS)
M.visible_message("<span class='warning'>[user] stabs [M] in the back!</span>", "<span class='userdanger'>[user] stabs you in the back! The energy blade makes you collapse in pain!</span>")
M.visible_message(
"<span class='warning'>[user] stabs [M] in the back!</span>",
"<span class='userdanger'>[user] stabs you in the back! The energy blade makes you collapse in pain!</span>"
)
playsound(loc, backstab_sound, 5, TRUE, ignore_walls = FALSE, falloff_distance = 0)
else
@@ -231,13 +233,40 @@
if(extra_force_applied)
force -= backstab_damage
/obj/item/pen/edagger/get_clamped_volume() //So the parent proc of attack isn't the loudest sound known to man
return 0
/obj/item/pen/edagger/cigarette_lighter_act(mob/living/user, mob/living/carbon/target, obj/item/direct_attackby_item)
var/obj/item/clothing/mask/cigarette/cig = ..()
if(!cig)
return !isnull(cig)
if(!active)
to_chat(user, "<span class='warning'>You need to activate [src] before you can light anything with it!</span>")
return TRUE
if(target == user)
user.visible_message(
"<span class='warning'>[user] makes a violent slashing motion, barely missing [user.p_their()] nose as light flashes! \
[user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [cig] with [src] in the process.</span>",
"<span class='notice'>You casually slash [src] at [cig], lighting it with the blade.</span>",
"<span class='danger'>You hear an energy blade slashing something!</span>"
)
else
user.visible_message(
"<span class='danger'>[user] makes a violent slashing motion, barely missing the nose of [target] as light flashes! \
[user.p_they(TRUE)] light[user.p_s()] [cig] in the mouth of [target] with [src] in the process.</span>",
"<span class='notice'>You casually slash [src] at [cig] in the mouth of [target], lighting it with the blade.</span>",
"<span class='danger'>You hear an energy blade slashing something!</span>"
)
user.do_attack_animation(target)
playsound(user.loc, hitsound, 5, TRUE, ignore_walls = FALSE, falloff_distance = 0)
cig.light(user, target)
return TRUE
/obj/item/pen/edagger/get_clamped_volume() //So the parent proc of attack isn't the loudest sound known to man
return FALSE
/obj/item/pen/edagger/attack_self(mob/living/user)
if(on)
on = FALSE
if(active)
active = FALSE
force = initial(force)
w_class = initial(w_class)
name = initial(name)
@@ -249,7 +278,7 @@
to_chat(user, "<span class='warning'>[src] can now be concealed.</span>")
set_light(0)
else
on = TRUE
active = TRUE
force = 18
w_class = WEIGHT_CLASS_NORMAL
name = "energy dagger"
@@ -257,14 +286,14 @@
hitsound = 'sound/weapons/blade1.ogg'
embed_chance = 100 //rule of cool
throwforce = 35
playsound(user, 'sound/weapons/saberon.ogg', 2, 1)
playsound(user, 'sound/weapons/saberon.ogg', 2, TRUE)
to_chat(user, "<span class='warning'>[src] is now active.</span>")
set_light(brightness_on, 1)
set_sharpness(on)
set_sharpness(active)
update_icon()
/obj/item/pen/edagger/update_icon_state()
if(on)
if(active)
icon_state = "edagger"
item_state = "edagger"
else
@@ -274,6 +303,8 @@
/obj/item/proc/on_write(obj/item/paper/P, mob/user)
return
// POISON PEN
/obj/item/pen/multi/poison
var/current_poison = null