Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Ghommie-cit329
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
GLOBAL_LIST_EMPTY(mentors) //all clients whom are admins
|
||||
GLOBAL_PROTECT(mentors)
|
||||
@@ -1,4 +0,0 @@
|
||||
/datum/config_entry/flag/mentors_mobname_only
|
||||
|
||||
/datum/config_entry/flag/mentor_legacy_system //Defines whether the server uses the legacy mentor system with mentors.txt or the SQL system
|
||||
protection = CONFIG_ENTRY_LOCKED
|
||||
@@ -1,40 +0,0 @@
|
||||
/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff)
|
||||
var/mob/the_mob = N
|
||||
if(!the_mob)
|
||||
the_mob = M // cause this doesn't get assigned if player is a latejoiner
|
||||
if(the_mob.client && the_mob.client.prefs && (the_mob.client.prefs.chosen_gear && the_mob.client.prefs.chosen_gear.len))
|
||||
if(!ishuman(M))//no silicons allowed
|
||||
return
|
||||
for(var/i in the_mob.client.prefs.chosen_gear)
|
||||
var/datum/gear/G = i
|
||||
G = GLOB.loadout_items[slot_to_string(initial(G.category))][initial(G.name)]
|
||||
if(!G)
|
||||
continue
|
||||
var/permitted = TRUE
|
||||
if(G.restricted_roles && G.restricted_roles.len && !(M.mind.assigned_role in G.restricted_roles))
|
||||
permitted = FALSE
|
||||
if(G.donoritem && !G.donator_ckey_check(the_mob.client.ckey))
|
||||
permitted = FALSE
|
||||
if(!equipbackpackstuff && G.category == SLOT_IN_BACKPACK)//snowflake check since plopping stuff in the backpack doesnt work for pre-job equip loadout stuffs
|
||||
permitted = FALSE
|
||||
if(equipbackpackstuff && G.category != SLOT_IN_BACKPACK)//ditto
|
||||
permitted = FALSE
|
||||
if(!permitted)
|
||||
continue
|
||||
var/obj/item/I = new G.path
|
||||
if(!M.equip_to_slot_if_possible(I, G.category, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // If the job's dresscode compliant, try to put it in its slot, first
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
var/obj/item/storage/backpack/B = C.back
|
||||
if(!B || !SEND_SIGNAL(B, COMSIG_TRY_STORAGE_INSERT, I, null, TRUE, TRUE)) // Otherwise, try to put it in the backpack, for carbons.
|
||||
I.forceMove(get_turf(C))
|
||||
else if(!M.equip_to_slot_if_possible(I, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // Otherwise, try to put it in the backpack
|
||||
I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob.
|
||||
|
||||
/datum/controller/subsystem/job/proc/FreeRole(rank)
|
||||
if(!rank)
|
||||
return
|
||||
var/datum/job/job = GetJob(rank)
|
||||
if(!job)
|
||||
return FALSE
|
||||
job.current_positions = max(0, job.current_positions - 1)
|
||||
@@ -1,7 +0,0 @@
|
||||
/datum/controller/subsystem/shuttle/proc/autoEnd() //CIT CHANGE - allows shift to end after 2 hours have passed.
|
||||
if((world.realtime - SSshuttle.realtimeofstart) > auto_call && EMERGENCY_IDLE_OR_RECALLED) //2 hours
|
||||
SSshuttle.emergency.request(silent = TRUE)
|
||||
priority_announce("The shift has come to an end and the shuttle called. [seclevel2num(get_security_level()) == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, "shuttlecalled", "Priority")
|
||||
log_game("Round time limit reached. Shuttle has been auto-called.")
|
||||
message_admins("Round time limit reached. Shuttle called.")
|
||||
emergencyNoRecall = TRUE
|
||||
@@ -29,7 +29,7 @@
|
||||
if(!wearer)
|
||||
return //idfk
|
||||
new/obj/effect/temp_visual/souldeath(wearer.loc, wearer)
|
||||
playsound(wearer, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
|
||||
playsound(wearer, 'sound/misc/souldeath.ogg', 100, FALSE)
|
||||
|
||||
/datum/component/souldeath/neck
|
||||
equip_slot = SLOT_NECK
|
||||
|
||||
@@ -1,59 +1,59 @@
|
||||
/datum/mood_event/eigenstate
|
||||
mood_change = -3
|
||||
description = "<span class='warning'>Where the hell am I? Is this an alternative dimension ?</span>\n"
|
||||
mood_change = -3
|
||||
description = "<span class='warning'>Where the hell am I? Is this an alternative dimension ?</span>\n"
|
||||
|
||||
/datum/mood_event/enthrall
|
||||
mood_change = 5
|
||||
mood_change = 5
|
||||
|
||||
/datum/mood_event/enthrall/add_effects(message)
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallpraise
|
||||
mood_change = 10
|
||||
timeout = 1 MINUTES
|
||||
|
||||
/datum/mood_event/enthrallpraise/add_effects(message)
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallscold
|
||||
mood_change = -10
|
||||
timeout = 1 MINUTES
|
||||
mood_change = -10
|
||||
timeout = 1 MINUTES
|
||||
|
||||
/datum/mood_event/enthrallscold/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"//aaa I'm not kinky enough for this
|
||||
|
||||
/datum/mood_event/enthrallmissing1
|
||||
mood_change = -5
|
||||
mood_change = -5
|
||||
|
||||
/datum/mood_event/enthrallmissing1/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallmissing2
|
||||
mood_change = -10
|
||||
mood_change = -10
|
||||
|
||||
/datum/mood_event/enthrallmissing2/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallmissing3
|
||||
mood_change = -15
|
||||
mood_change = -15
|
||||
|
||||
/datum/mood_event/enthrallmissing3/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/enthrallmissing4
|
||||
mood_change = -25
|
||||
mood_change = -25
|
||||
|
||||
/datum/mood_event/enthrallmissing4/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/InLove
|
||||
mood_change = 10
|
||||
mood_change = 10
|
||||
|
||||
/datum/mood_event/InLove/add_effects(message)
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
description = "<span class='nicegreen'>[message]</span>\n"
|
||||
|
||||
/datum/mood_event/MissingLove
|
||||
mood_change = -10
|
||||
mood_change = -10
|
||||
|
||||
/datum/mood_event/MissingLove/add_effects(message)
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
description = "<span class='warning'>[message]</span>\n"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
// Jack the Ripper starring plush
|
||||
/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params)
|
||||
. = ..()
|
||||
if(I.is_sharp())
|
||||
if(I.get_sharpness())
|
||||
if(!grenade)
|
||||
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushjack", /datum/mood_event/plushjack)
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
// Citadel-specific Negative Traits
|
||||
@@ -1,40 +0,0 @@
|
||||
/datum/wires/airlock
|
||||
proper_name = "Generic Airlock"
|
||||
var/wiretype
|
||||
|
||||
/datum/wires/airlock/command
|
||||
proper_name = "Command Airlock"
|
||||
wiretype = "commandairlock"
|
||||
|
||||
/datum/wires/airlock/security
|
||||
proper_name = "Security Airlock"
|
||||
wiretype = "securityairlock"
|
||||
|
||||
/datum/wires/airlock/engineering
|
||||
proper_name = "Engineering Airlock"
|
||||
wiretype = "engineeringairlock"
|
||||
|
||||
/datum/wires/airlock/science
|
||||
proper_name = "Science Airlock"
|
||||
wiretype = "scienceairlock"
|
||||
|
||||
/datum/wires/airlock/medical
|
||||
proper_name = "Medical Airlock"
|
||||
wiretype = "medicalairlock"
|
||||
|
||||
/datum/wires/airlock/cargo
|
||||
proper_name = "Cargo Airlock"
|
||||
wiretype = "cargoairlock"
|
||||
|
||||
/datum/wires/airlock/New(atom/holder)
|
||||
. = ..()
|
||||
if(randomize)
|
||||
return
|
||||
if(wiretype)
|
||||
if(!GLOB.wire_color_directory[wiretype])
|
||||
colors = list()
|
||||
randomize()
|
||||
GLOB.wire_color_directory[wiretype] = colors
|
||||
GLOB.wire_name_directory[wiretype] = proper_name
|
||||
else
|
||||
colors = GLOB.wire_color_directory[wiretype]
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 559 B |
@@ -1,18 +0,0 @@
|
||||
/area/maintenance/bar
|
||||
name = "Maintenance Bar"
|
||||
icon = 'modular_citadel/code/game/area/areas.dmi'
|
||||
icon_state = "maintbar"
|
||||
|
||||
/area/maintenance/bar/cafe
|
||||
name = "Abandoned Cafe"
|
||||
|
||||
/area/crew_quarters/theatre/clown
|
||||
name = "Clown's Office"
|
||||
|
||||
/area/crew_quarters/theatre/mime
|
||||
name = "Mime's Office"
|
||||
|
||||
/area/crew_quarters/cryopod
|
||||
name = "Cryogenics"
|
||||
icon = 'modular_citadel/code/game/area/areas.dmi'
|
||||
icon_state = "cryo"
|
||||
@@ -130,7 +130,7 @@
|
||||
/obj/item/device/gangtool/proc/ping_gang(mob/user)
|
||||
if(!can_use(user))
|
||||
return
|
||||
var/message = stripped_input(user,"Discreetly send a gang-wide message.","Send Message") as null|text
|
||||
var/message = stripped_input(user,"Discreetly send a gang-wide message.","Send Message")
|
||||
if(!message || !can_use(user))
|
||||
return
|
||||
if(!is_station_level(user.z))
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
/obj/machinery/door/airlock
|
||||
var/wiretypepath = /datum/wires/airlock
|
||||
@@ -1,29 +0,0 @@
|
||||
/obj/machinery/door/airlock/command
|
||||
wiretypepath = /datum/wires/airlock/command
|
||||
|
||||
/obj/machinery/door/airlock/security
|
||||
wiretypepath = /datum/wires/airlock/security
|
||||
|
||||
/obj/machinery/door/airlock/engineering
|
||||
wiretypepath = /datum/wires/airlock/engineering
|
||||
|
||||
/obj/machinery/door/airlock/medical
|
||||
wiretypepath = /datum/wires/airlock/medical
|
||||
|
||||
/obj/machinery/door/airlock/mining
|
||||
wiretypepath = /datum/wires/airlock/cargo
|
||||
|
||||
/obj/machinery/door/airlock/atmos
|
||||
wiretypepath = /datum/wires/airlock/engineering
|
||||
|
||||
/obj/machinery/door/airlock/research
|
||||
wiretypepath = /datum/wires/airlock/science
|
||||
|
||||
/obj/machinery/door/airlock/science
|
||||
wiretypepath = /datum/wires/airlock/science
|
||||
|
||||
/obj/machinery/door/airlock/virology
|
||||
wiretypepath = /datum/wires/airlock/medical
|
||||
|
||||
/obj/machinery/door/airlock/vault
|
||||
wiretypepath = /datum/wires/airlock/secure
|
||||
@@ -178,7 +178,7 @@
|
||||
matching_designs.Cut()
|
||||
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = stored_research.researched_designs[v]
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
if(findtext(D.name,href_list["to_search"]))
|
||||
matching_designs.Add(D)
|
||||
updateUsrDialog()
|
||||
@@ -254,7 +254,7 @@
|
||||
dat += materials_printout()
|
||||
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = stored_research.researched_designs[v]
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
if(!(selected_category in D.category))
|
||||
continue
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
alternate_screams = list('modular_citadel/sound/voice/scream_silicon.ogg')
|
||||
|
||||
/obj/item/clothing/head/ushanka
|
||||
alternate_screams = list('modular_citadel/sound/misc/cyka1.ogg', 'modular_citadel/sound/misc/cheekibreeki.ogg')
|
||||
alternate_screams = list('sound/voice/human/cyka1.ogg', 'sound/voice/human/cheekibreeki.ogg')
|
||||
|
||||
/obj/item/proc/grenade_prime_react(obj/item/grenade/nade)
|
||||
return
|
||||
@@ -1,4 +0,0 @@
|
||||
/obj/item/aicard/potato
|
||||
name = "Potat-OS"
|
||||
desc = "A storage device for possibly malfunctioning AIs. Go on. Get a big fat eyeful. With your big fat eyes."
|
||||
icon = 'modular_citadel/icons/aicards.dmi'
|
||||
@@ -28,8 +28,8 @@
|
||||
icon_state = "rad"
|
||||
|
||||
/obj/item/storage/firstaid/radbgone/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = pick("[initial(icon_state)]","[initial(icon_state)]2","[initial(icon_state)]3","[initial(icon_state)]4")
|
||||
. = ..()
|
||||
icon_state = pick("[initial(icon_state)]","[initial(icon_state)]2","[initial(icon_state)]3","[initial(icon_state)]4")
|
||||
|
||||
/obj/item/storage/firstaid/tactical
|
||||
icon_state = "tactical"
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
/obj/structure/closet/secure_closet/quartermaster/PopulateContents()
|
||||
..()
|
||||
new /obj/item/radio/headset/heads/qm(src)
|
||||
..()
|
||||
new /obj/item/radio/headset/heads/qm(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO/PopulateContents()
|
||||
..()
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
//Yes, hi. This is the file that handles Citadel's turf modifications.
|
||||
|
||||
/*
|
||||
/turf/open/floor/Entered(atom/obj, atom/oldloc)
|
||||
. = ..()
|
||||
CitDirtify(obj, oldloc)*/
|
||||
|
||||
//Baystation-styled tile dirtification.
|
||||
/turf/open/floor/proc/CitDirtify(atom/obj, atom/oldloc)
|
||||
if(prob(50))
|
||||
if(has_gravity(src) && !isobserver(obj))
|
||||
var/dirtamount
|
||||
var/obj/effect/decal/cleanable/dirt/dirt = locate(/obj/effect/decal/cleanable/dirt, src)
|
||||
if(!dirt)
|
||||
dirt = new/obj/effect/decal/cleanable/dirt(src)
|
||||
dirt.alpha = 0
|
||||
dirtamount = 0
|
||||
dirtamount = dirt.alpha + 1
|
||||
if(oldloc && istype(oldloc, /turf/open/floor))
|
||||
var/obj/effect/decal/cleanable/dirt/spreadindirt = locate(/obj/effect/decal/cleanable/dirt, oldloc)
|
||||
if(spreadindirt && spreadindirt.alpha)
|
||||
dirtamount += round(spreadindirt.alpha * 0.05)
|
||||
dirt.alpha = min(dirtamount,255)
|
||||
return TRUE
|
||||
@@ -15,7 +15,7 @@
|
||||
return
|
||||
|
||||
to_chat(M, "<span class='warning bold reallybig'>Man up, and deal with it.</span><br><span class='warning big'>Move on.</span>")
|
||||
M.playsound_local(M, 'modular_citadel/sound/misc/manup.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
M.playsound_local(M, 'sound/voice/manup.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
|
||||
log_admin("Man up: [key_name(usr)] told [key_name(M)] to man up")
|
||||
var/message = "<span class='adminnotice'>[key_name_admin(usr)] told [key_name_admin(M)] to man up.</span>"
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
to_chat(world, "<span class='warning bold reallybig'>Man up, and deal with it.</span><br><span class='warning big'>Move on.</span>")
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
M.playsound_local(M, 'modular_citadel/sound/misc/manup.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
M.playsound_local(M, 'sound/voice/manup.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
|
||||
log_admin("Man up global: [key_name(usr)] told everybody to man up")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] told everybody to man up.</span>")
|
||||
|
||||
@@ -30,16 +30,16 @@
|
||||
name = "Tapered"
|
||||
|
||||
/datum/sprite_accessory/penis/tentacle
|
||||
icon_state = "tentacle"
|
||||
name = "Tentacled"
|
||||
icon_state = "tentacle"
|
||||
name = "Tentacled"
|
||||
|
||||
/datum/sprite_accessory/penis/hemi
|
||||
icon_state = "hemi"
|
||||
name = "Hemi"
|
||||
icon_state = "hemi"
|
||||
name = "Hemi"
|
||||
|
||||
/datum/sprite_accessory/penis/hemiknot
|
||||
icon_state = "hemiknot"
|
||||
name = "Knotted Hemi"
|
||||
icon_state = "hemiknot"
|
||||
name = "Knotted Hemi"
|
||||
|
||||
|
||||
////////////////////////
|
||||
@@ -117,8 +117,8 @@
|
||||
name = "Furred"
|
||||
|
||||
/datum/sprite_accessory/vagina/gaping
|
||||
icon_state = "gaping"
|
||||
name = "Gaping"
|
||||
icon_state = "gaping"
|
||||
name = "Gaping"
|
||||
|
||||
//BREASTS BE HERE
|
||||
/datum/sprite_accessory/breasts
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
/obj/machinery/computer/cargo
|
||||
req_access = list(ACCESS_CARGO)
|
||||
|
||||
/obj/machinery/computer/cargo/request
|
||||
req_access = list()
|
||||
|
||||
/obj/machinery/computer/cargo/ui_act(action, params, datum/tgui/ui)
|
||||
if(!allowed(usr))
|
||||
to_chat(usr, "<span class='notice'>Access denied.</span>")
|
||||
return
|
||||
. = ..()
|
||||
@@ -194,28 +194,28 @@
|
||||
ckeywhitelist = list("technicalmagi")
|
||||
|
||||
/datum/gear/gladiator
|
||||
name = "Gladiator Armor"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/under/gladiator
|
||||
ckeywhitelist = list("aroche")
|
||||
name = "Gladiator Armor"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/under/gladiator
|
||||
ckeywhitelist = list("aroche")
|
||||
|
||||
/datum/gear/bloodredtie
|
||||
name = "Blood Red Tie"
|
||||
category = SLOT_NECK
|
||||
path = /obj/item/clothing/neck/tie/bloodred
|
||||
ckeywhitelist = list("kyutness")
|
||||
name = "Blood Red Tie"
|
||||
category = SLOT_NECK
|
||||
path = /obj/item/clothing/neck/tie/bloodred
|
||||
ckeywhitelist = list("kyutness")
|
||||
|
||||
/datum/gear/puffydress
|
||||
name = "Puffy Dress"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/puffydress
|
||||
ckeywhitelist = list("stallingratt")
|
||||
name = "Puffy Dress"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/puffydress
|
||||
ckeywhitelist = list("stallingratt")
|
||||
|
||||
/datum/gear/labredblack
|
||||
name = "Black and Red Coat"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/toggle/labcoat/labredblack
|
||||
ckeywhitelist = list("blakeryan", "durandalphor")
|
||||
name = "Black and Red Coat"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/toggle/labcoat/labredblack
|
||||
ckeywhitelist = list("blakeryan", "durandalphor")
|
||||
|
||||
/datum/gear/torisword
|
||||
name = "Rainbow Zweihander"
|
||||
|
||||
@@ -4,6 +4,20 @@
|
||||
path = /obj/item/clothing/under/color/grey
|
||||
restricted_roles = list("Assistant")
|
||||
|
||||
/datum/gear/neetsuit
|
||||
name = "ASSU suit"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/assu_suit
|
||||
restricted_roles = list("Assistant")
|
||||
cost = 2
|
||||
|
||||
/datum/gear/neethelm
|
||||
name = "ASSU helmet"
|
||||
category = SLOT_HEAD
|
||||
path = /obj/item/clothing/head/assu_helmet
|
||||
restricted_roles = list("Assistant")
|
||||
cost = 2
|
||||
|
||||
/datum/gear/plushvar
|
||||
name = "Ratvar Plushie"
|
||||
category = SLOT_IN_BACKPACK
|
||||
@@ -16,4 +30,4 @@
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/toy/plush/narplush
|
||||
cost = 5
|
||||
restricted_roles = list("Chaplain")
|
||||
restricted_roles = list("Chaplain")
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
if(istype(user) && combatmodestate && world.time >= nextadrenalinepop)
|
||||
nextadrenalinepop = world.time + 5 MINUTES
|
||||
user.reagents.add_reagent("syndicateadrenals", 5)
|
||||
user.playsound_local(user, 'modular_citadel/sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE)
|
||||
user.playsound_local(user, 'sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE)
|
||||
|
||||
/obj/item/clothing/glasses/phantomthief/syndicate/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
/datum/action/item_action/zanderlocket/Trigger()
|
||||
new/obj/effect/temp_visual/souldeath(owner.loc, owner)
|
||||
playsound(owner, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE)
|
||||
playsound(owner, 'sound/misc/souldeath.ogg', 100, FALSE)
|
||||
|
||||
|
||||
/obj/item/clothing/neck/undertale/Initialize()
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/mob/living/carbon/key_down(_key, client/user)
|
||||
switch(_key)
|
||||
if("C")
|
||||
toggle_combat_mode()
|
||||
return
|
||||
return ..()
|
||||
@@ -1,13 +0,0 @@
|
||||
/mob/living/carbon/human/key_down(_key, client/user)
|
||||
switch(_key)
|
||||
if("Shift")
|
||||
sprint_hotkey(TRUE)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/key_up(_key, client/user)
|
||||
switch(_key)
|
||||
if("Shift")
|
||||
sprint_hotkey(FALSE)
|
||||
return
|
||||
return ..()
|
||||
@@ -1,13 +0,0 @@
|
||||
/mob/living/silicon/robot/key_down(_key, client/user)
|
||||
switch(_key)
|
||||
if("Shift")
|
||||
sprint_hotkey(TRUE)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/key_up(_key, client/user)
|
||||
switch(_key)
|
||||
if("Shift")
|
||||
sprint_hotkey(FALSE)
|
||||
return
|
||||
return ..()
|
||||
@@ -1,8 +1,8 @@
|
||||
GLOBAL_PROTECT(mentor_verbs)
|
||||
GLOBAL_LIST_INIT(mentor_verbs, list(
|
||||
/client/proc/cmd_mentor_say,
|
||||
/client/proc/show_mentor_memo
|
||||
))
|
||||
GLOBAL_PROTECT(mentor_verbs)
|
||||
|
||||
/client/proc/add_mentor_verbs()
|
||||
if(mentor_datum)
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/datum/map_template/ruin/lavaland/alien_nest
|
||||
name = "Alien Nest"
|
||||
id = "alien-nest"
|
||||
description = "Not even Necropolis is safe from alien infestation. The competition for hosts has locked the legion and aliens in an endless conflict that can only be resolved by a PKA."
|
||||
suffix = "lavaland_surface_alien_nest.dmm"
|
||||
cost = 20
|
||||
|
||||
//Aliens for the alien nest space ruin.
|
||||
/obj/effect/mob_spawn/alien/corpse/humanoid/drone
|
||||
mob_type = /mob/living/carbon/alien/humanoid/drone
|
||||
death = TRUE
|
||||
name = "alien drone"
|
||||
mob_name = "alien drone"
|
||||
|
||||
/obj/effect/mob_spawn/alien/corpse/humanoid/queen
|
||||
mob_type = /mob/living/carbon/alien/humanoid/royal/queen
|
||||
death = TRUE
|
||||
name = "alien queen"
|
||||
mob_name = "alien queen"
|
||||
|
||||
/obj/item/reagent_containers/syringe/alien
|
||||
name = "Hive's Blessing"
|
||||
desc = "A syringe filled with a strange viscous liquid. It might be best to leave it alone."
|
||||
amount_per_transfer_from_this = 1
|
||||
volume = 1
|
||||
list_reagents = list("xenomicrobes" = 1)
|
||||
@@ -29,9 +29,9 @@
|
||||
if(voremode)
|
||||
toggle_vore_mode()
|
||||
if(combatmode)
|
||||
playsound_local(src, 'modular_citadel/sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay!
|
||||
playsound_local(src, 'sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay!
|
||||
else
|
||||
playsound_local(src, 'modular_citadel/sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above!
|
||||
playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above!
|
||||
if(client)
|
||||
client.show_popup_menus = !combatmode // So we can right-click for alternate actions and all that other good shit. Also moves examine to shift+rightclick to make it possible to attack while sprinting
|
||||
if(hud_used && hud_used.static_inventory)
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
sprinting = !sprinting
|
||||
if(!resting && m_intent == MOVE_INTENT_RUN && canmove)
|
||||
if(sprinting)
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
else
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
if(hud_used && hud_used.static_inventory)
|
||||
for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
|
||||
selector.insert_witty_toggle_joke_here(src)
|
||||
|
||||
@@ -19,11 +19,11 @@
|
||||
sprinting = shutdown ? FALSE : !sprinting
|
||||
if(!resting && canmove)
|
||||
if(sprinting)
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
playsound_local(src, 'sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
else
|
||||
if(shutdown)
|
||||
playsound_local(src, 'sound/effects/light_flicker.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
playsound_local(src, 'sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
if(hud_used && hud_used.static_inventory)
|
||||
for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
|
||||
selector.insert_witty_toggle_joke_here(src)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
/obj/machinery/light
|
||||
bulb_colour = "#FFEEDD"
|
||||
bulb_power = 0.75
|
||||
|
||||
/obj/machinery/light/small
|
||||
bulb_colour = "#FFDDBB"
|
||||
bulb_power = 0.75
|
||||
+20
-20
@@ -29,27 +29,27 @@
|
||||
build_path = /obj/item/ammo_box/magazine/m10mm/hp
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/m10mm/ap
|
||||
name = "pistol magazine (10mm AP)"
|
||||
desc = "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets."
|
||||
id = "10mmap"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 40000, MAT_TITANIUM = 60000)
|
||||
build_path = /obj/item/ammo_box/magazine/m10mm/ap
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
|
||||
/datum/design/m10mm/ap
|
||||
name = "pistol magazine (10mm AP)"
|
||||
desc = "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets."
|
||||
id = "10mmap"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 40000, MAT_TITANIUM = 60000)
|
||||
build_path = /obj/item/ammo_box/magazine/m10mm/ap
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/bolt_clip
|
||||
name = "Surplus Rifle Clip"
|
||||
desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds."
|
||||
id = "bolt_clip"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 8000)
|
||||
build_path = /obj/item/ammo_box/a762
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
name = "Surplus Rifle Clip"
|
||||
desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds."
|
||||
id = "bolt_clip"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 8000)
|
||||
build_path = /obj/item/ammo_box/a762
|
||||
category = list("Ammo")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/m45 //Kinda NT in throey
|
||||
name = "handgun magazine (.45)"
|
||||
id = "m45"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
/*
|
||||
// REVOLVER THINGS GO HERE
|
||||
*/
|
||||
|
||||
/obj/item/gun/ballistic/revolver //regular, classic sprite
|
||||
name = "\improper .357 revolver"
|
||||
desc = "A typical revolver. Uses .357 ammo."
|
||||
|
||||
/obj/item/gun/ballistic/revolver/syndie //New and improved 100% syndicate technology!
|
||||
desc = "A suspicious revolver. Uses .357 ammo."
|
||||
icon = 'modular_citadel/icons/obj/guns/revolver.dmi'
|
||||
@@ -75,9 +75,9 @@
|
||||
/obj/item/gun/energy/pumpaction/proc/pump(mob/M) //pumping proc. Checks if the gun is empty and plays a different sound if it is.
|
||||
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
|
||||
if(cell.charge < shot.e_cost)
|
||||
playsound(M, 'modular_citadel/sound/weapons/laserPumpEmpty.ogg', 100, 1) //Ends with three beeps made from highly processed knife honing noises
|
||||
playsound(M, 'sound/weapons/laserPumpEmpty.ogg', 100, 1) //Ends with three beeps made from highly processed knife honing noises
|
||||
else
|
||||
playsound(M, 'modular_citadel/sound/weapons/laserPump.ogg', 100, 1) //Ends with high pitched charging noise
|
||||
playsound(M, 'sound/weapons/laserPump.ogg', 100, 1) //Ends with high pitched charging noise
|
||||
recharge_newshot() //try to charge a new shot
|
||||
update_icon()
|
||||
return 1
|
||||
@@ -152,14 +152,14 @@
|
||||
e_cost = 150
|
||||
pellets = 4
|
||||
variance = 30
|
||||
fire_sound = 'modular_citadel/sound/weapons/ParticleBlaster.ogg'
|
||||
fire_sound = 'sound/weapons/ParticleBlaster.ogg'
|
||||
select_name = "disable"
|
||||
|
||||
/obj/item/ammo_casing/energy/disabler/slug
|
||||
projectile_type = /obj/item/projectile/beam/disabler/slug
|
||||
select_name = "overdrive"
|
||||
e_cost = 200
|
||||
fire_sound = 'modular_citadel/sound/weapons/LaserSlugv3.ogg'
|
||||
fire_sound = 'sound/weapons/LaserSlugv3.ogg'
|
||||
|
||||
/obj/item/ammo_casing/energy/laser/pump
|
||||
projectile_type = /obj/item/projectile/beam/weak
|
||||
@@ -167,12 +167,12 @@
|
||||
select_name = "kill"
|
||||
pellets = 3
|
||||
variance = 15
|
||||
fire_sound = 'modular_citadel/sound/weapons/ParticleBlaster.ogg'
|
||||
fire_sound = 'sound/weapons/ParticleBlaster.ogg'
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/pump
|
||||
projectile_type = /obj/item/projectile/energy/electrode/pump
|
||||
select_name = "stun"
|
||||
fire_sound = 'modular_citadel/sound/weapons/LaserSlugv3.ogg'
|
||||
fire_sound = 'sound/weapons/LaserSlugv3.ogg'
|
||||
e_cost = 300
|
||||
pellets = 3
|
||||
variance = 20
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
projectile_type = /obj/item/projectile/beam/lasertag/wavemotion
|
||||
select_name = "overdrive"
|
||||
e_cost = 300
|
||||
fire_sound = 'modular_citadel/sound/weapons/LaserSlugv3.ogg'
|
||||
fire_sound = 'sound/weapons/LaserSlugv3.ogg'
|
||||
|
||||
/obj/item/ammo_casing/energy/laser/dispersal
|
||||
projectile_type = /obj/item/projectile/beam/lasertag/dispersal
|
||||
@@ -47,7 +47,7 @@
|
||||
pellets = 5
|
||||
variance = 25
|
||||
e_cost = 200
|
||||
fire_sound = 'modular_citadel/sound/weapons/ParticleBlaster.ogg'
|
||||
fire_sound = 'sound/weapons/ParticleBlaster.ogg'
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//TOY REVOLVER
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/projectile/bullet/reusable/foam_dart/tag
|
||||
name = "lastag foam dart"
|
||||
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
|
||||
name = "lastag foam dart"
|
||||
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
|
||||
|
||||
/obj/item/projectile/bullet/reusable/foam_dart/tag/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -94,6 +94,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
if(!SM.mind) //Something went wrong, use alt mechanics
|
||||
return ..()
|
||||
SM.mind.enslave_mind_to_creator(M)
|
||||
SM.mind.store_memory(M.mind.memory)
|
||||
|
||||
//If they're a zombie, they can try to negate it with this.
|
||||
//I seriously wonder if anyone will ever use this function.
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
id = "fermi"
|
||||
taste_description = "affection and love!"
|
||||
can_synth = FALSE
|
||||
value = 20
|
||||
//SplitChem = TRUE
|
||||
impure_chem = "fermiTox"// What chemical is metabolised with an inpure reaction
|
||||
inverse_chem_val = 0.25 // If the impurity is below 0.5, replace ALL of the chem with inverse_chemupon metabolising
|
||||
@@ -178,6 +179,7 @@
|
||||
inverse_chem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse
|
||||
taste_description = "what can only be described as licking a battery."
|
||||
pH = 9
|
||||
value = 90
|
||||
can_synth = FALSE
|
||||
|
||||
/datum/reagent/fermi/nanite_b_gone/on_mob_life(mob/living/carbon/C)
|
||||
|
||||
@@ -114,8 +114,8 @@
|
||||
name = "Hexacrocin"
|
||||
id = "aphro+"
|
||||
description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\
|
||||
Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a\
|
||||
permanent increase in libido (commonly referred to as 'bimbofication')."
|
||||
Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a \
|
||||
permanent increase in libido (commonly referred to as 'bimbofication')."
|
||||
taste_description = "liquid desire"
|
||||
color = "#FF2BFF"//dark pink
|
||||
addiction_threshold = 20
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/obj/machinery/disposal/bin/alt_attack_hand(mob/user)
|
||||
if(can_interact(usr))
|
||||
flush = !flush
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -1,63 +1,63 @@
|
||||
/datum/design/autoylathe
|
||||
build_type = AUTOYLATHE
|
||||
build_type = AUTOYLATHE
|
||||
|
||||
/datum/design/autoylathe/mech
|
||||
category = list("initial", "Figurines")
|
||||
category = list("initial", "Figurines")
|
||||
|
||||
/datum/design/autoylathe/mech/contraband
|
||||
category = list("hacked", "Figurines")
|
||||
category = list("hacked", "Figurines")
|
||||
|
||||
/datum/design/autoylathe/figure
|
||||
category = list("initial", "Figurines")
|
||||
category = list("initial", "Figurines")
|
||||
|
||||
/datum/design/autoylathe/balloon
|
||||
name = "Empty Water balloon"
|
||||
id = "waterballoon"
|
||||
materials = list(MAT_PLASTIC = 50)
|
||||
build_path = /obj/item/toy/balloon
|
||||
category = list("initial", "Toys")
|
||||
name = "Empty Water balloon"
|
||||
id = "waterballoon"
|
||||
materials = list(MAT_PLASTIC = 50)
|
||||
build_path = /obj/item/toy/balloon
|
||||
category = list("initial", "Toys")
|
||||
|
||||
/datum/design/autoylathe/spinningtoy
|
||||
name = "Toy Singularity"
|
||||
id = "singuloutoy"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/spinningtoy
|
||||
category = list("initial", "Toys")
|
||||
name = "Toy Singularity"
|
||||
id = "singuloutoy"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/spinningtoy
|
||||
category = list("initial", "Toys")
|
||||
|
||||
/datum/design/autoylathe/capgun
|
||||
name = "Cap Gun"
|
||||
id = "capgun"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/gun
|
||||
category = list("initial", "Pistols")
|
||||
name = "Cap Gun"
|
||||
id = "capgun"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/gun
|
||||
category = list("initial", "Pistols")
|
||||
|
||||
/datum/design/autoylathe/capgunammo
|
||||
name = "Capgun Ammo"
|
||||
id = "capgunammo"
|
||||
materials = list(MAT_PLASTIC = 50)
|
||||
build_path = /obj/item/toy/ammo/gun
|
||||
category = list("initial", "misc")
|
||||
name = "Capgun Ammo"
|
||||
id = "capgunammo"
|
||||
materials = list(MAT_PLASTIC = 50)
|
||||
build_path = /obj/item/toy/ammo/gun
|
||||
category = list("initial", "misc")
|
||||
|
||||
/datum/design/autoylathe/toysword
|
||||
name = "Toy Sword"
|
||||
id = "toysword"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/sword
|
||||
category = list("initial", "Melee")
|
||||
name = "Toy Sword"
|
||||
id = "toysword"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/sword
|
||||
category = list("initial", "Melee")
|
||||
|
||||
/datum/design/autoylathe/foamblade
|
||||
name = "Foam Armblade"
|
||||
id = "foamblade"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/foamblade
|
||||
category = list("initial", "Melee")
|
||||
name = "Foam Armblade"
|
||||
id = "foamblade"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/foamblade
|
||||
category = list("initial", "Melee")
|
||||
|
||||
/datum/design/autoylathe/windupbox
|
||||
name = "Wind Up Toolbox"
|
||||
id = "windupbox"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/windupToolbox
|
||||
category = list("initial", "Toys")
|
||||
name = "Wind Up Toolbox"
|
||||
id = "windupbox"
|
||||
materials = list(MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/toy/windupToolbox
|
||||
category = list("initial", "Toys")
|
||||
|
||||
/datum/design/autoylathe/toydualsword
|
||||
name = "Double-Bladed Toy Sword"
|
||||
@@ -456,11 +456,11 @@
|
||||
category = list("hacked", "Figurines")
|
||||
|
||||
/datum/design/autoylathe/figure/wizard
|
||||
name = "Wizard"
|
||||
id = "wizfigure"
|
||||
materials = list(MAT_PLASTIC = 500, MAT_METAL = 50)
|
||||
build_path = /obj/item/toy/figure/wizard
|
||||
category = list("hacked", "Figurines")
|
||||
name = "Wizard"
|
||||
id = "wizfigure"
|
||||
materials = list(MAT_PLASTIC = 500, MAT_METAL = 50)
|
||||
build_path = /obj/item/toy/figure/wizard
|
||||
category = list("hacked", "Figurines")
|
||||
|
||||
/datum/design/autoylathe/dildo
|
||||
name = "Customizable Dildo"
|
||||
@@ -521,23 +521,25 @@
|
||||
//because why not make a boxed kit with all of the lastag shit?
|
||||
/obj/item/storage/box/blueteam
|
||||
name = "Blue Team Kit"
|
||||
|
||||
/obj/item/storage/box/blueteam/PopulateContents()
|
||||
new /obj/item/clothing/head/helmet/bluetaghelm(src)
|
||||
new /obj/item/clothing/suit/bluetag(src)
|
||||
new /obj/item/gun/energy/laser/bluetag(src)
|
||||
new /obj/item/clothing/gloves/color/blue(src)
|
||||
new /obj/item/clothing/shoes/sneakers/blue(src)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
new /obj/item/clothing/head/helmet/bluetaghelm(src)
|
||||
new /obj/item/clothing/suit/bluetag(src)
|
||||
new /obj/item/gun/energy/laser/bluetag(src)
|
||||
new /obj/item/clothing/gloves/color/blue(src)
|
||||
new /obj/item/clothing/shoes/sneakers/blue(src)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
|
||||
/obj/item/storage/box/redteam
|
||||
name = "Red Team Kit"
|
||||
|
||||
/obj/item/storage/box/redteam/PopulateContents()
|
||||
new /obj/item/clothing/head/helmet/redtaghelm(src)
|
||||
new /obj/item/clothing/suit/redtag(src)
|
||||
new /obj/item/gun/energy/laser/redtag(src)
|
||||
new /obj/item/clothing/gloves/color/red(src)
|
||||
new /obj/item/clothing/shoes/sneakers/red(src)
|
||||
new /obj/item/clothing/under/color/red(src)
|
||||
new /obj/item/clothing/head/helmet/redtaghelm(src)
|
||||
new /obj/item/clothing/suit/redtag(src)
|
||||
new /obj/item/gun/energy/laser/redtag(src)
|
||||
new /obj/item/clothing/gloves/color/red(src)
|
||||
new /obj/item/clothing/shoes/sneakers/red(src)
|
||||
new /obj/item/clothing/under/color/red(src)
|
||||
|
||||
/datum/design/autoylathe/lastag/blue
|
||||
name = "Blue Lasertag Kit"
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
/obj/vehicle/ridden/secway
|
||||
var/chargemax = 150
|
||||
var/chargerate = 0.35
|
||||
var/charge = 150
|
||||
var/chargespeed = 1
|
||||
var/normalspeed = 2
|
||||
var/last_tick = 0
|
||||
var/list/progressbars_by_rider = list()
|
||||
|
||||
/obj/vehicle/ridden/secway/Initialize()
|
||||
. = ..()
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/obj/vehicle/ridden/secway/process()
|
||||
var/diff = world.time - last_tick
|
||||
var/regen = chargerate * diff
|
||||
charge = CLAMP(charge + regen, 0, chargemax)
|
||||
last_tick = world.time
|
||||
|
||||
/obj/vehicle/ridden/secway/relaymove(mob/user, direction)
|
||||
var/new_speed = normalspeed
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.sprinting && charge)
|
||||
charge--
|
||||
new_speed = chargespeed
|
||||
var/datum/component/riding/D = GetComponent(/datum/component/riding)
|
||||
D.vehicle_move_delay = new_speed
|
||||
for(var/i in progressbars_by_rider)
|
||||
var/datum/progressbar/B = progressbars_by_rider[i]
|
||||
B.update(charge)
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/ridden/secway/buckle_mob(mob/living/M, force, check_loc)
|
||||
. = ..(M, force, check_loc)
|
||||
if(.)
|
||||
if(progressbars_by_rider[M])
|
||||
qdel(progressbars_by_rider[M])
|
||||
var/datum/progressbar/D = new(M, chargemax, src)
|
||||
D.update(charge)
|
||||
progressbars_by_rider[M] = D
|
||||
|
||||
/obj/vehicle/ridden/secway/unbuckle_mob(mob/living/M, force)
|
||||
. = ..(M, force)
|
||||
if(.)
|
||||
qdel(progressbars_by_rider[M])
|
||||
progressbars_by_rider -= M
|
||||
|
||||
/obj/vehicle/ridden/secway/Destroy()
|
||||
for(var/i in progressbars_by_rider)
|
||||
qdel(progressbars_by_rider[i])
|
||||
progressbars_by_rider.Cut()
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
return ..()
|
||||
Reference in New Issue
Block a user