Files
Aurora.3/code/game/machinery/syndicatebeacon.dm
mport2004@gmail.com 2224916ab9 Just some general cleanup
Moved the spacecraft folder into the unused section, moved syndiebeacon into machinery.
Research moved into Modules.
Virus2 moved into WIP - is anyone even working on this, it looks almost done?
Computer2,optics,pda2,experimental moved unto unused.
WIP Chemistry things moved into Chemical Module
Cameras.dm moved into weapons
GameKit.dm moved into unused
BrokenInHands.dm moved into unused
Removed Grillify.dm
Moved all of the files listed as unused in the mining module to unused
Removed several empty folders in modules
Moved cloning.dm into machinery
Moved NewBan.dm into admin
Changed humanoid aliens new_life.dm into life.dm
Moved beast mob into unused
Moved hivebot into unused
Moved carpedexplosion.dm into unused
Moved ai_lockdown.dm verb into unused and removed it from the AIs verb list as it didn't actually do anything.
Removed mastercontroler2.dm
Moved savefile.dm from human to new_player

Bugfix
People spawning on the starting screen on rev/cult should be fixed.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1964 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-31 21:31:00 +00:00

172 lines
5.6 KiB
Plaintext

// Beacon randomly spawns in space
// When a non-traitor (no special role in /mind) uses it, he is given the choice to become a traitor
// If he accepts there is a random chance he will be accepted, rejected, or rejected and killed
// Bringing certain items can help improve the chance to become a traitor
/obj/machinery/syndicate_beacon
name = "ominous beacon"
desc = "This looks suspicious..."
icon = 'device.dmi'
icon_state = "syndbeacon"
anchored = 1
density = 1
var
temptext = ""
selfdestructing = 0
charges = 1
attack_hand(var/mob/user as mob)
usr.machine = src
var/dat = "<font color=#005500><i>Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br></i></font>"
if(istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon/ai))
if(is_special_character(user))
dat += "<font color=#07700><i>Operative record found. Greetings, Agent [user.name].</i></font><br>"
else if(charges < 1)
dat += "<TT>Connection severed.</TT><BR>"
else
var/honorific = "Mr."
if(user.gender == "female")
honorific = "Ms."
dat += "<font color=red><i>Identity not found in operative database. What can the Syndicate do for you today, [honorific] [user.name]?</i></font><br>"
if(!selfdestructing)
dat += "<br><br><A href='?src=\ref[src];betraitor=1;traitormob=\ref[user]'>\"[pick("I want to switch teams.", "I want to work for you.", "Let me join you.", "I can be of use to you.", "You want me working for you, and here's why...", "Give me an objective.", "How's the 401k over at the Syndicate?")]\"</A><BR>"
dat += temptext
user << browse(dat, "window=syndbeacon")
onclose(user, "syndbeacon")
Topic(href, href_list)
if(href_list["betraitor"])
if(charges < 1)
src.updateUsrDialog()
return
var/mob/M = locate(href_list["traitormob"])
if(M.mind.special_role)
temptext = "<i>We have no need for you at this time. Have a pleasant day.</i><br>"
src.updateUsrDialog()
return
charges -= 1
switch(rand(1,2))
if(1)
temptext = "<font color=red><i><b>Double-crosser. You planned to betray us from the start. Allow us to repay the favor in kind.</b></i></font>"
src.updateUsrDialog()
spawn(rand(50,200)) selfdestruct()
return
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/N = M
ticker.mode.equip_traitor(N)
ticker.mode.traitors += N.mind
N.mind.special_role = "traitor"
var/objective = "Free Objective"
switch(rand(1,100))
if(1 to 50)
objective = "Steal [pick("a hand teleporter", "the Captain's antique laser gun", "a jetpack", "the Captain's ID", "the Captain's jumpsuit")]."
if(51 to 60)
objective = "Destroy 70% or more of the station's plasma tanks."
if(61 to 70)
objective = "Cut power to 80% or more of the station's tiles."
if(71 to 80)
objective = "Destroy the AI."
if(81 to 90)
objective = "Kill all monkeys aboard the station."
else
objective = "Make certain at least 80% of the station evacuates on the shuttle."
var/datum/objective/custom_objective = new(objective)
custom_objective.owner = N.mind
N.mind.objectives += custom_objective
var/datum/objective/escape/escape_objective = new
escape_objective.owner = N.mind
N.mind.objectives += escape_objective
M << "<B>You have joined the ranks of the Syndicate and become a traitor to the station!</B>"
var/obj_count = 1
for(var/datum/objective/OBJ in M.mind.objectives)
M << "<B>Objective #[obj_count]</B>: [OBJ.explanation_text]"
obj_count++
src.add_fingerprint(usr)
src.updateUsrDialog()
return
proc/selfdestruct()
selfdestructing = 1
spawn() explosion(src.loc, rand(3,8), rand(1,3), 1, 10)
#define SCREWED 32
/obj/machinery/singularity_beacon //not the best place for it but it's a hack job anyway -- Urist
name = "ominous beacon"
desc = "This looks suspicious..."
icon = 'singularity.dmi'
icon_state = "beacon"
anchored = 0
density = 1
layer = MOB_LAYER - 0.1 //so people can't hide it and it's REALLY OBVIOUS
stat = 0
var/active = 0 //It doesn't use up power, so use_power wouldn't really suit it
var/icontype = "beacon"
proc/Activate(mob/user = null)
for(var/obj/machinery/singularity/singulo in world)
if(singulo.z == z)
singulo.target = src
icon_state = "[icontype]1"
active = 1
if(user) user << "\blue You activate the beacon."
proc/Deactivate(mob/user = null)
for(var/obj/machinery/singularity/singulo in world)
if(singulo.target == src)
singulo.target = null
icon_state = "[icontype]0"
active = 0
if(user) user << "\blue You deactivate the beacon."
attack_ai(mob/user as mob)
return
attack_hand(var/mob/user as mob)
if(stat & SCREWED)
return active ? Deactivate(user) : Activate(user)
else
user << "\red You need to screw the beacon to the floor first!"
return
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/screwdriver))
if(stat & SCREWED)
if(active)
user << "\red You need to deactivate the beacon first!"
return
else
stat &= ~SCREWED
anchored = 0
user << "\blue You unscrew the beacon from the floor."
return
else
stat |= SCREWED
anchored = 1
user << "\blue You screw the beacon to the floor."
return
..()
Del()
if(active) Deactivate()
..()
/obj/machinery/singularity_beacon/syndicate
icontype = "beaconsynd"
icon_state = "beaconsynd0"
#undef SCREWED