•CONTRABAND UPDATE: Finalised posters. Bugless and thoroughly tested. They're so simplistic it wasn't really hard.

•How to obtain: 
1.Get the circuitboard of your supply computer
2.Multitool it and set its receiver to the appropriate spectrum
3.Put it back in. You can now order contraband
4.Note that contraband is illegal. Security can do whatever they wish to it, and therefore you for bringing it on board, within logical boundaries.

Apart from that, I would like to start the small project of adding references of every on-wall object to the actual contents of the wall. I think of it as nice if we could have walls drop contents (in some unfinished form, so it actually makes a difference) once deleted so we don't have any more of those pesky hovering-over-nothing decals/machinery/whatever

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3423 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
polyxenitopalidou@gmail.com
2012-04-09 21:44:29 +00:00
parent 58fa915cd1
commit 398a8ee6a0
8 changed files with 154 additions and 4 deletions
+17
View File
@@ -1,6 +1,7 @@
//SUPPLY PACKS
//NOTE: only secure crate types use the access var (and are lockable)
//NOTE: hidden packs only show up when the computer has been hacked.
//ANOTER NOTE: Contraband is obtainable through modified supplycomp circuitboards.
//BIG NOTE: Don't add living things to crates, that's bad, it will break the shuttle.
/datum/supply_packs/specialops
name = "Special Ops supplies"
@@ -577,4 +578,20 @@
contains = tempContains
..()
/datum/supply_packs/contraband
contains = list("/obj/item/weapon/contraband/poster",) //We randomly pick 5 items from this list through the constructor, look below
name = "Contraband Crate"
cost = 30
containertype = "/obj/structure/closet/crate/contraband"
containername = "Contraband crate"
contraband = 1
/datum/supply_packs/contraband/New()
var/list/tempContains = list()
for(var/i = 0,i<5,i++)
tempContains += pick(contains)
src.contains = tempContains
..()
//SUPPLY PACKS
@@ -149,6 +149,7 @@
name = "Circuit board (Supply shuttle console)"
build_path = "/obj/machinery/computer/supplycomp"
origin_tech = "programming=3"
var/contraband_enabled = 0
/obj/item/weapon/circuitboard/operating
name = "Circuit board (Operating Computer)"
build_path = "/obj/machinery/computer/operating"
@@ -181,6 +182,28 @@
/obj/item/weapon/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I,/obj/item/device/multitool))
var/catastasis = src.contraband_enabled
var/opposite_catastasis
if(catastasis)
opposite_catastasis = "STANDARD"
catastasis = "BROAD"
else
opposite_catastasis = "BROAD"
catastasis = "STANDARD"
switch( alert("Current receiver spectrum is set to: [catastasis]","Multitool-Circuitboard interface","Switch to [opposite_catastasis]","Cancel") )
//switch( alert("Current receiver spectrum is set to: " {(src.contraband_enabled) ? ("BROAD") : ("STANDARD")} , "Multitool-Circuitboard interface" , "Switch to " {(src.contraband_enabled) ? ("STANDARD") : ("BROAD")}, "Cancel") )
if("Switch to STANDARD","Switch to BROAD")
src.contraband_enabled = !src.contraband_enabled
if("Cancel")
return
else
user << "DERP! BUG! Report this (And what you were doing to cause it) to Agouri"
return
/obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob)
switch(state)
if(0)
@@ -277,4 +300,8 @@
if(circuit.id) B:id = circuit.id
if(circuit.records) B:records = circuit.records
if(circuit.frequency) B:frequency = circuit.frequency
if(istype(circuit,/obj/item/weapon/circuitboard/supplycomp))
var/obj/machinery/computer/supplycomp/SC = B
var/obj/item/weapon/circuitboard/supplycomp/C = circuit
SC.can_order_contraband = C.contraband_enabled
del(src)
+1 -1
View File
@@ -166,7 +166,7 @@ obj/effect/decal/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(user.loc != temp_loc)
return
for (var/mob/O in hearers(5, src.loc))
O.show_message("[user.name] rips the [src.name] in a single, decisive motion!" )
O.show_message("<FONT COLOR='RED'>[user.name] rips the [src.name] in a single, decisive motion!</FONT>" )
playsound(src.loc, 'poster_ripped.ogg', 100, 1)
src.ruined = 1
src.icon_state = "poster_ripped"
+9
View File
@@ -38,6 +38,15 @@
icon_opened = "crateopen"
icon_closed = "crate"
/obj/structure/closet/crate/contraband
name = "Contraband crate"
desc = "A random assortment of items manufactured by providers NOT listed under Nanotrasen's whitelist."
icon = 'storage.dmi'
icon_state = "crate"
density = 1
icon_opened = "crateopen"
icon_closed = "crate"
/obj/structure/closet/crate/medical
desc = "A medical crate."
name = "Medical crate"
+7 -1
View File
@@ -94,6 +94,7 @@ var/ordernum=0
circuit = "/obj/item/weapon/circuitboard/supplycomp"
var/temp = null
var/hacked = 0
var/can_order_contraband = 0
/obj/machinery/computer/ordercomp
name = "Supply ordering console"
@@ -102,6 +103,7 @@ var/ordernum=0
circuit = "/obj/item/weapon/circuitboard/ordercomp"
var/temp = null
var/reqtime = 0 //Cooldown for requisitions - Quarxink
/obj/effect/marker/supplymarker
icon_state = "X"
icon = 'mark.dmi'
@@ -124,6 +126,7 @@ var/ordernum=0
var/containername = null
var/access = null
var/hidden = 0
var/contraband = 0
/proc/supply_ticker()
//world << "Supply ticker ticked : Adding [SUPPLY_POINTSPER] to [supply_shuttle_points]."
@@ -310,7 +313,7 @@ This method wont take into account storage items developed in the future and doe
src.temp = "Supply points: [supply_shuttle_points]<BR><HR><BR>Request what?<BR><BR>"
for(var/S in (typesof(/datum/supply_packs) - /datum/supply_packs) )
var/datum/supply_packs/N = new S()
if(N.hidden) continue //Have to send the type instead of a reference to
if(N.hidden || N.contraband) continue //Have to send the type instead of a reference to
src.temp += "<A href='?src=\ref[src];doorder=[N.type]'>[N.name]</A> Cost: [N.cost] " //the obj because it would get caught by the garbage
src.temp += "<A href='?src=\ref[src];printform=[N.type]'>Print Requisition</A><br>" //collector. oh well.
src.temp += "<BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
@@ -446,6 +449,8 @@ This method wont take into account storage items developed in the future and doe
user << "\blue You disconnect the monitor."
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/supplycomp/M = new /obj/item/weapon/circuitboard/supplycomp( A )
if(src.can_order_contraband)
M.contraband_enabled = 1
for (var/obj/C in src)
C.loc = src.loc
A.circuit = M
@@ -516,6 +521,7 @@ This method wont take into account storage items developed in the future and doe
for(var/S in (typesof(/datum/supply_packs) - /datum/supply_packs) )
var/datum/supply_packs/N = new S()
if(N.hidden && !src.hacked) continue //Have to send the type instead of a reference to
if(N.contraband && !src.can_order_contraband){continue;} //Agouri -Kavalamarker
src.temp += "<A href='?src=\ref[src];doorder=[N.type]'>[N.name]</A> Cost: [N.cost]<BR>" //the obj because it would get caught by the garbage
src.temp += "<BR><A href='?src=\ref[src];mainmenu=1'>OK</A>" //collector. oh well.
+76
View File
@@ -493,6 +493,43 @@
var/obj/item/apc_frame/AH = W
AH.try_build(src)
else if(istype(W,/obj/item/weapon/contraband/poster)) //POSTERSSSS
var/obj/item/weapon/contraband/poster/P = W
if(P.resulting_poster)
var/check = 0
var/stuff_on_wall = 0
for( var/obj/O in src.contents) //Let's see if it already has a poster on it or too much stuff
if(istype(O,/obj/effect/decal/poster))
check = 1
break
stuff_on_wall++
if(stuff_on_wall==3)
check = 1
break
if(check)
user << "<FONT COLOR='RED'>The wall is far too cluttered to place a poster!</FONT>"
return
user << "<FONT COLOR='blue'>You start placing the poster on the wall...</FONT>" //Looks like it's uncluttered enough. Place the poster.
P.resulting_poster.loc = src
var/temp = P.resulting_poster.icon_state
var/temp_loc = user.loc
P.resulting_poster.icon_state = "poster_being_set"
playsound(P.resulting_poster.loc, 'poster_being_created.ogg', 100, 1)
sleep(22)
if(user.loc == temp_loc)//Let's check if he still is there
user << "<FONT COLOR='blue'>You place the poster!</FONT>"
P.resulting_poster.icon_state = temp
src.contents += P.resulting_poster
del(P)
else
user << "<FONT COLOR='BLUE'>You stop placing the poster.</FONT>"
P.resulting_poster.loc = P
P.resulting_poster.icon_state = temp
else
return attack_hand(user)
return
@@ -727,6 +764,45 @@
var/obj/item/apc_frame/AH = W
AH.try_build(src)
//Poster stuff
else if(istype(W,/obj/item/weapon/contraband/poster))
var/obj/item/weapon/contraband/poster/P = W
if(P.resulting_poster)
var/check = 0
var/stuff_on_wall = 0
for( var/obj/O in src.contents) //Let's see if it already has a poster on it or too much stuff
if(istype(O,/obj/effect/decal/poster))
check = 1
break
stuff_on_wall++
if(stuff_on_wall==3)
check = 1
break
if(check)
user << "<FONT COLOR='RED'>The wall is far too cluttered to place a poster!</FONT>"
return
user << "<FONT COLOR='blue'>You start placing the poster on the wall...</FONT>" //Looks like it's uncluttered enough. Place the poster.
P.resulting_poster.loc = src
var/temp = P.resulting_poster.icon_state
var/temp_loc = user.loc
P.resulting_poster.icon_state = "poster_being_set"
playsound(P.resulting_poster.loc, 'poster_being_created.ogg', 100, 1)
sleep(22)
if(user.loc == temp_loc)//Let's check if he still is there
user << "<FONT COLOR='blue'>You place the poster!</FONT>"
P.resulting_poster.icon_state = temp
src.contents += P.resulting_poster
del(P)
else
user << "<FONT COLOR='BLUE'>You stop placing the poster.</FONT>"
P.resulting_poster.loc = P
P.resulting_poster.icon_state = temp
return
//Finally, CHECKING FOR FALSE WALLS if it isn't damaged
else if(!d_state)
return attack_hand(user)
+2 -2
View File
@@ -1,4 +1,4 @@
/turf/DblClick()
/*/turf/DblClick()
if(istype(usr, /mob/living/silicon/ai))
return move_camera_by_click()
if(usr.stat || usr.restrained() || usr.lying)
@@ -1562,4 +1562,4 @@ turf/simulated/floor/return_siding_icon_state()
if(flags & NOJAUNT)
return
flags |= NOJAUNT
overlays += image('water.dmi',src,"holywater")
overlays += image('water.dmi',src,"holywater")*/
+15
View File
@@ -102,6 +102,21 @@ should be listed in the changelog upon commit tho. Thanks. -->
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">April 10, the year of our lord 2012</h2>
<h3 class="author">Agouri updated:</h3>
<ul class="changes bgimages16">
<li class="wip">CONTRABAND-CON UPDATE: Added posters. I'm sorry to add it seperately with the rest of contraband, but there was a lack of sprites for everything else. Hopefully, people will gain interest and get me some damn sprites this way :3
As I said, this is an ongoing project of mine. So starting of, we've got...</li>
<li class="rscadd">POSTERS! Posters come in rolled packages that can adhere to any wall or r_wall, if it's uncluttered enough.
<BR><BR>•How they get on-board: The quartermaster can now set the receiver frequency of his supplycomp circuit board. A bit simplistic as of now, will work on it later. Building a supplycomp with a properly set up circuitboard will give access to the Contraband crate.
<BR><BR>•How they're used: Unfold the rolled poster on any wall or r_wall to create the poster. There are currently 17 designs, with the possibility of me adding more.
<BR><BR>•How to get rid of them: You can rip them using your hand... To cleanly extract them and not ruin them for future use, however, you can use a pair of wirecutters.
<BR><BR>•How they're classified: They're contraband, so it's perfectly okay for security officers to confiscate them. Punishment for contraband-providers (or end-users, if you want to go full nazi) is up to the situational commanding officers.
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">2 April 2012</h2>
<h3 class="author">PolymorphBlue updated:</h3>