mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-22 05:25:15 +01:00
A lot of stuff
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<mineralAmt;i++)
|
||||
if (src.mineralName == "Uranium")
|
||||
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)
|
||||
new mineralType(src)
|
||||
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
|
||||
N.fullUpdateMineralOverlays()
|
||||
@@ -591,13 +600,13 @@
|
||||
src.overlays.Cut()
|
||||
|
||||
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))
|
||||
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))
|
||||
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))
|
||||
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()
|
||||
return
|
||||
|
||||
@@ -118,28 +118,51 @@
|
||||
var/primed = 0
|
||||
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/attacher = "UNKNOWN"
|
||||
var/datum/wires/explosive/gibtonite/wires
|
||||
|
||||
/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)
|
||||
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("<span class='notice'>The chain reaction was stopped! ...The ore's quality went down.</span>")
|
||||
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("<span class='notice'>The chain reaction was stopped! ...The ore's quality went down.</span>")
|
||||
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 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
|
||||
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])")
|
||||
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("<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])")
|
||||
|
||||
Reference in New Issue
Block a user