Sort of compiles

Time to fix xenoarch, and then the map.
This commit is contained in:
DZD
2015-07-09 15:55:36 -04:00
parent b94c3deaf2
commit 916f9bf4bb
42 changed files with 247 additions and 209 deletions
+1 -1
View File
@@ -1379,7 +1379,7 @@ var/global/list/common_tools = list(
return 1000
else
return 0
if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
return 3800
if(istype(W, /obj/item/weapon/melee/energy))
var/obj/item/weapon/melee/energy/O = W
+4 -4
View File
@@ -40,7 +40,7 @@ datum/controller/game_controller
var/last_thing_processed
var/list/shuttle_list // For debugging and VV
var/datum/ore_distribution/asteroid_ore_map // For debugging and VV.
//var/datum/ore_distribution/asteroid_ore_map // For debugging and VV.
var/global/datum/garbage_collector/garbageCollector
@@ -84,7 +84,7 @@ datum/controller/game_controller/proc/setup()
setupgenetics()
setupfactions()
setup_economy()
SetupXenoarch()
//SetupXenoarch()
for(var/i=0, i<max_secret_rooms, i++)
make_mining_asteroid_secret()
@@ -119,11 +119,11 @@ datum/controller/game_controller/proc/setup_objects()
else if(istype(U, /obj/machinery/atmospherics/unary/vent_scrubber))
var/obj/machinery/atmospherics/unary/vent_scrubber/T = U
T.broadcast_status()
/*
//Create the mining ore distribution map.
asteroid_ore_map = new /datum/ore_distribution()
asteroid_ore_map.populate_distribution_map()
*/
//Set up roundstart seed list.
//populate_seed_list()
-20
View File
@@ -1,26 +1,6 @@
//TODO: rewrite and standardise all controller datums to the datum/controller type
//TODO: allow all controllers to be deleted for clean restarts (see WIP master controller stuff) - MC done - lighting done
/client/proc/show_distribution_map()
set category = "Debug"
set name = "Show Distribution Map"
set desc = "Print the asteroid ore distribution map to the world."
if(!holder) return
if(master_controller && master_controller.asteroid_ore_map)
master_controller.asteroid_ore_map.print_distribution_map()
/client/proc/remake_distribution_map()
set category = "Debug"
set name = "Remake Distribution Map"
set desc = "Rebuild the asteroid ore distribution map."
if(!holder) return
if(master_controller && master_controller.asteroid_ore_map)
master_controller.asteroid_ore_map = new /datum/ore_distribution()
master_controller.asteroid_ore_map.populate_distribution_map()
/client/proc/restart_controller(controller in list("Master","Failsafe","Supply"))
set category = "Debug"
+12
View File
@@ -30,3 +30,15 @@ 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)
+2 -2
View File
@@ -3,12 +3,12 @@
var/global/list/space_surprises = list( /obj/item/clothing/mask/facehugger =4,
/obj/item/weapon/pickaxe/silver =4,
/obj/item/weapon/pickaxe/drill =4,
/obj/item/weapon/pickaxe/jackhammer =4,
/obj/item/weapon/pickaxe/drill/jackhammer =4,
//mob/living/simple_animal/hostile/carp =3,
/obj/item/weapon/pickaxe/diamond =3,
/obj/item/weapon/pickaxe/diamonddrill =3,
/obj/item/weapon/pickaxe/gold =3,
/obj/item/weapon/pickaxe/plasmacutter =2,
/obj/item/weapon/gun/energy/plasmacutter =2,
/obj/structure/closet/syndicate/resources =2,
/obj/item/weapon/melee/energy/sword/pirate =1,
/obj/mecha/working/ripley/mining =1
@@ -411,7 +411,7 @@
if(do_after(user, 20))
if(!src || !WT.isOn()) return
user << "\blue You deconstruct the frame."
new /obj/item/stack/sheet/mineral/clown( src.loc, 5 )
new /obj/item/stack/sheet/mineral/bananium( src.loc, 5 )
del(src)
if(1)
if(istype(P, /obj/item/weapon/wrench))
+22 -1
View File
@@ -657,4 +657,25 @@ obj/item/weapon/circuitboard/rdserver
/obj/item/stack/cable_coil = 1,
/obj/item/weapon/stock_parts/subspace/filter = 1,
/obj/item/weapon/stock_parts/subspace/crystal = 1,
/obj/item/weapon/stock_parts/micro_laser/high = 2)
/obj/item/weapon/stock_parts/micro_laser/high = 2)
/obj/item/weapon/circuitboard/ore_redemption
name = "circuit board (Ore Redemption)"
build_path = /obj/machinery/mineral/ore_redemption
board_type = "machine"
origin_tech = "programming=1;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/micro_laser = 1,
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/device/assembly/igniter = 1)
/obj/item/weapon/circuitboard/mining_equipment_vendor
name = "circuit board (Mining Equipment Vendor)"
build_path = /obj/machinery/mineral/equipment_vendor
board_type = "machine"
origin_tech = "programming=1;engineering=2"
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/matter_bin = 3)
+4 -4
View File
@@ -94,7 +94,7 @@
else if(istype(target, /turf/simulated/mineral))
for(var/turf/simulated/mineral/M in range(chassis,1))
if(get_dir(chassis,M)&chassis.dir)
M.GetDrilled()
M.gets_drilled()
log_message("Drilled through [target]")
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
@@ -105,7 +105,7 @@
else if(istype(target, /turf/simulated/floor/plating/airless/asteroid))
for(var/turf/simulated/floor/plating/airless/asteroid/M in range(chassis,1))
if(get_dir(chassis,M)&chassis.dir)
M.gets_dug()
M.gets_drilled()
log_message("Drilled through [target]")
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
@@ -162,7 +162,7 @@
else if(istype(target, /turf/simulated/mineral))
for(var/turf/simulated/mineral/M in range(chassis,1))
if(get_dir(chassis,M)&chassis.dir)
M.GetDrilled()
M.gets_drilled()
log_message("Drilled through [target]")
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
@@ -172,7 +172,7 @@
ore.Move(ore_box)
else if(istype(target,/turf/simulated/floor/plating/airless/asteroid))
for(var/turf/simulated/floor/plating/airless/asteroid/M in range(target,1))
M.gets_dug()
M.gets_drilled()
log_message("Drilled through [target]")
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
+18 -1
View File
@@ -496,4 +496,21 @@
projectiles--
log_message("Fired from [src.name], targeting [target].")
do_after_cooldown()
return
return
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
equip_cooldown = 8
name = "217-D Heavy Plasma Cutter"
desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demloishing solid obstacles."
icon_state = "mecha_plasmacutter"
item_state = "plasmacutter"
energy_drain = 45
origin_tech = "materials=3;combat=2;powerstorage=3;plasma=3"
projectile = /obj/item/projectile/plasma/adv/mech
fire_sound = 'sound/weapons/pulse.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/can_attach(obj/mecha/M as obj)
if(istype(M, /obj/mecha/working))
if(M.equipment.len<M.max_equip)
return 1
return 0
+2 -2
View File
@@ -479,7 +479,7 @@
if("$uranium")
type = /obj/item/stack/sheet/mineral/uranium
if("$bananium")
type = /obj/item/stack/sheet/mineral/clown
type = /obj/item/stack/sheet/mineral/bananium
else
return 0
var/result = 0
@@ -531,7 +531,7 @@
material = "$metal"
if(/obj/item/stack/sheet/glass)
material = "$glass"
if(/obj/item/stack/sheet/mineral/clown)
if(/obj/item/stack/sheet/mineral/bananium)
material = "$bananium"
if(/obj/item/stack/sheet/mineral/uranium)
material = "$uranium"
+1 -1
View File
@@ -66,7 +66,7 @@
return ..()
/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self)
if(((src in target) && !target_self) || ((!istype(target.loc, /turf)) && (!istype(target, /turf)) && (not_inside)) || is_type_in_list(target, can_be_placed_into))
if(((src in target) && !target_self) || ((!istype(target.loc, /turf)) && (!istype(target, /turf)) && (not_inside)))
return 0
else
return 1
@@ -7,7 +7,7 @@ Mineral Sheets
- Plasma
- Gold
- Silver
- Clown
- Bananium
- Enriched Uranium
- Platinum
- Metallic Hydrogen
@@ -57,7 +57,7 @@ var/global/list/datum/stack_recipe/plastic_recipes = list ( \
new/datum/stack_recipe("sucker mould", /obj/item/weapon/kitchen/mould/loli, 1, on_floor = 1), \
)
var/global/list/datum/stack_recipe/clown_recipes = list ( \
var/global/list/datum/stack_recipe/bananium_recipes = list ( \
new/datum/stack_recipe("bananium computer frame", /obj/structure/computerframe/HONKputer, 50, time = 25, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("bananium grenade casing", /obj/item/weapon/grenade/bananade/casing, 4, on_floor = 1), \
)
@@ -176,16 +176,16 @@ obj/item/stack/sheet/mineral/iron/New()
..()
recipes = silver_recipes
/obj/item/stack/sheet/mineral/clown
/obj/item/stack/sheet/mineral/bananium
name = "bananium"
icon_state = "sheet-clown"
origin_tech = "materials=4"
perunit = 2000
sheettype = "clown"
/obj/item/stack/sheet/mineral/clown/New(var/loc, var/amount=null)
/obj/item/stack/sheet/mineral/bananium/New(var/loc, var/amount=null)
..()
recipes = clown_recipes
recipes = bananium_recipes
/obj/item/stack/sheet/mineral/enruranium
name = "enriched uranium"
@@ -200,28 +200,3 @@ obj/item/stack/sheet/mineral/iron/New()
origin_tech = "materials=2"
sheettype = "platinum"
perunit = 2000
//Extremely valuable to Research.
/obj/item/stack/sheet/mineral/mhydrogen
name = "metallic hydrogen"
icon_state = "sheet-mythril"
origin_tech = "materials=6;powerstorage=5;magnets=5"
sheettype = "mhydrogen"
perunit = 2000
//Fuel for MRSPACMAN generator.
/obj/item/stack/sheet/mineral/tritium
name = "tritium"
icon_state = "sheet-silver"
sheettype = "tritium"
origin_tech = "materials=5"
color = "#777777"
perunit = 2000
/obj/item/stack/sheet/mineral/osmium
name = "osmium"
icon_state = "sheet-silver"
sheettype = "osmium"
origin_tech = "materials=5"
color = "#9999FF"
perunit = 2000
+4 -1
View File
@@ -155,16 +155,19 @@
/obj/proc/hear_talk(mob/M as mob, text)
if(talking_atom)
talking_atom.catchMessage(text, M)
/*
var/mob/mo = locate(/mob) in src
if(mo)
var/rendered = "<span class='game say'><span class='name'>[M.name]: </span> <span class='message'>[text]</span></span>"
mo.show_message(rendered, 2)
*/
*/
return
/obj/proc/multitool_menu(var/mob/user,var/obj/item/device/multitool/P)
return "<b>NO MULTITOOL_MENU!</b>"
@@ -129,7 +129,7 @@
/obj/item/stack/sheet/mineral/plasma,
/obj/item/stack/sheet/mineral/uranium,
/obj/item/stack/sheet/mineral/diamond,
/obj/item/stack/sheet/mineral/clown,
/obj/item/stack/sheet/mineral/bananium,
/obj/item/stack/sheet/plasteel,
/obj/item/stack/rods
)
+1 -1
View File
@@ -120,7 +120,7 @@
else
user << "<span class='warning'>You can't reach, close it first!</span>"
if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/pickaxe/diamonddrill) || istype(W, /obj/item/weapon/melee/energy/blade))
if(istype(W, /obj/item/weapon/gun/energy/plasmacutter) || istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill) || istype(W, /obj/item/weapon/melee/energy/blade))
dismantle(user)
/obj/structure/falsewall/proc/dismantle(mob/user)
+2 -2
View File
@@ -24,7 +24,7 @@
new/obj/structure/girder( src.loc )
del(src)
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
user << "\blue Now slicing apart the girder"
if(do_after(user,30))
if(!src) return
@@ -218,7 +218,7 @@
user << "\blue You dissasembled the girder!"
dismantle()
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
user << "\blue Now slicing apart the girder"
if(do_after(user,30))
user << "\blue You slice apart the girder!"
+2 -2
View File
@@ -316,7 +316,7 @@
thermitemelt(user)
return
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
thermitemelt(user)
return
@@ -365,7 +365,7 @@
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
return
else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
else if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) )
user << "<span class='notice'>You begin slicing through the outer plating.</span>"
playsound(src, 'sound/items/Welder.ogg', 100, 1)
@@ -66,7 +66,7 @@
thermitemelt(user)
return
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
thermitemelt(user)
return
@@ -157,7 +157,7 @@
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
return
if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) )
user << "<span class='notice'>You begin slicing through the metal cover.</span>"
playsound(src, 'sound/items/Welder.ogg', 100, 1)
@@ -221,7 +221,7 @@
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
return
if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) )
user << "<span class='notice'>You begin slicing through the support rods.</span>"
playsound(src, 'sound/items/Welder.ogg', 100, 1)
@@ -489,7 +489,7 @@
if("$uranium")
type = /obj/item/stack/sheet/mineral/uranium
if("$bananium")
type = /obj/item/stack/sheet/mineral/clown
type = /obj/item/stack/sheet/mineral/bananium
else
return 0
var/result = 0
@@ -541,7 +541,7 @@
material = "$metal"
if(/obj/item/stack/sheet/glass)
material = "$glass"
if(/obj/item/stack/sheet/mineral/clown)
if(/obj/item/stack/sheet/mineral/bananium)
material = "$bananium"
if(/obj/item/stack/sheet/mineral/uranium)
material = "$uranium"
+2 -2
View File
@@ -136,8 +136,8 @@ var/list/admin_verbs_debug = list(
/client/proc/cmd_debug_del_all,
/client/proc/reload_admins,
/client/proc/restart_controller,
/client/proc/remake_distribution_map,
/client/proc/show_distribution_map,
///client/proc/remake_distribution_map,
///client/proc/show_distribution_map,
/client/proc/enable_debug_verbs,
/client/proc/callproc,
/client/proc/callproc_datum,
+1 -1
View File
@@ -505,7 +505,7 @@
reagents = list("water" = 10)
fruit = list("banana" = 1)
items = list(
/obj/item/weapon/ore/clown,
/obj/item/weapon/ore/bananium,
)
result = /obj/item/weapon/reagent_containers/food/snacks/clownstears
+1 -1
View File
@@ -80,7 +80,7 @@
cmineral = "valid"
desc = "A novelty coin that helps the heart know what hard evidence cannot prove."
sideslist = list("valid", "salad")
value = 20
credits = 20
/obj/item/weapon/coin/antagtoken/New()
return
+12 -10
View File
@@ -61,11 +61,6 @@
var/obj/item/stack/sheet/s = new processed_sheet(src,0)
s.amount = 0
stack_list[processed_sheet] = s
if(s.name != "glass" && s.name != "metal") //we can get these from cargo anyway
var/msg = "[capitalize(s.name)] sheets are now available in the Cargo Bay."
for(var/obj/machinery/requests_console/D in allConsoles)
if(D.department == "Science" || D.department == "Robotics" || D.department == "Research Director's Desk" || (D.department == "Chemistry" && s.name == "uranium"))
D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0)
var/obj/item/stack/sheet/storage = stack_list[processed_sheet]
storage.amount += sheet_per_ore //Stack the sheets
O.loc = null //Let the old sheet...
@@ -106,7 +101,7 @@
if(exchange_parts(user, W))
return
if(default_pry_open(W))
if(default_deconstruction_crowbar(W))
return
if(default_unfasten_wrench(user, W))
@@ -283,7 +278,7 @@
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000),
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 1200),
new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack/carbondioxide/mining, 1500),
new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000),
new /datum/data/mining_equipment("Space Cash", /obj/item/weapon/spacecash/c1000, 2000),
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500),
)
@@ -378,7 +373,7 @@
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/weapon/mining_voucher/voucher, mob/redeemer)
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Kinetic Accelerator", "Resonator", "Mining Drone", "Advanced Scanner")
if(!selection || !Adjacent(redeemer) || voucher.gc_destroyed || voucher.loc != redeemer)
if(!selection || !Adjacent(redeemer) || voucher.loc != redeemer)
return
switch(selection)
if("Kinetic Accelerator")
@@ -598,7 +593,14 @@
mouse_opacity = 1
faction = list("neutral")
a_intent = "harm"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
wander = 0
idle_vision_range = 5
@@ -644,7 +646,7 @@
/mob/living/simple_animal/hostile/mining_drone/death()
..()
visible_message("<span class='danger'>[src] is destroyed!</span>")
new /obj/effect/decal/cleanable/robot_debris(src.loc)
new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc)
DropOre()
qdel(src)
return
+12 -30
View File
@@ -29,7 +29,7 @@
if(t == src.door_tag)
src.release_door = d
if (machine && (release_door || !use_release_door))
machine.console = src
machine.CONSOLE = src
else
qdel(src)
@@ -65,7 +65,7 @@
if(istype(I, /obj/item/weapon/card/id))
return attack_hand(user)
..()
/obj/machinery/mineral/labor_claim_console/emag_act(user as mob)
emag(user)
@@ -109,9 +109,9 @@
usr << "<span class='notice'>Shuttle received message and will be sent shortly.</span>"
shuttle.launch()
else
usr << "\blue Shuttle is already moving."
usr << "<span class='notice'>Shuttle is already moving.</span>"
else
usr << "\blue Shuttle is already on-station."
usr << "<span class='notice'>Shuttle is already on-station.</span>"
if(href_list["choice"] == "release")
if(alone_in_area(get_area(loc), usr))
@@ -132,7 +132,7 @@
/obj/machinery/mineral/stacking_machine/laborstacker
var/points = 0 //The unclaimed value of ore stacked. Value for each ore loosely relative to its rarity.
var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("iron" = 3), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50))
var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50))
/obj/machinery/mineral/stacking_machine/laborstacker/proc/get_ore_values()
var/dat = "<table border='0' width='200'>"
@@ -142,31 +142,13 @@
dat += "</table>"
return dat
/obj/machinery/mineral/stacking_machine/laborstacker/process()
if (src.output && src.input)
var/turf/T = get_turf(input)
for(var/obj/item/O in T.contents)
if(!O) return
if(istype(O,/obj/item/stack))
var/obj/item/stack/S = O
if(S.name in ore_values)
points += ore_values[S.name] * S.amount
S.loc = null
else
S.loc = output.loc
else
O.loc = output.loc
//Output amounts that are past stack_amt.
for(var/sheet in stack_storage)
if(stack_storage[sheet] >= stack_amt)
var/stacktype = stack_paths[sheet]
var/obj/item/stack/sheet/S = new stacktype (get_turf(output))
S.amount = stack_amt
stack_storage[sheet] -= stack_amt
console.updateUsrDialog()
return
/obj/machinery/mineral/stacking_machine/laborstacker/process_sheet(obj/item/stack/sheet/inp)
if(istype(inp))
var/n = inp.name
var/a = inp.amount
if(n in ore_values)
points += ore_values[n] * a
..()
/**********************Point Lookup Console**************************/
+14 -32
View File
@@ -10,37 +10,19 @@
input_dir = WEST
output_dir = EAST
/obj/machinery/mineral/unloading_machine/New()
..()
spawn( 5 )
for (var/dir in cardinal)
src.input = locate(/obj/machinery/mineral/input, get_step(src, dir))
if(src.input) break
for (var/dir in cardinal)
src.output = locate(/obj/machinery/mineral/output, get_step(src, dir))
if(src.output) break
return
return
/obj/machinery/mineral/unloading_machine/process()
if (src.output && src.input)
if (locate(/obj/structure/ore_box, input.loc))
var/obj/structure/ore_box/BOX = locate(/obj/structure/ore_box, input.loc)
var/i = 0
for (var/obj/item/weapon/ore/O in BOX.contents)
BOX.contents -= O
O.loc = output.loc
i++
if (i>=10)
var/turf/T = get_step(src,input_dir)
if(T)
var/limit
for(var/obj/structure/ore_box/B in T)
for (var/obj/item/weapon/ore/O in B)
B.contents -= O
unload_mineral(O)
limit++
if (limit>=10)
return
if (locate(/obj/item, input.loc))
var/obj/item/O
var/i
for (i = 0; i<10; i++)
O = locate(/obj/item, input.loc)
if (O)
O.loc = src.output.loc
else
return
return
for(var/obj/item/I in T)
unload_mineral(I)
limit++
if (limit>=10)
return
-12
View File
@@ -393,7 +393,6 @@ var/global/list/rockTurfEdgeCache
/turf/simulated/floor/plating/asteroid //floor piece
name = "Asteroid"
baseturf = /turf/simulated/floor/plating/asteroid
icon = 'icons/turf/floors.dmi'
icon_state = "asteroid"
icon_plating = "asteroid"
@@ -471,17 +470,6 @@ var/global/list/rockTurfEdgeCache
O.attackby(W,user)
return
if(istype(W, /obj/item/stack/tile))
var/obj/item/stack/tile/Z = W
if(!Z.use(1))
return
var/turf/simulated/floor/T = ChangeTurf(Z.turf_type)
if(istype(Z,/obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow
var/obj/item/stack/tile/light/L = Z
var/turf/simulated/floor/light/F = T
F.state = L.state
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
/turf/simulated/floor/plating/asteroid/proc/gets_dug()
if(dug)
return
-3
View File
@@ -46,9 +46,6 @@
if (istype(O, /obj/item/stack/sheet/mineral/bananium))
amt_clown += 100 * O.amount
O.loc = null
if (istype(O, /obj/item/stack/sheet/mineral/adamantine))
amt_adamantine += 100 * O.amount
O.loc = null //Commented out for now. -Durandan
return
+1
View File
@@ -4,6 +4,7 @@
icon_state = "ore"
var/points = 0 //How many points this ore gets you from the ore redemption machine
var/refined_type = null //What this ore defaults to being refined into
var/datum/geosample/geologic_data
/obj/item/weapon/ore/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/weldingtool))
@@ -864,9 +864,9 @@ var/list/robot_verbs_default = list(
laws.show_laws(src)
src << "\red \b ALERT: [M.real_name] is your new master. Obey your new laws and his commands."
if(src.module && istype(src.module, /obj/item/weapon/robot_module/miner))
for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules)
for(var/obj/item/weapon/pickaxe/drill/cyborg/D in src.module.modules)
del(D)
src.module.modules += new /obj/item/weapon/pickaxe/diamonddrill(src.module)
src.module.modules += new /obj/item/weapon/pickaxe/drill/cyborg/diamond(src.module)
src.module.rebuild()
if(src.module && istype(src.module, /obj/item/weapon/robot_module/medical))
for(var/obj/item/weapon/borg_defib/F in src.module.modules)
@@ -358,7 +358,7 @@
src.modules += new /obj/item/device/flash/cyborg(src)
src.modules += new /obj/item/borg/sight/thermal(src)
src.modules += new /obj/item/weapon/gun/energy/laser/cyborg(src)
src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src)
src.modules += new /obj/item/weapon/gun/energy/plasmacutter(src)
src.modules += new /obj/item/borg/combat/shield(src)
src.modules += new /obj/item/borg/combat/mobility(src)
src.modules += new /obj/item/weapon/wrench(src) //Is a combat android really going to be stopped by a chair?
@@ -413,7 +413,7 @@
src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner/drone(src)
src.modules += new /obj/item/weapon/soap(src)
src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src)
src.emag = new /obj/item/weapon/gun/energy/plasmacutter(src)
src.emag.name = "Plasma Cutter"
for(var/T in stacktypes)
@@ -416,7 +416,7 @@
var/turftype = get_turf(src)
if(istype(turftype, /turf/simulated/mineral))
var/turf/simulated/mineral/M = turftype
M.GetDrilled()
M.gets_drilled()
spawn(20)
Trip()
-10
View File
@@ -315,13 +315,3 @@ display round(lastgen) and plasmatank amount
board_path = "/obj/item/weapon/circuitboard/pacman/super"
overheat()
explosion(src.loc, 3, 3, 3, -1)
/obj/machinery/power/port_gen/pacman/mrs
name = "M.R.S.P.A.C.M.A.N.-type Portable Generator"
icon_state = "portgen2"
sheet_path = /obj/item/stack/sheet/mineral/tritium
power_gen = 40000
time_per_sheet = 80
board_path = "/obj/item/weapon/circuitboard/pacman/mrs"
overheat()
explosion(src.loc, 4, 4, 4, -1)
@@ -289,6 +289,44 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
origin_tech = null
m_amt = 0
/obj/item/weapon/gun/energy/plasmacutter
name = "plasma cutter"
desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff."
icon_state = "plasmacutter"
item_state = "plasmacutter"
origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1"
projectile_type = /obj/item/projectile/plasma
flags = CONDUCT | OPENCONTAINER
attack_verb = list("attacked", "slashed", "cut", "sliced")
charge_cost = 250
fire_delay = 10
/obj/item/weapon/gun/energy/plasmacutter/examine(mob/user)
..()
if(power_supply)
user <<"<span class='notice'>[src] is [round(power_supply.percent())]% charged.</span>"
/obj/item/weapon/gun/energy/plasmacutter/attackby(var/obj/item/A, var/mob/user)
if(istype(A, /obj/item/stack/sheet/mineral/plasma))
var/obj/item/stack/sheet/S = A
S.use(1)
power_supply.give(10000)
user << "<span class='notice'>You insert [A] in [src], recharging it.</span>"
else if(istype(A, /obj/item/weapon/ore/plasma))
qdel(A)
power_supply.give(5000)
user << "<span class='notice'>You insert [A] in [src], recharging it.</span>"
else
..()
/obj/item/weapon/gun/energy/plasmacutter/adv
name = "advanced plasma cutter"
icon_state = "adv_plasmacutter"
origin_tech = "combat=3;materials=4;magnets=3;plasmatech=3;engineering=2"
projectile_type = /obj/item/projectile/plasma/adv
fire_delay = 8
charge_cost = 100
/obj/item/weapon/gun/energy/disabler
name = "disabler"
desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse."
@@ -95,7 +95,7 @@
/obj/item/weapon/gun/projectile/shotgun/riot/attackby(var/obj/item/A as obj, mob/user as mob, params)
..()
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/gun/energy/plasmacutter))
sawoff(user)
@@ -154,7 +154,7 @@
..()
if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing))
chamber_round()
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/gun/energy/plasmacutter))
sawoff(user)
/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user as mob)
@@ -197,7 +197,7 @@
else
user << "<span class='warning'>You need at least ten lengths of cable if you want to make a sling.</span>"
return
// Sawing guns related procs //
/obj/item/weapon/gun/projectile/proc/blow_up(mob/user as mob)
@@ -238,4 +238,3 @@
return
else
sawn_state = SAWN_INTACT
+32 -1
View File
@@ -198,7 +198,7 @@ obj/item/projectile/kinetic/New()
var/turf/target_turf= get_turf(target)
if(istype(target_turf, /turf/simulated/mineral))
var/turf/simulated/mineral/M = target_turf
M.GetDrilled()
M.gets_drilled()
new /obj/item/effect/kinetic_blast(target_turf)
..()
@@ -239,3 +239,34 @@ obj/item/projectile/kinetic/New()
else
do_teleport(target, target, 15) //Otherwise it just warps you off somewhere.
/obj/item/projectile/plasma
name = "plasma blast"
icon_state = "plasmacutter"
damage_type = BRUTE
damage = 5
range = 1
/obj/item/projectile/plasma/New()
var/turf/proj_turf = get_turf(src)
if(!istype(proj_turf, /turf))
return
var/datum/gas_mixture/environment = proj_turf.return_air()
var/pressure = environment.return_pressure()
if(pressure < 30)
name = "full strength plasma blast"
damage *= 3
range += 3
..()
/obj/item/projectile/plasma/on_hit(var/atom/target)
if(istype(target, /turf/simulated/mineral))
var/turf/simulated/mineral/M = target
M.gets_drilled(firer)
return ..()
/obj/item/projectile/plasma/adv
range = 2
/obj/item/projectile/plasma/adv/mech
damage = 10
range = 3
+4 -4
View File
@@ -730,13 +730,13 @@
//Sheets
/obj/item/stack/sheet/mineral/plasma = list("plasma" = 20),
/obj/item/stack/sheet/mineral/uranium = list("uranium" = 20),
/obj/item/stack/sheet/mineral/clown = list("banana" = 20),
/obj/item/stack/sheet/mineral/bananium = list("banana" = 20),
/obj/item/stack/sheet/mineral/silver = list("silver" = 20),
/obj/item/stack/sheet/mineral/gold = list("gold" = 20),
/obj/item/weapon/grown/novaflower = list("capsaicin" = 0),
//archaeology!
/obj/item/weapon/rocksliver = list("ground_rock" = 50),
///obj/item/weapon/rocksliver = list("ground_rock" = 50),
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
@@ -1102,7 +1102,7 @@
remove_object(O)
//xenoarch
for(var/obj/item/weapon/rocksliver/O in holdingitems)
/*for(var/obj/item/weapon/rocksliver/O in holdingitems)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
var/allowed = get_allowed_by_id(O)
@@ -1113,7 +1113,7 @@
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
remove_object(O)
remove_object(O)*/
//Everything else - Transfers reagents from it into beaker
for (var/obj/item/weapon/reagent_containers/O in holdingitems)
@@ -75,11 +75,11 @@
//Safety for dumping stuff into a ninja suit. It handles everything through attackby() and this is unnecessary.
else if(istype(target, /obj/machinery/bunsen_burner))
/*else if(istype(target, /obj/machinery/bunsen_burner))
return
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
return
return*/
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
@@ -135,11 +135,11 @@
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "\blue You transfer [trans] units of the solution to [target]."
else if(istype(target, /obj/machinery/bunsen_burner))
/*else if(istype(target, /obj/machinery/bunsen_burner))
return
else if(istype(target, /obj/machinery/radiocarbon_spectrometer))
return
return*/
else if(istype(target, /obj/effect/decal/cleanable)) //stops splashing while scooping up fluids
return
@@ -330,4 +330,24 @@
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/pod
category = list("Misc. Machinery")
category = list("Misc. Machinery")
/datum/design/ore_redemption
name = "Machine Design (Ore Redemption Board)"
desc = "The circuit board for an Ore Redemption machine."
id = "ore_redemption"
req_tech = list("programming" = 1, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/ore_redemption
category = list ("Misc. Machinery")
/datum/design/mining_equipment_vendor
name = "Machine Design (Mining Rewards Vender Board)"
desc = "The circuit board for a Mining Rewards Vender."
id = "mining_equipment_vendor"
req_tech = list("programming" = 1, "engineering" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor
category = list ("Misc. Machinery")
@@ -11,7 +11,7 @@
reliability_base = 79
build_path = /obj/item/weapon/pickaxe/diamonddrill
category = list("Mining")
/datum/design/pick_diamond
name = "Diamond Pickaxe"
desc = "A pickaxe with a diamond pick head, this is just like minecraft."
@@ -30,19 +30,19 @@
build_type = PROTOLATHE
materials = list("$metal" = 6000, "$glass" = 1000)
build_path = /obj/item/weapon/pickaxe/drill
category = list("Mining")
category = list("Mining")
/datum/design/plasmacutter
name = "Plasma Cutter"
desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
id = "plasmacutter"
req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3)
req_tech = list("materials" = 2, "plasmatech" = 2, "engineering" = 2, "combat" = 1, "magnets" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500)
reliability_base = 79
build_path = /obj/item/weapon/pickaxe/plasmacutter
build_path = /obj/item/weapon/gun/energy/plasmacutter
category = list("Mining")
/datum/design/jackhammer
name = "Sonic Jackhammer"
desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards."
@@ -50,5 +50,5 @@
req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500)
build_path = /obj/item/weapon/pickaxe/jackhammer
build_path = /obj/item/weapon/pickaxe/drill/jackhammer
category = list("Mining")
+2 -2
View File
@@ -136,7 +136,7 @@ Note: Must be placed west/left of and R&D console to function.
var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc)
G.amount = round(diamond_amount / G.perunit)
if(clown_amount >= MINERAL_MATERIAL_AMOUNT)
var/obj/item/stack/sheet/mineral/clown/G = new /obj/item/stack/sheet/mineral/clown(src.loc)
var/obj/item/stack/sheet/mineral/bananium/G = new /obj/item/stack/sheet/mineral/bananium(src.loc)
G.amount = round(clown_amount / G.perunit)
default_deconstruction_crowbar(O)
return 1
@@ -192,7 +192,7 @@ Note: Must be placed west/left of and R&D console to function.
uranium_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/diamond))
diamond_amount += amount * MINERAL_MATERIAL_AMOUNT
else if(istype(stack, /obj/item/stack/sheet/mineral/clown))
else if(istype(stack, /obj/item/stack/sheet/mineral/bananium))
clown_amount += amount * MINERAL_MATERIAL_AMOUNT
stack.use(amount)
busy = 0
+1 -1
View File
@@ -539,7 +539,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
type = /obj/item/stack/sheet/mineral/diamond
res_amount = "diamond_amount"
if("clown")
type = /obj/item/stack/sheet/mineral/clown
type = /obj/item/stack/sheet/mineral/bananium
res_amount = "clown_amount"
if(ispath(type) && hasvar(linked_lathe, res_amount))
var/obj/item/stack/sheet/sheet = new type(linked_lathe.loc)