Okay shards converted to pool usage now.

Conflicts:
	code/game/machinery/computer/arcade.dm
	code/game/machinery/doors/windowdoor.dm
	code/game/machinery/telecomms/traffic_control.dm
	code/game/objects/structures/displaycase.dm
	code/modules/mining/mine_turfs.dm
	code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm
This commit is contained in:
ESwordTheCat
2014-04-07 10:59:32 +08:00
committed by ZomgPonies
parent 2ff6d65212
commit c43652b33a
29 changed files with 216 additions and 101 deletions
+17 -10
View File
@@ -68,18 +68,21 @@ var/list/grillePool
/*
* @args
* A, type path
* B, loc
*/
/proc/getFromPool(A)
/proc/getFromPool(A, B)
switch (A)
if (/obj/item/weapon/shard)
if (isnull(shardPool))
#if DEBUG_OBJECT_POOL
world << "DEBUG_OBJECT_POOL: New proc has been called (/obj/item/weapon/shard)."
#endif
return new /obj/item/weapon/shard()
return new /obj/item/weapon/shard(B)
. = shardPool[FIRST_OBJECT_INDEX]
shardPool = shardPool - .
var /obj/item/weapon/shard/Shard = shardPool[FIRST_OBJECT_INDEX]
shardPool = shardPool - Shard
Shard.loc = B
. = Shard
if (0 == shardPool.len)
shardPool = null
@@ -88,10 +91,12 @@ var/list/grillePool
#if DEBUG_OBJECT_POOL
world << "DEBUG_OBJECT_POOL: New proc has been called (obj/item/weapon/shard/plasma)."
#endif
return new /obj/item/weapon/shard/plasma()
return new /obj/item/weapon/shard/plasma(B)
. = plasmaShardPool[FIRST_OBJECT_INDEX]
plasmaShardPool = plasmaShardPool - .
var /obj/item/weapon/shard/plasma/Plasma = plasmaShardPool[FIRST_OBJECT_INDEX]
plasmaShardPool = plasmaShardPool - Plasma
Plasma.loc = B
. = Plasma
if (0 == plasmaShardPool.len)
plasmaShardPool = null
@@ -100,10 +105,12 @@ var/list/grillePool
#if DEBUG_OBJECT_POOL
world << "DEBUG_OBJECT_POOL: New proc has been called (/obj/structure/grille)."
#endif
return new /obj/structure/grille()
return new /obj/structure/grille(B)
. = grillePool[FIRST_OBJECT_INDEX]
grillePool = grillePool - .
var /obj/structure/grille/Grille = grillePool[FIRST_OBJECT_INDEX]
grillePool = grillePool - Grille
Grille.loc = B
. = Grille
if (0 == grillePool.len)
grillePool = null
+1 -1
View File
@@ -316,7 +316,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/scan_consolenew/M = new /obj/item/weapon/circuitboard/scan_consolenew( A )
for (var/obj/C in src)
C.loc = src.loc
+2 -2
View File
@@ -108,7 +108,7 @@ obj/machinery/air_sensor
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/air_management/M = new /obj/item/weapon/circuitboard/air_management( A )
for (var/obj/C in src)
C.loc = src.loc
@@ -389,7 +389,7 @@ legend {
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/injector_control/M = new /obj/item/weapon/circuitboard/injector_control( A )
for (var/obj/C in src)
C.loc = src.loc
+20 -3
View File
@@ -266,9 +266,26 @@
src.updateUsrDialog()
else
..()
return
else if(istype(I, /obj/item/weapon/screwdriver))
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/arcade/M = new /obj/item/weapon/circuitboard/arcade( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.anchored = 1
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
getFromPool(/obj/item/weapon/shard, loc)
A.state = 3
A.icon_state = "3"
else
user << "\blue You disconnect the monitor."
A.state = 4
A.icon_state = "4"
+1 -1
View File
@@ -112,7 +112,7 @@
C.loc = src.loc
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
A.state = 3
A.icon_state = "3"
else
+1 -1
View File
@@ -56,7 +56,7 @@
if(stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
new /obj/item/weapon/shard( loc )
getFromPool(/obj/item/weapon/shard, loc)
//generate appropriate circuitboard. Accounts for /pod/old computer types
var/obj/item/weapon/circuitboard/pod/M = null
+1 -1
View File
@@ -45,7 +45,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/powermonitor/M = new /obj/item/weapon/circuitboard/powermonitor( A )
for (var/obj/C in src)
C.loc = src.loc
@@ -47,7 +47,7 @@ var/prison_shuttle_timeleft = 0
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
A.state = 3
A.icon_state = "3"
else
+13 -5
View File
@@ -125,7 +125,7 @@
/obj/machinery/door/window/proc/take_damage(var/damage)
src.health = max(0, src.health - damage)
if (src.health <= 0)
new /obj/item/weapon/shard(src.loc)
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src.loc)
CC.amount = 2
var/obj/item/weapon/airlock_electronics/ae
@@ -181,7 +181,12 @@
return
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
visible_message("\red <B>[user] smashes against the [src.name].</B>", 1)
take_damage(25)
if (src.health <= 0)
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src.loc)
CC.amount = 2
src.density = 0
del(src)
else
return src.attack_hand(user)
@@ -259,11 +264,14 @@
//If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway)
if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card))
var/aforce = I.force
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
visible_message("\red <B>[src] was hit by [I].</B>")
if(I.damtype == BRUTE || I.damtype == BURN)
take_damage(aforce)
if (src.health <= 0)
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src.loc)
CC.amount = 2
src.density = 0
del(src)
return
+1 -1
View File
@@ -217,7 +217,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/comm_server/M = new /obj/item/weapon/circuitboard/comm_server( A )
for (var/obj/C in src)
C.loc = src.loc
+1 -1
View File
@@ -130,7 +130,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/comm_monitor/M = new /obj/item/weapon/circuitboard/comm_monitor( A )
for (var/obj/C in src)
C.loc = src.loc
@@ -192,7 +192,7 @@
var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text
if(newnet && ((usr in range(1, src) || issilicon(usr))))
if(newnet && canAccess(usr))
if(length(newnet) > 15)
temp = "<font color = #D70B00>- FAILED: NETWORK TAG STRING TOO LENGHTLY -</font color>"
@@ -206,36 +206,42 @@
updateUsrDialog()
return
attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
if(istype(D, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 3
A.icon_state = "3"
A.anchored = 1
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 4
A.icon_state = "4"
A.anchored = 1
del(src)
else if(istype(D, /obj/item/weapon/card/emag) && !emagged)
playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
user << "\blue You you disable the security protocols"
src.updateUsrDialog()
return
/obj/machinery/computer/telecomms/traffic/attackby(var/obj/item/weapon/D as obj, var/mob/user as mob)
if(istype(D, /obj/item/weapon/screwdriver))
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 3
A.icon_state = "3"
A.anchored = 1
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/comm_traffic/M = new /obj/item/weapon/circuitboard/comm_traffic( A )
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
A.state = 4
A.icon_state = "4"
A.anchored = 1
del(src)
else if(istype(D, /obj/item/weapon/card/emag) && !emagged)
playsound(get_turf(src), 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
user << "\blue You you disable the security protocols"
src.updateUsrDialog()
return
/obj/machinery/computer/telecomms/traffic/proc/canAccess(var/mob/user)
if(issilicon(user) || in_range(user, src))
return 1
return 0
+3 -2
View File
@@ -57,10 +57,11 @@
user << "\blue You need at least two rods to do this."
return
usr << "\blue Assembling grille..."
if (!do_after(usr, 10))
return
var /obj/structure/grille/Grille = getFromPool(/obj/structure/grille)
Grille.loc = usr.loc
var /obj/structure/grille/Grille = getFromPool(/obj/structure/grille, usr.loc)
usr << "\blue You assemble a grille"
Grille.add_fingerprint(usr)
use(2)
+5 -5
View File
@@ -35,7 +35,7 @@
/obj/structure/displaycase/ex_act(severity)
switch(severity)
if (1)
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
if (occupant)
dump()
qdel(src)
@@ -58,13 +58,13 @@
/obj/structure/displaycase/blob_act()
if (prob(75))
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
if(occupant) dump()
del(src)
/obj/structure/displaycase/meteorhit(obj/O as obj)
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
if(occupant) dump()
del(src)
@@ -74,8 +74,8 @@
if (!( src.destroyed ))
src.density = 0
src.destroyed = 1
new /obj/item/weapon/shard( src.loc )
playsound(src, "shatter", 70, 1)
getFromPool(/obj/item/weapon/shard, loc)
playsound(get_turf(src), "shatter", 70, 1)
update_icon()
else
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
+4 -4
View File
@@ -13,7 +13,7 @@
/obj/structure/lamarr/ex_act(severity)
switch(severity)
if (1)
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
Break()
qdel(src)
if (2)
@@ -35,13 +35,13 @@
/obj/structure/lamarr/blob_act()
if (prob(75))
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
Break()
qdel(src)
/obj/structure/lamarr/meteorhit(obj/O as obj)
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
Break()
qdel(src)
@@ -51,7 +51,7 @@
if (!( src.destroyed ))
src.density = 0
src.destroyed = 1
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
playsound(src, "shatter", 70, 1)
Break()
else
+2 -2
View File
@@ -31,8 +31,8 @@
// This should result in the same materials used to make the window.
/obj/structure/window/proc/destroy()
for(var/i=0;i<sheets;i++)
var /obj/item/weapon/shard/Shard = getFromPool(shardtype)
Shard.loc = loc
getFromPool(shardtype, loc)
if(reinf)
new /obj/item/stack/rods(loc)
qdel(src)
+1 -1
View File
@@ -504,7 +504,7 @@ var/list/mechtoys = list(
if (stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
new /obj/item/weapon/shard( loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/supplycomp/M = new /obj/item/weapon/circuitboard/supplycomp( A )
for (var/obj/C in src)
C.loc = loc
+1 -1
View File
@@ -167,7 +167,7 @@ proc/move_mining_shuttle()
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
A.state = 3
A.icon_state = "3"
else
+3 -2
View File
@@ -353,12 +353,12 @@ var/list/artifact_spawn = list() // Runtime fix for geometry loading before cont
if(5)
var/quantity = rand(1,3)
for(var/i=0, i<quantity, i++)
new /obj/item/weapon/shard(src)
getFromPool(/obj/item/weapon/shard, loc)
if(6)
var/quantity = rand(1,3)
for(var/i=0, i<quantity, i++)
new /obj/item/weapon/shard/plasma(src)
getFromPool(/obj/item/weapon/shard/plasma, loc)
if(7)
var/obj/item/stack/sheet/mineral/uranium/R = new(src)
@@ -388,6 +388,7 @@ var/list/artifact_spawn = list() // Runtime fix for geometry loading before cont
mineralChance = 25
mineralSpawnChanceList = list("Uranium" = 10, "Iron" = 30, "Diamond" = 2, "Gold" = 10, "Silver" = 10, "Plasma" = 25)
/turf/simulated/mineral/random/high_chance_clown
mineralChance = 40
mineralSpawnChanceList = list("Uranium" = 10, "Iron" = 30, "Diamond" = 2, "Gold" = 5, "Silver" = 5, "Plasma" = 25, "Clown" = 15)
@@ -170,16 +170,16 @@
var/obj/O
//shards
O = new /obj/item/weapon/shard(src.loc)
O = getFromPool(/obj/item/weapon/shard, loc)
step_to(O, get_turf(pick(view(7, src))))
if(prob(75))
O = new /obj/item/weapon/shard(src.loc)
O = getFromPool(/obj/item/weapon/shard, loc)
step_to(O, get_turf(pick(view(7, src))))
if(prob(50))
O = new /obj/item/weapon/shard(src.loc)
O = getFromPool(/obj/item/weapon/shard, loc)
step_to(O, get_turf(pick(view(7, src))))
if(prob(25))
O = new /obj/item/weapon/shard(src.loc)
O = getFromPool(/obj/item/weapon/shard, loc)
step_to(O, get_turf(pick(view(7, src))))
//rods
+5 -5
View File
@@ -93,8 +93,8 @@ var/list/solars_list = list()
if(!(stat & BROKEN))
broken()
else
new /obj/item/weapon/shard(src.loc)
new /obj/item/weapon/shard(src.loc)
getFromPool(/obj/item/weapon/shard, loc)
getFromPool(/obj/item/weapon/shard, loc)
del(src)
return
return
@@ -163,11 +163,11 @@ var/list/solars_list = list()
if(1.0)
qdel(src)
if(prob(15))
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
return
if(2.0)
if (prob(25))
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
qdel(src)
return
if (prob(50))
@@ -343,7 +343,7 @@ var/list/solars_list = list()
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A )
for (var/obj/C in src)
C.loc = src.loc
+1 -1
View File
@@ -227,7 +227,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/turbine_control/M = new /obj/item/weapon/circuitboard/turbine_control( A )
for (var/obj/C in src)
C.loc = src.loc
+1 -1
View File
@@ -826,7 +826,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe(src.loc)
new /obj/item/weapon/shard(src.loc)
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/pandemic/M = new /obj/item/weapon/circuitboard/pandemic(A)
for (var/obj/C in src)
C.loc = src.loc
@@ -18,7 +18,7 @@
var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user.loc)
user.put_in_active_hand(B)
if(prob(33))
new/obj/item/weapon/shard(target.loc) // Create a glass shard at the target's location!
getFromPool(/obj/item/weapon/shard, target.loc) // Create a glass shard at the target's location!
B.icon_state = src.icon_state
var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
@@ -6,6 +6,80 @@
icon_state = "glass_empty"
amount_per_transfer_from_this = 10
volume = 50
g_amt = 500
proc/smash(mob/living/target as mob, mob/living/user as mob)
//Creates a shattering noise and replaces the drinking glass with a glass shard
user.drop_item()
var/obj/item/weapon/shard/S = getFromPool(/obj/item/weapon/shard, user.loc)
user.put_in_active_hand(S)
playsound(src, "shatter", 70, 1)
user.put_in_active_hand(S)
src.transfer_fingerprints_to(S)
del(src)
attack(mob/living/target as mob, mob/living/user as mob)
if(!target)
return
if(user.a_intent != "hurt")
return ..()
force = 5
var/datum/organ/external/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/armor_block = 0 //Get the target's armour values for normal attack damage.
//Calculating damage.
if(ishuman(target))
var/mob/living/carbon/human/H = target
armor_block = H.run_armor_check(affecting, "melee") // For normal attack damage
else
//Only humans can have armour, right?
armor_block = target.run_armor_check(affecting, "melee")
//Apply the damage!
target.apply_damage(force, BRUTE, affecting, armor_block)
if(affecting == "head" && istype(target, /mob/living/carbon/))
//Display an attack message.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red <B>[target] has been hit over the head with a [src.name], by [user]!</B>"), 1)
else O.show_message(text("\red <B>[target] hit himself with a [src.name] on the head!</B>"), 1)
else
//Default attack message
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red <B>[target] has been attacked with a [src.name], by [user]!</B>"), 1)
else O.show_message(text("\red <B>[target] has attacked himself with a [src.name]!</B>"), 1)
//Attack logs
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Has attacked [target.name] ([target.ckey]) with a drinking glass!</font>")
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been smashed with a drinking glass by [user.name] ([user.ckey])</font>")
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [target.name] with a drinking glass. ([target.ckey])</font>")
if(!iscarbon(user))
target.LAssailant = null
else
target.LAssailant = user
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
if(src.reagents)
for(var/mob/O in viewers(user, null))
O.show_message(text("\blue <B>The contents of the [src] splashes all over [target]!</B>"), 1)
src.reagents.reaction(target, TOUCH)
//Finally, smash the bottle. This kills (del) the bottle.
src.smash(target, user)
on_reagent_change()
/*if(reagents.reagent_list.len > 1 )
+1 -1
View File
@@ -112,7 +112,7 @@ proc/move_research_shuttle()
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
A.state = 3
A.icon_state = "3"
else
+2 -2
View File
@@ -339,7 +339,7 @@
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
getFromPool(/obj/item/weapon/shard, loc)
var/obj/item/weapon/circuitboard/rdservercontrol/M = new /obj/item/weapon/circuitboard/rdservercontrol( A )
for (var/obj/C in src)
C.loc = src.loc
@@ -378,4 +378,4 @@
name = "Core R&D Server"
id_with_upload_string = "1"
id_with_download_string = "1"
server_id = 1
server_id = 1
@@ -20,17 +20,17 @@
/obj/structure/crystal/Destroy()
src.visible_message("\red<b>[src] shatters!</b>")
if(prob(75))
new /obj/item/weapon/shard/plasma(src.loc)
getFromPool(/obj/item/weapon/shard/plasma, loc)
if(prob(50))
new /obj/item/weapon/shard/plasma(src.loc)
getFromPool(/obj/item/weapon/shard/plasma, loc)
if(prob(25))
new /obj/item/weapon/shard/plasma(src.loc)
getFromPool(/obj/item/weapon/shard/plasma, loc)
if(prob(75))
new /obj/item/weapon/shard(src.loc)
getFromPool(/obj/item/weapon/shard, loc)
if(prob(50))
new /obj/item/weapon/shard(src.loc)
getFromPool(/obj/item/weapon/shard, loc)
if(prob(25))
new /obj/item/weapon/shard(src.loc)
getFromPool(/obj/item/weapon/shard, loc)
..()
//todo: laser_act
@@ -296,9 +296,10 @@
apply_material_decorations = 0
if(22)
if(prob(50))
new_item = new /obj/item/weapon/shard(src.loc)
new_item = getFromPool(/obj/item/weapon/shard, loc)
else
new_item = new /obj/item/weapon/shard/plasma(src.loc)
new_item = getFromPool(/obj/item/weapon/shard/plasma, loc)
apply_prefix = 0
apply_image_decorations = 0
apply_material_decorations = 0