mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
Adds the Oblivion Enforcer wizard loadout (#21920)
* initial addition * adds wall/airlock obliteration this definitely needs to be tuned a bit numbers-wise * adds TRAIT_SUPERMATTER_IMMUNE & gloves * adds more checks for the supermatter immune trait * removes SM tongs logic from the halberd Realistically, you would never actually have the halberd and tongs * makes slivers bulky * dusting downed people also removing a useless assigned variable i missed * adds the (incomplete) loadout * halberd buff * adds robes + sprites * oops * halberd icons * knockdown * stuff * timer shortening * species sprites part 2 * animation for dusting walls * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * early return * parry numbers! * Update code/modules/power/engines/supermatter/supermatter.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> * dgamer review * dgamer review + no more pulling * reverts early return thingamajig * Update code/modules/power/engines/supermatter/supermatter.dm Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> * removes `get_turf` * hal review pt 1 * hal review pt. 2 * Update code/game/objects/items/theft_items.dm Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com> * `carve_sliver` proc * unfucks icons * Apply suggestions from code review Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com> --------- Co-authored-by: Henri215 <77684085+Henri215@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: Charlie <69320440+hal9000PR@users.noreply.github.com>
This commit is contained in:
co-authored by
Henri215
DGamerL
Luc
Charlie
parent
e59f0e8aea
commit
aaad2a5aba
@@ -749,6 +749,9 @@
|
||||
|
||||
/obj/machinery/atmospherics/supermatter_crystal/attack_hand(mob/living/user)
|
||||
..()
|
||||
if(HAS_TRAIT(user, TRAIT_SUPERMATTER_IMMUNE))
|
||||
user.visible_message("<span class='notice'>[user] reaches out and pokes [src] harmlessly...somehow.</span>", "<span class='notice'>You poke [src].</span>")
|
||||
return
|
||||
dust_mob(user, cause = "hand")
|
||||
|
||||
/obj/machinery/atmospherics/supermatter_crystal/proc/dust_mob(mob/living/nom, vis_msg, mob_msg, cause)
|
||||
@@ -770,32 +773,39 @@
|
||||
return
|
||||
if(moveable && default_unfasten_wrench(user, I, time = 20))
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/scalpel/supermatter))
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/M = user
|
||||
var/obj/item/scalpel/supermatter/scalpel = I
|
||||
to_chat(M, "<span class='notice'>You carefully begin to scrape [src] with [I]...</span>")
|
||||
if(I.use_tool(src, M, 10 SECONDS, volume = 100))
|
||||
if(scalpel.uses_left)
|
||||
to_chat(M, "<span class='danger'>You extract a sliver from [src], and it begins to react violently!</span>")
|
||||
matter_power += 800
|
||||
scalpel.uses_left--
|
||||
if(!scalpel.uses_left)
|
||||
to_chat(M, "<span class='boldwarning'>A tiny piece of [I] falls off, rendering it useless!</span>")
|
||||
if(!ishuman(user))
|
||||
return
|
||||
|
||||
var/obj/item/nuke_core/supermatter_sliver/S = new /obj/item/nuke_core/supermatter_sliver(drop_location())
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/scalpel/supermatter/scalpel = I
|
||||
|
||||
var/obj/item/retractor/supermatter/tongs = M.is_in_hands(/obj/item/retractor/supermatter)
|
||||
if(!scalpel.uses_left)
|
||||
to_chat(H, "<span class='warning'>[scalpel] isn't sharp enough to carve a sliver off of [src]!</span>")
|
||||
return
|
||||
|
||||
var/obj/item/nuke_core/supermatter_sliver/sliver = carve_sliver(scalpel, H)
|
||||
if(sliver)
|
||||
scalpel.uses_left--
|
||||
if(!scalpel.uses_left)
|
||||
to_chat(H, "<span class='boldwarning'>A tiny piece falls off of [scalpel]'s blade, rendering it useless!</span>")
|
||||
|
||||
var/obj/item/retractor/supermatter/tongs = H.is_in_hands(/obj/item/retractor/supermatter)
|
||||
|
||||
if(tongs && !tongs.sliver)
|
||||
tongs.sliver = sliver
|
||||
sliver.forceMove(tongs)
|
||||
tongs.icon_state = "supermatter_tongs_loaded"
|
||||
tongs.item_state = "supermatter_tongs_loaded"
|
||||
to_chat(H, "<span class='notice'>You pick up [sliver] with [tongs]!</span>")
|
||||
|
||||
if(tongs && !tongs.sliver)
|
||||
tongs.sliver = S
|
||||
S.forceMove(tongs)
|
||||
tongs.icon_state = "supermatter_tongs_loaded"
|
||||
tongs.item_state = "supermatter_tongs_loaded"
|
||||
to_chat(M, "<span class='notice'>You pick up [S] with [tongs]!</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You fail to extract a sliver from [src]! [I] isn't sharp enough anymore.</span>")
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/supermatter_halberd))
|
||||
carve_sliver(I, user)
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/retractor/supermatter))
|
||||
to_chat(user, "<span class='notice'>[I] bounces off [src], you need to cut a sliver off first!</span>")
|
||||
else if(user.drop_item())
|
||||
@@ -809,6 +819,10 @@
|
||||
radiation_pulse(src, 150, 4)
|
||||
|
||||
/obj/machinery/atmospherics/supermatter_crystal/Bumped(atom/movable/AM)
|
||||
|
||||
if(HAS_TRAIT(AM, TRAIT_SUPERMATTER_IMMUNE))
|
||||
return
|
||||
|
||||
if(isliving(AM))
|
||||
AM.visible_message("<span class='danger'>[AM] slams into [src] inducing a resonance... [AM.p_their()] body starts to glow and burst into flames before flashing into dust!</span>",\
|
||||
"<span class='userdanger'>You slam into [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"</span>",\
|
||||
@@ -917,7 +931,14 @@
|
||||
remove_filter("outline")
|
||||
QDEL_NULL(warp)
|
||||
|
||||
/obj/machinery/atmospherics/supermatter_crystal/proc/carve_sliver(obj/item/tool, mob/living/user)
|
||||
to_chat(user, "<span class='notice'>You begin carving a sliver off of [src]...</span>")
|
||||
if(tool.use_tool(src, user, 10 SECONDS, volume = 100))
|
||||
to_chat(user, "<span class='danger'>You carve a sliver off of [src], and it begins to react violently!</span>")
|
||||
matter_power += 800
|
||||
|
||||
var/obj/item/nuke_core/supermatter_sliver/S = new /obj/item/nuke_core/supermatter_sliver(drop_location())
|
||||
return S
|
||||
|
||||
// Change how bright the rock is
|
||||
/obj/machinery/atmospherics/supermatter_crystal/proc/lights()
|
||||
@@ -1018,6 +1039,8 @@
|
||||
var/mob/M = P
|
||||
if(M.mob_negates_gravity())
|
||||
continue //You can't pull someone nailed to the deck
|
||||
if(HAS_TRAIT(M, TRAIT_SUPERMATTER_IMMUNE))
|
||||
continue
|
||||
else if(M.buckled)
|
||||
var/atom/movable/buckler = M.buckled
|
||||
if(buckler.unbuckle_mob(M, TRUE))
|
||||
|
||||
Reference in New Issue
Block a user