Skip to content

Commit

Permalink
buff single tank bombs
Browse files Browse the repository at this point in the history
  • Loading branch information
TobleroneSwordfish committed Jan 15, 2025
1 parent 4fc219b commit f5083ed
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 91 deletions.
107 changes: 19 additions & 88 deletions code/obj/item/assembly/single_tank_bomb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
var/obj/item/device/prox_sensor/part1 = null
var/obj/item/device/igniter/part2 = null
var/obj/item/tank/plasma/part3 = null
status = 0
flags = TABLEPASS | CONDUCT

/obj/item/assembly/proximity_bomb/dropped()
Expand All @@ -73,7 +72,7 @@
return

/obj/item/assembly/proximity_bomb/attackby(obj/item/W, mob/user)
if (iswrenchingtool(W) && !(src.status))
if (iswrenchingtool(W))
var/obj/item/assembly/prox_ignite/R = new /obj/item/assembly/prox_ignite( )
R.part1 = src.part1
R.part2 = src.part2
Expand All @@ -93,23 +92,8 @@
src.part3 = null
qdel(src)
return
if (!(isweldingtool(W) && W:try_weld(user,0,-1,1,0)))
return
if (!( src.status ))
src.status = 1
user.show_message(SPAN_NOTICE("A pressure hole has been bored to the plasma tank valve. The plasma tank can now be ignited."), 1)
else
src.status = 0
boutput(user, SPAN_NOTICE("The hole has been closed."))

src.bomb_logs(user, src, "proximity", src.status == 1 ? 0 : 1, 0)
src.part2.status = src.status
src.add_fingerprint(user)
return

/obj/item/assembly/proximity_bomb/attack_self(mob/user as mob)

playsound(src.loc, 'sound/weapons/armbomb.ogg', 100, 1)
src.part1.AttackSelf(user, 1)
src.add_fingerprint(user)
return
Expand All @@ -120,20 +104,12 @@
O.show_message("[bicon(src)] *beep* *beep*", 3, "*beep* *beep*", 2)
//Foreach goto(19)

if (src.status)
src.part1.armed = FALSE
src.c_state(0)
if (src.force_dud == 1)
src.bomb_logs(usr, src, "proximity", 0, 1)
return
src.part3.ignite()
else
if (!src.status && src.force_dud == 0)
src.part1.armed = FALSE
src.c_state(0)
src.part3.release()

return
src.part1.armed = FALSE
src.c_state(0)
if (src.force_dud == 1)
src.bomb_logs(usr, src, "proximity", 0, 1)
return
src.part3.ignite()

/obj/item/assembly/proximity_bomb/c_state(n)

Expand Down Expand Up @@ -175,7 +151,6 @@
var/obj/item/device/timer/part1 = null
var/obj/item/device/igniter/part2 = null
var/obj/item/tank/plasma/part3 = null
status = 0
flags = TABLEPASS | CONDUCT

/obj/item/assembly/time_bomb/c_state(n)
Expand All @@ -198,7 +173,7 @@
return

/obj/item/assembly/time_bomb/attackby(obj/item/W, mob/user)
if (iswrenchingtool(W) && !(src.status))
if (iswrenchingtool(W))
var/obj/item/assembly/time_ignite/R = new /obj/item/assembly/time_ignite( )
R.part1 = src.part1
R.part2 = src.part2
Expand All @@ -218,41 +193,20 @@
src.part3 = null
qdel(src)
return
if (!(isweldingtool(W) && W:try_weld(user,0,-1,1,0)))
return
if (!( src.status ))
src.status = 1
user.show_message(SPAN_NOTICE("A pressure hole has been bored to the plasma tank valve. The plasma tank can now be ignited."), 1)
else
src.status = 0
boutput(user, SPAN_NOTICE("The hole has been closed."))

src.part2.status = src.status
src.bomb_logs(user, src, "timer", src.status == 1 ? 0 : 1, 0)
src.add_fingerprint(user)
return

/obj/item/assembly/time_bomb/attack_self(mob/user as mob)

if (src.part1)
src.part1.AttackSelf(user, 1)
playsound(src.loc, 'sound/weapons/armbomb.ogg', 100, 1)
src.part1?.AttackSelf(user, 1)
src.add_fingerprint(user)
return

/obj/item/assembly/time_bomb/receive_signal()
//boutput(world, "tiptank [src] got signal")
for(var/mob/O in hearers(1, null))
O.show_message("[bicon(src)] *beep* *beep*", 3, "*beep* *beep*", 2)
if (src.status)
if (src.force_dud == 1)
src.bomb_logs(usr, src, "timer", 0, 1)
return
src.part3.ignite()
else
if (!src.status && src.force_dud == 0)
src.part3.release()
return
if (src.force_dud == 1)
src.bomb_logs(usr, src, "timer", 0, 1)
return
src.part3.ignite()

/obj/item/assembly/time_bomb/return_air(direct = FALSE)
return src.part3?.return_air()
Expand All @@ -266,7 +220,6 @@
var/obj/item/device/radio/signaler/part1 = null
var/obj/item/device/igniter/part2 = null
var/obj/item/tank/plasma/part3 = null
status = 0
flags = TABLEPASS | CONDUCT

/obj/item/assembly/radio_bomb/examine()
Expand All @@ -285,7 +238,7 @@
return

/obj/item/assembly/radio_bomb/attackby(obj/item/W, mob/user)
if (iswrenchingtool(W) && !(src.status))
if (iswrenchingtool(W))
var/obj/item/assembly/rad_ignite/R = new /obj/item/assembly/rad_ignite( )
R.part1 = src.part1
R.part2 = src.part2
Expand All @@ -305,42 +258,20 @@
src.part3 = null
qdel(src)
return
if (!(isweldingtool(W) && W:try_weld(user,0,-1,1,0)))
return
if (!( src.status ))
src.status = 1
user.show_message(SPAN_NOTICE("A pressure hole has been bored to the plasma tank valve. The plasma tank can now be ignited."), 1)
else
src.status = 0
boutput(user, SPAN_NOTICE("The hole has been closed."))

src.bomb_logs(user, src, "radio", src.status == 1 ? 0 : 1, 0)
src.part2.status = src.status
src.part1.b_stat = !( src.status )
src.add_fingerprint(user)
return

/obj/item/assembly/radio_bomb/attack_self(mob/user as mob)

if (src.part1)
playsound(src.loc, 'sound/weapons/armbomb.ogg', 100, 1)
src.part1.AttackSelf(user, 1)
src.part1?.AttackSelf(user, 1)
src.add_fingerprint(user)
return

/obj/item/assembly/radio_bomb/receive_signal()
//boutput(world, "riptank [src] got signal")
for(var/mob/O in hearers(1, null))
O.show_message("[bicon(src)] *beep* *beep*", 3, "*beep* *beep*", 2)
if (src.status)
if (src.force_dud == 1)
src.bomb_logs(usr, src, "radio", 0, 1)
return
src.part3.ignite()
else
if (!src.status && src.force_dud == 0)
src.part3.release()
return
if (src.force_dud == 1)
src.bomb_logs(usr, src, "radio", 0, 1)
return
src.part3.ignite()

/obj/item/assembly/radio_bomb/return_air(direct = FALSE)
return src.part3?.return_air()
6 changes: 3 additions & 3 deletions code/obj/item/tank.dm
Original file line number Diff line number Diff line change
Expand Up @@ -618,20 +618,20 @@ TYPEINFO(/obj/item/tank/jetpack/micro)
var/turf/ground_zero = get_turf(loc)

if(air_contents.temperature > (T0C + 400))
strength = fuel_moles/15
strength = fuel_moles/8

explosion(src, ground_zero, strength, strength*2, strength*4, strength*5)

else if(air_contents.temperature > (T0C + 250))
strength = fuel_moles/20
strength = fuel_moles/10

explosion(src, ground_zero, -1, -1, strength*3, strength*4)
ground_zero.assume_air(air_contents)
air_contents = null
ground_zero.hotspot_expose(1000, 125)

else if(air_contents.temperature > (T0C + 100))
strength = fuel_moles/25
strength = fuel_moles/13

explosion(src, ground_zero, -1, -1, strength*2, strength*3)
ground_zero.assume_air(air_contents)
Expand Down
1 change: 1 addition & 0 deletions strings/changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
(+)Pie slices can now be eaten without a spoon.
(+)Traitor Pest Control Specialists can now buy an old hunting rifle for 7TC.
(*)Bacon and steaks can now be cooked in the engine burn chamber. Probably not very well.
(*)Single tank plasma bombs no longer require welding and explode with around double the power, making them more powerful than equivalent TTVs at lower plasma temperatures.
(u)TDHooligan
(p)21974
(e)🆕⚖📦|C-Feature, C-Balance, A-Game-Objects
Expand Down

0 comments on commit f5083ed

Please sign in to comment.