mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
•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:
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")*/
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user