More updates to death commandos. Their shuttle should now work, along with other fixes. They are complete at this time.
Updated icons for plastic explosives. Replaced one of the Construction sites with a Xenobiology lab on request. It is a temporary location and is mostly for roleplay. There will NOT be a job associated with it. Added Barhandar's updated shieldgen stuff. Copied icons to stationobjs.dmi for future shieldgen update. Misc changes. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@666 316c924e-a436-60f5-8080-3fe189b3f50e
@@ -97,11 +97,11 @@
|
|||||||
/area/shuttle/prison/prison
|
/area/shuttle/prison/prison
|
||||||
icon_state = "shuttle2"
|
icon_state = "shuttle2"
|
||||||
|
|
||||||
/area/shuttle/specialops/centcom
|
/area/shuttle/specops/centcom
|
||||||
name = "Special Ops Shuttle"
|
name = "Special Ops Shuttle"
|
||||||
icon_state = "shuttlered"
|
icon_state = "shuttlered"
|
||||||
|
|
||||||
/area/shuttle/specialops/station
|
/area/shuttle/specops/station
|
||||||
name = "Special Ops Shuttle"
|
name = "Special Ops Shuttle"
|
||||||
icon_state = "shuttlered2"
|
icon_state = "shuttlered2"
|
||||||
|
|
||||||
@@ -711,6 +711,10 @@
|
|||||||
name = "Toxin Lab"
|
name = "Toxin Lab"
|
||||||
icon_state = "toxlab"
|
icon_state = "toxlab"
|
||||||
|
|
||||||
|
/area/toxins/xenobiology
|
||||||
|
name = "Xenobiology Lab"
|
||||||
|
icon_state = "toxlab"
|
||||||
|
|
||||||
/area/toxins/storage
|
/area/toxins/storage
|
||||||
name = "Toxin Storage"
|
name = "Toxin Storage"
|
||||||
icon_state = "toxstorage"
|
icon_state = "toxstorage"
|
||||||
|
|||||||
@@ -1651,8 +1651,8 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
|||||||
name = "Plastic Explosives"
|
name = "Plastic Explosives"
|
||||||
desc = "Used to put holes in specific areas without too much extra hole."
|
desc = "Used to put holes in specific areas without too much extra hole."
|
||||||
icon = 'assemblies.dmi'
|
icon = 'assemblies.dmi'
|
||||||
icon_state = "timer-igniter-tank0"
|
icon_state = "plastic-explosive0"
|
||||||
item_state = "plasma-c"
|
item_state = "plasticx"
|
||||||
flags = FPRINT | TABLEPASS | USEDELAY
|
flags = FPRINT | TABLEPASS | USEDELAY
|
||||||
w_class = 2.0
|
w_class = 2.0
|
||||||
var/timer = 10
|
var/timer = 10
|
||||||
|
|||||||
@@ -388,9 +388,9 @@
|
|||||||
/proc/call_shuttle_proc(var/mob/user)
|
/proc/call_shuttle_proc(var/mob/user)
|
||||||
if ((!( ticker ) || emergency_shuttle.location))
|
if ((!( ticker ) || emergency_shuttle.location))
|
||||||
return
|
return
|
||||||
// if(world.time < 6000) // Ten minute grace period to let the game get going without lolmetagaming. -- TLE
|
if(world.time < 6000) // Ten minute grace period to let the game get going without lolmetagaming. -- TLE
|
||||||
// user << "Centcomm will not allow the shuttle to be called."
|
user << "The emergency shuttle is refueling. Please wait another [(6000-world.time)/10] seconds before trying again."
|
||||||
// return
|
return
|
||||||
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
|
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
|
||||||
user << "Centcom will not allow the shuttle to be called."
|
user << "Centcom will not allow the shuttle to be called."
|
||||||
if(sent_strike_team == 1)
|
if(sent_strike_team == 1)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
var/Varedit_start = 0
|
var/Varedit_start = 0
|
||||||
var/Varpower = 0
|
var/Varpower = 0
|
||||||
var/active = 0
|
var/active = 0
|
||||||
var/power = 1 //fuck that, powered forever for now
|
var/power = 0
|
||||||
var/state = 0
|
var/state = 0
|
||||||
var/steps = 0
|
var/steps = 0
|
||||||
var/last_check = 0
|
var/last_check = 0
|
||||||
@@ -30,6 +30,11 @@
|
|||||||
var/recalc = 0
|
var/recalc = 0
|
||||||
var/locked = 0
|
var/locked = 0
|
||||||
var/destroyed = 0
|
var/destroyed = 0
|
||||||
|
var/directwired = 1
|
||||||
|
// var/maxshieldload = 200
|
||||||
|
var/obj/cable/attached // the attached cable
|
||||||
|
var/storedpower = 0
|
||||||
|
var/maxstoredpower = 500
|
||||||
flags = FPRINT | CONDUCT
|
flags = FPRINT | CONDUCT
|
||||||
|
|
||||||
/obj/machinery/shield
|
/obj/machinery/shield
|
||||||
@@ -165,10 +170,9 @@
|
|||||||
shields_up()
|
shields_up()
|
||||||
|
|
||||||
|
|
||||||
////FIELD GEN START //shameless copypasta from fieldgen, yes
|
////FIELD GEN START //shameless copypasta from fieldgen, powersink, and grille
|
||||||
|
|
||||||
|
|
||||||
/* doesn't works for some reason.
|
|
||||||
/obj/machinery/shieldwallgen/proc/get_connection()
|
/obj/machinery/shieldwallgen/proc/get_connection()
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if(!istype(T, /turf/simulated/floor))
|
if(!istype(T, /turf/simulated/floor))
|
||||||
@@ -179,7 +183,29 @@
|
|||||||
return C.netnum
|
return C.netnum
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
*/
|
|
||||||
|
|
||||||
|
/obj/machinery/shieldwallgen/proc/power()
|
||||||
|
if(!anchored)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
var/net = get_connection() // find the powernet of the connected cable
|
||||||
|
|
||||||
|
var/datum/powernet/PN // find the powernet
|
||||||
|
if(net)
|
||||||
|
PN = powernets[net]
|
||||||
|
var/shieldload = rand(50,200)
|
||||||
|
|
||||||
|
if((!PN || !PN.avail) && !storedpower) // no cable or no power, and no power stored
|
||||||
|
power = 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
power = 1 // IVE GOT THE POWER!
|
||||||
|
if(PN) //runtime errors fixer. They were caused by PN.newload trying to access missing network in case of working on stored power.
|
||||||
|
storedpower += shieldload
|
||||||
|
PN.newload += shieldload //uses powernet power.
|
||||||
|
// message_admins("[PN.load]", 1)
|
||||||
|
// use_power(250) //uses APC power
|
||||||
|
|
||||||
/obj/machinery/shieldwallgen/attack_hand(mob/user as mob)
|
/obj/machinery/shieldwallgen/attack_hand(mob/user as mob)
|
||||||
if(state == 1)
|
if(state == 1)
|
||||||
@@ -189,7 +215,7 @@
|
|||||||
src.active = 0
|
src.active = 0
|
||||||
// icon_state = "Field_Gen"
|
// icon_state = "Field_Gen"
|
||||||
user << "You turn off the shield generator."
|
user << "You turn off the shield generator."
|
||||||
// src.cleanup()
|
src.cleanup()
|
||||||
else
|
else
|
||||||
src.active = 1
|
src.active = 1
|
||||||
// icon_state = "Field_Gen +a"
|
// icon_state = "Field_Gen +a"
|
||||||
@@ -222,7 +248,18 @@
|
|||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/shieldwallgen/process()
|
/obj/machinery/shieldwallgen/process()
|
||||||
|
spawn(100)
|
||||||
|
power()
|
||||||
|
if(power == 1)
|
||||||
|
storedpower -= 50 //this way it can survive longer and survive at all
|
||||||
|
if(storedpower >= maxstoredpower)
|
||||||
|
storedpower = maxstoredpower
|
||||||
|
if(storedpower <= 0)
|
||||||
|
storedpower = 0
|
||||||
|
// if(shieldload >= maxshieldload) //there was a loop caused by specifics of process(), so this was needed.
|
||||||
|
// shieldload = maxshieldload
|
||||||
|
|
||||||
if(src.Varedit_start == 1)
|
if(src.Varedit_start == 1)
|
||||||
if(src.active == 0)
|
if(src.active == 0)
|
||||||
@@ -439,12 +476,22 @@
|
|||||||
src.gen_primary = A
|
src.gen_primary = A
|
||||||
src.gen_secondary = B
|
src.gen_secondary = B
|
||||||
spawn(1)
|
spawn(1)
|
||||||
src.sd_SetLuminosity(5)
|
src.sd_SetLuminosity(3)
|
||||||
|
|
||||||
|
/* for(var/mob/M as mob in src.loc) //does not work for some reason.
|
||||||
|
if(istype(M,/mob/living/carbon))
|
||||||
|
M.bruteloss += 100
|
||||||
|
M.updatehealth()
|
||||||
|
M << "\red <B>You feel as the very atoms of your body divide!</B>"
|
||||||
|
else
|
||||||
|
M.bruteloss += 50
|
||||||
|
M.updatehealth()
|
||||||
|
M << "\red <B>Strong energy field detected. Damage from field dampened.</B>"
|
||||||
|
*/
|
||||||
|
|
||||||
/obj/machinery/shieldwall/attack_hand(mob/user as mob)
|
/obj/machinery/shieldwall/attack_hand(mob/user as mob)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/shieldwall/process()
|
/obj/machinery/shieldwall/process()
|
||||||
if(isnull(gen_primary)||isnull(gen_secondary))
|
if(isnull(gen_primary)||isnull(gen_secondary))
|
||||||
del(src)
|
del(src)
|
||||||
@@ -452,4 +499,9 @@
|
|||||||
|
|
||||||
if(!(gen_primary.active)||!(gen_secondary.active))
|
if(!(gen_primary.active)||!(gen_secondary.active))
|
||||||
del(src)
|
del(src)
|
||||||
return
|
return
|
||||||
|
//
|
||||||
|
if(prob(50))
|
||||||
|
gen_primary.storedpower -= 10
|
||||||
|
else
|
||||||
|
gen_secondary.storedpower -=10
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
var/location
|
var/location
|
||||||
if (isturf(target)) location = target
|
if (isturf(target)) location = target
|
||||||
if (isobj(target)) location = target.loc
|
if (isobj(target)) location = target.loc
|
||||||
target.overlays += image('assemblies.dmi', "timer-igniter-tank2")
|
target.overlays += image('assemblies.dmi', "plastic-explosive2")
|
||||||
user << "Bomb has been planted. Timer counting down from [src.timer]."
|
user << "Bomb has been planted. Timer counting down from [src.timer]."
|
||||||
spawn(src.timer*10)
|
spawn(src.timer*10)
|
||||||
explosion(location, -1, -1, 2, 3)
|
explosion(location, -1, -1, 2, 3)
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ var/prison_shuttle_at_station = 0
|
|||||||
var/prison_shuttle_can_send = 1
|
var/prison_shuttle_can_send = 1
|
||||||
var/prison_shuttle_time = 0
|
var/prison_shuttle_time = 0
|
||||||
var/prison_shuttle_timeleft = 0
|
var/prison_shuttle_timeleft = 0
|
||||||
var/prison_shuttle_points = 50
|
|
||||||
|
|
||||||
/obj/machinery/computer/prison_shuttle
|
/obj/machinery/computer/prison_shuttle
|
||||||
name = "Prison Shuttle Console"
|
name = "Prison Shuttle Console"
|
||||||
|
|||||||
144
code/game/specops_shuttle.dm
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
//Config stuff
|
||||||
|
#define SPECOPS_MOVETIME 600 //Time to station is milliseconds. 60 seconds, enough time for everyone to be on the shuttle before it leaves.
|
||||||
|
#define SPECOPS_STATION_AREATYPE "/area/shuttle/specops/station" //Type of the spec ops shuttle area for station
|
||||||
|
#define SPECOPS_DOCK_AREATYPE "/area/shuttle/specops/centcom" //Type of the spec ops shuttle area for dock
|
||||||
|
|
||||||
|
var/specops_shuttle_moving_to_station = 0
|
||||||
|
var/specops_shuttle_moving_to_centcom = 0
|
||||||
|
var/specops_shuttle_at_station = 0
|
||||||
|
var/specops_shuttle_can_send = 1
|
||||||
|
var/specops_shuttle_time = 0
|
||||||
|
var/specops_shuttle_timeleft = 0
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle
|
||||||
|
name = "Spec. Ops. Shuttle Console"
|
||||||
|
icon = 'computer.dmi'
|
||||||
|
icon_state = "shuttle"
|
||||||
|
req_access = list()
|
||||||
|
var/temp = null
|
||||||
|
var/hacked = 0
|
||||||
|
var/allowedtocall = 0
|
||||||
|
|
||||||
|
/proc/specops_process()
|
||||||
|
while(specops_shuttle_time - world.timeofday > 0)
|
||||||
|
var/ticksleft = specops_shuttle_time - world.timeofday
|
||||||
|
|
||||||
|
if(ticksleft > 1e5)
|
||||||
|
specops_shuttle_time = world.timeofday + 10 // midnight rollover
|
||||||
|
specops_shuttle_timeleft = (ticksleft / 10)
|
||||||
|
sleep(5)
|
||||||
|
specops_shuttle_moving_to_station = 0
|
||||||
|
specops_shuttle_moving_to_centcom = 0
|
||||||
|
|
||||||
|
specops_shuttle_at_station = 1
|
||||||
|
if (specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||||
|
|
||||||
|
if (!specops_can_move())
|
||||||
|
usr << "\red The Special Operations shuttle is unable to leave."
|
||||||
|
return
|
||||||
|
|
||||||
|
var/area/start_location = locate(/area/shuttle/specops/centcom)
|
||||||
|
var/area/end_location = locate(/area/shuttle/specops/station)
|
||||||
|
|
||||||
|
var/list/dstturfs = list()
|
||||||
|
var/throwy = world.maxy
|
||||||
|
|
||||||
|
for(var/turf/T in end_location)
|
||||||
|
dstturfs += T
|
||||||
|
if(T.y < throwy)
|
||||||
|
throwy = T.y
|
||||||
|
|
||||||
|
// hey you, get out of the way!
|
||||||
|
for(var/turf/T in dstturfs)
|
||||||
|
// find the turf to move things to
|
||||||
|
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||||
|
//var/turf/E = get_step(D, SOUTH)
|
||||||
|
for(var/atom/movable/AM as mob|obj in T)
|
||||||
|
AM.Move(D)
|
||||||
|
if(istype(T, /turf/simulated))
|
||||||
|
del(T)
|
||||||
|
|
||||||
|
start_location.move_contents_to(end_location)
|
||||||
|
|
||||||
|
for(var/turf/T in get_area_turfs(end_location) )
|
||||||
|
var/mob/M = locate(/mob) in T
|
||||||
|
M << "\red You have arrived to [station_name]. Commence operation!"
|
||||||
|
|
||||||
|
/proc/specops_can_move()
|
||||||
|
if(specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return 0
|
||||||
|
else return 1
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob)
|
||||||
|
return src.attack_hand(user)
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle/attack_ai(var/mob/user as mob)
|
||||||
|
return src.attack_hand(user)
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle/attack_paw(var/mob/user as mob)
|
||||||
|
return src.attack_hand(user)
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob)
|
||||||
|
if(istype(I,/obj/item/weapon/card/emag))
|
||||||
|
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."
|
||||||
|
else
|
||||||
|
return src.attack_hand(user)
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle/attack_hand(var/mob/user as mob)
|
||||||
|
if(!src.allowed(user))
|
||||||
|
user << "\red Access Denied."
|
||||||
|
return
|
||||||
|
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
|
||||||
|
user.machine = src
|
||||||
|
var/dat
|
||||||
|
if (src.temp)
|
||||||
|
dat = src.temp
|
||||||
|
else
|
||||||
|
dat += {"<BR><B>Special Operations Shuttle</B><HR>
|
||||||
|
\nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]<BR>
|
||||||
|
[specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.*<BR>\n<BR>":specops_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Shuttle Offline</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Depart to [station_name]</A><BR>\n<BR>"]
|
||||||
|
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||||
|
|
||||||
|
user << browse(dat, "window=computer;size=575x450")
|
||||||
|
onclose(user, "computer")
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/computer/specops_shuttle/Topic(href, href_list)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
|
||||||
|
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
||||||
|
usr.machine = src
|
||||||
|
|
||||||
|
if (href_list["sendtodock"])
|
||||||
|
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||||
|
|
||||||
|
usr << "\blue Central Command will not allow the Special Operations shuttle to return."
|
||||||
|
return
|
||||||
|
|
||||||
|
else if (href_list["sendtostation"])
|
||||||
|
if(specops_shuttle_at_station || specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
|
||||||
|
|
||||||
|
if (!specops_can_move())
|
||||||
|
usr << "\red The Special Operations shuttle is unable to leave."
|
||||||
|
return
|
||||||
|
|
||||||
|
usr << "\blue The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds."
|
||||||
|
|
||||||
|
src.temp += "Shuttle departing.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
|
||||||
|
src.updateUsrDialog()
|
||||||
|
|
||||||
|
specops_shuttle_moving_to_station = 1
|
||||||
|
|
||||||
|
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
|
||||||
|
spawn(0)
|
||||||
|
specops_process()
|
||||||
|
|
||||||
|
else if (href_list["mainmenu"])
|
||||||
|
src.temp = null
|
||||||
|
|
||||||
|
src.add_fingerprint(usr)
|
||||||
|
src.updateUsrDialog()
|
||||||
|
return
|
||||||
@@ -7,9 +7,9 @@ var/global/sent_strike_team = 0
|
|||||||
if(!ticker)
|
if(!ticker)
|
||||||
alert("The game hasn't started yet!")
|
alert("The game hasn't started yet!")
|
||||||
return
|
return
|
||||||
// if(world.time < 6000)
|
if(world.time < 6000)
|
||||||
// alert("Not so fast, buddy. Wait a few (10) minutes until the game gets going.")
|
alert("Not so fast, buddy. Wait a few minutes until the game gets going. There are [(6000-world.time)/10] seconds remaining.")
|
||||||
// return
|
return
|
||||||
if(sent_strike_team == 1)
|
if(sent_strike_team == 1)
|
||||||
alert("CentCom is already sending a team, Mr. Dumbass.")
|
alert("CentCom is already sending a team, Mr. Dumbass.")
|
||||||
return
|
return
|
||||||
@@ -24,7 +24,7 @@ var/global/sent_strike_team = 0
|
|||||||
|
|
||||||
var/commando_number = 6 //for selecting a leader
|
var/commando_number = 6 //for selecting a leader
|
||||||
var/leader_selected = 0 //when the leader is chosen. The last person spawned.
|
var/leader_selected = 0 //when the leader is chosen. The last person spawned.
|
||||||
var/commando_leader_rank = pick("2nd Lieutenant", "1st Lieutenant", "Captain", "Major")
|
var/commando_leader_rank = pick("Lieutenant", "Captain", "Major")
|
||||||
var/list/commando_names = dd_file2list("config/names/last.txt")
|
var/list/commando_names = dd_file2list("config/names/last.txt")
|
||||||
|
|
||||||
//Spawns commandos and equips them.
|
//Spawns commandos and equips them.
|
||||||
@@ -69,11 +69,17 @@ var/global/sent_strike_team = 0
|
|||||||
new_commando.equip_if_possible(new /obj/item/clothing/glasses/thermal(new_commando), new_commando.slot_glasses)
|
new_commando.equip_if_possible(new /obj/item/clothing/glasses/thermal(new_commando), new_commando.slot_glasses)
|
||||||
|
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/storage/backpack(new_commando), new_commando.slot_back)
|
new_commando.equip_if_possible(new /obj/item/weapon/storage/backpack(new_commando), new_commando.slot_back)
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/ammo/a357(new_commando), new_commando.slot_in_backpack)
|
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/ammo/a357(new_commando), new_commando.slot_in_backpack)
|
new_commando.equip_if_possible(new /obj/item/weapon/ammo/a357(new_commando), new_commando.slot_in_backpack)
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(new_commando), new_commando.slot_in_backpack)
|
new_commando.equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(new_commando), new_commando.slot_in_backpack)
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/storage/flashbang_kit(new_commando), new_commando.slot_in_backpack)
|
new_commando.equip_if_possible(new /obj/item/weapon/storage/flashbang_kit(new_commando), new_commando.slot_in_backpack)
|
||||||
new_commando.equip_if_possible(new /obj/item/device/flashlight(new_commando), new_commando.slot_in_backpack)
|
new_commando.equip_if_possible(new /obj/item/device/flashlight(new_commando), new_commando.slot_in_backpack)
|
||||||
|
if (leader_selected == 0)
|
||||||
|
new_commando.equip_if_possible(new /obj/item/weapon/plastique(new_commando), new_commando.slot_in_backpack)
|
||||||
|
else
|
||||||
|
new_commando.equip_if_possible(new /obj/item/weapon/pinpointer(new_commando), new_commando.slot_in_backpack)
|
||||||
|
if (leader_selected == 1)
|
||||||
|
new_commando.equip_if_possible(new /obj/item/weapon/disk/nuclear(new_commando), new_commando.slot_in_backpack)
|
||||||
|
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/sword(new_commando), new_commando.slot_l_store)
|
new_commando.equip_if_possible(new /obj/item/weapon/sword(new_commando), new_commando.slot_l_store)
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/flashbang(new_commando), new_commando.slot_r_store)
|
new_commando.equip_if_possible(new /obj/item/weapon/flashbang(new_commando), new_commando.slot_r_store)
|
||||||
@@ -82,7 +88,8 @@ var/global/sent_strike_team = 0
|
|||||||
var/obj/item/weapon/gun/revolver/GUN = new /obj/item/weapon/gun/revolver/mateba(new_commando)
|
var/obj/item/weapon/gun/revolver/GUN = new /obj/item/weapon/gun/revolver/mateba(new_commando)
|
||||||
GUN.bullets = 7
|
GUN.bullets = 7
|
||||||
new_commando.equip_if_possible(GUN, new_commando.slot_s_store)
|
new_commando.equip_if_possible(GUN, new_commando.slot_s_store)
|
||||||
new_commando.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle(new_commando), new_commando.slot_l_hand)
|
// new_commando.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle(new_commando), new_commando.slot_l_hand)
|
||||||
|
//Commented out because Commandos now have their rifles spawn in front of them, along with operation manuals.
|
||||||
|
|
||||||
var/obj/item/weapon/card/id/W = new(new_commando)
|
var/obj/item/weapon/card/id/W = new(new_commando)
|
||||||
W.name = "[new_commando.real_name]'s ID Card"
|
W.name = "[new_commando.real_name]'s ID Card"
|
||||||
@@ -116,7 +123,7 @@ var/global/sent_strike_team = 0
|
|||||||
for (var/obj/landmark/MANUAL)
|
for (var/obj/landmark/MANUAL)
|
||||||
if (MANUAL.name == "Commando_Manual")
|
if (MANUAL.name == "Commando_Manual")
|
||||||
var/obj/item/weapon/paper/PAPER = new /obj/item/weapon/paper(MANUAL.loc)
|
var/obj/item/weapon/paper/PAPER = new /obj/item/weapon/paper(MANUAL.loc)
|
||||||
PAPER.info = "<p><b>Good morning soldier!</b>. This compact guide will familiarize you with standard operating procedure. There are three basic rules to follow:<br>#1 Work as a team.<br>#2 Accomplish your objective at all costs.<br>#3 Leave no witnesses.<br>You are fully equipped and stocked for your mission--before departing on the Spec. Ops. Shuttle due South, make sure that all operatives are injected with an explosive implant in case of mission failure. Actual objectives will be relayed to you by CentCom.<br>If deemed appropriate, CentCom will also allow members of your team to equip assault power-armor for the mission. You will find the armor storage due West of your position.</p><p>In the event that the team does not accomplish their assigned objective in a timely manner, or finds no other way to do so, attached below are instructions on how to operate a Nanotrasen Nuclear Device. Your operations team is provided with a nuclear authentication disk and a pin-pointer for this reason. The nuclear device will be present somewhere on your destination.</p><p>Hello and thank you for choosing Nanotrasen for your nuclear information needs. Today's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.<br>First and foremost, <b>DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.</b> Pressing any button on the compacted bomb will cause it to extend and bolt itself into place. If this is done to unbolt it one must completely log in which at this time may not be possible.<br>To make the device functional:<br>#1 Place bomb in designated detonation zone<br> #2 Extend and anchor bomb (attack with hand).<br>#3 Insert Nuclear Auth. Disk into slot.<br>#4 Type numeric code into keypad ([nuke_code]).<br>Note: If you make a mistake press R to reset the device.<br>#5 Press the E button to log onto the device.<br>You now have activated the device. To deactivate the buttons at anytime, for example when you have already prepped the bomb for detonation, remove the authentication disk OR press the R on the keypad. Now the bomb CAN ONLY be detonated using the timer. A manual detonation is not an option.<br>Note: Toggle off the <b>SAFETY</b>.<br>Use the - - and + + to set a detonation time between 5 seconds and 10 minutes. Then press the timer toggle button to start the countdown. Now remove the authentication disk so that the buttons deactivate.<br>Note: <b>THE BOMB IS STILL SET AND WILL DETONATE</b><br>Now before you remove the disk if you need to move the bomb you can: Toggle off the anchor, move it, and re-anchor.</p><p>The nuclear authorization code is: <b>[nuke_code]</b></p><p><b>Good luck, soldier!</b></p>"
|
PAPER.info = "<p><b>Good morning soldier!</b>. This compact guide will familiarize you with standard operating procedure. There are three basic rules to follow:<br>#1 Work as a team.<br>#2 Accomplish your objective at all costs.<br>#3 Leave no witnesses.<br>You are fully equipped and stocked for your mission--before departing on the Spec. Ops. Shuttle due South, make sure that all operatives are ready. Actual mission objective will be relayed to you by Central Command through your headsets.<br>If deemed appropriate, Cent. Com will also allow members of your team to equip assault power-armor for the mission. You will find the armor storage due West of your position. Once you are ready to leave, utilize the Special Operations shuttle console and toggle the hull doors via the other console.</p><p>In the event that the team does not accomplish their assigned objective in a timely manner, or finds no other way to do so, attached below are instructions on how to operate a Nanotrasen Nuclear Device. Your operations <b>LEADER</b> is provided with a nuclear authentication disk and a pin-pointer for this reason. You may easily recognize them by their rank: Lieutenant, Captain, or Major. The nuclear device itself will be present somewhere on your destination.</p><p>Hello and thank you for choosing Nanotrasen for your nuclear information needs. Today's crash course will deal with the operation of a Fission Class Nanotrasen made Nuclear Device.<br>First and foremost, <b>DO NOT TOUCH ANYTHING UNTIL THE BOMB IS IN PLACE.</b> Pressing any button on the compacted bomb will cause it to extend and bolt itself into place. If this is done to unbolt it one must completely log in which at this time may not be possible.<br>To make the device functional:<br>#1 Place bomb in designated detonation zone<br> #2 Extend and anchor bomb (attack with hand).<br>#3 Insert Nuclear Auth. Disk into slot.<br>#4 Type numeric code into keypad ([nuke_code]).<br>Note: If you make a mistake press R to reset the device.<br>#5 Press the E button to log onto the device.<br>You now have activated the device. To deactivate the buttons at anytime, for example when you have already prepped the bomb for detonation, remove the authentication disk OR press the R on the keypad. Now the bomb CAN ONLY be detonated using the timer. A manual detonation is not an option.<br>Note: Toggle off the <b>SAFETY</b>.<br>Use the - - and + + to set a detonation time between 5 seconds and 10 minutes. Then press the timer toggle button to start the countdown. Now remove the authentication disk so that the buttons deactivate.<br>Note: <b>THE BOMB IS STILL SET AND WILL DETONATE</b><br>Now before you remove the disk if you need to move the bomb you can: Toggle off the anchor, move it, and re-anchor.</p><p>The nuclear authorization code is: <b>[nuke_code]</b></p><p><b>Good luck, soldier!</b></p>"
|
||||||
PAPER.name = "Spec. Ops. Manual"
|
PAPER.name = "Spec. Ops. Manual"
|
||||||
|
|
||||||
for (var/obj/landmark/BOMB in world)
|
for (var/obj/landmark/BOMB in world)
|
||||||
|
|||||||
@@ -262,6 +262,7 @@
|
|||||||
#include "code\game\prisonshuttle.dm"
|
#include "code\game\prisonshuttle.dm"
|
||||||
#include "code\game\smoothwall.dm"
|
#include "code\game\smoothwall.dm"
|
||||||
#include "code\game\sound.dm"
|
#include "code\game\sound.dm"
|
||||||
|
#include "code\game\specops_shuttle.dm"
|
||||||
#include "code\game\status.dm"
|
#include "code\game\status.dm"
|
||||||
#include "code\game\supplyshuttle.dm"
|
#include "code\game\supplyshuttle.dm"
|
||||||
#include "code\game\syndicate_shuttle.dm"
|
#include "code\game\syndicate_shuttle.dm"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 56 KiB |