A lot of stuff
@@ -30,3 +30,17 @@ var/const/WIRE_EXPLODE = 1
|
|||||||
var/obj/item/weapon/c4/P = holder
|
var/obj/item/weapon/c4/P = holder
|
||||||
P.explode(get_turf(P))
|
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)
|
||||||
@@ -121,8 +121,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/atom/proc/bullet_act(obj/item/projectile/P, def_zone)
|
/atom/proc/bullet_act(obj/item/projectile/P, def_zone)
|
||||||
P.on_hit(src, 0, def_zone)
|
. = P.on_hit(src, 0, def_zone)
|
||||||
. = 0
|
|
||||||
|
|
||||||
/atom/proc/in_contents_of(container)//can take class or object instance as argument
|
/atom/proc/in_contents_of(container)//can take class or object instance as argument
|
||||||
if(ispath(container))
|
if(ispath(container))
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
health = 200
|
health = 200
|
||||||
lights_power = 7
|
lights_power = 7
|
||||||
deflect_chance = 15
|
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
|
max_equip = 6
|
||||||
wreckage = /obj/structure/mecha_wreckage/ripley
|
wreckage = /obj/structure/mecha_wreckage/ripley
|
||||||
var/list/cargo = new
|
var/list/cargo = new
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
/obj/mecha/working/ripley/go_out()
|
/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 = null
|
||||||
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-open")
|
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-open")
|
||||||
else if (src.damage_absorption.["brute"] == 0.3)
|
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)
|
/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 = null
|
||||||
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g")
|
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 = null
|
||||||
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full")
|
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)
|
/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 = null
|
||||||
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g")
|
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 = null
|
||||||
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full")
|
src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full")
|
||||||
|
|
||||||
/obj/mecha/working/ripley/firefighter
|
/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\""
|
name = "\improper APLU \"Firefighter\""
|
||||||
icon_state = "firefighter"
|
icon_state = "firefighter"
|
||||||
max_temperature = 65000
|
max_temperature = 65000
|
||||||
health = 250
|
health = 250
|
||||||
lights_power = 7
|
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
|
max_equip = 5 // More armor, less tools
|
||||||
wreckage = /obj/structure/mecha_wreckage/ripley/firefighter
|
wreckage = /obj/structure/mecha_wreckage/ripley/firefighter
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
open_panel = !open_panel
|
open_panel = !open_panel
|
||||||
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
|
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
|
||||||
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)
|
wires.Interact(user)
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
icon_state = "meson"
|
icon_state = "meson"
|
||||||
item_state = "meson"
|
item_state = "meson"
|
||||||
origin_tech = "magnets=2;engineering=2"
|
origin_tech = "magnets=2;engineering=2"
|
||||||
darkness_view = 1
|
darkness_view = 2
|
||||||
vision_flags = SEE_TURFS
|
vision_flags = SEE_TURFS
|
||||||
invis_view = SEE_INVISIBLE_MINIMUM
|
invis_view = SEE_INVISIBLE_MINIMUM
|
||||||
|
|
||||||
|
|||||||
@@ -381,7 +381,7 @@
|
|||||||
/obj/item/weapon/mining_voucher
|
/obj/item/weapon/mining_voucher
|
||||||
name = "mining voucher"
|
name = "mining voucher"
|
||||||
desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor."
|
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"
|
icon_state = "mining_voucher"
|
||||||
w_class = 1
|
w_class = 1
|
||||||
|
|
||||||
@@ -413,7 +413,7 @@
|
|||||||
/obj/item/device/wormhole_jaunter
|
/obj/item/device/wormhole_jaunter
|
||||||
name = "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."
|
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"
|
icon_state = "Jaunter"
|
||||||
item_state = "electronic"
|
item_state = "electronic"
|
||||||
throwforce = 0
|
throwforce = 0
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/resonator
|
/obj/item/weapon/resonator
|
||||||
name = "resonator"
|
name = "resonator"
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/mining.dmi'
|
||||||
icon_state = "resonator"
|
icon_state = "resonator"
|
||||||
item_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."
|
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
|
else
|
||||||
for(M in L)
|
for(M in L)
|
||||||
var/turf/T = get_turf(M)
|
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
|
C.images += I
|
||||||
spawn(30)
|
spawn(30)
|
||||||
if(C)
|
if(C)
|
||||||
@@ -821,7 +821,7 @@
|
|||||||
/obj/item/device/t_scanner/adv_mining_scanner/scan()
|
/obj/item/device/t_scanner/adv_mining_scanner/scan()
|
||||||
if(!cooldown)
|
if(!cooldown)
|
||||||
cooldown = 1
|
cooldown = 1
|
||||||
spawn(60)
|
spawn(35)
|
||||||
cooldown = 0
|
cooldown = 0
|
||||||
var/turf/t = get_turf(src)
|
var/turf/t = get_turf(src)
|
||||||
var/list/mobs = recursive_mob_check(t, 1,0,0)
|
var/list/mobs = recursive_mob_check(t, 1,0,0)
|
||||||
@@ -838,7 +838,7 @@
|
|||||||
var/client/C = user.client
|
var/client/C = user.client
|
||||||
for(M in L)
|
for(M in L)
|
||||||
var/turf/T = get_turf(M)
|
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
|
C.images += I
|
||||||
spawn(30)
|
spawn(30)
|
||||||
if(C)
|
if(C)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/pickaxe
|
/obj/item/weapon/pickaxe
|
||||||
name = "pickaxe"
|
name = "pickaxe"
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/mining.dmi'
|
||||||
icon_state = "pickaxe"
|
icon_state = "pickaxe"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
@@ -79,12 +79,12 @@
|
|||||||
name = "mining drill"
|
name = "mining drill"
|
||||||
icon_state = "handdrill"
|
icon_state = "handdrill"
|
||||||
item_state = "jackhammer"
|
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')
|
digsound = list('sound/weapons/drill.ogg')
|
||||||
hitsound = 'sound/weapons/drill.ogg'
|
hitsound = 'sound/weapons/drill.ogg'
|
||||||
origin_tech = "materials=2;powerstorage=3;engineering=2"
|
origin_tech = "materials=2;powerstorage=3;engineering=2"
|
||||||
desc = "An electric mining drill for the especially scrawny."
|
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
|
var/obj/item/weapon/stock_parts/cell/high/bcell = null
|
||||||
|
|
||||||
/obj/item/weapon/pickaxe/drill/New() //this one starts with a cell pre-installed.
|
/obj/item/weapon/pickaxe/drill/New() //this one starts with a cell pre-installed.
|
||||||
@@ -134,28 +134,28 @@
|
|||||||
/obj/item/weapon/pickaxe/drill/diamonddrill
|
/obj/item/weapon/pickaxe/drill/diamonddrill
|
||||||
name = "diamond-tipped mining drill"
|
name = "diamond-tipped mining drill"
|
||||||
icon_state = "diamonddrill"
|
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"
|
origin_tech = "materials=6;powerstorage=4;engineering=5"
|
||||||
desc = "Yours is the drill that will pierce the heavens!"
|
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
|
/obj/item/weapon/pickaxe/drill/jackhammer
|
||||||
name = "sonic jackhammer"
|
name = "sonic jackhammer"
|
||||||
icon_state = "jackhammer"
|
icon_state = "jackhammer"
|
||||||
item_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"
|
origin_tech = "materials=3;powerstorage=2;engineering=2"
|
||||||
digsound = list('sound/weapons/sonic_jackhammer.ogg')
|
digsound = list('sound/weapons/sonic_jackhammer.ogg')
|
||||||
hitsound = '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.."
|
desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls."
|
||||||
drillcost = 200
|
drillcost = 100
|
||||||
|
|
||||||
/*****************************Shovel********************************/
|
/*****************************Shovel********************************/
|
||||||
|
|
||||||
/obj/item/weapon/shovel
|
/obj/item/weapon/shovel
|
||||||
name = "shovel"
|
name = "shovel"
|
||||||
desc = "A large tool for digging and moving dirt."
|
desc = "A large tool for digging and moving dirt."
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/mining.dmi'
|
||||||
icon_state = "shovel"
|
icon_state = "shovel"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
/turf/simulated/mineral //wall piece
|
/turf/simulated/mineral //wall piece
|
||||||
name = "rock"
|
name = "rock"
|
||||||
icon = 'icons/turf/walls.dmi'
|
icon = 'icons/turf/mining.dmi'
|
||||||
icon_state = "rock_nochance"
|
icon_state = "rock_nochance"
|
||||||
oxygen = 0
|
oxygen = 0
|
||||||
nitrogen = 0
|
nitrogen = 0
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
density = 1
|
density = 1
|
||||||
blocks_air = 1
|
blocks_air = 1
|
||||||
temperature = TCMB
|
temperature = TCMB
|
||||||
var/mineralName = ""
|
var/mineralType = null
|
||||||
var/mineralAmt = 3
|
var/mineralAmt = 3
|
||||||
var/spread = 0 //will the seam spread?
|
var/spread = 0 //will the seam spread?
|
||||||
var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles
|
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)))
|
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)
|
T = get_step(src, NORTH)
|
||||||
if (T)
|
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)))
|
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)
|
T = get_step(src, SOUTH)
|
||||||
if (T)
|
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)))
|
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)
|
T = get_step(src, EAST)
|
||||||
if (T)
|
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)))
|
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)
|
T = get_step(src, WEST)
|
||||||
if (T)
|
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)
|
for(var/dir in cardinal)
|
||||||
if(prob(spreadChance))
|
if(prob(spreadChance))
|
||||||
var/turf/T = get_step(src, dir)
|
var/turf/T = get_step(src, dir)
|
||||||
@@ -73,7 +73,12 @@
|
|||||||
/turf/simulated/mineral/random
|
/turf/simulated/mineral/random
|
||||||
name = "mineral deposit"
|
name = "mineral deposit"
|
||||||
icon_state = "rock"
|
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
|
var/mineralChance = 13
|
||||||
|
|
||||||
/turf/simulated/mineral/random/New()
|
/turf/simulated/mineral/random/New()
|
||||||
@@ -102,6 +107,8 @@
|
|||||||
M = new/turf/simulated/mineral/gibtonite(src)
|
M = new/turf/simulated/mineral/gibtonite(src)
|
||||||
if("Bananium")
|
if("Bananium")
|
||||||
M = new/turf/simulated/mineral/clown(src)
|
M = new/turf/simulated/mineral/clown(src)
|
||||||
|
if("BScrystal")
|
||||||
|
M = new/turf/simulated/mineral/bscrystal(src)
|
||||||
/*if("Adamantine")
|
/*if("Adamantine")
|
||||||
M = new/turf/simulated/mineral/adamantine(src)*/
|
M = new/turf/simulated/mineral/adamantine(src)*/
|
||||||
if(M)
|
if(M)
|
||||||
@@ -112,7 +119,10 @@
|
|||||||
/turf/simulated/mineral/random/high_chance
|
/turf/simulated/mineral/random/high_chance
|
||||||
icon_state = "rock_highchance"
|
icon_state = "rock_highchance"
|
||||||
mineralChance = 25
|
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()
|
/turf/simulated/mineral/random/high_chance/New()
|
||||||
icon_state = "rock"
|
icon_state = "rock"
|
||||||
@@ -121,31 +131,34 @@
|
|||||||
/turf/simulated/mineral/random/low_chance
|
/turf/simulated/mineral/random/low_chance
|
||||||
icon_state = "rock_lowchance"
|
icon_state = "rock_lowchance"
|
||||||
mineralChance = 6
|
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()
|
/turf/simulated/mineral/random/low_chance/New()
|
||||||
icon_state = "rock"
|
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
|
/turf/simulated/mineral/uranium
|
||||||
name = "uranium deposit"
|
name = "uranium deposit"
|
||||||
mineralName = "Uranium"
|
mineralType = /obj/item/weapon/ore/uranium
|
||||||
spreadChance = 5
|
spreadChance = 5
|
||||||
spread = 1
|
spread = 1
|
||||||
hidden = 1
|
hidden = 1
|
||||||
scan_state = "rock_Uranium"
|
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
|
/turf/simulated/mineral/diamond
|
||||||
name = "diamond deposit"
|
name = "diamond deposit"
|
||||||
mineralName = "Diamond"
|
mineralType = /obj/item/weapon/ore/diamond
|
||||||
spreadChance = 0
|
spreadChance = 0
|
||||||
spread = 1
|
spread = 1
|
||||||
hidden = 1
|
hidden = 1
|
||||||
@@ -153,7 +166,7 @@
|
|||||||
|
|
||||||
/turf/simulated/mineral/gold
|
/turf/simulated/mineral/gold
|
||||||
name = "gold deposit"
|
name = "gold deposit"
|
||||||
mineralName = "Gold"
|
mineralType = /obj/item/weapon/ore/gold
|
||||||
spreadChance = 5
|
spreadChance = 5
|
||||||
spread = 1
|
spread = 1
|
||||||
hidden = 1
|
hidden = 1
|
||||||
@@ -161,7 +174,7 @@
|
|||||||
|
|
||||||
/turf/simulated/mineral/silver
|
/turf/simulated/mineral/silver
|
||||||
name = "silver deposit"
|
name = "silver deposit"
|
||||||
mineralName = "Silver"
|
mineralType = /obj/item/weapon/ore/silver
|
||||||
spreadChance = 5
|
spreadChance = 5
|
||||||
spread = 1
|
spread = 1
|
||||||
hidden = 1
|
hidden = 1
|
||||||
@@ -170,7 +183,7 @@
|
|||||||
/turf/simulated/mineral/plasma
|
/turf/simulated/mineral/plasma
|
||||||
name = "plasma deposit"
|
name = "plasma deposit"
|
||||||
icon_state = "rock_Plasma"
|
icon_state = "rock_Plasma"
|
||||||
mineralName = "Plasma"
|
mineralType = /obj/item/weapon/ore/plasma
|
||||||
spreadChance = 8
|
spreadChance = 8
|
||||||
spread = 1
|
spread = 1
|
||||||
hidden = 1
|
hidden = 1
|
||||||
@@ -179,17 +192,26 @@
|
|||||||
/turf/simulated/mineral/clown
|
/turf/simulated/mineral/clown
|
||||||
name = "bananium deposit"
|
name = "bananium deposit"
|
||||||
icon_state = "rock_Clown"
|
icon_state = "rock_Clown"
|
||||||
mineralName = "Bananium"
|
mineralType = /obj/item/weapon/ore/bananium
|
||||||
mineralAmt = 3
|
mineralAmt = 3
|
||||||
spreadChance = 0
|
spreadChance = 0
|
||||||
spread = 0
|
spread = 0
|
||||||
hidden = 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
|
////////////////////////////////Gibtonite
|
||||||
/turf/simulated/mineral/gibtonite
|
/turf/simulated/mineral/gibtonite
|
||||||
name = "gibtonite deposit"
|
name = "gibtonite deposit"
|
||||||
icon_state = "rock_Gibtonite"
|
icon_state = "rock_Gibtonite"
|
||||||
mineralName = "Gibtonite"
|
|
||||||
mineralAmt = 1
|
mineralAmt = 1
|
||||||
spreadChance = 0
|
spreadChance = 0
|
||||||
spread = 0
|
spread = 0
|
||||||
@@ -419,23 +441,10 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/turf/simulated/mineral/proc/gets_drilled()
|
/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
|
var/i
|
||||||
for (i=0;i<mineralAmt;i++)
|
for (i=0;i<mineralAmt;i++)
|
||||||
if (src.mineralName == "Uranium")
|
new mineralType(src)
|
||||||
new /obj/item/weapon/ore/uranium(src)
|
|
||||||
if (src.mineralName == "Iron")
|
|
||||||
new /obj/item/weapon/ore/iron(src)
|
|
||||||
if (src.mineralName == "Gold")
|
|
||||||
new /obj/item/weapon/ore/gold(src)
|
|
||||||
if (src.mineralName == "Silver")
|
|
||||||
new /obj/item/weapon/ore/silver(src)
|
|
||||||
if (src.mineralName == "Plasma")
|
|
||||||
new /obj/item/weapon/ore/plasma(src)
|
|
||||||
if (src.mineralName == "Diamond")
|
|
||||||
new /obj/item/weapon/ore/diamond(src)
|
|
||||||
if (src.mineralName == "Bananium")
|
|
||||||
new /obj/item/weapon/ore/bananium(src)
|
|
||||||
var/turf/simulated/floor/plating/asteroid/airless/N = ChangeTurf(/turf/simulated/floor/plating/asteroid/airless)
|
var/turf/simulated/floor/plating/asteroid/airless/N = ChangeTurf(/turf/simulated/floor/plating/asteroid/airless)
|
||||||
playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction
|
playsound(src, 'sound/effects/break_stone.ogg', 50, 1) //beautiful destruction
|
||||||
N.fullUpdateMineralOverlays()
|
N.fullUpdateMineralOverlays()
|
||||||
@@ -591,13 +600,13 @@
|
|||||||
src.overlays.Cut()
|
src.overlays.Cut()
|
||||||
|
|
||||||
if(istype(get_step(src, NORTH), /turf/simulated/mineral))
|
if(istype(get_step(src, NORTH), /turf/simulated/mineral))
|
||||||
src.overlays += image('icons/turf/walls.dmi', "rock_side_n")
|
src.overlays += image('icons/turf/mining.dmi', "rock_side_n")
|
||||||
if(istype(get_step(src, SOUTH), /turf/simulated/mineral))
|
if(istype(get_step(src, SOUTH), /turf/simulated/mineral))
|
||||||
src.overlays += image('icons/turf/walls.dmi', "rock_side_s", layer=6)
|
src.overlays += image('icons/turf/mining.dmi', "rock_side_s", layer=6)
|
||||||
if(istype(get_step(src, EAST), /turf/simulated/mineral))
|
if(istype(get_step(src, EAST), /turf/simulated/mineral))
|
||||||
src.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6)
|
src.overlays += image('icons/turf/mining.dmi', "rock_side_e", layer=6)
|
||||||
if(istype(get_step(src, WEST), /turf/simulated/mineral))
|
if(istype(get_step(src, WEST), /turf/simulated/mineral))
|
||||||
src.overlays += image('icons/turf/walls.dmi', "rock_side_w", layer=6)
|
src.overlays += image('icons/turf/mining.dmi', "rock_side_w", layer=6)
|
||||||
|
|
||||||
/turf/simulated/mineral/updateMineralOverlays()
|
/turf/simulated/mineral/updateMineralOverlays()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -118,12 +118,28 @@
|
|||||||
var/primed = 0
|
var/primed = 0
|
||||||
var/det_time = 100
|
var/det_time = 100
|
||||||
var/quality = 1 //How pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better
|
var/quality = 1 //How pure this gibtonite is, determines the explosion produced by it and is derived from the det_time of the rock wall it was taken from, higher value = better
|
||||||
|
var/attacher = "UNKNOWN"
|
||||||
|
var/datum/wires/explosive/gibtonite/wires
|
||||||
|
|
||||||
/obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params)
|
/obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params)
|
||||||
if(istype(I, /obj/item/weapon/pickaxe) || istype(I, /obj/item/weapon/resonator))
|
if(!wires && istype(I, /obj/item/device/assembly/igniter))
|
||||||
|
user.visible_message("<span class='warning'>[user] attaches [I] to [src]!</span>")
|
||||||
|
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)
|
GibtoniteReaction(user)
|
||||||
return
|
return
|
||||||
if(istype(I, /obj/item/device/mining_scanner) || istype(I, /obj/item/device/t_scanner/adv_mining_scanner) && primed)
|
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
|
primed = 0
|
||||||
user.visible_message("<span class='notice'>The chain reaction was stopped! ...The ore's quality went down.</span>")
|
user.visible_message("<span class='notice'>The chain reaction was stopped! ...The ore's quality went down.</span>")
|
||||||
icon_state = "Gibtonite ore"
|
icon_state = "Gibtonite ore"
|
||||||
@@ -131,15 +147,22 @@
|
|||||||
return
|
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)
|
/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()
|
/obj/item/weapon/twohanded/required/gibtonite/ex_act()
|
||||||
GibtoniteReaction(null, 1)
|
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)
|
if(!primed)
|
||||||
playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1)
|
playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1)
|
||||||
primed = 1
|
primed = 1
|
||||||
@@ -149,13 +172,18 @@
|
|||||||
var/notify_admins = 0
|
var/notify_admins = 0
|
||||||
if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel
|
if(z != 5)//Only annoy the admins ingame if we're triggered off the mining zlevel
|
||||||
notify_admins = 1
|
notify_admins = 1
|
||||||
|
|
||||||
if(notify_admins)
|
if(notify_admins)
|
||||||
if(triggered_by_explosive)
|
if(triggered_by == 1)
|
||||||
message_admins("An explosion has triggered a [name] to detonate at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>.")
|
message_admins("An explosion has triggered a [name] to detonate at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>.")
|
||||||
|
else if(triggered_by == 2)
|
||||||
|
message_admins("A signal has triggered a [name] to detonate at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>. Igniter attacher: [attacher]")
|
||||||
else
|
else
|
||||||
message_admins("[key_name(user)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> has triggered a [name] to detonate at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>.")
|
message_admins("[key_name(user)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> has triggered a [name] to detonate at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>.")
|
||||||
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])")
|
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
|
else
|
||||||
user.visible_message("<span class='warning'>[user] strikes \the [src], causing a chain reaction!</span>")
|
user.visible_message("<span class='warning'>[user] strikes \the [src], causing a chain reaction!</span>")
|
||||||
log_game("[key_name(user)] has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])")
|
log_game("[key_name(user)] has primed a [name] for detonation at [A.name]([bombturf.x],[bombturf.y],[bombturf.z])")
|
||||||
|
|||||||
@@ -442,7 +442,7 @@
|
|||||||
/obj/item/asteroid/goliath_hide
|
/obj/item/asteroid/goliath_hide
|
||||||
name = "goliath hide plates"
|
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."
|
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"
|
icon_state = "goliath_hide"
|
||||||
flags = NOBLUDGEON
|
flags = NOBLUDGEON
|
||||||
w_class = 3
|
w_class = 3
|
||||||
@@ -463,8 +463,11 @@
|
|||||||
if(istype(target, /obj/mecha/working/ripley))
|
if(istype(target, /obj/mecha/working/ripley))
|
||||||
var/obj/mecha/D = target
|
var/obj/mecha/D = target
|
||||||
var/list/damage_absorption = D.damage_absorption
|
var/list/damage_absorption = D.damage_absorption
|
||||||
if(damage_absorption.["brute"] > 0.3)
|
if(damage_absorption["brute"] > 0.3)
|
||||||
damage_absorption.["brute"] = max(damage_absorption.["brute"] - 0.1, 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 << "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>"
|
user << "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>"
|
||||||
qdel(src)
|
qdel(src)
|
||||||
if(D.icon_state == "ripley-open")
|
if(D.icon_state == "ripley-open")
|
||||||
|
|||||||
@@ -214,6 +214,7 @@
|
|||||||
icon_state = "plasmacutter"
|
icon_state = "plasmacutter"
|
||||||
item_state = "plasmacutter"
|
item_state = "plasmacutter"
|
||||||
force = 15
|
force = 15
|
||||||
|
damtype = "fire"
|
||||||
modifystate = -1
|
modifystate = -1
|
||||||
origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1"
|
origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1"
|
||||||
ammo_type = list(/obj/item/ammo_casing/energy/plasma)
|
ammo_type = list(/obj/item/ammo_casing/energy/plasma)
|
||||||
|
|||||||
@@ -69,9 +69,10 @@
|
|||||||
return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume
|
return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume
|
||||||
|
|
||||||
/obj/item/projectile/Bump(atom/A)
|
/obj/item/projectile/Bump(atom/A)
|
||||||
if(A == firer)
|
if(A == firer || A == src)
|
||||||
loc = A.loc
|
loc = A.loc
|
||||||
return 0 //cannot shoot yourself
|
return 0 //cannot shoot yourself
|
||||||
|
|
||||||
if(bumped)//Stops multihit projectiles
|
if(bumped)//Stops multihit projectiles
|
||||||
return 1
|
return 1
|
||||||
bumped = 1
|
bumped = 1
|
||||||
|
|||||||
12
html/changelogs/ACCount12-mining.yml
Normal file
@@ -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."
|
||||||
@@ -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."
|
|
||||||
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 54 KiB |
BIN
icons/turf/mining.dmi
Normal file
|
After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 189 KiB |