mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Merge branch 'bs12_with_tgport' of github.com:caelaislinn/Baystation12 into bs12_with_tgport (probably broke ZAS again)
Conflicts: baystation12.dme code/controllers/master_controller.dm code/defines/obj/weapon.dm Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
+2
-6
@@ -943,11 +943,7 @@
|
||||
#include "code\modules\critters\critter_defenses.dm"
|
||||
#include "code\modules\critters\critters.dm"
|
||||
#include "code\modules\critters\hivebots\hivebot.dm"
|
||||
#include "code\modules\DetectiveWork\detective_work.dm"
|
||||
#include "code\modules\DetectiveWork\evidence.dm"
|
||||
#include "code\modules\DetectiveWork\footprints_and_rag.dm"
|
||||
#include "code\modules\DetectiveWork\scanner.dm"
|
||||
#include "code\modules\flufftext\Dreaming.dm"
|
||||
#include "code\modules\customitems\item_defines.dm"#include "code\modules\customitems\item_spawning.dm"#include "code\modules\DetectiveWork\detective_work.dm"#include "code\modules\DetectiveWork\evidence.dm"#include "code\modules\DetectiveWork\footprints_and_rag.dm"#include "code\modules\DetectiveWork\scanner.dm"#include "code\modules\flufftext\Dreaming.dm"
|
||||
#include "code\modules\flufftext\Hallucination.dm"
|
||||
#include "code\modules\flufftext\TextFilters.dm"
|
||||
#include "code\modules\food\recipes_microwave.dm"
|
||||
@@ -1272,7 +1268,7 @@
|
||||
#include "code\modules\security levels\security levels.dm"
|
||||
#include "code\WorkInProgress\buildmode.dm"
|
||||
#include "code\WorkInProgress\explosion_particles.dm"
|
||||
#include "interface\interface.dm"
|
||||
#include "code\WorkInProgress\animusstation\atm.dm"#include "code\WorkInProgress\Cael_Aislinn\energy_field.dm"#include "code\WorkInProgress\Cael_Aislinn\external_shield_gen.dm"#include "code\WorkInProgress\Cael_Aislinn\shield_capacitor.dm"#include "code\WorkInProgress\Cael_Aislinn\shield_gen.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\core_monitor.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_assembly_port.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_control.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_injector.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron_controller.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\radiation.dm"#include "code\WorkInProgress\Cael_Aislinn\Rust\virtual_particle_catcher.dm"#include "code\WorkInProgress\Mini\atmos_control.dm"#include "code\WorkInProgress\Ported\policetape.dm"#include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm"#include "code\WorkInProgress\Tastyfish\livestock.dm"#include "code\WorkInProgress\Wrongnumber\weldbackpack.dm"#include "code\ZAS\Airflow.dm"#include "code\ZAS\Connection.dm"#include "code\ZAS\FEA_gas_mixture.dm"#include "code\ZAS\FEA_system.dm"#include "code\ZAS\Fire.dm"#include "code\ZAS\Functions.dm"#include "code\ZAS\Plasma.dm"#include "code\ZAS\Variable Settings.dm"#include "code\ZAS\ZAS_Turfs.dm"#include "code\ZAS\ZAS_Zones.dm"#include "interface\interface.dm"
|
||||
#include "interface\skin.dmf"
|
||||
#include "maps\tgstation.2.0.9.dmm"
|
||||
// END_INCLUDE
|
||||
|
||||
@@ -21,7 +21,7 @@ log transactions
|
||||
/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(ishuman(user))
|
||||
var/obj/item/weapon/card/id/user_id = src.scan_user(user)
|
||||
if(istype(I,/obj/item/weapon/money))
|
||||
if(istype(I,/obj/item/weapon/spacecash))
|
||||
user_id.money += I:worth
|
||||
del I
|
||||
|
||||
@@ -51,21 +51,21 @@ log transactions
|
||||
//hueg switch for giving moneh out
|
||||
switch(amount)
|
||||
if(1)
|
||||
new /obj/item/weapon/money(loc)
|
||||
new /obj/item/weapon/spacecash(loc)
|
||||
if(10)
|
||||
new /obj/item/weapon/money/c10(loc)
|
||||
new /obj/item/weapon/spacecash/c10(loc)
|
||||
if(20)
|
||||
new /obj/item/weapon/money/c20(loc)
|
||||
new /obj/item/weapon/spacecash/c20(loc)
|
||||
if(50)
|
||||
new /obj/item/weapon/money/c50(loc)
|
||||
new /obj/item/weapon/spacecash/c50(loc)
|
||||
if(100)
|
||||
new /obj/item/weapon/money/c100(loc)
|
||||
new /obj/item/weapon/spacecash/c100(loc)
|
||||
if(200)
|
||||
new /obj/item/weapon/money/c200(loc)
|
||||
new /obj/item/weapon/spacecash/c200(loc)
|
||||
if(500)
|
||||
new /obj/item/weapon/money/c500(loc)
|
||||
new /obj/item/weapon/spacecash/c500(loc)
|
||||
if(1000)
|
||||
new /obj/item/weapon/money/c1000(loc)
|
||||
new /obj/item/weapon/spacecash/c1000(loc)
|
||||
else
|
||||
usr << browse("You don't have that much money!<br/><a href=\"?src=\ref[src]\">Back</a>","window=atm")
|
||||
return
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
//Define all tape types in policetape.dm
|
||||
/obj/item/taperoll
|
||||
name = "tape roll"
|
||||
icon = 'policetape.dmi'
|
||||
icon_state = "rollstart"
|
||||
flags = FPRINT
|
||||
w_class = 1.0
|
||||
var/turf/start
|
||||
var/turf/end
|
||||
var/tape_type = /obj/item/tape
|
||||
var/icon_base
|
||||
|
||||
/obj/item/tape
|
||||
name = "tape"
|
||||
icon = 'policetape.dmi'
|
||||
anchored = 1
|
||||
density = 1
|
||||
var/icon_base
|
||||
|
||||
/obj/item/taperoll/police
|
||||
name = "police tape"
|
||||
@@ -116,7 +134,7 @@
|
||||
breaktape(/obj/item/weapon/wirecutters,user)
|
||||
|
||||
/obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(user.a_intent == "help" && ((!is_sharp(W) && src.allowed(user)) ||(!is_cut(W) && !src.allowed(user))))
|
||||
if(user.a_intent == "help" && ((!is_sharp(W) && src.allowed(user))))
|
||||
user << "You can't break the [src] with that!"
|
||||
return
|
||||
user.show_viewers("\blue [user] breaks the [src]!")
|
||||
|
||||
@@ -18,13 +18,13 @@ log transactions
|
||||
use_power = 1
|
||||
idle_power_usage = 10
|
||||
var/obj/item/weapon/card/id/card
|
||||
var/obj/item/weapon/money/cashes = list()
|
||||
var/obj/item/weapon/spacecash/cashes = list()
|
||||
var/inserted = 0
|
||||
var/accepted = 0
|
||||
var/pincode = 0
|
||||
|
||||
attackby(var/obj/A, var/mob/user)
|
||||
if(istype(A,/obj/item/weapon/money))
|
||||
if(istype(A,/obj/item/weapon/spacecash))
|
||||
cashes += A
|
||||
user.drop_item()
|
||||
A.loc = src
|
||||
@@ -101,21 +101,21 @@ log transactions
|
||||
card.money -= amount
|
||||
switch(amount)
|
||||
if(1)
|
||||
new /obj/item/weapon/money(loc)
|
||||
new /obj/item/weapon/spacecash(loc)
|
||||
if(10)
|
||||
new /obj/item/weapon/money/c10(loc)
|
||||
new /obj/item/weapon/spacecash/c10(loc)
|
||||
if(20)
|
||||
new /obj/item/weapon/money/c20(loc)
|
||||
new /obj/item/weapon/spacecash/c20(loc)
|
||||
if(50)
|
||||
new /obj/item/weapon/money/c50(loc)
|
||||
new /obj/item/weapon/spacecash/c50(loc)
|
||||
if(100)
|
||||
new /obj/item/weapon/money/c100(loc)
|
||||
new /obj/item/weapon/spacecash/c100(loc)
|
||||
if(200)
|
||||
new /obj/item/weapon/money/c200(loc)
|
||||
new /obj/item/weapon/spacecash/c200(loc)
|
||||
if(500)
|
||||
new /obj/item/weapon/money/c500(loc)
|
||||
new /obj/item/weapon/spacecash/c500(loc)
|
||||
if(1000)
|
||||
new /obj/item/weapon/money/c1000(loc)
|
||||
new /obj/item/weapon/spacecash/c1000(loc)
|
||||
else
|
||||
user << "\red Error: Insufficient funds."
|
||||
return
|
||||
@@ -144,7 +144,7 @@ log transactions
|
||||
if (usr.machine==src && get_dist(src, usr) <= 1 || istype(usr, /mob/living/silicon/ai))
|
||||
if(href_list["eca"])
|
||||
if(accepted)
|
||||
for(var/obj/item/weapon/money/M in cashes)
|
||||
for(var/obj/item/weapon/spacecash/M in cashes)
|
||||
M.loc = loc
|
||||
inserted = 0
|
||||
if(!cashes)
|
||||
@@ -166,3 +166,11 @@ log transactions
|
||||
else
|
||||
usr.machine = null
|
||||
usr << browse(null,"window=atm")
|
||||
|
||||
|
||||
/obj/item/weapon/card/id/proc/checkaccess(p,var/mob/user)
|
||||
if(p == pin)
|
||||
user << "\green Access granted"
|
||||
return 1
|
||||
user << "\red Access denied"
|
||||
return 0
|
||||
@@ -446,7 +446,7 @@
|
||||
|
||||
/obj/item/weapon/storage/bible
|
||||
name = "bible"
|
||||
desc = "Apply to head repeatedly."
|
||||
desc = "A holy book." //BS12 EDIT
|
||||
icon_state ="bible"
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
@@ -457,8 +457,7 @@
|
||||
|
||||
/obj/item/weapon/storage/bible/booze
|
||||
name = "bible"
|
||||
desc = "To be applied to the head repeatedly."
|
||||
icon_state ="bible"
|
||||
desc = "A holy book. Smells faintly of alcohol" //BS12 EDIT
|
||||
|
||||
/obj/item/weapon/storage/mousetraps
|
||||
name = "box of Pest-B-Gon Mousetraps"
|
||||
|
||||
+158
-11
@@ -76,7 +76,48 @@
|
||||
throwforce = 10
|
||||
w_class = 1
|
||||
|
||||
/obj/item/weapon/sord
|
||||
//BS12 EDIT
|
||||
/obj/item/weapon/nullrod/attack(mob/M as mob, mob/living/user as mob)
|
||||
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
||||
|
||||
log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
|
||||
message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
|
||||
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
|
||||
|
||||
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
||||
user << "\red You don't have the dexterity to do this!"
|
||||
return
|
||||
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
user << "\red The rod slips out of your hand and hits your head."
|
||||
user.take_organ_damage(10)
|
||||
user.Paralyse(20)
|
||||
return
|
||||
|
||||
if (M.stat !=2)
|
||||
if((M.mind in ticker.mode.cult) && prob(33))
|
||||
M << "\red The power of [src] clears your mind of the cult's influence!"
|
||||
user << "\red You wave [src] over [M]'s head and see their eyes become clear, their mind returning to normal."
|
||||
ticker.mode.remove_cultist(M.mind)
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1)
|
||||
else if(prob(10))
|
||||
user << "\red The rod slips in your hand."
|
||||
..()
|
||||
else
|
||||
user << "\red The rod appears to do nothing."
|
||||
for(var/mob/O in viewers(M, null))
|
||||
O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob)
|
||||
if (istype(A, /turf/simulated/floor))
|
||||
user << "\blue You hit the floor with the [src]."
|
||||
call(/obj/effect/rune/proc/revealrunes)(src)
|
||||
|
||||
/*/obj/item/weapon/sord
|
||||
name = "\improper SORD"
|
||||
desc = "This thing is so unspeakably shitty you are having a hard time even holding it."
|
||||
icon_state = "sord"
|
||||
@@ -87,7 +128,7 @@
|
||||
throwforce = 1
|
||||
w_class = 3
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
*/ //BS12 EDIT
|
||||
/obj/item/weapon/sord/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return ..()
|
||||
@@ -184,8 +225,8 @@
|
||||
g_amt = 15000
|
||||
|
||||
/obj/item/weapon/spacecash
|
||||
name = "space cash"
|
||||
desc = "It's worth 1 credit."
|
||||
name = "stack of credits"
|
||||
desc = "1 credit."
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "spacecash"
|
||||
@@ -197,37 +238,140 @@
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
w_class = 1.0
|
||||
var/currency
|
||||
var/worth
|
||||
var/split = 5
|
||||
var/round = 0.01
|
||||
var/access = list()
|
||||
access = access_crate_cash
|
||||
|
||||
|
||||
/obj/item/weapon/spacecash/proc/updatedesc()
|
||||
name = "stack of [currency]"
|
||||
desc = "A pile of [worth] [currency]"
|
||||
|
||||
/obj/item/weapon/spacecash/New(var/nloc, var/nworth=1,var/ncurrency = "credits")
|
||||
if(!worth)
|
||||
worth = nworth
|
||||
if(!currency)
|
||||
currency = ncurrency
|
||||
split = round(worth/2,round)
|
||||
updatedesc()
|
||||
return ..(nloc)
|
||||
|
||||
/obj/item/weapon/spacecash/c10
|
||||
icon_state = "spacecash10"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 10 credits."
|
||||
desc = "A pile of 10 credits."
|
||||
worth = 10
|
||||
|
||||
/obj/item/weapon/spacecash/c20
|
||||
icon_state = "spacecash20"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 20 credits."
|
||||
desc = "A pile of 20 credits."
|
||||
worth = 20
|
||||
|
||||
/obj/item/weapon/spacecash/c50
|
||||
icon_state = "spacecash50"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 50 credits."
|
||||
desc = "A pile of 50 credits."
|
||||
worth = 50
|
||||
|
||||
/obj/item/weapon/spacecash/c100
|
||||
icon_state = "spacecash100"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 100 credits."
|
||||
desc = "A pile of 100 credits."
|
||||
worth = 100
|
||||
|
||||
/obj/item/weapon/spacecash/c200
|
||||
icon_state = "spacecash200"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 200 credits."
|
||||
desc = "A pile of 200 credits."
|
||||
worth = 200
|
||||
|
||||
/obj/item/weapon/spacecash/c500
|
||||
icon_state = "spacecash500"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 500 credits."
|
||||
desc = "A pile of 500 credits."
|
||||
worth = 500
|
||||
|
||||
/obj/item/weapon/spacecash/c1000
|
||||
icon_state = "spacecash1000"
|
||||
access = access_crate_cash
|
||||
desc = "It's worth 1000 credits."
|
||||
desc = "A pile of 1000 credits."
|
||||
worth = 1000
|
||||
|
||||
/obj/item/weapon/spacecash/attack_self(var/mob/user)
|
||||
interact(user)
|
||||
|
||||
/obj/item/weapon/spacecash/proc/interact(var/mob/user)
|
||||
|
||||
user.machine = src
|
||||
|
||||
var/dat
|
||||
|
||||
dat += "<BR>[worth] [currency]"
|
||||
dat += "<BR>New pile:"
|
||||
|
||||
dat += "<A href='?src=\ref[src];sd=5'>-</a>"
|
||||
dat += "<A href='?src=\ref[src];sd=1'>-</a>"
|
||||
if(round<=0.1)
|
||||
dat += "<A href='?src=\ref[src];sd=0.1'>-</a>"
|
||||
if(round<=0.01)
|
||||
dat += "<A href='?src=\ref[src];sd=0.01'>-</a>"
|
||||
dat += "[split]"
|
||||
if(round<=0.01)
|
||||
dat += "<A href='?src=\ref[src];su=0.01'>+</a>"
|
||||
if(round<=0.1)
|
||||
dat += "<A href='?src=\ref[src];su=0.1'>+</a>"
|
||||
dat += "<A href='?src=\ref[src];su=1'>+</a>"
|
||||
dat += "<A href='?src=\ref[src];su=5'>+</a>"
|
||||
dat += "<BR><A href='?src=\ref[src];split=1'>split</a>"
|
||||
|
||||
|
||||
user << browse(dat, "window=computer;size=400x500")
|
||||
|
||||
onclose(user, "computer")
|
||||
return
|
||||
|
||||
/obj/item/weapon/spacecash/Topic(href, href_list)
|
||||
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
||||
usr.machine = src
|
||||
|
||||
if (href_list["su"])
|
||||
var/samt = text2num(href_list["su"])
|
||||
if(split+samt<worth)
|
||||
split+=samt
|
||||
if (href_list["sd"])
|
||||
var/samt = text2num(href_list["sd"])
|
||||
if(split-samt>0)
|
||||
split-=samt
|
||||
if(href_list["split"])
|
||||
new /obj/item/weapon/spacecash(get_turf(src),split,currency)
|
||||
worth-=split
|
||||
split = round(worth/2,round)
|
||||
updatedesc()
|
||||
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
for (var/mob/M in viewers(1, src.loc))
|
||||
if (M.client && M.machine == src)
|
||||
src.attack_self(M)
|
||||
return
|
||||
|
||||
/obj/item/weapon/spacecash/attackby(var/obj/I as obj, var/mob/user as mob)
|
||||
if(istype(I,/obj/item/weapon/spacecash))
|
||||
var/mob/living/carbon/c = user
|
||||
if(!uppertext(I:currency)==uppertext(currency))
|
||||
c<<"You can't mix currencies!"
|
||||
return ..()
|
||||
else
|
||||
worth+=I:worth
|
||||
c<<"You combine the piles."
|
||||
updatedesc()
|
||||
del I
|
||||
return ..()
|
||||
|
||||
/obj/item/device/mass_spectrometer
|
||||
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
|
||||
@@ -586,6 +730,9 @@
|
||||
var/assignment_real_title = null
|
||||
var/dorm = 0 // determines if this ID has claimed a dorm already
|
||||
|
||||
var/money
|
||||
var/pin
|
||||
|
||||
/obj/item/weapon/card/id/silver
|
||||
name = "identification card"
|
||||
desc = "A silver card which shows honour and dedication."
|
||||
|
||||
@@ -28,7 +28,7 @@ Starting up. [time2text(world.timeofday, "hh:mm.ss")]
|
||||
make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once)
|
||||
process_teleport_locs() //Sets up the wizard teleport locations
|
||||
process_ghost_teleport_locs() //Sets up ghost teleport locations.
|
||||
//sleep_offline = 1
|
||||
sleep_offline = 1
|
||||
|
||||
spawn(180) //so we aren't adding to the round-start lag
|
||||
/*if(config.ToRban)
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
..()
|
||||
|
||||
//sleep(50)
|
||||
sleep(50)
|
||||
|
||||
plmaster = new /obj/effect/overlay( )
|
||||
plmaster.icon = 'icons/effects/tile_effects.dmi'
|
||||
|
||||
@@ -225,11 +225,12 @@ Whitespace:Seperator;
|
||||
|
||||
comm.messagetitle.Add("Cent. Com. Status Summary")
|
||||
comm.messagetext.Add(intercepttext)
|
||||
world << sound('commandreport.ogg')
|
||||
|
||||
command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.")
|
||||
/* command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.")
|
||||
world << sound('sound/AI/intercept.ogg')
|
||||
if(security_level < SEC_LEVEL_BLUE)
|
||||
set_security_level(SEC_LEVEL_BLUE)
|
||||
set_security_level(SEC_LEVEL_BLUE)*/
|
||||
|
||||
|
||||
/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=1)
|
||||
|
||||
@@ -1203,7 +1203,7 @@ datum
|
||||
|
||||
check_completion()
|
||||
var/held_credits = 0
|
||||
for(var/obj/item/weapon/money/M in owner.current.get_contents())
|
||||
for(var/obj/item/weapon/spacecash/M in owner.current.get_contents())
|
||||
held_credits += M.worth
|
||||
if(held_credits >= steal_amount)
|
||||
return 1
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
|
||||
var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible/booze(H)
|
||||
var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(H) //BS12 EDIT
|
||||
H.equip_to_slot_or_del(B, slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/chaplain(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chaplain(H), slot_w_uniform)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = 0
|
||||
spawn_positions = 1
|
||||
spawn_positions = 2
|
||||
supervisors = "your laws and the AI" //Nodrak
|
||||
selection_color = "#ddffdd"
|
||||
|
||||
|
||||
@@ -182,10 +182,10 @@
|
||||
return
|
||||
Centcomm_announce(input, usr)
|
||||
usr << "Message transmitted."
|
||||
log_say("[key_name(usr)] has made a Centcomm announcement: [input]")
|
||||
log_say("[key_name(usr)] has sent Centcomm a message: [input]") //BS12 EDIT Fix for comms console never cooling down
|
||||
centcomm_message_cooldown = 1
|
||||
spawn(600)//One minute cooldown
|
||||
message_cooldown = 0
|
||||
spawn(50)//One minute cooldown, nah 5 seconds
|
||||
centcomm_message_cooldown = 0
|
||||
|
||||
|
||||
// OMG SYNDICATE ...LETTERHEAD
|
||||
@@ -199,10 +199,10 @@
|
||||
return
|
||||
Syndicate_announce(input, usr)
|
||||
usr << "Message transmitted."
|
||||
log_say("[key_name(usr)] has made a Syndicate announcement: [input]")
|
||||
log_say("[key_name(usr)] has sent the Syndicate a message: [input]")
|
||||
centcomm_message_cooldown = 1
|
||||
spawn(600)//One minute cooldown
|
||||
message_cooldown = 0
|
||||
spawn(50)//One minute cooldown, nah 5 seconds
|
||||
centcomm_message_cooldown = 0
|
||||
|
||||
if("RestoreBackup")
|
||||
usr << "Backup routing data restored!"
|
||||
|
||||
@@ -358,7 +358,11 @@ var/list/recentmessages = list() // global list of recent messages broadcasted :
|
||||
|
||||
// --- Filter the message; place it in quotes apply a verb ---
|
||||
|
||||
var/quotedmsg = M.say_quote(message)
|
||||
var/quotedmsg = "\"" + message + "\"" //BS12 EDIT For Arrivals Computer
|
||||
if(job == "Automated Announcement")
|
||||
quotedmsg = message
|
||||
else if(M)
|
||||
quotedmsg = M.say_quote(message)
|
||||
|
||||
// --- This following recording is intended for research and feedback in the use of department radio channels ---
|
||||
|
||||
|
||||
@@ -46,13 +46,6 @@ datum/controller/game_controller
|
||||
|
||||
world.tick_lag = config.Ticklag
|
||||
|
||||
// Sleep for about 5 seconds to allow background initialization procs to finish
|
||||
sleep(50)
|
||||
|
||||
// Now that the game is world is fully initialized, pause server until a user connects.
|
||||
world.sleep_offline = 1
|
||||
|
||||
|
||||
createRandomZlevel()
|
||||
|
||||
setup_objects()
|
||||
|
||||
+27
-12
@@ -541,20 +541,35 @@
|
||||
set category = "Object"
|
||||
set name = "Pick up"
|
||||
|
||||
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(src, usr))
|
||||
if(!(usr)) //BS12 EDIT
|
||||
return
|
||||
if((!istype(usr, /mob/living/carbon)) || (istype(usr, /mob/living/carbon/brain)))//Is humanoid, and is not a brain
|
||||
usr << "\red You can't pick things up!"
|
||||
return
|
||||
if( usr.stat || usr.restrained() )//Is not asleep/dead and is not restrained
|
||||
usr << "\red You can't pick things up!"
|
||||
return
|
||||
if(src.anchored) //Object isn't anchored
|
||||
usr << "\red You can't pick that up!"
|
||||
return
|
||||
if(!usr.hand && usr.r_hand) //Right hand is not full
|
||||
usr << "\red Your right hand is full."
|
||||
return
|
||||
if(usr.hand && usr.l_hand) //Left hand is not full
|
||||
usr << "\red Your left hand is full."
|
||||
return
|
||||
if(!istype(src.loc, /turf)) //Object is on a turf
|
||||
usr << "\red You can't pick that up!"
|
||||
return
|
||||
//All checks are done, time to pick it up!
|
||||
if(istype(usr, /mob/living/carbon/human))
|
||||
src.attack_hand(usr)
|
||||
if(istype(usr, /mob/living/carbon/alien))
|
||||
src.attack_alien(usr)
|
||||
if(istype(usr, /mob/living/carbon/monkey))
|
||||
src.attack_paw(usr)
|
||||
return
|
||||
|
||||
if(ishuman(usr))
|
||||
if(usr.get_active_hand() == null)
|
||||
src.Click() // Let me know if this has any problems -Giacom
|
||||
/*
|
||||
if(usr.get_active_hand() == null)
|
||||
src.attack_hand(usr)
|
||||
else
|
||||
usr << "\red You already have something in your hand."
|
||||
*/
|
||||
else
|
||||
usr << "\red This mob type can't use this verb."
|
||||
|
||||
//This proc is executed when someone clicks the on-screen UI button. To make the UI button show, set the 'icon_action_button' to the icon_state of the image of the button in screen1_action.dmi
|
||||
//The default action is attack_self().
|
||||
|
||||
@@ -195,6 +195,27 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
|
||||
updateDialog()
|
||||
add_fingerprint(usr)
|
||||
|
||||
/obj/item/device/radio/proc/autosay(var/message, var/from, var/channel) //BS12 EDIT
|
||||
var/datum/radio_frequency/connection = null
|
||||
if(channel && channels && channels.len > 0)
|
||||
if (channel == "department")
|
||||
//world << "DEBUG: channel=\"[channel]\" switching to \"[channels[1]]\""
|
||||
channel = channels[1]
|
||||
connection = secure_radio_connections[channel]
|
||||
else
|
||||
connection = radio_connection
|
||||
channel = null
|
||||
if (!istype(connection))
|
||||
return
|
||||
if (!connection)
|
||||
return
|
||||
|
||||
Broadcast_Message(connection, new /mob/living/silicon/ai(src),
|
||||
0, "*garbled automated announcement*", src,
|
||||
message, from, "Automated Announcement", from, "synthesized voice",
|
||||
4, 0, 1)
|
||||
return
|
||||
|
||||
/obj/item/device/radio/talk_into(mob/M as mob, message, channel)
|
||||
|
||||
if(!on) return // the device has to be on
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
new /obj/item/weapon/spacecash(src)
|
||||
new /obj/item/weapon/spacecash(src)
|
||||
new /obj/item/weapon/spacecash(src)
|
||||
|
||||
//BS12 EDIT
|
||||
/* // All cult functionality moved to Null Rod
|
||||
/obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -70,12 +71,12 @@
|
||||
O.show_message(text("\red <B>[] smacks []'s lifeless corpse with [].</B>", user, M, src), 1)
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
return
|
||||
|
||||
*/
|
||||
/obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob)
|
||||
if (istype(A, /turf/simulated/floor))
|
||||
/* if (istype(A, /turf/simulated/floor))
|
||||
user << "\blue You hit the floor with the bible."
|
||||
if(user.mind && (user.mind.assigned_role == "Chaplain"))
|
||||
call(/obj/effect/rune/proc/revealrunes)(src)
|
||||
call(/obj/effect/rune/proc/revealrunes)(src)*/
|
||||
if(user.mind && (user.mind.assigned_role == "Chaplain"))
|
||||
if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder
|
||||
user << "\blue You bless [A]."
|
||||
|
||||
@@ -178,7 +178,7 @@ proc/blood_incompatible(donor,receiver)
|
||||
attack(atom/target as obj|turf|area, mob/user as mob , flag)
|
||||
if(ismob(target) && target.reagents && reagents.total_volume)
|
||||
user.visible_message("\red \The [target] has been smothered with \the [src] by \the [user]!", "\red You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise")
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
src.reagents.reaction(target, INGEST)
|
||||
spawn(5) src.reagents.clear_reagents()
|
||||
return
|
||||
else
|
||||
|
||||
@@ -508,30 +508,27 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
src << "Only administrators may use this command."
|
||||
return
|
||||
var/input = input(usr, "Please enter anything you want. Anything. Serious.", "What?", "") as message|null
|
||||
var/customname = input(usr, "Pick a title for the report.", "Title") as text|null
|
||||
if(!input)
|
||||
return
|
||||
if(!customname)
|
||||
customname = "NanoTrasen Update"
|
||||
for (var/obj/machinery/computer/communications/C in machines)
|
||||
if(! (C.stat & (BROKEN|NOPOWER) ) )
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
|
||||
P.name = "'[command_name()] Update.'"
|
||||
P.info = input
|
||||
P.update_icon()
|
||||
C.messagetitle.Add("[command_name()] Update")
|
||||
C.messagetext.Add(P.info)
|
||||
|
||||
var/confirm = alert(src, "Do you want to announce the contents of the report to the crew?", "Announce", "Yes", "No")
|
||||
if(confirm == "Yes")
|
||||
command_alert(input);
|
||||
for (var/obj/machinery/computer/communications/C in machines)
|
||||
if(! (C.stat & (BROKEN|NOPOWER) ) )
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
|
||||
P.name = "paper- '[command_name()] Update.'"
|
||||
P.info = input
|
||||
C.messagetitle.Add("[command_name()] Update")
|
||||
C.messagetext.Add(P.info)
|
||||
else
|
||||
command_alert("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message");
|
||||
for (var/obj/machinery/computer/communications/C in machines)
|
||||
if(! (C.stat & (BROKEN|NOPOWER) ) )
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
|
||||
P.name = "paper- 'Classified [command_name()] Update.'"
|
||||
P.info = input
|
||||
C.messagetitle.Add("Classified [command_name()] Update")
|
||||
C.messagetext.Add(P.info)
|
||||
switch(alert("Should this be announced to the general population?",,"Yes","No"))
|
||||
if("Yes")
|
||||
command_alert(input, maintitle=customname);
|
||||
if("No")
|
||||
world << "\red New NanoTrasen Update available at all communication consoles."
|
||||
|
||||
world << sound('sound/AI/commandreport.ogg')
|
||||
world << sound('commandreport.ogg')
|
||||
log_admin("[key_name(src)] has created a command report: [input]")
|
||||
message_admins("[key_name_admin(src)] has created a command report", 1)
|
||||
feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -62,4 +62,4 @@
|
||||
item_state = "judge"
|
||||
flags = FPRINT | TABLEPASS
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/money)
|
||||
allowed = list(/obj/item/weapon/cigpacket,/obj/item/weapon/spacecash)
|
||||
|
||||
@@ -178,7 +178,7 @@ proc/blood_incompatible(donor,receiver)
|
||||
attack(atom/target as obj|turf|area, mob/user as mob , flag)
|
||||
if(ismob(target) && target.reagents && reagents.total_volume)
|
||||
user.visible_message("\red \The [target] has been smothered with \the [src] by \the [user]!", "\red You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise")
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
src.reagents.reaction(target, INGEST)
|
||||
spawn(5) src.reagents.clear_reagents()
|
||||
return
|
||||
else
|
||||
|
||||
@@ -65,6 +65,7 @@ Works together with spawning an observer, noted above.
|
||||
if(key)
|
||||
var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc.
|
||||
ghost.can_reenter_corpse = can_reenter_corpse
|
||||
ghost.timeofdeath = timeofdeath //BS12 EDIT
|
||||
ghost.key = key
|
||||
return ghost
|
||||
|
||||
|
||||
+22
-1
@@ -337,14 +337,35 @@ var/list/slot_equipment_priority = list( \
|
||||
set category = "OOC"
|
||||
|
||||
if (!( abandon_allowed ))
|
||||
usr << "\blue Respawn is disabled."
|
||||
return
|
||||
if ((stat != 2 || !( ticker )))
|
||||
usr << "\blue <B>You must be dead to use this!</B>"
|
||||
return
|
||||
if (ticker.mode.name == "meteor" || ticker.mode.name == "epidemic") //BS12 EDIT
|
||||
usr << "\blue Respawn is disabled."
|
||||
return
|
||||
else
|
||||
var/deathtime = world.time - src.timeofdeath
|
||||
var/deathtimeminutes = round(deathtime / 600)
|
||||
var/pluralcheck = "minute"
|
||||
if(deathtimeminutes == 0)
|
||||
pluralcheck = ""
|
||||
else if(deathtimeminutes == 1)
|
||||
pluralcheck = " [deathtimeminutes] minute and"
|
||||
else if(deathtimeminutes > 1)
|
||||
pluralcheck = " [deathtimeminutes] minutes and"
|
||||
var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10,1)
|
||||
usr << "You have been dead for[pluralcheck] [deathtimeseconds] seconds."
|
||||
if (deathtime < 18000)
|
||||
usr << "You must wait 30 minutes to respawn!"
|
||||
return
|
||||
else
|
||||
usr << "You can respawn now, enjoy your new life!"
|
||||
|
||||
log_game("[usr.name]/[usr.key] used abandon mob.")
|
||||
|
||||
usr << "\blue <B>Please roleplay correctly!</B>"
|
||||
usr << "\blue <B>Make sure to play a different character, and please roleplay correctly!</B>"
|
||||
|
||||
if(!client)
|
||||
log_game("[usr.key] AM failed due to disconnect.")
|
||||
|
||||
@@ -321,14 +321,9 @@
|
||||
|
||||
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank)
|
||||
if (ticker.current_state == GAME_STATE_PLAYING)
|
||||
var/ailist[] = list()
|
||||
for (var/mob/living/silicon/ai/A in living_mob_list)
|
||||
ailist += A
|
||||
if (ailist.len)
|
||||
var/mob/living/silicon/ai/announcer = pick(ailist)
|
||||
if(character.mind)
|
||||
if((character.mind.assigned_role != "Cyborg") && (character.mind.special_role != "MODE"))
|
||||
announcer.say("[character.real_name] has signed up as [rank].")
|
||||
var/obj/item/device/radio/intercom/a = new /obj/item/device/radio/intercom(null)// BS12 EDIT Arrivals Announcement Computer, rather than the AI.
|
||||
a.autosay("\"[character.real_name],[character.wear_id.assignment ? " [character.wear_id.assignment]," : "" ] has arrived on the station.\"", "Arrivals Announcement Computer")
|
||||
del(a)
|
||||
|
||||
proc/LateChoices()
|
||||
var/mills = world.time // 1/10 of a second, not real milliseconds but whatever
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 662 KiB |
Reference in New Issue
Block a user