Merge remote-tracking branch 'ParadiseSS13/master' into Virtual-Avatars

This commit is contained in:
Warior4356
2017-04-02 02:47:42 -07:00
534 changed files with 17194 additions and 7096 deletions
+6 -6
View File
@@ -1,8 +1,8 @@
var/global/datum/repository/apc/apc_repository = new()
/datum/repository/apc/proc/apc_data(var/obj/machinery/computer/monitor/powermonitor)
/datum/repository/apc/proc/apc_data(datum/powernet/powernet)
var/apcData[0]
var/datum/cache_entry/cache_entry = cache_data
if(!cache_entry)
cache_entry = new/datum/cache_entry
@@ -10,10 +10,10 @@ var/global/datum/repository/apc/apc_repository = new()
if(world.time < cache_entry.timestamp)
return cache_entry.data
if(powermonitor && !isnull(powermonitor.powernet))
if(powernet)
var/list/L = list()
for(var/obj/machinery/power/terminal/term in powermonitor.powernet.nodes)
for(var/obj/machinery/power/terminal/term in powernet.nodes)
if(istype(term.master, /obj/machinery/power/apc))
var/obj/machinery/power/apc/A = term.master
L += A
@@ -24,5 +24,5 @@ var/global/datum/repository/apc/apc_repository = new()
apcData[++apcData.len] = list("Name" = html_encode(A.area.name), "Equipment" = Status[A.equipment+1], "Lights" = Status[A.lighting+1], "Environment" = Status[A.environ+1], "CellPct" = A.cell ? round(A.cell.percent(),1) : "M", "CellStatus" = A.cell ? chg[A.charging+1] : "M", "Load" = round(A.lastused_total,1))
cache_entry.timestamp = world.time + 5 SECONDS
cache_entry.data = apcData
cache_entry.data = apcData
return apcData
+10 -10
View File
@@ -593,7 +593,7 @@
new_objective.explanation_text = "Absorb [target_number] compatible genomes."
if("blood")
new_objective = new /datum/objective/blood
new_objective.explanation_text = "Accumulate atleast [target_number] units of blood in total."
new_objective.explanation_text = "Accumulate at least [target_number] total units of blood."
new_objective.owner = src
new_objective.target_amount = target_number
@@ -713,7 +713,7 @@
if(src in ticker.mode.head_revolutionaries)
ticker.mode.head_revolutionaries -= src
ticker.mode.update_rev_icons_removed(src)
to_chat(current, "\red <FONT size = 3><B>Revolution has been disappointed of your leader traits! You are a regular revolutionary now!</B></FONT>")
to_chat(current, "\red <FONT size = 3><B>Revolution has been disappointed of your leadership traits! You are a regular revolutionary now!</B></FONT>")
else if(!(src in ticker.mode.revolutionaries))
to_chat(current, "\red <FONT size = 3> You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!</FONT>")
else
@@ -728,7 +728,7 @@
if(src in ticker.mode.revolutionaries)
ticker.mode.revolutionaries -= src
ticker.mode.update_rev_icons_removed(src)
to_chat(current, "\red <FONT size = 3><B>You have proved your devotion to revoltion! Yea are a head revolutionary now!</B></FONT>")
to_chat(current, "\red <FONT size = 3><B>You have proven your devotion to revolution! You are a head revolutionary now!</B></FONT>")
else if(!(src in ticker.mode.head_revolutionaries))
to_chat(current, "\blue You are a member of the revolutionaries' leadership now!")
else
@@ -857,7 +857,7 @@
special_role = SPECIAL_ROLE_WIZARD
//ticker.mode.learn_basic_spells(current)
ticker.mode.update_wiz_icons_added(src)
to_chat(current, "<span class='danger'>You are the Space Wizard!</span>")
to_chat(current, "<span class='danger'>You are a Space Wizard!</span>")
current.faction = list("wizard")
log_admin("[key_name(usr)] has wizarded [key_name(current)]")
message_admins("[key_name_admin(usr)] has wizarded [key_name_admin(current)]")
@@ -875,7 +875,7 @@
message_admins("[key_name_admin(usr)] has allowed wizard [key_name_admin(current)] to name themselves")
if("autoobjectives")
ticker.mode.forge_wizard_objectives(src)
to_chat(usr, "\blue The objectives for wizard [key] have been generated. You can edit them and anounce manually.")
to_chat(usr, "\blue The objectives for wizard [key] have been generated. You can edit them and announce manually.")
log_admin("[key_name(usr)] has automatically forged wizard objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged wizard objectives for [key_name_admin(current)]")
@@ -898,13 +898,13 @@
ticker.mode.grant_changeling_powers(current)
ticker.mode.update_change_icons_added(src)
special_role = SPECIAL_ROLE_CHANGELING
to_chat(current, "<B><font color='red'>Your powers are awoken. A flash of memory returns to us...we are a changeling!</font></B>")
to_chat(current, "<B><font color='red'>Your powers have awoken. A flash of memory returns to us... we are a changeling!</font></B>")
log_admin("[key_name(usr)] has changelinged [key_name(current)]")
message_admins("[key_name_admin(usr)] has changelinged [key_name_admin(current)]")
if("autoobjectives")
ticker.mode.forge_changeling_objectives(src)
to_chat(usr, "\blue The objectives for changeling [key] have been generated. You can edit them and anounce manually.")
to_chat(usr, "\blue The objectives for changeling [key] have been generated. You can edit them and announce manually.")
log_admin("[key_name(usr)] has automatically forged objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged objectives for [key_name_admin(current)]")
@@ -942,7 +942,7 @@
slaved.masters += src
som = slaved //we MIGT want to mindslave someone
special_role = SPECIAL_ROLE_VAMPIRE
to_chat(current, "<B><font color='red'>Your powers are awoken. Your lust for blood grows... You are a Vampire!</font></B>")
to_chat(current, "<B><font color='red'>Your powers have awoken. Your lust for blood grows... You are a Vampire!</font></B>")
log_admin("[key_name(usr)] has vampired [key_name(current)]")
message_admins("[key_name_admin(usr)] has vampired [key_name_admin(current)]")
@@ -1061,7 +1061,7 @@
if("autoobjectives")
ticker.mode.forge_traitor_objectives(src)
to_chat(usr, "\blue The objectives for traitor [key] have been generated. You can edit them and anounce manually.")
to_chat(usr, "\blue The objectives for traitor [key] have been generated. You can edit them and announce manually.")
log_admin("[key_name(usr)] has automatically forged objectives for [key_name(current)]")
message_admins("[key_name_admin(usr)] has automatically forged objectives for [key_name_admin(current)]")
@@ -1360,7 +1360,7 @@
to_chat(H, "A tome, a message from your new master, appears in your [where].")
if(!ticker.mode.equip_cultist(current))
to_chat(H, "Spawning an amulet from your Master failed.")
to_chat(H, "Summoning an amulet from your Master failed.")
/datum/mind/proc/make_Rev()
if(ticker.mode.head_revolutionaries.len>0)
File diff suppressed because it is too large Load Diff
+7
View File
@@ -99,6 +99,13 @@
treasure in this disused warehouse, launch it into space, and then \
ignore it. Forever."
/datum/map_template/ruin/space/listeningpost
id = "listeningpost"
suffix = "listeningpost.dmm"
name = "Syndie Listening Post"
description = "What happens to Nuclear Operatives that fail in their mission? \
Certainly not assignment to a backwater listening post..."
/datum/map_template/ruin/space/empty_shell
id = "empty-shell"
suffix = "emptyshell.dmm"
+4 -1
View File
@@ -11,10 +11,13 @@
invocation_type = "shout"
action_icon_state = "immrod"
sound = 'sound/effects/whoosh.ogg'
var/rod_delay = 2
/obj/effect/proc_holder/spell/targeted/rod_form/cast(list/targets,mob/user = usr)
for(var/mob/living/M in targets)
var/turf/start = get_turf(M)
var/obj/effect/immovablerod/wizard/W = new(start, get_ranged_target_turf(M, M.dir, (15 + spell_level * 3)))
var/obj/effect/immovablerod/wizard/W = new(start, get_ranged_target_turf(M, M.dir, (15 + spell_level * 3)), rod_delay)
W.wizard = M
W.max_distance += spell_level * 3 //You travel farther when you upgrade the spell
W.start_turf = start
+1 -1
View File
@@ -1173,7 +1173,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/datum/supply_packs/materials/plastic30
name = "30 Plastic Sheets Crate"
contains = list(/obj/item/stack/sheet/mineral/plastic)
contains = list(/obj/item/stack/sheet/plastic)
amount = 30
cost = 25
containername = "plastic sheets crate"
+1 -1
View File
@@ -319,7 +319,7 @@ var/list/uplink_items = list()
cost = 6
job = list("Life Support Specialist")
/datum/uplink_item/dangerous/energizedfireaxe
/datum/uplink_item/jobspecific/energizedfireaxe
name = "Energized Fire Axe"
desc = "A fire axe with a massive electrical charge built into it. It can release this charge on its first victim and will be rather plain after that."
reference = "EFA"
+21 -29
View File
@@ -11,52 +11,44 @@
var/const/AIRLOCK_WIRE_IDSCAN = 1
var/const/AIRLOCK_WIRE_MAIN_POWER1 = 2
var/const/AIRLOCK_WIRE_MAIN_POWER2 = 4
var/const/AIRLOCK_WIRE_DOOR_BOLTS = 8
var/const/AIRLOCK_WIRE_BACKUP_POWER1 = 16
var/const/AIRLOCK_WIRE_BACKUP_POWER2 = 32
var/const/AIRLOCK_WIRE_OPEN_DOOR = 64
var/const/AIRLOCK_WIRE_AI_CONTROL = 128
var/const/AIRLOCK_WIRE_ELECTRIFY = 256
var/const/AIRLOCK_WIRE_SAFETY = 512
var/const/AIRLOCK_WIRE_SPEED = 1024
var/const/AIRLOCK_WIRE_LIGHT = 2048
var/const/AIRLOCK_WIRE_DOOR_BOLTS = 4
var/const/AIRLOCK_WIRE_BACKUP_POWER1 = 8
var/const/AIRLOCK_WIRE_OPEN_DOOR = 16
var/const/AIRLOCK_WIRE_AI_CONTROL = 32
var/const/AIRLOCK_WIRE_ELECTRIFY = 64
var/const/AIRLOCK_WIRE_SAFETY = 128
var/const/AIRLOCK_WIRE_SPEED = 256
var/const/AIRLOCK_WIRE_LIGHT = 512
/datum/wires/airlock/GetWireName(index)
switch(index)
if(AIRLOCK_WIRE_IDSCAN)
return "ID Scan"
if(AIRLOCK_WIRE_MAIN_POWER1)
return "Primary Power"
if(AIRLOCK_WIRE_MAIN_POWER2)
return "Secondary Power"
if(AIRLOCK_WIRE_DOOR_BOLTS)
return "Door Bolts"
if(AIRLOCK_WIRE_BACKUP_POWER1)
return "Primary Backup Power"
if(AIRLOCK_WIRE_BACKUP_POWER2)
return "Secondary Backup Power"
if(AIRLOCK_WIRE_OPEN_DOOR)
return "Door State"
if(AIRLOCK_WIRE_AI_CONTROL)
return "AI Control"
if(AIRLOCK_WIRE_ELECTRIFY)
return "Electrification"
if(AIRLOCK_WIRE_ELECTRIFY)
return "Door Safeties"
if(AIRLOCK_WIRE_ELECTRIFY)
return "Door Timing"
if(AIRLOCK_WIRE_ELECTRIFY)
return "Bolt Lights"
@@ -89,7 +81,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048
switch(index)
if(AIRLOCK_WIRE_IDSCAN)
A.aiDisabledIdScanner = !mended
if(AIRLOCK_WIRE_MAIN_POWER1, AIRLOCK_WIRE_MAIN_POWER2)
if(AIRLOCK_WIRE_MAIN_POWER1)
if(!mended)
//Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be crowbarred open, but bolts-raising will not work. Cutting these wires may electocute the user.
@@ -99,7 +91,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048
A.regainMainPower()
A.shock(usr, 50)
if(AIRLOCK_WIRE_BACKUP_POWER1, AIRLOCK_WIRE_BACKUP_POWER2)
if(AIRLOCK_WIRE_BACKUP_POWER1)
if(!mended)
//Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user.
@@ -165,7 +157,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048
if(A.emergency)
A.emergency = 0
A.update_icon()
if(AIRLOCK_WIRE_MAIN_POWER1 || AIRLOCK_WIRE_MAIN_POWER2)
if(AIRLOCK_WIRE_MAIN_POWER1)
//Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter).
A.loseMainPower()
if(AIRLOCK_WIRE_DOOR_BOLTS)
@@ -176,7 +168,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048
else
A.unlock()
if(AIRLOCK_WIRE_BACKUP_POWER1 || AIRLOCK_WIRE_BACKUP_POWER2)
if(AIRLOCK_WIRE_BACKUP_POWER1)
//two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter).
A.loseBackupPower()
if(AIRLOCK_WIRE_AI_CONTROL)