mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Mining
Mineral walls added (not buildable yet). Mineral doors are now actually destructible. Expanded the outpost, adding a small cafeteria and botany area. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1606 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -577,6 +577,17 @@ proc/move_mining_shuttle()
|
||||
name = "Mining station Maintenance"
|
||||
icon_state = "maintcentral"
|
||||
|
||||
/area/mine/cafeteria
|
||||
name = "Mining station Cafeteria"
|
||||
icon_state = "cafeteria"
|
||||
|
||||
/area/mine/hydroponics
|
||||
name = "Mining station Hydroponics"
|
||||
icon_state = "hydro"
|
||||
|
||||
/area/mine/sleeper
|
||||
name = "Mining station Emergency Sleeper"
|
||||
icon_state = "medbay"
|
||||
|
||||
/**********************Mineral deposits**************************/
|
||||
|
||||
|
||||
@@ -829,7 +829,7 @@
|
||||
return
|
||||
var/obj/glowshroom/planted = new /obj/glowshroom(user.loc)
|
||||
|
||||
planted.delay = lifespan * 10
|
||||
planted.delay = lifespan * 50
|
||||
planted.endurance = endurance
|
||||
planted.yield = yield
|
||||
planted.potency = potency
|
||||
|
||||
+106
-2
@@ -94,10 +94,12 @@
|
||||
|
||||
/turf/simulated/wall/r_wall
|
||||
name = "r wall"
|
||||
icon = 'walls.dmi'
|
||||
icon_state = "r_wall"
|
||||
opacity = 1
|
||||
density = 1
|
||||
|
||||
walltype = "rwall"
|
||||
|
||||
var/d_state = 0
|
||||
|
||||
/turf/simulated/wall
|
||||
@@ -110,6 +112,8 @@
|
||||
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
|
||||
heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m steel wall
|
||||
|
||||
var/walltype = "wall"
|
||||
|
||||
/turf/simulated/shuttle
|
||||
name = "shuttle"
|
||||
icon = 'shuttle.dmi'
|
||||
@@ -182,4 +186,104 @@
|
||||
|
||||
New(location,type)
|
||||
..()
|
||||
icon_state = "[type]vault"
|
||||
icon_state = "[type]vault"
|
||||
|
||||
/turf/simulated/wall/mineral
|
||||
icon = 'mineral_walls.dmi'
|
||||
walltype = "iron"
|
||||
|
||||
var/oreAmount = 1
|
||||
var/hardness = 1
|
||||
|
||||
New()
|
||||
..()
|
||||
name = "[walltype] wall"
|
||||
|
||||
dismantle_wall(devastated = 0)
|
||||
if(!devastated)
|
||||
var/ore = text2path("/obj/item/weapon/ore/[walltype]")
|
||||
for(var/i = 1, i <= oreAmount, i++)
|
||||
new ore(src)
|
||||
ReplaceWithFloor()
|
||||
else
|
||||
ReplaceWithSpace()
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/pickaxe))
|
||||
var/obj/item/weapon/pickaxe/digTool = W
|
||||
user << "You start digging the [name]."
|
||||
if(do_after(user,digTool.digspeed*hardness) && src)
|
||||
user << "You finished digging."
|
||||
dismantle_wall()
|
||||
else if(istype(W,/obj/item/weapon)) //not sure, can't not just weapons get passed to this proc?
|
||||
hardness -= W.force/100
|
||||
user << "You hit the [name] with your [W.name]!"
|
||||
CheckHardness()
|
||||
else
|
||||
attack_hand(user)
|
||||
return
|
||||
|
||||
proc/CheckHardness()
|
||||
if(hardness <= 0)
|
||||
dismantle_wall()
|
||||
|
||||
/turf/simulated/wall/mineral/iron
|
||||
walltype = "iron"
|
||||
hardness = 3
|
||||
|
||||
/turf/simulated/wall/mineral/silver
|
||||
walltype = "silver"
|
||||
hardness = 3
|
||||
|
||||
/turf/simulated/wall/mineral/uranium
|
||||
walltype = "uranium"
|
||||
hardness = 3
|
||||
|
||||
New()
|
||||
..()
|
||||
sd_SetLuminosity(3)
|
||||
|
||||
/turf/simulated/wall/mineral/gold
|
||||
walltype = "gold"
|
||||
|
||||
/turf/simulated/wall/mineral/sand
|
||||
walltype = "sand"
|
||||
hardness = 0.5
|
||||
|
||||
/turf/simulated/wall/mineral/transparent
|
||||
opacity = 0
|
||||
|
||||
/turf/simulated/wall/mineral/transparent/diamond
|
||||
walltype = "diamond"
|
||||
hardness = 10
|
||||
|
||||
/turf/simulated/wall/mineral/transparent/plasma
|
||||
walltype = "plasma"
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/weldingtool))
|
||||
if(W:welding)
|
||||
return TemperatureAct(100)
|
||||
..()
|
||||
|
||||
temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 300)
|
||||
TemperatureAct(exposed_temperature)
|
||||
|
||||
proc/TemperatureAct(temperature)
|
||||
for(var/turf/simulated/floor/target_tile in range(2,loc))
|
||||
if(target_tile.parent && target_tile.parent.group_processing)
|
||||
target_tile.parent.suspend_group_processing()
|
||||
|
||||
var/datum/gas_mixture/napalm = new
|
||||
|
||||
var/toxinsToDeduce = temperature/10
|
||||
|
||||
napalm.toxins = toxinsToDeduce
|
||||
napalm.temperature = 400+T0C
|
||||
|
||||
target_tile.assume_air(napalm)
|
||||
spawn (0) target_tile.hotspot_expose(temperature, 400)
|
||||
|
||||
hardness -= toxinsToDeduce/100
|
||||
CheckHardness()
|
||||
|
||||
@@ -13,10 +13,13 @@
|
||||
var/mineralType = "iron"
|
||||
var/state = 0 //closed, 1 == open
|
||||
var/isSwitchingStates = 0
|
||||
var/hardness = 1
|
||||
var/oreAmount = 7
|
||||
|
||||
New(location)
|
||||
..()
|
||||
icon_state = mineralType
|
||||
name = "[mineralType] door"
|
||||
update_nearby_tiles(need_rebuild=1)
|
||||
|
||||
Del()
|
||||
@@ -92,6 +95,47 @@
|
||||
else
|
||||
icon_state = mineralType
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/pickaxe))
|
||||
var/obj/item/weapon/pickaxe/digTool = W
|
||||
user << "You start digging the [name]."
|
||||
if(do_after(user,digTool.digspeed*hardness) && src)
|
||||
user << "You finished digging."
|
||||
Dismantle()
|
||||
else if(istype(W,/obj/item/weapon)) //not sure, can't not just weapons get passed to this proc?
|
||||
hardness -= W.force/100
|
||||
user << "You hit the [name] with your [W.name]!"
|
||||
CheckHardness()
|
||||
else
|
||||
attack_hand(user)
|
||||
return
|
||||
|
||||
proc/CheckHardness()
|
||||
if(hardness <= 0)
|
||||
Dismantle(1)
|
||||
|
||||
proc/Dismantle(devastated = 0)
|
||||
if(!devastated)
|
||||
var/ore = text2path("/obj/item/weapon/ore/[mineralType]")
|
||||
for(var/i = 1, i <= oreAmount, i++)
|
||||
new ore(get_turf(src))
|
||||
del(src)
|
||||
|
||||
ex_act(severity = 1)
|
||||
switch(severity)
|
||||
if(1)
|
||||
Dismantle(1)
|
||||
if(2)
|
||||
if(prob(20))
|
||||
Dismantle(1)
|
||||
else
|
||||
hardness--
|
||||
CheckHardness()
|
||||
if(3)
|
||||
hardness -= 0.1
|
||||
CheckHardness()
|
||||
return
|
||||
|
||||
proc/update_nearby_tiles(need_rebuild) //Copypasta from airlock code
|
||||
if(!air_master) return 0
|
||||
|
||||
@@ -138,18 +182,26 @@
|
||||
|
||||
/obj/mineral_door/iron
|
||||
mineralType = "iron"
|
||||
hardness = 3
|
||||
|
||||
/obj/mineral_door/silver
|
||||
mineralType = "silver"
|
||||
hardness = 3
|
||||
|
||||
/obj/mineral_door/gold
|
||||
mineralType = "gold"
|
||||
|
||||
/obj/mineral_door/uranium
|
||||
mineralType = "uranium"
|
||||
hardness = 3
|
||||
|
||||
New()
|
||||
..()
|
||||
sd_SetLuminosity(3)
|
||||
|
||||
/obj/mineral_door/sandstone
|
||||
mineralType = "sandstone"
|
||||
hardness = 0.5
|
||||
|
||||
/obj/mineral_door/transparent
|
||||
opacity = 0
|
||||
@@ -161,5 +213,34 @@
|
||||
/obj/mineral_door/transparent/plasma
|
||||
mineralType = "plasma"
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/weldingtool))
|
||||
if(W:welding)
|
||||
TemperatureAct(100)
|
||||
..()
|
||||
|
||||
temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > 300)
|
||||
TemperatureAct(exposed_temperature)
|
||||
|
||||
proc/TemperatureAct(temperature)
|
||||
for(var/turf/simulated/floor/target_tile in range(2,loc))
|
||||
if(target_tile.parent && target_tile.parent.group_processing)
|
||||
target_tile.parent.suspend_group_processing()
|
||||
|
||||
var/datum/gas_mixture/napalm = new
|
||||
|
||||
var/toxinsToDeduce = temperature/10
|
||||
|
||||
napalm.toxins = toxinsToDeduce
|
||||
napalm.temperature = 400+T0C
|
||||
|
||||
target_tile.assume_air(napalm)
|
||||
spawn (0) target_tile.hotspot_expose(temperature, 400)
|
||||
|
||||
hardness -= toxinsToDeduce/100
|
||||
CheckHardness()
|
||||
|
||||
/obj/mineral_door/transparent/diamond
|
||||
mineralType = "diamond"
|
||||
mineralType = "diamond"
|
||||
hardness = 10
|
||||
@@ -10,7 +10,7 @@ SILVER
|
||||
|
||||
//Sandstone
|
||||
var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
|
||||
new/datum/stack_recipe("sandstone door", /obj/mineral_door/sandstone, 20), \
|
||||
new/datum/stack_recipe("sandstone door", /obj/mineral_door/sandstone, 10), \
|
||||
/* new/datum/stack_recipe("sandstone wall", ???), \
|
||||
new/datum/stack_recipe("sandstone floor", ???),\*/
|
||||
)
|
||||
@@ -22,7 +22,7 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
|
||||
|
||||
//Diamond
|
||||
var/global/list/datum/stack_recipe/diamond_recipes = list ( \
|
||||
new/datum/stack_recipe("diamond door", /obj/mineral_door/transparent/diamond, 20), \
|
||||
new/datum/stack_recipe("diamond door", /obj/mineral_door/transparent/diamond, 10), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/diamond
|
||||
@@ -32,7 +32,7 @@ var/global/list/datum/stack_recipe/diamond_recipes = list ( \
|
||||
|
||||
//Uranium
|
||||
var/global/list/datum/stack_recipe/uranium_recipes = list ( \
|
||||
new/datum/stack_recipe("uranium door", /obj/mineral_door/uranium, 20), \
|
||||
new/datum/stack_recipe("uranium door", /obj/mineral_door/uranium, 10), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/uranium
|
||||
@@ -42,7 +42,7 @@ var/global/list/datum/stack_recipe/uranium_recipes = list ( \
|
||||
|
||||
//Plasma
|
||||
var/global/list/datum/stack_recipe/plasma_recipes = list ( \
|
||||
new/datum/stack_recipe("plasma door", /obj/mineral_door/transparent/plasma, 20), \
|
||||
new/datum/stack_recipe("plasma door", /obj/mineral_door/transparent/plasma, 10), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/plasma
|
||||
@@ -52,7 +52,7 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \
|
||||
|
||||
//Gold
|
||||
var/global/list/datum/stack_recipe/gold_recipes = list ( \
|
||||
new/datum/stack_recipe("golden door", /obj/mineral_door/gold, 20), \
|
||||
new/datum/stack_recipe("golden door", /obj/mineral_door/gold, 10), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/gold
|
||||
@@ -62,7 +62,7 @@ var/global/list/datum/stack_recipe/gold_recipes = list ( \
|
||||
|
||||
//Silver
|
||||
var/global/list/datum/stack_recipe/silver_recipes = list ( \
|
||||
new/datum/stack_recipe("silver door", /obj/mineral_door/silver, 20), \
|
||||
new/datum/stack_recipe("silver door", /obj/mineral_door/silver, 10), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/silver
|
||||
|
||||
@@ -32,9 +32,12 @@
|
||||
if((abs(src.x-W.x)-abs(src.y-W.y)) && (istype(W.loc.loc,/area/shuttle) || istype(W.loc.loc,/area/supply)))
|
||||
junction |= get_dir(src,W)
|
||||
|
||||
if(istype(src,/turf/simulated/wall/r_wall) || istype(src,/obj/falserwall))
|
||||
if(istype(src,/turf/simulated/wall))
|
||||
var/turf/simulated/wall/wall = src
|
||||
wall.icon_state = "[wall.walltype][junction]"
|
||||
else if (istype(src,/obj/falserwall))
|
||||
src.icon_state = "rwall[junction]"
|
||||
else if(istype(src,/turf/simulated/wall) || istype(src,/obj/falsewall) || istype(src,/obj/falserwall))
|
||||
else if (istype(src,/obj/falsewall))
|
||||
src.icon_state = "wall[junction]"
|
||||
else if(istype(src,/turf/simulated/shuttle/wall))
|
||||
var/newicon = icon;
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
+7258
-7185
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user