fixed up the core sampler + gave it a placeholder sprite, made geo data actually persist across turfs and ores, cleaned up some new xenoarch stuff

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2012-12-05 04:44:42 +10:00
parent 8442a9359e
commit 3257a529ba
6 changed files with 128 additions and 77 deletions
+27 -8
View File
@@ -16,6 +16,7 @@
var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles
var/artifactChance = 0.3 //percent chance to spawn a xenoarchaelogical artifact
var/last_act = 0
var/datum/geosample/geological_data
/turf/simulated/mineral/Del()
return
@@ -54,6 +55,9 @@
if (T)
T.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6)
src.geological_data = new /datum/geosample
src.geological_data.UpdateTurf(src)
if (mineralName && mineralAmt && spread && spreadChance)
if(prob(spreadChance))
if(istype(get_step(src, SOUTH), /turf/simulated/mineral/random))
@@ -102,6 +106,9 @@
if(M)
src = M
M.levelupdate()
if(!geological_data)
src.geological_data = new /datum/geosample
src.geological_data.UpdateTurf(src)
else if (prob(artifactChance))
//spawn a rare, xeno-arch artifact here
new/obj/machinery/artifact(src)
@@ -220,6 +227,11 @@
usr << "\red You don't have the dexterity to do this!"
return
if (istype(W, /obj/item/device/core_sampler))
var/obj/item/device/core_sampler/C = W
C.sample_item(src, user)
return
if (istype(W, /obj/item/weapon/pickaxe))
var/turf/T = user.loc
if (!( istype(T, /turf) ))
@@ -250,27 +262,34 @@
if ((src.mineralName != "") && (src.mineralAmt > 0) && (src.mineralAmt < 11))
var/i
for (i=0;i<mineralAmt;i++)
var/obj/item/weapon/ore/O
if (src.mineralName == "Uranium")
new /obj/item/weapon/ore/uranium(src)
O = new /obj/item/weapon/ore/uranium(src)
if (src.mineralName == "Iron")
new /obj/item/weapon/ore/iron(src)
O = new /obj/item/weapon/ore/iron(src)
if (src.mineralName == "Gold")
new /obj/item/weapon/ore/gold(src)
O = new /obj/item/weapon/ore/gold(src)
if (src.mineralName == "Silver")
new /obj/item/weapon/ore/silver(src)
O = new /obj/item/weapon/ore/silver(src)
if (src.mineralName == "Plasma")
new /obj/item/weapon/ore/plasma(src)
O = new /obj/item/weapon/ore/plasma(src)
if (src.mineralName == "Diamond")
new /obj/item/weapon/ore/diamond(src)
O = new /obj/item/weapon/ore/diamond(src)
if (src.mineralName == "Archaeo")
//spawn strange rocks here
//if(prob(10) || delicate)
if(prob(50)) //Don't have delicate tools (hand pick/excavation tool) yet, temporarily change to 50% instead of 10% -Mij
new /obj/item/weapon/ore/strangerock(src)
O = new /obj/item/weapon/ore/strangerock(src)
else
destroyed = 1
if (src.mineralName == "Clown")
new /obj/item/weapon/ore/clown(src)
O = new /obj/item/weapon/ore/clown(src)
if(O)
if(!src.geological_data)
src.geological_data = new /datum/geosample
src.geological_data.UpdateTurf(src)
O.geological_data = src.geological_data
if (prob(src.artifactChance))
//spawn a rare, xeno-archaelogical artifact here
new /obj/machinery/artifact(src)
+9 -1
View File
@@ -4,6 +4,7 @@
name = "Rock"
icon = 'icons/obj/mining.dmi'
icon_state = "ore"
var/datum/geosample/geological_data
/obj/item/weapon/ore/uranium
@@ -66,12 +67,19 @@
var/obj/inside
var/method // 0 = fire, 1+ = acid
origin_tech = "materials=5"
//unacidable = 1 //This can prevent acid from gooey grey massing
//unacidable = 1 //This can prevent acid from gooey grey massing
//you should override the acid_act proc anyway
/obj/item/weapon/ore/New()
pixel_x = rand(0,16)-8
pixel_y = rand(0,8)-8
/obj/item/weapon/ore/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/device/core_sampler))
var/obj/item/device/core_sampler/C = W
C.sample_item(src, user)
else
return ..()
/*****************************Coin********************************/