diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index 7a43c1bde8d..fac7163a486 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -30,3 +30,17 @@ var/const/WIRE_EXPLODE = 1 var/obj/item/weapon/c4/P = holder P.explode(get_turf(P)) + + +/datum/wires/explosive/gibtonite + holder_type = /obj/item/weapon/twohanded/required/gibtonite + +/datum/wires/explosive/gibtonite/CanUse(var/mob/living/L) + return 1 + +/datum/wires/explosive/gibtonite/UpdateCut(var/index, var/mended) + return + +/datum/wires/explosive/gibtonite/explode() + var/obj/item/weapon/twohanded/required/gibtonite/P = holder + P.GibtoniteReaction(null, 2) \ No newline at end of file diff --git a/code/game/atoms.dm b/code/game/atoms.dm index d750748ce3c..3cf497ed472 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -121,8 +121,7 @@ return /atom/proc/bullet_act(obj/item/projectile/P, def_zone) - P.on_hit(src, 0, def_zone) - . = 0 + . = P.on_hit(src, 0, def_zone) /atom/proc/in_contents_of(container)//can take class or object instance as argument if(ispath(container)) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 8f625648787..f015c1f346a 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -7,7 +7,7 @@ health = 200 lights_power = 7 deflect_chance = 15 - damage_absorption = list("brute"=0.8,"fire"=1,"bullet"=0.8,"laser"=0.9,"energy"=1,"bomb"=0.6) + damage_absorption = list("brute"=0.6,"fire"=1,"bullet"=0.8,"laser"=0.9,"energy"=1,"bomb"=0.6) max_equip = 6 wreckage = /obj/structure/mecha_wreckage/ripley var/list/cargo = new @@ -39,7 +39,7 @@ /obj/mecha/working/ripley/go_out() ..() - if (src.damage_absorption.["brute"] < 0.6 && src.damage_absorption.["brute"] > 0.3) + if (src.damage_absorption["brute"] < 0.6 && src.damage_absorption["brute"] > 0.3) src.overlays = null src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-open") else if (src.damage_absorption.["brute"] == 0.3) @@ -48,30 +48,30 @@ /obj/mecha/working/ripley/moved_inside(var/mob/living/carbon/human/H as mob) ..() - if (src.damage_absorption.["brute"] < 0.6 && src.damage_absorption.["brute"] > 0.3) + if (src.damage_absorption["brute"] < 0.6 && src.damage_absorption["brute"] > 0.3) src.overlays = null src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g") - else if (src.damage_absorption.["brute"] == 0.3) + else if (src.damage_absorption["brute"] == 0.3) src.overlays = null src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full") /obj/mecha/working/ripley/mmi_moved_inside(var/obj/item/device/mmi/mmi_as_oc as obj,mob/user as mob) ..() - if (src.damage_absorption.["brute"] < 0.6 && src.damage_absorption.["brute"] > 0.3) + if (src.damage_absorption["brute"] < 0.6 && src.damage_absorption["brute"] > 0.3) src.overlays = null src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g") - else if (src.damage_absorption.["brute"] == 0.3) + else if (src.damage_absorption["brute"] == 0.3) src.overlays = null src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full") /obj/mecha/working/ripley/firefighter - desc = "Standart APLU chassis was refitted with additional thermal protection and cistern." + desc = "Autonomous Power Loader Unit. This model is refitted with additional thermal protection." name = "\improper APLU \"Firefighter\"" icon_state = "firefighter" max_temperature = 65000 health = 250 lights_power = 7 - damage_absorption = list("brute"=0.8,"fire"=0.5,"bullet"=0.7,"laser"=0.8,"energy"=1,"bomb"=0.4) + damage_absorption = list("brute"=0.6,"fire"=0.5,"bullet"=0.7,"laser"=0.7,"energy"=1,"bomb"=0.4) max_equip = 5 // More armor, less tools wreckage = /obj/structure/mecha_wreckage/ripley/firefighter diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index 18c0d9fb0a6..ad53b9f89b8 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -46,7 +46,7 @@ if(istype(I, /obj/item/weapon/screwdriver)) open_panel = !open_panel user << "You [open_panel ? "open" : "close"] the wire panel." - else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler )) + else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler)) wires.Interact(user) else ..() diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 9a26058d953..3367901fc15 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -4,7 +4,7 @@ icon_state = "meson" item_state = "meson" origin_tech = "magnets=2;engineering=2" - darkness_view = 1 + darkness_view = 2 vision_flags = SEE_TURFS invis_view = SEE_INVISIBLE_MINIMUM diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 4001c27e887..5b5bd2184dd 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -381,7 +381,7 @@ /obj/item/weapon/mining_voucher name = "mining voucher" desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor." - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/mining.dmi' icon_state = "mining_voucher" w_class = 1 @@ -413,7 +413,7 @@ /obj/item/device/wormhole_jaunter name = "wormhole jaunter" desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to blue space for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least." - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/mining.dmi' icon_state = "Jaunter" item_state = "electronic" throwforce = 0 @@ -473,7 +473,7 @@ /obj/item/weapon/resonator name = "resonator" - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/mining.dmi' icon_state = "resonator" item_state = "resonator" desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vacuum." @@ -793,7 +793,7 @@ else for(M in L) var/turf/T = get_turf(M) - var/image/I = image('icons/turf/walls.dmi', loc = T, icon_state = M.scan_state, layer = 18) + var/image/I = image('icons/turf/mining.dmi', loc = T, icon_state = M.scan_state, layer = 18) C.images += I spawn(30) if(C) @@ -821,7 +821,7 @@ /obj/item/device/t_scanner/adv_mining_scanner/scan() if(!cooldown) cooldown = 1 - spawn(60) + spawn(35) cooldown = 0 var/turf/t = get_turf(src) var/list/mobs = recursive_mob_check(t, 1,0,0) @@ -838,7 +838,7 @@ var/client/C = user.client for(M in L) var/turf/T = get_turf(M) - var/image/I = image('icons/turf/walls.dmi', loc = T, icon_state = M.scan_state, layer = 18) + var/image/I = image('icons/turf/mining.dmi', loc = T, icon_state = M.scan_state, layer = 18) C.images += I spawn(30) if(C) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 3da4c92c17b..ea456b180fb 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -50,7 +50,7 @@ /obj/item/weapon/pickaxe name = "pickaxe" - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/mining.dmi' icon_state = "pickaxe" flags = CONDUCT slot_flags = SLOT_BELT @@ -79,12 +79,12 @@ name = "mining drill" icon_state = "handdrill" item_state = "jackhammer" - digspeed = 30 //available from roundstart, faster than a pickaxe but needs recharging or cell replacements + digspeed = 25 //available from roundstart, faster than a pickaxe but needs recharging or cell replacements digsound = list('sound/weapons/drill.ogg') hitsound = 'sound/weapons/drill.ogg' origin_tech = "materials=2;powerstorage=3;engineering=2" desc = "An electric mining drill for the especially scrawny." - var/drillcost = 125 //80 mineral walls by default + var/drillcost = 50 //80 mineral walls by default var/obj/item/weapon/stock_parts/cell/high/bcell = null /obj/item/weapon/pickaxe/drill/New() //this one starts with a cell pre-installed. @@ -134,28 +134,28 @@ /obj/item/weapon/pickaxe/drill/diamonddrill name = "diamond-tipped mining drill" icon_state = "diamonddrill" - digspeed = 10 //it's a fast drill with a relatively low power cost. what more could you ask for? + digspeed = 8 //it's a fast drill with a relatively low power cost. what more could you ask for? origin_tech = "materials=6;powerstorage=4;engineering=5" desc = "Yours is the drill that will pierce the heavens!" - drillcost = 150 //66 mineral walls by default, but very quickly + drillcost = 75 //66 mineral walls by default, but very quickly /obj/item/weapon/pickaxe/drill/jackhammer name = "sonic jackhammer" icon_state = "jackhammer" item_state = "jackhammer" - digspeed = 5 //the epitome of powertools. high power consumption, extremely fast mining, laughs at puny walls + digspeed = 4 //the epitome of powertools. high power consumption, extremely fast mining, laughs at puny walls origin_tech = "materials=3;powerstorage=2;engineering=2" digsound = list('sound/weapons/sonic_jackhammer.ogg') hitsound = 'sound/weapons/sonic_jackhammer.ogg' - desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls.." - drillcost = 200 + desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls." + drillcost = 100 /*****************************Shovel********************************/ /obj/item/weapon/shovel name = "shovel" desc = "A large tool for digging and moving dirt." - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/mining.dmi' icon_state = "shovel" flags = CONDUCT slot_flags = SLOT_BELT diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 38afd36308c..4cb58dc6994 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -2,7 +2,7 @@ /turf/simulated/mineral //wall piece name = "rock" - icon = 'icons/turf/walls.dmi' + icon = 'icons/turf/mining.dmi' icon_state = "rock_nochance" oxygen = 0 nitrogen = 0 @@ -10,7 +10,7 @@ density = 1 blocks_air = 1 temperature = TCMB - var/mineralName = "" + var/mineralType = null var/mineralAmt = 3 var/spread = 0 //will the seam spread? var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles @@ -38,21 +38,21 @@ if((istype(get_step(src, NORTH), /turf/simulated/floor)) || (istype(get_step(src, NORTH), /turf/space)) || (istype(get_step(src, NORTH), /turf/simulated/shuttle/floor))) T = get_step(src, NORTH) if (T) - T.overlays += image('icons/turf/walls.dmi', "rock_side_s") + T.overlays += image('icons/turf/mining.dmi', "rock_side_s") if((istype(get_step(src, SOUTH), /turf/simulated/floor)) || (istype(get_step(src, SOUTH), /turf/space)) || (istype(get_step(src, SOUTH), /turf/simulated/shuttle/floor))) T = get_step(src, SOUTH) if (T) - T.overlays += image('icons/turf/walls.dmi', "rock_side_n", layer=6) + T.overlays += image('icons/turf/mining.dmi', "rock_side_n", layer=6) if((istype(get_step(src, EAST), /turf/simulated/floor)) || (istype(get_step(src, EAST), /turf/space)) || (istype(get_step(src, EAST), /turf/simulated/shuttle/floor))) T = get_step(src, EAST) if (T) - T.overlays += image('icons/turf/walls.dmi', "rock_side_w", layer=6) + T.overlays += image('icons/turf/mining.dmi', "rock_side_w", layer=6) if((istype(get_step(src, WEST), /turf/simulated/floor)) || (istype(get_step(src, WEST), /turf/space)) || (istype(get_step(src, WEST), /turf/simulated/shuttle/floor))) T = get_step(src, WEST) if (T) - T.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6) + T.overlays += image('icons/turf/mining.dmi', "rock_side_e", layer=6) - if (mineralName && mineralAmt && spread && spreadChance) + if (mineralType && mineralAmt && spread && spreadChance) for(var/dir in cardinal) if(prob(spreadChance)) var/turf/T = get_step(src, dir) @@ -73,7 +73,12 @@ /turf/simulated/mineral/random name = "mineral deposit" icon_state = "rock" - var/mineralSpawnChanceList = list("Uranium" = 5, "Diamond" = 1, "Gold" = 10, "Silver" = 12, "Plasma" = 20, "Iron" = 40, "Gibtonite" = 4/*, "Adamantine" =5*/, "Cave" = 2)//Currently, Adamantine won't spawn as it has no uses. -Durandan + var/mineralSpawnChanceList = list( + "Uranium" = 5, "Diamond" = 1, "Gold" = 10, + "Silver" = 12, "Plasma" = 20, "Iron" = 40, + "Gibtonite" = 4, "Cave" = 2, "BScrystal" = 1, + /*, "Adamantine" =5*/) + //Currently, Adamantine won't spawn as it has no uses. -Durandan var/mineralChance = 13 /turf/simulated/mineral/random/New() @@ -102,6 +107,8 @@ M = new/turf/simulated/mineral/gibtonite(src) if("Bananium") M = new/turf/simulated/mineral/clown(src) + if("BScrystal") + M = new/turf/simulated/mineral/bscrystal(src) /*if("Adamantine") M = new/turf/simulated/mineral/adamantine(src)*/ if(M) @@ -112,7 +119,10 @@ /turf/simulated/mineral/random/high_chance icon_state = "rock_highchance" mineralChance = 25 - mineralSpawnChanceList = list("Uranium" = 35, "Diamond" = 30, "Gold" = 45, "Silver" = 50, "Plasma" = 50) + mineralSpawnChanceList = list( + "Uranium" = 35, "Diamond" = 30, + "Gold" = 45, "Silver" = 50, "Plasma" = 50, + "BScrystal" = 20) /turf/simulated/mineral/random/high_chance/New() icon_state = "rock" @@ -121,31 +131,34 @@ /turf/simulated/mineral/random/low_chance icon_state = "rock_lowchance" mineralChance = 6 - mineralSpawnChanceList = list("Uranium" = 2, "Diamond" = 1, "Gold" = 4, "Silver" = 6, "Plasma" = 15, "Iron" = 40, "Gibtonite" = 2) + mineralSpawnChanceList = list( + "Uranium" = 2, "Diamond" = 1, "Gold" = 4, + "Silver" = 6, "Plasma" = 15, "Iron" = 40, + "Gibtonite" = 2, "BScrystal" = 1) /turf/simulated/mineral/random/low_chance/New() icon_state = "rock" ..() +/turf/simulated/mineral/iron + name = "iron deposit" + icon_state = "rock_Iron" + mineralType = /obj/item/weapon/ore/iron + spreadChance = 20 + spread = 1 + hidden = 0 + /turf/simulated/mineral/uranium name = "uranium deposit" - mineralName = "Uranium" + mineralType = /obj/item/weapon/ore/uranium spreadChance = 5 spread = 1 hidden = 1 scan_state = "rock_Uranium" -/turf/simulated/mineral/iron - name = "iron deposit" - icon_state = "rock_Iron" - mineralName = "Iron" - spreadChance = 20 - spread = 1 - hidden = 0 - /turf/simulated/mineral/diamond name = "diamond deposit" - mineralName = "Diamond" + mineralType = /obj/item/weapon/ore/diamond spreadChance = 0 spread = 1 hidden = 1 @@ -153,7 +166,7 @@ /turf/simulated/mineral/gold name = "gold deposit" - mineralName = "Gold" + mineralType = /obj/item/weapon/ore/gold spreadChance = 5 spread = 1 hidden = 1 @@ -161,7 +174,7 @@ /turf/simulated/mineral/silver name = "silver deposit" - mineralName = "Silver" + mineralType = /obj/item/weapon/ore/silver spreadChance = 5 spread = 1 hidden = 1 @@ -170,7 +183,7 @@ /turf/simulated/mineral/plasma name = "plasma deposit" icon_state = "rock_Plasma" - mineralName = "Plasma" + mineralType = /obj/item/weapon/ore/plasma spreadChance = 8 spread = 1 hidden = 1 @@ -179,17 +192,26 @@ /turf/simulated/mineral/clown name = "bananium deposit" icon_state = "rock_Clown" - mineralName = "Bananium" + mineralType = /obj/item/weapon/ore/bananium mineralAmt = 3 spreadChance = 0 spread = 0 hidden = 0 +/turf/simulated/mineral/bscrystal + name = "bluespace crystal deposit" + icon_state = "rock_BScrystal" + mineralType = /obj/item/bluespace_crystal + mineralAmt = 1 + spreadChance = 0 + spread = 0 + hidden = 1 + scan_state = "rock_BScrystal" + ////////////////////////////////Gibtonite /turf/simulated/mineral/gibtonite name = "gibtonite deposit" icon_state = "rock_Gibtonite" - mineralName = "Gibtonite" mineralAmt = 1 spreadChance = 0 spread = 0 @@ -419,23 +441,10 @@ return /turf/simulated/mineral/proc/gets_drilled() - if ((src.mineralName != "") && (src.mineralAmt > 0) && (src.mineralAmt < 11)) + if (mineralType && (src.mineralAmt > 0) && (src.mineralAmt < 11)) var/i for (i=0;i[user] attaches [I] to [src]!") + wires = new(src) + attacher = key_name(user) + qdel(I) + overlays += "Gibtonite_igniter" + return + + if(wires && !primed) + if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler)) + wires.Interact(user) + return + + if(istype(I, /obj/item/weapon/pickaxe) || istype(I, /obj/item/weapon/resonator) || I.force >= 10) GibtoniteReaction(user) return - if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) && primed) - primed = 0 - user.visible_message("The chain reaction was stopped! ...The ore's quality went down.") - icon_state = "Gibtonite ore" - quality = 1 - return + if(primed) + if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) || istype(I, /obj/item/device/multitool)) + primed = 0 + user.visible_message("The chain reaction was stopped! ...The ore's quality went down.") + icon_state = "Gibtonite ore" + quality = 1 + return ..() +/obj/item/weapon/twohanded/required/gibtonite/attack_self(user) + if(wires) + wires.Interact(user) + else + ..() + /obj/item/weapon/twohanded/required/gibtonite/bullet_act(var/obj/item/projectile/P) - if(istype(P, /obj/item/projectile/kinetic)) - GibtoniteReaction(P.firer) + GibtoniteReaction(P.firer) ..() /obj/item/weapon/twohanded/required/gibtonite/ex_act() GibtoniteReaction(null, 1) -/obj/item/weapon/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by_explosive = 0) + + +/obj/item/weapon/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) if(!primed) playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) primed = 1 @@ -149,13 +172,18 @@ var/notify_admins = 0 if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel notify_admins = 1 + if(notify_admins) - if(triggered_by_explosive) + if(triggered_by == 1) message_admins("An explosion has triggered a [name] to detonate at [A.name] (JMP).") + else if(triggered_by == 2) + message_admins("A signal has triggered a [name] to detonate at [A.name] (JMP). Igniter attacher: [attacher]") else message_admins("[key_name(user)]? has triggered a [name] to detonate at [A.name] (JMP).") - if(triggered_by_explosive) + if(triggered_by == 1) log_game("An explosion has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") + else if(triggered_by == 2) + log_game("A signal has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z]). Igniter attacher: [attacher].") else user.visible_message("[user] strikes \the [src], causing a chain reaction!") log_game("[key_name(user)] has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 062aab6e7cb..8851c784a35 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -442,7 +442,7 @@ /obj/item/asteroid/goliath_hide name = "goliath hide plates" desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/mining.dmi' icon_state = "goliath_hide" flags = NOBLUDGEON w_class = 3 @@ -463,8 +463,11 @@ if(istype(target, /obj/mecha/working/ripley)) var/obj/mecha/D = target var/list/damage_absorption = D.damage_absorption - if(damage_absorption.["brute"] > 0.3) - damage_absorption.["brute"] = max(damage_absorption.["brute"] - 0.1, 0.3) + if(damage_absorption["brute"] > 0.3) + damage_absorption["brute"] = max(damage_absorption["brute"] - 0.1, 0.3) + damage_absorption["bullet"] = damage_absorption["bullet"] - 0.05 + damage_absorption["fire"] = damage_absorption["fire"] - 0.05 + damage_absorption["laser"] = damage_absorption["laser"] - 0.025 user << "You strengthen [target], improving its resistance against melee attacks." qdel(src) if(D.icon_state == "ripley-open") diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index eaca8f4f8ef..9fb83e560f7 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -214,6 +214,7 @@ icon_state = "plasmacutter" item_state = "plasmacutter" force = 15 + damtype = "fire" modifystate = -1 origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1" ammo_type = list(/obj/item/ammo_casing/energy/plasma) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 2797a327535..8745de421ff 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -69,9 +69,10 @@ return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume /obj/item/projectile/Bump(atom/A) - if(A == firer) + if(A == firer || A == src) loc = A.loc return 0 //cannot shoot yourself + if(bumped)//Stops multihit projectiles return 1 bumped = 1 diff --git a/html/changelogs/ACCount12-mining.yml b/html/changelogs/ACCount12-mining.yml new file mode 100644 index 00000000000..d2188ec7e52 --- /dev/null +++ b/html/changelogs/ACCount12-mining.yml @@ -0,0 +1,12 @@ +author: ACCount + +delete-after: True + +changes: + - rscadd: "The plasma cutter is now a gun that comes in the mining vending machine. Use it to mine fast but expensively." + - tweak: "It's also cheaper in RnD, and there's an advanced version of it there too. Yay!" + - tweak: "Ripleys and Firefighters have been buffed significantly. Go wild." + - tweak: "Precious mesons are cheaper in RnD." + - rscadd: "Now you can mine bluespace crystals. They are extremely rare." + - rscadd: "You can make remote bombs out of gibtonite. Figure out how." + - tweak: "Gibtonite is a bit less stable. Do not hit it with anything heavy." \ No newline at end of file diff --git a/html/changelogs/pudl-what-would-hova-do.yml b/html/changelogs/pudl-what-would-hova-do.yml deleted file mode 100644 index 9255ba5aa9f..00000000000 --- a/html/changelogs/pudl-what-would-hova-do.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: pudl - -delete-after: True - -changes: - - rscadd: "The plasma cutter is now a gun that comes in the mining vending machine. Use it to mine fast but expensively." - - rscadd: "It's also cheaper in RnD, and there's an advanced version of it there too. Yay!" - - rscadd: "Ripleys and Firefighters have been buffed significantly. Go wild." - - rscadd: "Also, Ripleys can spawn with a plasma cutter attachment, free of charge." - - rscadd: "Precious mesons are cheaper in RnD." \ No newline at end of file diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 0dd8ac348bd..f0a2daed423 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 4b2073c171b..e734afbf63d 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/turf/mining.dmi b/icons/turf/mining.dmi new file mode 100644 index 00000000000..f409dc179e5 Binary files /dev/null and b/icons/turf/mining.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index d3fecdcf5d6..d129a462dff 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ