mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-15 01:46:30 +01:00
BayMerge DLC Pack (#1355)
Ports totally; https://github.com/Baystation12/Baystation12/pull/12389/files Baystation12#14599 Ports partially; Baystation12#14216 (only blob-related functions) All the failure messages have been replaced with failure events in industrial drills, that range from probably lethal to certainly lethal and in one case just moderately annoying.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#ifndef T_BOARD
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/miningdrill
|
||||
@@ -11,4 +11,11 @@
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
||||
"/obj/item/weapon/cell" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/miningdrillbrace
|
||||
name = T_BOARD("mining drill brace")
|
||||
build_path = "/obj/machinery/mining/brace"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
|
||||
req_components = list()
|
||||
@@ -1,3 +1,31 @@
|
||||
proc/fragem(var/source,var/fragx,var/fragy,var/light_dam,var/flash_dam,var/p_dam,var/p_range,var/can_cover=1)
|
||||
var/turf/O = get_turf(source)
|
||||
var/fragger = rand(fragx,fragy)
|
||||
explosion(O, -1, -1, light_dam, flash_dam)
|
||||
var/list/target_turfs = getcircle(O, 7)
|
||||
var/fragments_per_projectile = round(fragger/target_turfs.len)
|
||||
|
||||
for(var/turf/T in target_turfs)
|
||||
sleep(0)
|
||||
var/obj/item/projectile/bullet/pellet/fragment/P = new (O)
|
||||
|
||||
P.damage = p_dam
|
||||
P.pellets = fragments_per_projectile
|
||||
P.range_step = p_range
|
||||
P.shot_from = source
|
||||
P.name = "[source]'s shrapnel"
|
||||
|
||||
P.launch(T)
|
||||
|
||||
if(can_cover)
|
||||
for(var/mob/living/M in O)
|
||||
//lying on a frag grenade while the grenade is on the ground causes you to absorb most of the shrapnel.
|
||||
//you will most likely be dead, but others nearby will be spared the fragments that hit you instead.
|
||||
if(M.lying && isturf(get_turf(source)))
|
||||
P.attack_mob(M, 0, 0)
|
||||
else
|
||||
P.attack_mob(M, 0, 100) //otherwise, allow a decent amount of fragments to pass
|
||||
|
||||
//Fragmentation grenade projectile
|
||||
/obj/item/projectile/bullet/pellet/fragment
|
||||
damage = 15
|
||||
@@ -27,36 +55,6 @@
|
||||
set waitfor = 0
|
||||
..()
|
||||
|
||||
var/turf/O = get_turf(src)
|
||||
if(!O) return
|
||||
|
||||
if(explosion_size)
|
||||
explosion(O, -1, -1, explosion_size, explosion_size+1)
|
||||
|
||||
var/list/target_turfs = getcircle(O, spread_range)
|
||||
var/fragments_per_projectile = round(num_fragments/target_turfs.len)
|
||||
|
||||
for(var/turf/T in target_turfs)
|
||||
sleep(0)
|
||||
var/obj/item/projectile/bullet/pellet/fragment/P = new (O)
|
||||
|
||||
P.damage = fragment_damage
|
||||
P.pellets = fragments_per_projectile
|
||||
P.range_step = damage_step
|
||||
P.shot_from = src.name
|
||||
|
||||
P.launch(T)
|
||||
|
||||
//var/cone = new /obj/item/weapon/caution/cone (T)
|
||||
//spawn(100) qdel(cone)
|
||||
|
||||
//Make sure to hit any mobs in the source turf
|
||||
for(var/mob/living/M in O)
|
||||
//lying on a frag grenade while the grenade is on the ground causes you to absorb most of the shrapnel.
|
||||
//you will most likely be dead, but others nearby will be spared the fragments that hit you instead.
|
||||
if(M.lying && isturf(src.loc))
|
||||
P.attack_mob(M, 0, 0)
|
||||
else
|
||||
P.attack_mob(M, 0, 100) //otherwise, allow a decent amount of fragments to pass
|
||||
fragem(src,num_fragments,num_fragments,explosion_size,explosion_size+1,fragment_damage,damage_step,1)
|
||||
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user