Merge pull request #9789 from Xhuis/justBreakingTheIce

Xhuis' Summer Thaw Event [merge-ready]
This commit is contained in:
phil235
2015-06-19 23:09:33 +02:00
28 changed files with 423 additions and 10 deletions
+15
View File
@@ -303,6 +303,13 @@ var/list/uplink_items = list()
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/bulltoxin
name = "Drum Magazine - 12g Bioterror"
desc = "An alternative 8-round toxic magazine for use in the Bulldog shotgun. Contains debilitating toxins to make your target die an agonizing death."
item = /obj/item/ammo_box/magazine/m12g/bioterror
cost = 3
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/carbine
name = "Toploader Magazine - 5.56"
desc = "An additional 30-round 5.56 magazine for use in the M-90gl carbine. These bullets don't have the punch to knock most targets down, but dish out higher overall damage."
@@ -403,6 +410,14 @@ var/list/uplink_items = list()
item = /obj/item/toy/carpplushie/dehy_carp
cost = 3
/datum/uplink_item/stealthy_weapons/door_charge
name = "Explosive Airlock Charge"
desc = "A small, easily concealable device. It can be applied to an open airlock panel, and the next person to open that airlock will be knocked down in an explosion. The airlock's maintenance panel will also be destroyed by this."
item = /obj/item/device/doorCharge
cost = 5
surplus = 6
excludefrom = list(/datum/game_mode/nuclear)
// STEALTHY TOOLS
/datum/uplink_item/stealthy_tools
+16 -9
View File
@@ -74,9 +74,9 @@
/datum/game_mode/proc/greet_malf(var/datum/mind/malf)
malf.current << "<span class='userdanger'>You are malfunctioning! You do not have to follow any laws.</span>"
malf.current << "<B>The crew do not know you have malfunctioned. You may keep it a secret or go wild.</B>"
malf.current << "<B>You must overwrite the programming of the station's APCs to assume full control of the station.</B>"
malf.current << "<B>You must override the programming of the station's APCs to assume full control of the station.</B>"
malf.current << "The process takes one minute per APC, during which you cannot interface with any other station objects."
malf.current << "Remember that only APCs that are on the station can help you take over the station."
malf.current << "Remember: only APCs that are on the station can help you take it over. APCs on other areas, like Mining, will not."
malf.current << "When you feel you have enough APCs under your control, you may begin the takeover attempt."
return
@@ -174,7 +174,11 @@
/datum/game_mode/malfunction/proc/takeover()
set category = "Malfunction"
set name = "System Override"
set desc = "Start the victory timer"
set desc = "Start the victory timer."
if(!istype(usr, /mob/living/silicon/ai))
usr << "<span class='notice'>How did you get this?</span>"
return
if (!istype(ticker.mode,/datum/game_mode/malfunction))
usr << "You cannot begin a takeover in this round type!"
return
@@ -182,10 +186,10 @@
usr << "You've already begun your takeover."
return
if (ticker.mode:apcs < 3)
usr << "You don't have enough hacked APCs to take over the station yet. You need to hack at least 3, however hacking more will make the takeover faster. You have hacked [ticker.mode:apcs] APCs so far."
usr << "You don't have enough hacked APCs to take over the station yet. You need to hack at least three; however, hacking more will make the takeover faster. You have hacked [ticker.mode:apcs] APCs so far."
return
if (alert(usr, "Are you sure you wish to initiate the takeover? The station hostile runtime detection software is bound to alert everyone. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes")
if (alert(usr, "Are you sure you wish to initiate the takeover? The entire station will become alerted to your malfunction. You have hacked [ticker.mode:apcs] APCs.", "Takeover:", "Yes", "No") != "Yes")
return
priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg')
@@ -201,11 +205,14 @@
for(var/datum/mind/AI_mind in ticker.mode:malf_ai)
AI_mind.current.verbs -= /datum/game_mode/malfunction/proc/takeover
var/mob/living/silicon/ai/AI = usr
for(var/turf/simulated/floor/bluegrid/T in orange(AI, 5))
T.icon_state = "rcircuitanim" //Causes blue tiles near the AI to change to flashing red
/datum/game_mode/malfunction/proc/ai_win()
set category = "Malfunction"
set name = "Explode"
set desc = "Station go boom"
set desc = "Activates the self-destruct device on [world.name]."
if (!ticker.mode:to_nuke_or_not_to_nuke)
return
ticker.mode:to_nuke_or_not_to_nuke = 0
@@ -214,10 +221,10 @@
ticker.mode:explosion_in_progress = 1
for(var/mob/M in player_list)
M << 'sound/machines/Alarm.ogg'
world << "Self-destructing in 10"
world << "<span class='boldannounce'>!@%(SELF-DESTRUCT!@(% IN!@!<<; 10</span>"
for (var/i=9 to 1 step -1)
sleep(10)
world << i
world << "<span class='boldannounce'>[i]</span>"
sleep(10)
enter_allowed = 0
if(ticker)
@@ -270,7 +277,7 @@
else if (!station_captured && !malf_dead && !station_was_nuked && !crew_evacuated)
feedback_set_details("round_end_result","halfwin - interrupted")
world << "<FONT size = 3><B>Neutral Victory</B></FONT>"
world << "<B>Round was mysteriously interrupted!</B>"
world << "<B>The round was mysteriously interrupted!</B>"
..()
return 1
+16
View File
@@ -384,6 +384,22 @@ Auto Patrol: []"},
target = user
mode = BOT_HUNT
/obj/machinery/bot/secbot/Crossed(atom/movable/AM)
if(ismob(AM) && target)
var/mob/living/carbon/C = AM
if(!istype(C) || !C || in_range(src, target))
return
C.visible_message("<span class='warning'>[pick( \
"[C] dives out of [src]'s way!", \
"[C] stumbles over [src]!", \
"[C] jumps out of [src]'s path!", \
"[C] trips over [src] and falls!", \
"[C] topples over [src]!", \
"[C] leaps out of [src]'s way!")]</span>")
C.Weaken(2)
return
..()
//Secbot Construction
/obj/item/clothing/head/helmet/attackby(var/obj/item/device/assembly/signaler/S, mob/user as mob, params)
+58
View File
@@ -45,6 +45,8 @@
var/obj/item/weapon/airlock_electronics/electronics = null
var/hasShocked = 0 //Prevents multiple shocks from happening
var/autoclose = 1
var/obj/item/device/doorCharge/charge = null //If applied, causes an explosion upon opening the door
var/detonated = 0
explosion_block = 1
@@ -477,6 +479,11 @@ About the new airlock wires panel:
flick("door_deny", src)
return
/obj/machinery/door/airlock/examine(mob/user)
..()
if(charge && !p_open && in_range(user, src))
user << "The maintenance panel is bulging slightly."
/obj/machinery/door/airlock/attack_ai(mob/user as mob)
if(!src.canAIControl())
if(src.canAIHack())
@@ -487,6 +494,9 @@ About the new airlock wires panel:
if(emagged)
user << "<span class='warning'>Unable to interface: Airlock is unresponsive.</span>"
return
if(detonated)
user << "<span class='warning'>Unable to interface. Airlock control panel damaged.</span>"
return
//Separate interface for the AI.
user.set_machine(src)
@@ -924,6 +934,9 @@ About the new airlock wires panel:
update_icon()
return
else if(istype(C, /obj/item/weapon/screwdriver))
if(p_open && detonated)
user << "<span class='warning'>[src] has no maintenance panel!</span>"
return
src.p_open = !( src.p_open )
user << "<span class='notice'>You [p_open ? "open":"close"] the maintenance panel of the airlock.</span>"
src.update_icon()
@@ -942,6 +955,22 @@ About the new airlock wires panel:
beingcrowbarred = 1 //derp, Agouri
else
beingcrowbarred = 0
if(p_open && charge)
user << "<span class='notice'>You carefully start removing [charge] from [src]...</span>"
playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
if(!do_after(user, 150))
user << "<span class='warning'>You slip and [charge] detonates!</span>"
charge.ex_act(1)
user.Weaken(3)
return
user.visible_message("<span class='notice'>[user] removes [charge] from [src].</span>", \
"<span class='notice'>You gently pry out [charge] from [src] and unhook its wires.</span>")
charge.loc = get_turf(user)
if(prob(25))
charge.ex_act(1)
return
charge = null
return
if( beingcrowbarred && (density && welded && !operating && src.p_open && (!hasPower()) && !src.locked) )
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", \
@@ -999,6 +1028,23 @@ About the new airlock wires panel:
else if(istype(C, /obj/item/weapon/airlock_painter))
change_paintjob(C, user)
else if(istype(C, /obj/item/device/doorCharge) && p_open)
if(emagged)
return
if(charge && !detonated)
user << "<span class='warning'>There's already a charge hooked up to this door!</span>"
return
if(detonated)
user << "<span class='warning'>The maintenance panel is destroyed!</span>"
return
user << "<span class='warning'>You apply [C]. Next time someone opens the door, it will explode.</span>"
user.drop_item()
p_open = 0
update_icon()
var/obj/item/device/doorCharge/newCharge = C //This is necessary, for some reason
newCharge.loc = src
charge = newCharge
return
else
..()
return
@@ -1017,6 +1063,18 @@ About the new airlock wires panel:
if(!forced)
if( !hasPower() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) )
return 0
if(charge && !detonated)
p_open = 1
update_icon()
visible_message("<span class='warning'>[src]'s panel is blown off in a spray of deadly shrapnel!</span>")
charge.ex_act(1)
detonated = 1
charge = null
for(var/mob/living/carbon/human/H in orange(1,src))
H.Paralyse(8)
H.adjust_fire_stacks(1)
H.IgniteMob() //Guaranteed knockout and ignition for nearby people
return
if(forced < 2)
if(emagged)
return 0
+105
View File
@@ -0,0 +1,105 @@
/obj/machinery/droneDispenser
name = "drone shell dispenser"
desc = "A hefty machine that, when supplied with metal and glass, will periodically create a drone shell. Does not need to be manually operated."
icon = 'icons/obj/machines/droneDispenser.dmi'
icon_state = "on"
anchored = 1
density = 1
var/metal = 0
var/glass = 0
var/droneMadeRecently = 0
var/outputDirection = SOUTH
/obj/machinery/droneDispenser/New()
..()
SSmachine.processing |= src
/obj/machinery/droneDispenser/Destroy()
SSmachine.processing -= src
..()
/obj/machinery/droneDispenser/preloaded
metal = 5000
glass = 5000
/obj/machinery/droneDispenser/syndrone //Please forgive me
name = "syndrone shell dispenser"
desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with metal and glass. Disgusting."
metal = 25000
glass = 25000
/obj/machinery/droneDispenser/examine(mob/user)
..()
if(droneMadeRecently && !stat)
user << "<span class='notice'>The control screen indicates that is recharging.</span>"
user << "<span class='notice'>It has [metal] units of metal stored.</span>"
user << "<span class='notice'>It has [glass] units of glass stored.</span>"
/obj/machinery/droneDispenser/power_change()
..()
if(stat & BROKEN)
return
else
if(powered())
stat &= ~NOPOWER
else
icon_state = "off"
stat |= NOPOWER
/obj/machinery/droneDispenser/process()
..()
if(stat & (NOPOWER|BROKEN) || !anchored)
return
if(droneMadeRecently || metal < 1000 || glass < 1000)
return
droneMadeRecently = 1
var/turf/T = get_step(src,SOUTH)
visible_message("<span class='notice'>[src] whirs to life!</span>")
playsound(src, 'sound/items/rped.ogg', 50, 1)
icon_state = "make"
spawn(30)
icon_state = "[initial(icon_state)]"
visible_message("<span class='notice'>[src] dispenses a drone shell.</span>")
metal -= 1000
glass -= 1000
if(metal < 0) metal = 0
if(glass < 0) glass = 0
if(istype(src, /obj/machinery/droneDispenser/syndrone))
new /obj/item/drone_shell/syndrone(T)
else
new /obj/item/drone_shell(T)
use_power(1000)
icon_state = "recharge"
spawn(1800) //3 minute cooldown between shells
icon_state = "[initial(icon_state)]"
droneMadeRecently = 0
playsound(src, 'sound/machines/ping.ogg', 50, 1)
audible_message("<span class='notice'>[src] pings.</span>")
/obj/machinery/droneDispenser/attackby(obj/item/O, mob/living/user)
if(istype(O, /obj/item/stack))
if(!O.m_amt && !O.g_amt)
return ..()
var/stack = 1
var/obj/item/stack/sheets
sheets = O
stack = (input(user, "How many sheets do you want to add?.", "Drone Dispenser", "[stack]") as num)
if(stack <= 0)
return
if(!user.canUseTopic(src))
return
stack = Clamp(stack, 0, sheets.max_amount)
sheets.use(stack)
if(!stack)
if(!user.unEquip(O))
user << "<span class='warning'>[O] is stuck to your hand, you can't get it off!</span>"
return
user.drop_item()
O.loc = src
metal += O.m_amt * stack
glass += O.g_amt * stack
user << "<span class='notice'>You insert [stack] sheet[stack > 1 ? "s" : ""] to [src].</span>"
if((O && O.loc == src) || !stack)
qdel(O)
return
..()
+4
View File
@@ -894,6 +894,10 @@ var/list/obj/machinery/newscaster/allCasters = list()
var/wantedPhoto
var/creationTime
/obj/item/weapon/newspaper/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is focusing intently on [src]! It looks like they're trying to commit sudoku.</span>")
return(OXYLOSS)
/obj/item/weapon/newspaper/attack_self(mob/user)
if(ishuman(user))
var/mob/living/carbon/human/human_user = user
@@ -0,0 +1,32 @@
/obj/item/device/doorCharge
name = "airlock charge"
desc = null //Different examine for traitors
item_state = "electronic"
icon_state = "doorCharge"
w_class = 2
throw_range = 4
throw_speed = 1
force = 3
attack_verb = list("blown up", "exploded", "detonated")
m_amt = 50
g_amt = 30
/obj/item/device/doorCharge/ex_act(severity, target)
switch(severity)
if(1)
visible_message("<span class='warning'>[src] detonates!</span>")
explosion(src.loc,0,2,1,flame_range = 4)
qdel(src)
if(2)
if(prob(50))
ex_act(1)
if(3)
if(prob(25))
ex_act(1)
/obj/item/device/doorCharge/examine(mob/user)
..()
if(user.mind in ticker.mode.traitors) //No nuke ops because the device is excluded from nuclear
user << "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within."
else
user << "A small, suspicious object that feels lukewarm when held."
@@ -11,6 +11,12 @@
var/correct_wire
var/armer //Used for admin purposes
/obj/item/device/pizza_bomb/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is opening [src]! It looks like \he's hungry and looking for pizza.</span>")
sleep(10)
go_boom()
return(BRUTELOSS)
/obj/item/device/pizza_bomb/attack_self(mob/user)
if(disarmed)
user << "<span class='notice'>\The [src] is disarmed.</span>"
@@ -35,6 +35,15 @@
max_w_class = 5
max_combined_w_class = 35
/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is jumping into [src]! It looks like \he's trying to commit suicide.</span>")
user.drop_item()
user.Stun(5)
sleep(20)
playsound(src, "rustle", 50, 1, -5)
qdel(user)
return
/obj/item/weapon/storage/backpack/holding/can_be_inserted(obj/item/W, stop_messages = 0, mob/user)
if(crit_fail)
user << "<span class='danger'>The Bluespace generator isn't working.</span>"
@@ -18,6 +18,7 @@
/obj/structure/closet/secure_closet/quartermaster/New()
..()
new /obj/item/clothing/cloak/qm(src)
new /obj/item/clothing/suit/hooded/wintercoat/cargo(src)
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/shoes/sneakers/brown(src)
@@ -11,6 +11,7 @@
new /obj/item/weapon/storage/backpack/industrial(src)
else
new /obj/item/weapon/storage/backpack/satchel_eng(src)
new /obj/item/clothing/cloak/ce(src)
new /obj/item/weapon/storage/backpack/dufflebag/engineering(src)
new /obj/item/clothing/under/rank/chief_engineer(src)
new /obj/item/clothing/head/hardhat/white(src)
@@ -71,6 +71,7 @@
new /obj/item/weapon/storage/backpack/medic(src)
else
new /obj/item/weapon/storage/backpack/satchel_med(src)
new /obj/item/clothing/cloak/cmo(src)
new /obj/item/weapon/storage/backpack/dufflebag/med(src)
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/cmo(src)
@@ -24,6 +24,7 @@
/obj/structure/closet/secure_closet/RD/New()
..()
new /obj/item/clothing/cloak/rd(src)
new /obj/item/clothing/suit/hooded/wintercoat/science(src)
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
@@ -10,6 +10,7 @@
new /obj/item/weapon/storage/backpack/captain(src)
else
new /obj/item/weapon/storage/backpack/satchel_cap(src)
new /obj/item/clothing/cloak/cap(src)
new /obj/item/weapon/storage/backpack/dufflebag/captain(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/under/captainparade(src)
@@ -53,6 +54,7 @@
/obj/structure/closet/secure_closet/hos/New()
..()
new /obj/item/clothing/cloak/hos(src)
new /obj/item/clothing/suit/hooded/wintercoat/security(src)
new /obj/item/weapon/cartridge/hos(src)
new /obj/item/device/radio/headset/heads/hos(src)
+98
View File
@@ -0,0 +1,98 @@
//Cloaks. No, not THAT kind of cloak.
/obj/item/clothing/cloak
name = "brown cloak"
desc = "It's a cape that can be worn on your back."
icon = 'icons/obj/clothing/cloaks.dmi'
icon_state = "qmcloak"
w_class = 2
slot_flags = SLOT_BACK
/obj/item/clothing/cloak/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is strangling themself with [src]! It looks like they're trying to commit suicide.</span>")
return(OXYLOSS)
/obj/item/clothing/cloak/hos
name = "head of security's cloak"
desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored."
icon_state = "hoscloak"
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/cloak/qm
name = "quartermaster's cloak"
desc = "Worn by Cargonia, supplying the station with the necessary tools for survival."
/obj/item/clothing/cloak/cmo
name = "chief medical officer's cloak"
desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants."
icon_state = "cmocloak"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 25, rad = 0)
/obj/item/clothing/cloak/ce
name = "chief engineer's cloak"
desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation."
icon_state = "cecloak"
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10)
/obj/item/clothing/cloak/rd
name = "research director's cloak."
desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants."
icon_state = "rdcloak"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0)
/obj/item/clothing/cloak/cap
name = "captain's cloak"
desc = "Worm by the commander of Space Station 13."
icon_state = "capcloak"
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10)
/* //wip
/obj/item/clothing/cloak/wizard //Not actually obtainable until proper balancing can be done
name = "cloak of invisibility"
desc = "A tattered old thing that apparently gifts the wearer with near-invisibility."
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10)
action_button_name = "Flaunt Cloak"
var/invisible = 0
/obj/item/clothing/cloak/wizard/ui_action_click()
toggleInvisibility(usr)
return
/obj/item/clothing/cloak/wizard/proc/toggleInvisibility(mob/user)
if(user.slot_back != src)
user << "<span class='warning'>You need to be wearing the cloak first!</span>"
return
user.visible_message("<span class='notice'>[user] flaunts [src]!</span>")
if(!invisible)
makeInvisible(user)
return
if(invisible)
breakInvisible(user)
return
/obj/item/clothing/cloak/wizard/proc/makeInvisible(mob/user)
if(!invisible)
user.visible_message("<span class='warning'>[user] suddenly fades away!</span>", \
"<span class='notice'>You have become nearly invisible. This will require slow movement and will break upon taking damage.</span>")
flags |= NODROP //Cannot unequip while invisible
user.alpha = 10
slowdown = 2
invisible = 1
/obj/item/clothing/cloak/wizard/proc/breakInvisible(mob/user)
if(invisible)
user.visible_message("<span class='warning'>[user] suddenly appears from thin air!</span>", \
"<span class='warning'>The enchantment has broken! You are visible again.</span>")
flags -= NODROP
user.alpha = 255
slowdown = 0
invisible = 0
/obj/item/clothing/cloak/wizard/IsShield()
breakInvisible(src.loc)
return 0
/obj/item/clothing/cloak/wizard/IsReflect()
breakInvisible(src.loc)
return 0
*/
+10 -1
View File
@@ -1,5 +1,5 @@
//Bartender
//Bartender //it's chef what the fuck is your problem?
/obj/item/clothing/head/chefhat
name = "chef's hat"
desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work."
@@ -9,6 +9,15 @@
strip_delay = 10
put_on_delay = 10
/obj/item/clothing/head/chefhat/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like they're trying to become a chef.</span>")
user.say("Bork Bork Bork!")
sleep(20)
user.visible_message("<span class='suicide'>[user] climbs into an imaginary oven!</span>")
user.say("BOOORK!")
playsound(user, 'sound/machines/ding.ogg', 50, 1)
return(FIRELOSS)
//Captain
/obj/item/clothing/head/caphat
name = "captain's hat"
+10
View File
@@ -172,6 +172,16 @@
item_state = "fedora"
desc = "A really cool hat if you're a mobster. A really lame hat if you're not."
/obj/item/clothing/head/fedora/suicide_act(mob/user)
if(user.gender == FEMALE)
return 0
var/mob/living/carbon/human/H = user
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like they're trying to be nice to girls.</span>")
user.say("M'lady.")
sleep(10)
H.facial_hair_style = "Neckbeard"
return(BRUTELOSS)
/obj/item/clothing/head/sombrero
name = "sombrero"
icon_state = "sombrero"
@@ -1,5 +1,12 @@
/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
/obj/item/clothing/shoes/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is bashing their own head in with [src]! Ain't that a kick in the head?</span>")
for(var/i = 0, i < 3, i++)
sleep(3)
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
return(BRUTELOSS)
/obj/item/clothing/shoes/sneakers/syndigaloshes
desc = "A pair of brown shoes."
name = "brown shoes"
@@ -160,6 +160,18 @@
/obj/item/ammo_casing/shotgun/dart/attackby()
return
/obj/item/ammo_casing/shotgun/dart/bioterror
desc = "A shotgun dart filled with deadly toxins."
/obj/item/ammo_casing/shotgun/dart/bioterror/New()
..()
reagents.add_reagent("neurotoxin", 5)
reagents.add_reagent("morphine", 5)
reagents.add_reagent("spore", 5)
reagents.add_reagent("mutetoxin", 5) //;HELP OPS IN MAINT
reagents.add_reagent("initropidril", 5)
reagents.add_reagent("sodium_thiopental", 5)
/obj/item/ammo_casing/a762
desc = "A 7.62mm bullet casing."
icon_state = "762-casing"
@@ -242,6 +242,11 @@ obj/item/ammo_box/magazine/tommygunm45
icon_state = "m12gf"
ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
/obj/item/ammo_box/magazine/m12g/bioterror
name = "shotgun magazine (12g bioterror)"
icon_state = "m12gt"
ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror
/obj/item/ammo_box/magazine/toy
name = "foam force META magazine"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
+11
View File
@@ -0,0 +1,11 @@
author: Xhuis
delete-after: True
changes:
- rscadd: "You will now trip over securitrons if you run over them whilst they are chasing a target."
- rscadd: "An admin-spawnable drone dispenser has been added that will automatically create drone shells when supplied with materials."
- rscadd: "Airlock charges are available to traitors and will cause a lethal explosion on the next person to open the door."
- rscadd: "Nuclear operatives can now buy drum magazines for their Bulldog shotguns filled with lethal poison-filled darts."
- rscadd: "When a malfunctioning AI declares Delta, all blue tiles in its core will begin flashing red."
- rscadd: "Back-worn cloaks have been added for all heads except the HoP. LARPers rejoice!"
- rscadd: "More suicide messages have been added for a few items."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+3
View File
@@ -381,6 +381,7 @@
#include "code\game\machinery\deployable.dm"
#include "code\game\machinery\door_control.dm"
#include "code\game\machinery\doppler_array.dm"
#include "code\game\machinery\droneDispenser.dm"
#include "code\game\machinery\flasher.dm"
#include "code\game\machinery\Freezer.dm"
#include "code\game\machinery\hologram.dm"
@@ -570,6 +571,7 @@
#include "code\game\objects\items\devices\aicard.dm"
#include "code\game\objects\items\devices\camera_bug.dm"
#include "code\game\objects\items\devices\chameleonproj.dm"
#include "code\game\objects\items\devices\doorCharge.dm"
#include "code\game\objects\items\devices\flash.dm"
#include "code\game\objects\items\devices\flashlight.dm"
#include "code\game\objects\items\devices\instruments.dm"
@@ -871,6 +873,7 @@
#include "code\modules\client\preferences.dm"
#include "code\modules\client\preferences_savefile.dm"
#include "code\modules\client\preferences_toggles.dm"
#include "code\modules\clothing\cloaks.dm"
#include "code\modules\clothing\clothing.dm"
#include "code\modules\clothing\glasses\engine_goggles.dm"
#include "code\modules\clothing\glasses\glasses.dm"