Fix indentations (#17481)

* cbt

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* fsadffsda sad

* sadfasd

* jhn

* dsfa

* saf

* safsad

* sda
This commit is contained in:
Fluffy
2023-10-05 12:15:58 +02:00
committed by GitHub
parent 032853824d
commit 4538e2a7cc
471 changed files with 2670 additions and 2597 deletions
+7 -5
View File
@@ -46,8 +46,10 @@
violent = ""
var/temperature_text = "([temperature - (T0C + 20)]C)"
admin_attack_log(attacker,
victim,
"used \the [I] to [violent]inject - [reagents] [temperature_text] - [amount_transferred]u transferred",
"was [violent]injected with \the [I] - [reagents] [temperature_text] - [amount_transferred]u transferred",
"used \the [I] to [violent]inject [reagents] [temperature_text] ([amount_transferred]u transferred) into")
admin_attack_log(
attacker,
victim,
"used \the [I] to [violent]inject - [reagents] [temperature_text] - [amount_transferred]u transferred",
"was [violent]injected with \the [I] - [reagents] [temperature_text] - [amount_transferred]u transferred",
"used \the [I] to [violent]inject [reagents] [temperature_text] ([amount_transferred]u transferred) into"
)
+1 -1
View File
@@ -7,4 +7,4 @@
create_object_html = file2text('html/create_object.html')
create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"")
user << browse(replacetext(create_object_html, "/* ref src */", "\ref[src]"), "window=create_object;size=600x600")
user << browse(replacetext(create_object_html, "/* ref src */", "\ref[src]"), "window=create_object;size=600x600")
+2 -2
View File
@@ -67,7 +67,7 @@
link = "'[sanitizeSQL(link)]'"
else
link = "NULL"
var/sql_ckey = sanitizeSQL(ckey)
var/question = input("Write your question","Question") as message
if(!question)
@@ -139,4 +139,4 @@
if("Add option")
add_option = 1
if("Finish")
add_option = 0
add_option = 0
+1 -1
View File
@@ -78,4 +78,4 @@
switch(alert("Are you sure? (This will cause masive lag!!!)", "Map Capture", "No", "Yes"))
if("Yes")
usr.client.holder.capture_map_capture_next(tz, 1, 1, ligths)
usr.client.holder.capture_map_capture_next(tz, 1, 1, ligths)
@@ -10,7 +10,7 @@
. = ..()
if(!.)
return
if (SSticker.mode)
if (SSticker.mode)
alert("The game mode is [SSticker.mode.name]")
else
else
alert("For some reason there's a ticker, but not a game mode")
+2 -4
View File
@@ -166,11 +166,9 @@ var/global/list/ticket_panels = list()
return
var/DBQuery/Q = dbcon.NewQuery({"INSERT INTO ss13_tickets
(game_id, message_count, admin_count, admin_list, opened_by, taken_by,
closed_by, response_delay, opened_at, closed_at)
(game_id, message_count, admin_count, admin_list, opened_by, taken_by, closed_by, response_delay, opened_at, closed_at)
VALUES
(:g_id:, :m_count:, :a_count:, :a_list:, :opened_by:, :taken_by:,
:closed_by:, :delay:, :opened_at:, :closed_at:)"})
(:g_id:, :m_count:, :a_count:, :a_list:, :opened_by:, :taken_by:, :closed_by:, :delay:, :opened_at:, :closed_at:)"})
Q.Execute(list(
"g_id" = game_id,
"m_count" = length(msgs),
+1 -1
View File
@@ -11,7 +11,7 @@
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_DEV))
return
if(istype(usr, /mob/abstract/new_player))
return
+1 -1
View File
@@ -26,4 +26,4 @@
feedback_add_details("admin_verb","CNT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
else
to_chat(src, "<span class='warning'>NTSL2+ Daemon is already connected.</span>")
to_chat(src, "<span class='warning'>NTSL2+ Daemon is already connected.</span>")
+4 -4
View File
@@ -273,10 +273,10 @@ Ccomp's first proc.
if(G.has_enabled_antagHUD && config.antag_hud_restricted)
var/response = alert(src, "Are you sure you wish to allow this individual to play?","Ghost has used AntagHUD","Yes","No")
if(response == "No") return
G.timeofdeath=-19999 /* time of death is checked in /mob/verb/abandon_mob() which is the Respawn verb.
timeofdeath is used for bodies on autopsy but since we're messing with a ghost I'm pretty sure
there won't be an autopsy.
*/
/* time of death is checked in /mob/verb/abandon_mob() which is the Respawn verb.
timeofdeath is used for bodies on autopsy but since we're messing with a ghost I'm pretty sure there won't be an autopsy.*/
G.timeofdeath=-19999
var/datum/preferences/P
if (G.client)
@@ -64,11 +64,11 @@
<a id='refresh' data-initial-href='?_src_=vars;datumrefresh=\ref[D];search=' href='?_src_=vars;datumrefresh=\ref[D];search=[search]'>Refresh</a>
<form>
<select name='file'
size='1'
onchange='loadPage(this.form.elements\[0\])'
target='_parent._top'
onmouseclick='this.focus()'
style='background-color:#ffffff'>
size='1'
onchange='loadPage(this.form.elements\[0\])'
target='_parent._top'
onmouseclick='this.focus()'
style='background-color:#ffffff'>
<option>Select option</option>
<option />
<option value='?_src_=vars;mark_object=\ref[D]'>Mark Object</option>
@@ -95,12 +95,12 @@
</td>
<td width='80%'>
<input type='text'
id='filter'
name='filter_text'
value='[search]'
onkeyup='updateSearch()'
onchange='updateSearch()'
style='width:100%;' />
id='filter'
name='filter_text'
value='[search]'
onkeyup='updateSearch()'
onchange='updateSearch()'
style='width:100%;' />
</td>
</tr></table>
<hr/>
+1 -1
View File
@@ -22,4 +22,4 @@
// If true is an object that can hold an assemblyholder object
/obj/proc/IsAssemblyHolder()
return FALSE
return FALSE
+1 -1
View File
@@ -35,4 +35,4 @@
add_fingerprint(user)
/obj/item/device/assembly/igniter/isFlameSource()
return TRUE
return TRUE
@@ -1,4 +1,4 @@
/// CDN Webroot asset transport.
/// CDN Webroot asset transport.
/datum/asset_transport/webroot
name = "CDN Webroot asset transport"
@@ -59,7 +59,7 @@
if (!islist(asset_list))
asset_list = list(asset_list)
for (var/asset_name in asset_list)
var/datum/asset_cache_item/ACI = asset_list[asset_name]
var/datum/asset_cache_item/ACI = asset_list[asset_name]
if (!istype(ACI))
ACI = SSassets.cache[asset_name]
if (!ACI)
@@ -69,7 +69,7 @@
legacy_assets[asset_name] = ACI
if (length(legacy_assets))
. = ..(client, legacy_assets)
/// webroot slow asset sending - does nothing.
/datum/asset_transport/webroot/send_assets_slow(client/client, list/files, filerate)
@@ -15,7 +15,7 @@
//--------------------------------------------
// Omni port datum
//
// Used by omni devices to manage connections
// Used by omni devices to manage connections
// to other atmospheric objects.
//--------------------------------------------
/datum/omni_port
@@ -71,10 +71,10 @@
string = "East"
if(WEST)
string = "West"
if(!capitalize && string)
string = lowertext(string)
return string
//returns a direction flag based on the string passed to it
@@ -108,4 +108,4 @@
if(ATM_H2)
return GAS_HYDROGEN
else
return null
return null
@@ -120,7 +120,7 @@
"power" = use_power,
"volume_rate" = volume_rate,
"sigtype" = "status"
)
)
radio_connection.post_signal(src, signal)
@@ -387,8 +387,8 @@
update_icon()
playsound(src, 'sound/items/welder_pry.ogg', 50, 1)
user.visible_message(SPAN_NOTICE("\The [user] [welded ? "welds \the [src] shut" : "unwelds \the [src]"]."), \
SPAN_NOTICE("You [welded ? "weld \the [src] shut" : "unweld \the [src]"]."), \
"You hear welding.")
SPAN_NOTICE("You [welded ? "weld \the [src] shut" : "unweld \the [src]"]."), \
"You hear welding.")
else
to_chat(user, SPAN_NOTICE("You fail to complete the welding."))
else
@@ -342,8 +342,8 @@
welded = !welded
update_icon()
user.visible_message(SPAN_NOTICE("\The [user] [welded ? "welds \the [src] shut" : "unwelds \the [src]"]."), \
SPAN_NOTICE("You [welded ? "weld \the [src] shut" : "unweld \the [src]"]."), \
"You hear welding.")
SPAN_NOTICE("You [welded ? "weld \the [src] shut" : "unweld \the [src]"]."), \
"You hear welding.")
return TRUE
if(istype(W, /obj/item/melee/arm_blade))
@@ -69,7 +69,7 @@
for(var/datum/pipeline/line_member in line_members)
gases += line_member.air
for(var/datum/gas_mixture/air in gases)
volume += air.volume
+3 -3
View File
@@ -206,16 +206,16 @@
/datum/pipeline/proc/radiate_heat_to_space(surface, thermal_conductivity)
var/gas_density = air.total_moles/air.volume
thermal_conductivity *= min(gas_density / ( RADIATOR_OPTIMUM_PRESSURE/(R_IDEAL_GAS_EQUATION*GAS_CRITICAL_TEMPERATURE) ), 1) //mult by density ratio
// We only get heat from the star on the exposed surface area.
// If the HE pipes gain more energy from AVERAGE_SOLAR_RADIATION than they can radiate, then they have a net heat increase.
var/heat_gain = AVERAGE_SOLAR_RADIATION * (RADIATOR_EXPOSED_SURFACE_AREA_RATIO * surface) * thermal_conductivity
// Previously, the temperature would enter equilibrium at 26C or 294K.
// Only would happen if both sides (all 2 square meters of surface area) were exposed to sunlight. We now assume it aligned edge on.
// It currently should stabilise at 129.6K or -143.6C
heat_gain -= surface * STEFAN_BOLTZMANN_CONSTANT * thermal_conductivity * (air.temperature - COSMIC_RADIATION_TEMPERATURE) ** 4
air.add_thermal_energy(heat_gain)
if(network)
network.update = 1
+1 -1
View File
@@ -1388,7 +1388,7 @@
air_temporary.temperature = T20C
air_temporary.adjust_multi(GAS_OXYGEN, (start_pressure*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature), \
GAS_NITROGEN,(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
GAS_NITROGEN,(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
. = ..()
+1 -1
View File
@@ -35,4 +35,4 @@
//we don't want the silly text overlay!
/obj/item/paper/pamphlet/update_icon()
return
return
+2 -2
View File
@@ -21,11 +21,11 @@
// var/value = null
if (pos)
// No, don't do lowertext here, that breaks paths on linux
// No, don't do lowertext here, that breaks paths on linux
name = copytext(t, 1, pos)
// value = copytext(t, pos + 1)
else
// No, don't do lowertext here, that breaks paths on linux
// No, don't do lowertext here, that breaks paths on linux
name = t
if (!name)
+1 -1
View File
@@ -2,4 +2,4 @@
var/name
var/description = "Unga Dunga."
var/tag_icon //those icons should go in accent_tags.dmi
var/text_tag //Each accent should have a text tag. These are used in cases such as 4K monitors where tag icons cannot be displayed properly.
var/text_tag //Each accent should have a text tag. These are used in cases such as 4K monitors where tag icons cannot be displayed properly.
+3 -3
View File
@@ -34,20 +34,20 @@
description = "Found exclusively in Dionae hailing from the Unathi-Dominated world of Moghes, Sandsong is a distinct variation of Rootsong notable for having its tempo much more drawn out, with tones of higher pitches especially having a much more exaggerated sound. Dionae speaking with the Sandsong accent will typically hold certain speech patterns held by Unathi such as hissing out their Ss and difficulties pronouncing the letter X. "
tag_icon = "dionae_sandsong"
text_tag = "SDS"
/datum/accent/wastesong
name = ACCENT_WASTESONG
description = "Originating from the irradiated Moghes Wastes, Wastesong is an accent spoken by Dionae who found themselves being bathed in the Wastelands radiation, making them healthy and much more resilient than some of their other planet-bound brethren, but also giving them a slightly distinct accent notable for having a lower-pitched voice compared to regular Rootsong but also a much faster tempo. Much like Sandsong, Dionae with the Wasteland accent will typically carry similar speech patterns to Unathi such as hissing out their Ss."
tag_icon = "dionae_wastesong"
text_tag = "WES"
//Skrell influenced Accents
/datum/accent/wavesong
name = ACCENT_WAVESONG
description = "A variant of Rootsong originating from Diona born on Skrellian worlds, Wavesong is considered the general accent for Dionae hailing from the Nralakk Federation. While it shares many similarities with Rootsong, Wavesong sets itself apart by having a lower pitch and more drawn-out tempo in comparison. While not considered mandatory, many Dionae living in the Federation will adopt the accent due to it being generally more favored by the Federation, often granting those with the accent a higher social credit score."
tag_icon = "dionae_wavesong"
text_tag = "WAS"
/datum/accent/sunkensong
name = ACCENT_SUNKENSONG
description = "Sunkensong is a variant of Voidsong that is common for space-borne Dionae hailing from regions surrounding the Tri-Qyu Nebula. Known for it's lighter pitch and tone, along with it's consistent, even pacing for words, the accent is prevalent amongst Nralakk Federation Diona that originate from wild, voidbound gestalts. Dionae with Sunkensong may attempt to mimic Skrell accents in an attempt to replicate the more popular Starsong, with mixed results."
+1 -1
View File
@@ -89,6 +89,6 @@
/datum/accent/skrell/EUM
name = ACCENT_SKRELLEUM
description = "The Nral'Daaq accent draws from the accents of migrating Skrell from the Federation as well as elements of rootsong from the local Dionae population, creating a sing-song accent with \
melodic highs and lows. The accent has been compared to the Aweijiin accent, but it does not have the same reputation as it is not used by idols."
melodic highs and lows. The accent has been compared to the Aweijiin accent, but it does not have the same reputation as it is not used by idols."
tag_icon = "skrell_nraldaaq"
text_tag = "NDQ"
+29 -29
View File
@@ -1,39 +1,39 @@
/datum/accent/zora
name = ACCENT_ZORA
description = "Zo'rane is the modern day dialect of the Zo'ra Hive, composed of cheap Biesellite voice modulators that manage to sway most voices \
into a more gender neutral tone, while retaining a distinct alien dialect. To other Vaurcae, this accent is reminiscent of the authority the Zo'ra held - \
regal and noble. Their vocal augments stereotypically have difficulty, typically when producing sounds related to the letter 's', instead substituting with \
a harsh buzzing in the throat."
tag_icon = "zora"
text_tag = "ZOR"
name = ACCENT_ZORA
description = "Zo'rane is the modern day dialect of the Zo'ra Hive, composed of cheap Biesellite voice modulators that manage to sway most voices \
into a more gender neutral tone, while retaining a distinct alien dialect. To other Vaurcae, this accent is reminiscent of the authority the Zo'ra held - \
regal and noble. Their vocal augments stereotypically have difficulty, typically when producing sounds related to the letter 's', instead substituting with \
a harsh buzzing in the throat."
tag_icon = "zora"
text_tag = "ZOR"
/datum/accent/klax
name = ACCENT_KLAX
description = "K'laxane is the modern day dialect of the K'lax Hive. Primitive modulators manage to capture a similarity to the \
peasantry of the Izweski Hegemony on Moghes - however, they do not fully replicate it, retaining a more drawn out and dreamy tone. To other Vaurcae, this is \
a more subservient manner of speaking, akin to how Bound tend to draw out their thoughts - a common trait instilled in most vassal hives as a brand. Their \
vocal augments stereotypically have difficulty, typically when producing sounds related to the letter 's', instead substituting with a harsh buzzing in the \
throat - the K'lax experience less of this - no Unathi would be content listening to a Vaurca buzz incessantly when trying to hiss a sentence in the \
Hegemonic tongue."
tag_icon = "klax"
text_tag = "KLA"
name = ACCENT_KLAX
description = "K'laxane is the modern day dialect of the K'lax Hive. Primitive modulators manage to capture a similarity to the \
peasantry of the Izweski Hegemony on Moghes - however, they do not fully replicate it, retaining a more drawn out and dreamy tone. To other Vaurcae, this is \
a more subservient manner of speaking, akin to how Bound tend to draw out their thoughts - a common trait instilled in most vassal hives as a brand. Their \
vocal augments stereotypically have difficulty, typically when producing sounds related to the letter 's', instead substituting with a harsh buzzing in the \
throat - the K'lax experience less of this - no Unathi would be content listening to a Vaurca buzz incessantly when trying to hiss a sentence in the \
Hegemonic tongue."
tag_icon = "klax"
text_tag = "KLA"
/datum/accent/cthur
name = ACCENT_CTHUR
description = "C'thuric is the modern day dialect of the C'thur Hive, a sly and sneering take on the unyielding Nral'Malic. Other Vaurcae would associate this tone with the \
name = ACCENT_CTHUR
description = "C'thuric is the modern day dialect of the C'thur Hive, a sly and sneering take on the unyielding Nral'Malic. Other Vaurcae would associate this tone with the \
C'thur's infamous past deeds. Modulators are unfortunately still cheap, leading to a monotone method of speaking. \
Voices are also warped into being clear and concise, many C'thur adopting a blunt and to-the-point style when speaking casually. \
Their vocal augments stereotypically have difficulty, typically when producing sounds related to the letter 's', instead \
substituting with a harsh buzzing in the throat."
tag_icon = "cthur"
text_tag = "CTH"
substituting with a harsh buzzing in the throat."
tag_icon = "cthur"
text_tag = "CTH"
/datum/accent/liidra
name = ACCENT_LIIDRA
description = "The Lii'dra speech, as understood by those that have heard the Hivemind and live to tell, is characterized by a monotonous voice that sounds \
even more robotic than the modulators used by other Hives. It is believed to be a modified technology reverse engineered from stolen \
Zo'rane modulators. While, with its flaws, the Zo'ra accent might sound quirky to some, it is often said that this is to add more personality to each \
individual. Since the Lii'dra do not think of themselves as individuals, these variations were deemed useless. The Connected will often speak of themselves in plural, while the Disconnected \
are prone to using the first person when referring to others."
tag_icon = "liidra"
text_tag = "LII"
name = ACCENT_LIIDRA
description = "The Lii'dra speech, as understood by those that have heard the Hivemind and live to tell, is characterized by a monotonous voice that sounds \
even more robotic than the modulators used by other Hives. It is believed to be a modified technology reverse engineered from stolen \
Zo'rane modulators. While, with its flaws, the Zo'ra accent might sound quirky to some, it is often said that this is to add more personality to each \
individual. Since the Lii'dra do not think of themselves as individuals, these variations were deemed useless. The Connected will often speak of themselves in plural, while the Disconnected \
are prone to using the first person when referring to others."
tag_icon = "liidra"
text_tag = "LII"
@@ -1,15 +1,15 @@
/datum/citizenship/eum
name = CITIZENSHIP_EUM
description = "Initially discovered by Skrell probes in 2342, Epsilon Ursea Minoris, or generally referred \
to as EUM, is a habitable world home to multiple Dionae civilizations and clusters. While not the homeworld \
of the species, EUM is the largest-known world to have been colonized exclusively by Dionae without contact \
or help from outside species, being home to the Dionae for thousands of years prior to discovery."
to as EUM, is a habitable world home to multiple Dionae civilizations and clusters. While not the homeworld \
of the species, EUM is the largest-known world to have been colonized exclusively by Dionae without contact \
or help from outside species, being home to the Dionae for thousands of years prior to discovery."
job_species_blacklist = list(
"Consular Officer" = list(
SPECIES_HUMAN,
SPECIES_HUMAN_OFFWORLD,
SPECIES_SKRELL,
SPECIES_SKRELL,
SPECIES_IPC,
SPECIES_IPC_BISHOP,
SPECIES_IPC_G1,
+1 -1
View File
@@ -79,7 +79,7 @@
name = CITIZENSHIP_SOL
description = "Once considered a juggernaut in terms of cultural and political influence, the Alliance of Sovereign Solarian Nations (ASSN), commonly referred to as the Sol Alliance, has greatly declined in the wake of the phoron crisis and the Solarian collapse of 2462. \
Once the spur's largest interstellar power, in recent times the Sol Alliance has retreated to its wealthy so-called Jewel Worlds and inner colonies, with its reach barely extending to a few select middle colonies. \
However, it still controls the largest human military in the entire spur, and their cooperation with Einstein Engines and the Nralakk Federation has contributed to it gradually regaining some of its pre-collapse influence and power. \
However, it still controls the largest human military in the entire spur, and their cooperation with Einstein Engines and the Nralakk Federation has contributed to it gradually regaining some of its pre-collapse influence and power. \
Presently ruled by a military junta that is gradually giving way to civilian control, the Alliance is also generally xenophobic, and most non-humans find themselves discriminated against in Solarian territory. \
Though much of its former possessions are now occupied by warlord statelets and other interstellar powers, the Alliance still maintains a revanchist outlook, refusing to relinquish its claims to its lost territories."
consular_outfit = /datum/outfit/job/representative/consular/sol
@@ -19,28 +19,28 @@
possible_accents = list(ACCENT_ROOTSONG, ACCENT_VOIDSONG, ACCENT_ANCIENTSONG, ACCENT_IRONSONG, ACCENT_WAVESONG, ACCENT_SUNKENSONG, ACCENT_STARSONG)
possible_citizenships = list(CITIZENSHIP_NRALAKK, CITIZENSHIP_EUM, CITIZENSHIP_BIESEL, CITIZENSHIP_COALITION)
possible_religions = list(RELIGION_ETERNAL, RELIGION_MADA, RELIGION_GLEANERS, RELIGION_OTHER, RELIGION_NONE)
/singleton/origin_item/origin/united
name = "United"
desc = "Widely considered the capital of the CT-EUM, the city-state of United is the newest independent nation, formed alongside the formation of the CT-EUM, to act as a neutral meeting place for the Council of Delegates, and to represent the central governing body, as well as acting as a mediator between the two other city-states should a conflict arise. United is the second most-visited city on EUM after Nral'Daaq, and has influence from both off-world and the other city-states in its structure, and operation."
possible_accents = list(ACCENT_ROOTSONG, ACCENT_VOIDSONG, ACCENT_ANCIENTSONG, ACCENT_IRONSONG, ACCENT_WAVESONG, ACCENT_SUNKENSONG, ACCENT_STARSONG)
possible_citizenships = list(CITIZENSHIP_NRALAKK, CITIZENSHIP_EUM, CITIZENSHIP_BIESEL, CITIZENSHIP_COALITION)
possible_religions = list(RELIGION_ETERNAL, RELIGION_MADA, RELIGION_GLEANERS, RELIGION_OTHER, RELIGION_NONE)
/singleton/origin_item/origin/gleaners
name = "Gleaners Of Bliss"
desc = "The Gleaners of Bliss is a large, religious city-state that is known for its imperialistic attitude. The Gleaners emphasize harmony and equality, but are not above making sure that it aligns to their specific ideals, however. The Gleaners are among the oldest of the city-states and were one of the first to put forth the idea of the CT-EUM on first contact. Before, and during, its inception, the Gleaners have expanded their influence on numerous other city-states, both in and out of the CT-EUM. Now, the Gleaners are the most outspoken proponents of expanding the CT-EUM offworld. Their emphasis on equality and harmony however, are criticized because of this, and the Gleaners are often seen as a very hypocritical city-state."
possible_accents = list(ACCENT_ROOTSONG, ACCENT_VOIDSONG, ACCENT_ANCIENTSONG, ACCENT_IRONSONG)
possible_citizenships = list(CITIZENSHIP_NRALAKK, CITIZENSHIP_EUM, CITIZENSHIP_BIESEL, CITIZENSHIP_COALITION)
possible_religions = list(RELIGION_ETERNAL, RELIGION_GLEANERS, RELIGION_OTHER, RELIGION_NONE)
/singleton/origin_item/origin/nraldaaq
name = "Nral'Daaq"
desc = "Playing host to the vast majority of the planet's non-dionae population, Nral'Daaq is a city-state under the CT-EUM that is known for being the planet's hub of off-world trading, as well as for its quite diverse majority-skrell population, with both Pro-Federation and Anti-Federation Skrell calling the city home. Due to the city's border with the sea, Nral'Daaq is also a quite popular trading spot for the Ekane, with the vast majority of their goods ending up in the city to be later resold off-world. "
possible_accents = list(ACCENT_ROOTSONG, ACCENT_VOIDSONG, ACCENT_ANCIENTSONG, ACCENT_IRONSONG, ACCENT_WAVESONG, ACCENT_SUNKENSONG, ACCENT_STARSONG)
possible_citizenships = list(CITIZENSHIP_NRALAKK, CITIZENSHIP_EUM, CITIZENSHIP_BIESEL, CITIZENSHIP_COALITION)
possible_religions = list(RELIGION_ETERNAL, RELIGION_MADA, RELIGION_GLEANERS, RELIGION_QEBLAK, RELIGION_WEISHII, RELIGION_SUURKA, RELIGION_KIRGUL, RELIGION_OTHER, RELIGION_NONE)
/singleton/origin_item/origin/mada
name = "Mada"
desc = "Primarily located in the great forests of the Mede Region on EUM, The Mada are a semi-independent nation under the CT-EUM known for their isolationist beliefs and their religious worship of nature, with a focus on plant life in particular. Rather than all be situated in one singular city, the Mada are fairly spread out in the region, inhabiting a myriad of small settlements. The Capital, Elder Mada, is the largest settlement under the Mada, but not by a large margin."
@@ -54,7 +54,7 @@
possible_accents = list(ACCENT_ROOTSONG, ACCENT_VOIDSONG, ACCENT_ANCIENTSONG, ACCENT_IRONSONG)
possible_citizenships = list(CITIZENSHIP_NRALAKK, CITIZENSHIP_EUM, CITIZENSHIP_BIESEL, CITIZENSHIP_COALITION)
possible_religions = list(RELIGION_ETERNAL, RELIGION_OTHER, RELIGION_NONE)
/singleton/origin_item/origin/eumstation
name = "Celestial Station"
desc = "The first and largest space-bound outpost established by the CT-EUM government, Celestial Station is notable as a major trading hub for EUM's nations, often being used as a large marketplace for potential sellers and buyers from both EUM and elsewhere to do business, as well as a hub for mining operations undertaken on nearby asteroids. While nominally under the direct control of the CT-EUM federal government, Celestial Station has as of late begun to make efforts to gain independence away from the Federal government's direct control as a colony, instead attempting to become a semi-independent city-state under the CT-EUM government much like the other city-states under it. "
@@ -62,7 +62,7 @@
possible_accents = list(ACCENT_ROOTSONG, ACCENT_VOIDSONG, ACCENT_ANCIENTSONG, ACCENT_IRONSONG, ACCENT_WAVESONG, ACCENT_SUNKENSONG, ACCENT_STARSONG)
possible_citizenships = list(CITIZENSHIP_NRALAKK, CITIZENSHIP_EUM, CITIZENSHIP_BIESEL, CITIZENSHIP_COALITION)
possible_religions = list(RELIGION_ETERNAL, RELIGION_MADA, RELIGION_GLEANERS, RELIGION_OTHER, RELIGION_NONE)
/singleton/origin_item/origin/eumminor
name = "Minor City State"
desc = "From a minor city-state under the CT-EUM. "
@@ -6,7 +6,7 @@
/singleton/origin_item/origin/b_block,
/singleton/origin_item/origin/c_block
)
/singleton/origin_item/origin/a_block
name = "A-block"
desc = "The original Dionae of the ship, Dionae in A-Block serves as the third-highest rank in the ship's hierarchy and is considered to be some of the most efficient and experienced workers the ship has to offer. While they tend not to look down upon the other blocks for their lack of experience, they do consider themselves to be better workers. As a result of this A-block has actually begun to see a lack of personnel due to so many signing on to leave the ship and work elsewhere within Hephestatus as a way to show off the efficiency of Dionae from the Narrows."
@@ -1,38 +1,38 @@
/singleton/origin_item/culture/biesellite
name = "Biesellite"
desc = "Relatively new compared to other cultures across the Orion Spur, the Biesellite culture was forged from the fire borne by its independence. Since its inception, it has continued to evolve, especially with the recent expansion of the Republic of Biesel into the Solarian Alliance's Outer Ring after its abandonment during the collapse. Despite its recent acquisition, the Corporate Reconstruction Zone as it is now known has begun adjusting and blending their own cultures into the Biesellite way of life, those not bending the knee and aligning are often bastions of insurgency and unrest."
possible_origins = list(
/singleton/origin_item/origin/biesel,
/singleton/origin_item/origin/new_gibson,
/singleton/origin_item/origin/reade,
/singleton/origin_item/origin/valkyrie
)
name = "Biesellite"
desc = "Relatively new compared to other cultures across the Orion Spur, the Biesellite culture was forged from the fire borne by its independence. Since its inception, it has continued to evolve, especially with the recent expansion of the Republic of Biesel into the Solarian Alliance's Outer Ring after its abandonment during the collapse. Despite its recent acquisition, the Corporate Reconstruction Zone as it is now known has begun adjusting and blending their own cultures into the Biesellite way of life, those not bending the knee and aligning are often bastions of insurgency and unrest."
possible_origins = list(
/singleton/origin_item/origin/biesel,
/singleton/origin_item/origin/new_gibson,
/singleton/origin_item/origin/reade,
/singleton/origin_item/origin/valkyrie
)
/singleton/origin_item/origin/biesel
name = "Biesel"
desc = "One of the first colonies outside of the Sol System, Biesel has since flourished into an economic powerhouse within the greater Orion Spur. There exists no singular culture, but instead, a loose melting pot of multiculturalism exists where the only definable trait of Biesellite culture is that it doesn't have any. Most of Tau Ceti's inhabitants reside within Mendell City, a large metropolis that stretches across the plains of Biesel, and has various districts each with its own culture."
possible_accents = list(ACCENT_CETI)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
name = "Biesel"
desc = "One of the first colonies outside of the Sol System, Biesel has since flourished into an economic powerhouse within the greater Orion Spur. There exists no singular culture, but instead, a loose melting pot of multiculturalism exists where the only definable trait of Biesellite culture is that it doesn't have any. Most of Tau Ceti's inhabitants reside within Mendell City, a large metropolis that stretches across the plains of Biesel, and has various districts each with its own culture."
possible_accents = list(ACCENT_CETI)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
/singleton/origin_item/origin/new_gibson
name = "New Gibson"
desc = "New Gibson has suffered many tragedies throughout its history, leading to a hardened, communal society. While the multiculturalism that exists within the Republic of Biesel has also affected New Gibsonites, they are still far more reliant on their colonial roots compared to their Biesellite counterparts."
important_information = "Due to the insular nature of the Undirstads of New Gibson, <b>characters hailing from them must have names and appearances consistent with the Nordic regions of Earth, the original colonists of the Undirstads.</b> Only those born in the Undirstads may take the Undirstad accent. This is enforceable by server moderation and admins."
possible_accents = list(ACCENT_GIBSON_OVAN, ACCENT_GIBSON_UNDIR)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
name = "New Gibson"
desc = "New Gibson has suffered many tragedies throughout its history, leading to a hardened, communal society. While the multiculturalism that exists within the Republic of Biesel has also affected New Gibsonites, they are still far more reliant on their colonial roots compared to their Biesellite counterparts."
important_information = "Due to the insular nature of the Undirstads of New Gibson, <b>characters hailing from them must have names and appearances consistent with the Nordic regions of Earth, the original colonists of the Undirstads.</b> Only those born in the Undirstads may take the Undirstad accent. This is enforceable by server moderation and admins."
possible_accents = list(ACCENT_GIBSON_OVAN, ACCENT_GIBSON_UNDIR)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
/singleton/origin_item/origin/reade
name = "Reade"
desc = "Outposts dot the dozens of moons found in orbit of Reade, many dedicated to mineral extraction and refinement. However, within the upper atmosphere of the gas giant the engineering feat that is the Anemostrovilos exists. The gigantic floating metropolis has its industry focused on the extraction of important gases such as Hydrogen and Helium-3 required to fuel the Orion Spur's warpdrives and thrusters. Nearly anyone can be found in the outposts either in the upper atmosphere of Reade or across its many moons."
possible_accents = list(ACCENT_CETI, ACCENT_GIBSON_OVAN, ACCENT_GIBSON_UNDIR, ACCENT_VALKYRIE)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
name = "Reade"
desc = "Outposts dot the dozens of moons found in orbit of Reade, many dedicated to mineral extraction and refinement. However, within the upper atmosphere of the gas giant the engineering feat that is the Anemostrovilos exists. The gigantic floating metropolis has its industry focused on the extraction of important gases such as Hydrogen and Helium-3 required to fuel the Orion Spur's warpdrives and thrusters. Nearly anyone can be found in the outposts either in the upper atmosphere of Reade or across its many moons."
possible_accents = list(ACCENT_CETI, ACCENT_GIBSON_OVAN, ACCENT_GIBSON_UNDIR, ACCENT_VALKYRIE)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
/singleton/origin_item/origin/valkyrie
name = "Valkyrie"
desc = "Lighting up the night sky of Biesel, Valkyrie is an incredibly important port of trade within Tau Ceti, and hosts a significant amount of megacorporate facilities within its orbit, on its surface, as well as deep within the canyons and crevices. Valkyrie has not been spared by the multiculturalism that has dispersed across Tau Ceti, and actively encourages it through their incredibly relaxed immigration policies that allow for a remarkable amount of diversity to exist."
possible_accents = list(ACCENT_VALKYRIE)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
name = "Valkyrie"
desc = "Lighting up the night sky of Biesel, Valkyrie is an incredibly important port of trade within Tau Ceti, and hosts a significant amount of megacorporate facilities within its orbit, on its surface, as well as deep within the canyons and crevices. Valkyrie has not been spared by the multiculturalism that has dispersed across Tau Ceti, and actively encourages it through their incredibly relaxed immigration policies that allow for a remarkable amount of diversity to exist."
possible_accents = list(ACCENT_VALKYRIE)
possible_citizenships = list(CITIZENSHIP_BIESEL)
possible_religions = RELIGIONS_BIESEL
@@ -65,7 +65,7 @@
origin_traits_descriptions = list("have a small resistance to radiation", "are more sensitive to bright lights")
/singleton/origin_item/origin/gadpathur/on_apply(var/mob/living/carbon/human/H)
H.AddComponent(/datum/component/armor, list(rad = ARMOR_RAD_MINOR))
H.AddComponent(/datum/component/armor, list(rad = ARMOR_RAD_MINOR))
/singleton/origin_item/origin/gadpathur_exile
name = "Gadpathurian Exile"
@@ -77,7 +77,7 @@
origin_traits_descriptions = list("have a small resistance to radiation", "are more sensitive to bright lights")
/singleton/origin_item/origin/gadpathur_exile/on_apply(var/mob/living/carbon/human/H)
H.AddComponent(/datum/component/armor, list(rad = ARMOR_RAD_MINOR))
H.AddComponent(/datum/component/armor, list(rad = ARMOR_RAD_MINOR))
/singleton/origin_item/origin/assunzione
name = "Republic of Assunzione"
+43 -43
View File
@@ -1,49 +1,49 @@
/datum/religion/eternal
name = RELIGION_ETERNAL
description = "Followers of The Eternal believe that a primordial entity exists in Light, Energy and Essence - which the Dionae are the embodiment of. \
They believe that the Dionae were made to ensure that all things born from the stars return to stars, eventually. Before they may return the Dionae must devour as much knowledge \
and biomass as they can, growing exponentially until they reach the mythical Titan form, becoming a star once more. Transcended into a star, the Dionae will emit light and energy \
until they die, at which point their essence will spread across the void to birth new Dionae. It is in this way that the eternal cycle is achieved. Scholars of the Eternal link \
this to the very real potential outcome of Titan form Dionae which theoretically could grow to such mass as to collapse into a star, thus giving off light and energy before \
eventually going supernova and expelling matter or essence across the cosmos."
book_name = "book of the eternal"
book_sprite = "eternal"
name = RELIGION_ETERNAL
description = "Followers of The Eternal believe that a primordial entity exists in Light, Energy and Essence - which the Dionae are the embodiment of. \
They believe that the Dionae were made to ensure that all things born from the stars return to stars, eventually. Before they may return the Dionae must devour as much knowledge \
and biomass as they can, growing exponentially until they reach the mythical Titan form, becoming a star once more. Transcended into a star, the Dionae will emit light and energy \
until they die, at which point their essence will spread across the void to birth new Dionae. It is in this way that the eternal cycle is achieved. Scholars of the Eternal link \
this to the very real potential outcome of Titan form Dionae which theoretically could grow to such mass as to collapse into a star, thus giving off light and energy before \
eventually going supernova and expelling matter or essence across the cosmos."
book_name = "book of the eternal"
book_sprite = "eternal"
/datum/religion/ksshr
name = RELIGION_KSSHR
description = "The Ksshr, also known as the Enlightened, is a religious sect on Xrim known for their complete rejection of The First Consciousness, instead of being an agnostic \
sect that centers around working together to create a better future, as well as the advancement of technology and understanding how the universe works. The Ksshr faith is the \
primary religion of Xrim, with most of its inhabitants considering themselves a part of the religion. The Nralakk Federation does encourage practicing the faith amongst the \
population so long as they continue to reject The First Consciousness, as well as stay away from the teachings of the Shrkh."
book_name = "ksshr codex"
book_sprite = "holybook"
name = RELIGION_KSSHR
description = "The Ksshr, also known as the Enlightened, is a religious sect on Xrim known for their complete rejection of The First Consciousness, instead of being an agnostic \
sect that centers around working together to create a better future, as well as the advancement of technology and understanding how the universe works. The Ksshr faith is the \
primary religion of Xrim, with most of its inhabitants considering themselves a part of the religion. The Nralakk Federation does encourage practicing the faith amongst the \
population so long as they continue to reject The First Consciousness, as well as stay away from the teachings of the Shrkh."
book_name = "ksshr codex"
book_sprite = "holybook"
/datum/religion/shrkh
name = RELIGION_SHRKH
description = "The Shrkh, or 'Scorned' as they call themselves, continue to follow the age-old tradition of worshipping Glorsh-Omega. They believe that Glorsh-Omega planted them \
on the planet intentionally, granting them a blissful haven via the use of technology. Once the prominent and only religion on the planet, Shrkh-ism was quickly displaced when \
Skrell explorers crashlanded and their memories, thoughts, emotions, everything was consumed, and doubt was first seeded in the minds of all Dionae on Xrim. The premise \
behind the religion itself is simple; revere, help sustain and maintain synthetic life. As synthetic life brought dionae into this haven, so too shall it be preserved. In the \
minds of the Shrkh worshippers, the Skrell that brought Ksshr to the planet were misguided. To the Shrkh, the X'Lu'oa was something that never happened, a myth made up by \
the Federation to indoctrinate its population into its anti-synthetic and authoritarian beliefs. \
\
Note that due to their beliefs, those that are openly members of the faith are barred from command, machinist, and chaplain positions. They are also completely barred from \
working for Zeng-Hu due to the megacorporations ties with the Federation."
book_name = "shrkh codex"
book_sprite = "holybook"
name = RELIGION_SHRKH
description = "The Shrkh, or 'Scorned' as they call themselves, continue to follow the age-old tradition of worshipping Glorsh-Omega. They believe that Glorsh-Omega planted them \
on the planet intentionally, granting them a blissful haven via the use of technology. Once the prominent and only religion on the planet, Shrkh-ism was quickly displaced when \
Skrell explorers crashlanded and their memories, thoughts, emotions, everything was consumed, and doubt was first seeded in the minds of all Dionae on Xrim. The premise \
behind the religion itself is simple; revere, help sustain and maintain synthetic life. As synthetic life brought dionae into this haven, so too shall it be preserved. In the \
minds of the Shrkh worshippers, the Skrell that brought Ksshr to the planet were misguided. To the Shrkh, the X'Lu'oa was something that never happened, a myth made up by \
the Federation to indoctrinate its population into its anti-synthetic and authoritarian beliefs. \
\
Note that due to their beliefs, those that are openly members of the faith are barred from command, machinist, and chaplain positions. They are also completely barred from \
working for Zeng-Hu due to the megacorporations ties with the Federation."
book_name = "shrkh codex"
book_sprite = "holybook"
/datum/religion/mada
name = RELIGION_MADA
description = "The Mada religion, translated as Maraka, is practiced by the majority of Mada citizens and has two core tenants central to its practitioners; Spirits are \
created through the continued absorption of sunlight, the more sunlight absorbed the stronger these spirits become, chlorophyll and anything capable of producing it are \
considered blessed, as they have an increased potency when it comes to creating powerful spirits, doubly so if nurtured and protected. This means that most forms of plant \
life are considered holy to the Maraka religion, harming or killing a developing or still-living plant is considered taboo, but once naturally dead there's no issue with \
consuming it or utilizing it for any other purpose."
book_name = "maraka writ"
book_sprite = "holybook"
name = RELIGION_MADA
description = "The Mada religion, translated as Maraka, is practiced by the majority of Mada citizens and has two core tenants central to its practitioners; Spirits are \
created through the continued absorption of sunlight, the more sunlight absorbed the stronger these spirits become, chlorophyll and anything capable of producing it are \
considered blessed, as they have an increased potency when it comes to creating powerful spirits, doubly so if nurtured and protected. This means that most forms of plant \
life are considered holy to the Maraka religion, harming or killing a developing or still-living plant is considered taboo, but once naturally dead there's no issue with \
consuming it or utilizing it for any other purpose."
book_name = "maraka writ"
book_sprite = "holybook"
/datum/religion/gleaners
name = RELIGION_GLEANERS
description = "A faith focusing on the worship of the sun and stars originating from EUM."
book_name = "lights accord writ"
book_sprite = "holybook"
name = RELIGION_GLEANERS
description = "A faith focusing on the worship of the sun and stars originating from EUM."
book_name = "lights accord writ"
book_sprite = "holybook"
+7 -7
View File
@@ -28,10 +28,10 @@
/datum/religion/autakh
name = RELIGION_AUTAKH
description = "Coming from radicalized and sidelined views of former warriors, the Aut'akh are a religious commune of cybernetically-augmented Unathi. They live in the relative safety \
of their communes scattered across various towns, planets, and systems, though have yet to truly attain their perfect leaderless society, as their own supposedly-defeated prejudice \
still runs in quiet circles within communes. Meanwhile, society often rebukes and ridicules these fanatical trans-speciests. Their lives are gently guided by the shamans or \"paradigms,\" \
which sometimes act as the biomechanical engineers of these groups. The Aut'akh believe that spirits inhabit all things, much like the Th'akh religion. However, they also believe the flesh's \
weakness hampers the soul, thus evil spirits can manipulate people's minds and souls to commit evil acts. These malicious spirits are given power within a being when the person succumbs to greed, \
anger, or other emotional vices. Aut'akh preach that the Contact War was the result of sinta being so misled by evil spirits that they brought the world to ruin, and all power, whether a government, \
religion, or corporation, is inherently corrupt due to the influence of evil spirits."
book_name = "Rituals and Regiments of the Ancient Mador"
of their communes scattered across various towns, planets, and systems, though have yet to truly attain their perfect leaderless society, as their own supposedly-defeated prejudice \
still runs in quiet circles within communes. Meanwhile, society often rebukes and ridicules these fanatical trans-speciests. Their lives are gently guided by the shamans or \"paradigms,\" \
which sometimes act as the biomechanical engineers of these groups. The Aut'akh believe that spirits inhabit all things, much like the Th'akh religion. However, they also believe the flesh's \
weakness hampers the soul, thus evil spirits can manipulate people's minds and souls to commit evil acts. These malicious spirits are given power within a being when the person succumbs to greed, \
anger, or other emotional vices. Aut'akh preach that the Contact War was the result of sinta being so misled by evil spirits that they brought the world to ruin, and all power, whether a government, \
religion, or corporation, is inherently corrupt due to the influence of evil spirits."
book_name = "Rituals and Regiments of the Ancient Mador"
+4 -4
View File
@@ -80,9 +80,9 @@
description = "%BOSSNAME is in need of a bundle of fresh fruit. Send your best!"
required_count = 12
random_count = 3
produce_picks = list(/datum/seed/tomato,
/datum/seed/berry,
/datum/seed/apple,
produce_picks = list(/datum/seed/tomato,
/datum/seed/berry,
/datum/seed/apple,
/datum/seed/grapes,
/datum/seed/banana,
/datum/seed/watermelon,
@@ -105,4 +105,4 @@
description = "%BOSSNAME is in need of some fresh tobacco leaves. Send your best!"
required_count = 10
random_count = 2
produce_picks = list(/datum/seed/tobacco)
produce_picks = list(/datum/seed/tobacco)
+1 -1
View File
@@ -34,7 +34,7 @@
/datum/bounty/item/phoron_sheet/New()
..()
required_count = round(required_count, 10)
//Overwrite the normal price randomization because the random_count is so high. There would be absolutely nuts price fluctuation.
//Overwrite the normal price randomization because the random_count is so high. There would be absolutely nuts price fluctuation.
reward = round(rand(reward_low, reward_high), 100)
/datum/bounty/item/phoron_sheet/ship(var/obj/item/stack/material/phoron/O)
+16 -16
View File
@@ -1,30 +1,30 @@
/* How it works:
The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored.
The loop only checks contents of storage types, see supply.dm shuttle code.
The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored.
The loop only checks contents of storage types, see supply.dm shuttle code.
Each object in the loop is checked for applies_to() of various export datums, except the invalid ones.
Objects on shutlle floor are checked only against shuttle_floor = TRUE exports.
Each object in the loop is checked for applies_to() of various export datums, except the invalid ones.
Objects on shutlle floor are checked only against shuttle_floor = TRUE exports.
If applies_to() returns TRUE, sell_object() is called on object and checks against exports are stopped for this object.
sell_object() must add object amount and cost to export's total_cost and total_amount.
If applies_to() returns TRUE, sell_object() is called on object and checks against exports are stopped for this object.
sell_object() must add object amount and cost to export's total_cost and total_amount.
When all the shuttle objects are looped, export cycle is over. The shuttle calls total_printout() for each valid export.
If total_printout() returns something, the export datum's total_cost is added to cargo credits, then export_end() is called to reset total_cost and total_amount.
When all the shuttle objects are looped, export cycle is over. The shuttle calls total_printout() for each valid export.
If total_printout() returns something, the export datum's total_cost is added to cargo credits, then export_end() is called to reset total_cost and total_amount.
*/
/* The rule in figuring out item export cost:
Export cost of goods in the shipping crate must be always equal or lower than:
packcage cost - crate cost - manifest cost
Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr.
This is to avoid easy cargo points dupes.
Export cost of goods in the shipping crate must be always equal or lower than:
packcage cost - crate cost - manifest cost
Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr.
This is to avoid easy cargo points dupes.
Credit dupes that require a lot of manual work shouldn't be removed, unless they yield too much profit for too little work.
For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass:
For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass:
100 glass + 50 metal -> 100 reinforced glass
(1500cr -> 1600cr)
100 glass + 50 metal -> 100 reinforced glass
(1500cr -> 1600cr)
then the player gets the profit from selling his own wasted time.
then the player gets the profit from selling his own wasted time.
*/
/datum/controller/subsystem/cargo/proc/export_item_and_contents(atom/movable/AM, contraband, emagged, dry_run=FALSE)
var/sold_str = ""
@@ -119,7 +119,7 @@
dat += "<b>Religion:</b> <a href='?src=\ref[src];religion=1'>[pref.religion]</a><br/>"
dat += "<b>Accent:</b> <a href='?src=\ref[src];accent=1'>[pref.accent]</a><br/>"
. = dat.Join()
/datum/category_item/player_setup_item/origin/OnTopic(href, href_list, user)
var/datum/species/S = all_species[pref.species]
if(href_list["open_culture_menu"])
+6 -6
View File
@@ -806,12 +806,12 @@
update_clothing_icon()
/obj/item/clothing/mask/proc/adjust_sprites()
if(hanging)
icon_state = "[icon_state]down"
item_state = "[item_state]down"
else
icon_state = initial(icon_state)
item_state = initial(item_state)
if(hanging)
icon_state = "[icon_state]down"
item_state = "[item_state]down"
else
icon_state = initial(icon_state)
item_state = initial(item_state)
/obj/item/clothing/mask/proc/lower_message(mob/user)
user.visible_message("<b>[user]</b> pulls \the [src] down to hang around their neck.", SPAN_NOTICE("You pull \the [src] down to hang around your neck."))
+3 -3
View File
@@ -70,7 +70,7 @@
build_from_parts = TRUE
worn_overlay = "over"
slot_flags = SLOT_EARS | SLOT_TWOEARS
slot = ACCESSORY_SLOT_HEAD
slot = ACCESSORY_SLOT_HEAD
/obj/item/clothing/accessory/ear_warmers/attack_hand(mob/user)
if(ishuman(user))
@@ -83,9 +83,9 @@
qdel(OE)
..()
/obj/item/clothing/accessory/ear_warmers/update_clothing_icon()
if (ismob(src.loc))
var/mob/M = src.loc
M.update_inv_l_ear()
M.update_inv_r_ear()
M.update_inv_r_ear()
+15 -15
View File
@@ -1,24 +1,24 @@
/obj/item/clothing/ears/bulwark
name = "bulwark horn wear"
desc = "Some stuff worn by Bulwarks to adorn their horns."
icon = 'icons/obj/vaurca_items.dmi'
sprite_sheets = list(
name = "bulwark horn wear"
desc = "Some stuff worn by Bulwarks to adorn their horns."
icon = 'icons/obj/vaurca_items.dmi'
sprite_sheets = list(
BODYTYPE_VAURCA_BULWARK = 'icons/mob/species/bulwark/horns.dmi'
)
w_class = ITEMSIZE_TINY
slot_flags = SLOT_HEAD | SLOT_EARS
species_restricted = list(BODYTYPE_VAURCA_BULWARK)
w_class = ITEMSIZE_TINY
slot_flags = SLOT_HEAD | SLOT_EARS
species_restricted = list(BODYTYPE_VAURCA_BULWARK)
/obj/item/clothing/ears/bulwark/get_ear_examine_text(var/mob/user, var/ear_text = "left")
return "around [user.get_pronoun("his")] horns"
return "around [user.get_pronoun("his")] horns"
/obj/item/clothing/ears/bulwark/get_head_examine_text(var/mob/user)
return "around [user.get_pronoun("his")] horns"
return "around [user.get_pronoun("his")] horns"
/obj/item/clothing/ears/bulwark/rings
name = "bulwark horn rings"
desc = "Rings worn by Bulwarks to decorate their horns."
icon_state = "horn_rings"
item_state = "horn_rings"
drop_sound = 'sound/items/drop/accessory.ogg'
pickup_sound = 'sound/items/pickup/accessory.ogg'
name = "bulwark horn rings"
desc = "Rings worn by Bulwarks to decorate their horns."
icon_state = "horn_rings"
item_state = "horn_rings"
drop_sound = 'sound/items/drop/accessory.ogg'
pickup_sound = 'sound/items/pickup/accessory.ogg'
+1 -1
View File
@@ -602,7 +602,7 @@
name = "dominian consular officer's dress cap"
desc = "A quite fashionable cap issued to the members of His Majesty's Diplomatic Service."
desc_extended = "His Majesty's Diplomatic Service - as with much of the Empire tends to be dominated by the great houses, though the Service also employs many \
commoners - as long as they can pass the rigorous examinations required to become a full member of the Diplomatic Service."
commoners - as long as they can pass the rigorous examinations required to become a full member of the Diplomatic Service."
icon = 'icons/clothing/head/dominia_consular_cap.dmi'
icon_state = "dominia_consular_cap"
item_state = "dominia_consular_cap"
+53 -53
View File
@@ -1,80 +1,80 @@
/obj/item/clothing/accessory/dressshirt/skrell
desc = "A formal wetshirt in Skrell style."
icon = 'icons/clothing/under/shirts/skrell_casual.dmi'
desc = "A formal wetshirt in Skrell style."
icon = 'icons/clothing/under/shirts/skrell_casual.dmi'
/obj/item/clothing/accessory/dressshirt/skrell/ocean
name = "ocean formal wetshirt"
desc = "This wetshirt is meant to resemble the waves of Qerrbalak's homeworld. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "ocean_dressshirt"
item_state = "ocean_dressshirt"
name = "ocean formal wetshirt"
desc = "This wetshirt is meant to resemble the waves of Qerrbalak's homeworld. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "ocean_dressshirt"
item_state = "ocean_dressshirt"
/obj/item/clothing/accessory/dressshirt/skrell/maelstrom
name = "maelstrom formal wetshirt"
desc = "This ferocious wetshirt resembles that of a maelstrom; a common occurance on Skrell planets. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "maelstrom_dressshirt"
item_state = "maelstrom_dressshirt"
name = "maelstrom formal wetshirt"
desc = "This ferocious wetshirt resembles that of a maelstrom; a common occurance on Skrell planets. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "maelstrom_dressshirt"
item_state = "maelstrom_dressshirt"
/obj/item/clothing/accessory/dressshirt/skrell/reef
name = "reef formal wetshirt"
desc = "This slightly tacky wetshirt resembles the coral reefs found throughout Nralakk space. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "reef_dressshirt"
item_state = "reef_dressshirt"
name = "reef formal wetshirt"
desc = "This slightly tacky wetshirt resembles the coral reefs found throughout Nralakk space. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "reef_dressshirt"
item_state = "reef_dressshirt"
/obj/item/clothing/accessory/tshirt/skrell
icon = 'icons/clothing/under/shirts/skrell_casual.dmi'
desc = "A wetshirt in Skrell style."
contained_sprite = TRUE
icon = 'icons/clothing/under/shirts/skrell_casual.dmi'
desc = "A wetshirt in Skrell style."
contained_sprite = TRUE
/obj/item/clothing/accessory/tshirt/skrell/ocean
name = "ocean wetshirt"
desc = "This wetshirt is meant to resemble the waves of Qerrbalak's homeworld. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "ocean_tee"
item_state = "ocean_tee"
name = "ocean wetshirt"
desc = "This wetshirt is meant to resemble the waves of Qerrbalak's homeworld. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "ocean_tee"
item_state = "ocean_tee"
/obj/item/clothing/accessory/tshirt/skrell/maelstrom
name = "maelstrom wetshirt"
desc = "This ferocious wetshirt resembles that of a maelstrom; a common occurance on Skrell planets. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "maelstrom_tee"
item_state = "maelstrom_tee"
name = "maelstrom wetshirt"
desc = "This ferocious wetshirt resembles that of a maelstrom; a common occurance on Skrell planets. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "maelstrom_tee"
item_state = "maelstrom_tee"
/obj/item/clothing/accessory/tshirt/skrell/reef
name = "reef wetshirt"
desc = "This slightly tacky wetshirt resembles the coral reefs found throughout Nralakk space. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "reef_tee"
item_state = "reef_tee"
name = "reef wetshirt"
desc = "This slightly tacky wetshirt resembles the coral reefs found throughout Nralakk space. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "reef_tee"
item_state = "reef_tee"
/obj/item/clothing/accessory/tshirt/skrell/nebula
name = "pink eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "pink_skrell_hawaiian"
item_state = "pink_skrell_hawaiian"
name = "pink eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "pink_skrell_hawaiian"
item_state = "pink_skrell_hawaiian"
/obj/item/clothing/accessory/tshirt/skrell/nebula/purple
name = "purple eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "purple_skrell_hawaiian"
item_state = "purple_skrell_hawaiian"
name = "purple eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "purple_skrell_hawaiian"
item_state = "purple_skrell_hawaiian"
/obj/item/clothing/accessory/tshirt/skrell/nebula/teal
name = "teal eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "teal_skrell_hawaiian"
item_state = "teal_skrell_hawaiian"
name = "teal eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "teal_skrell_hawaiian"
item_state = "teal_skrell_hawaiian"
/obj/item/clothing/accessory/tshirt/skrell/nebula/black
name = "black eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "black_skrell_hawaiian"
item_state = "black_skrell_hawaiian"
name = "black eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "black_skrell_hawaiian"
item_state = "black_skrell_hawaiian"
/obj/item/clothing/accessory/tshirt/skrell/nebula/white
name = "white eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "white_skrell_hawaiian"
item_state = "white_skrell_hawaiian"
name = "white eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "white_skrell_hawaiian"
item_state = "white_skrell_hawaiian"
/obj/item/clothing/accessory/tshirt/skrell/nebula/nralakk
name = "nralakk eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "nralakk_skrell_hawaiian"
item_state = "nralakk_skrell_hawaiian"
name = "nralakk eriuyushi nebula shirt"
desc = "This shirt resembles the designs of Silversun tourist clothing. Most of these shirts are made in Eriuyushi and sold at their resort. This clothing is meant to trap moisture, making it uncomfortable for non-Skrell."
icon_state = "nralakk_skrell_hawaiian"
item_state = "nralakk_skrell_hawaiian"
+3 -3
View File
@@ -6,7 +6,7 @@ SEE_MOBS // can see all mobs, no matter what
SEE_OBJS // can see all objs, no matter what
SEE_TURFS // can see all turfs (and areas), no matter what
SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are
// in a lit area (via pixel_x,y or smooth movement), can see those pixels
// in a lit area (via pixel_x,y or smooth movement), can see those pixels
BLIND // can't see anything
*/
/obj/item/clothing/glasses
@@ -51,7 +51,7 @@ BLIND // can't see anything
if(normal_layer == GLASSES_LAYER)
normal_layer = GLASSES_LAYER_ALT
else
else
normal_layer = GLASSES_LAYER
to_chat(usr, SPAN_NOTICE("\The [src] will now layer [normal_layer == 21 ? "under" : "over"] your hair."))
update_clothing_icon()
@@ -317,7 +317,7 @@ BLIND // can't see anything
set category = "Object"
set name = "Change Glasses Layer"
set src in usr
var/list/options = list("Under Hair" = GLASSES_LAYER, "Over Hair" = GLASSES_LAYER_ALT, "Over Headwear" = GLASSES_LAYER_OVER)
var/new_layer = input(usr, "Position Goggles", "Goggle style") as null|anything in options
if(new_layer)
+19 -19
View File
@@ -108,29 +108,29 @@
//more snowflake gloves for the custom loadout
/obj/item/clothing/gloves/red/unathi
name = "red gloves"
desc = "Red gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
name = "red gloves"
desc = "Red gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/blue/unathi
name = "blue gloves"
desc = "Blue gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
name = "blue gloves"
desc = "Blue gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/orange/unathi
name = "orange gloves"
desc = "Orange gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
name = "orange gloves"
desc = "Orange gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/purple/unathi
name = "purple gloves"
desc = "Purple gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
name = "purple gloves"
desc = "Purple gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/brown/unathi
name = "brown gloves"
desc = "Brown gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
name = "brown gloves"
desc = "Brown gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/light_brown/unathi
name = "light brown gloves"
@@ -138,9 +138,9 @@
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/green/unathi
name = "green gloves"
desc = "Green gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
name = "green gloves"
desc = "Green gloves made for Unathi use."
species_restricted = list(BODYTYPE_UNATHI)
/obj/item/clothing/gloves/grey/unathi
name = "grey gloves"
@@ -232,4 +232,4 @@
icon_state = "mittens"
item_state = "mittens"
contained_sprite = TRUE
species_restricted = list("exclude", null)
species_restricted = list("exclude", null)
+13 -13
View File
@@ -12,36 +12,36 @@
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/blue/tajara
desc = "Blue gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
desc = "Blue gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/orange/tajara
desc = "Orange gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
desc = "Orange gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/purple/tajara
desc = "Purple gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
desc = "Purple gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/brown/tajara
desc = "Brown gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
desc = "Brown gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/light_brown/tajara
desc = "Light brown gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/green/tajara
desc = "Green gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
desc = "Green gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/grey/tajara
desc = "Grey gloves made for Tajaran use."
species_restricted = list(BODYTYPE_TAJARA)
/obj/item/clothing/gloves/white/tajara
desc = "White gloves made for Tajaran use."
species_restricted = list (BODYTYPE_TAJARA)
desc = "White gloves made for Tajaran use."
species_restricted = list (BODYTYPE_TAJARA)
/obj/item/clothing/gloves/rainbow/tajara
desc = "Rainbow gloves made for Tajaran use."
@@ -84,4 +84,4 @@
clipped = TRUE
drop_sound = 'sound/items/drop/toolbox.ogg'
pickup_sound = 'sound/items/pickup/toolbox.ogg'
pickup_sound = 'sound/items/pickup/toolbox.ogg'
+52 -52
View File
@@ -1,81 +1,81 @@
/obj/item/clothing/head/wool
name = "woolen hat"
desc = "A warm woolen hat with a bobble. How cozy!"
icon = 'icons/obj/item/clothing/head/wool_hats.dmi'
icon_state = "hat"
item_state = "hat"
contained_sprite = TRUE
name = "woolen hat"
desc = "A warm woolen hat with a bobble. How cozy!"
icon = 'icons/obj/item/clothing/head/wool_hats.dmi'
icon_state = "hat"
item_state = "hat"
contained_sprite = TRUE
/obj/item/clothing/head/wool/idris
name = "idris woolen hat"
desc = "A warm woolen hat in Idris Incorporated colors. Have an Idris (and warm) day!"
icon_state = "hat_idris"
item_state = "hat_idris"
name = "idris woolen hat"
desc = "A warm woolen hat in Idris Incorporated colors. Have an Idris (and warm) day!"
icon_state = "hat_idris"
item_state = "hat_idris"
/obj/item/clothing/head/wool/idris/alt
icon_state = "hat_idris_alt"
item_state = "hat_idris_alt"
icon_state = "hat_idris_alt"
item_state = "hat_idris_alt"
/obj/item/clothing/head/wool/zavod
name = "zavodskoi woolen hat"
desc = "A warm woolen hat in Zavodskoi Interstellar colors. For only the snuggest of badasses!"
icon_state = "hat_zavod"
item_state = "hat_zavod"
name = "zavodskoi woolen hat"
desc = "A warm woolen hat in Zavodskoi Interstellar colors. For only the snuggest of badasses!"
icon_state = "hat_zavod"
item_state = "hat_zavod"
/obj/item/clothing/head/wool/zavod/alt
icon_state = "hat_zavod_alt"
item_state = "hat_zavod_alt"
icon_state = "hat_zavod_alt"
item_state = "hat_zavod_alt"
/obj/item/clothing/head/wool/pmc
name = "pmcg woolen hat"
desc = "A warm woolen hat in PMCG colors. Because mercenaries get cold too!"
icon_state = "hat_pmc"
item_state = "hat_pmc"
name = "pmcg woolen hat"
desc = "A warm woolen hat in PMCG colors. Because mercenaries get cold too!"
icon_state = "hat_pmc"
item_state = "hat_pmc"
/obj/item/clothing/head/wool/pmc/alt
name = "epmc woolen hat"
desc = "A warm woolen hat in EPMC colors. It even comes with a holographic bobble!"
icon_state = "hat_epmc"
item_state = "hat_epmc"
name = "epmc woolen hat"
desc = "A warm woolen hat in EPMC colors. It even comes with a holographic bobble!"
icon_state = "hat_epmc"
item_state = "hat_epmc"
/obj/item/clothing/head/wool/heph
name = "hephaestus woolen hat"
desc = "A warm woolen hat in Hephaetus Indrustries colors. Industiral strength head heating!"
icon_state = "hat_heph"
item_state = "hat_heph"
name = "hephaestus woolen hat"
desc = "A warm woolen hat in Hephaetus Indrustries colors. Industiral strength head heating!"
icon_state = "hat_heph"
item_state = "hat_heph"
/obj/item/clothing/head/wool/nt
name = "nanotrasen woolen hat"
desc = "A warm woolen hat in NanoTrasen Corporation colors. Rumor has it this will keep you as hot as a phoron fire!"
icon_state = "hat_nt"
item_state = "hat_nt"
name = "nanotrasen woolen hat"
desc = "A warm woolen hat in NanoTrasen Corporation colors. Rumor has it this will keep you as hot as a phoron fire!"
icon_state = "hat_nt"
item_state = "hat_nt"
/obj/item/clothing/head/wool/zeng
name = "zeng-hu woolen hat"
desc = "A warm woolen hat in Zeng-Hu Pharmaceuticals colors. Shivering isn't very professional!"
icon_state = "hat_zeng"
item_state = "hat_zeng"
name = "zeng-hu woolen hat"
desc = "A warm woolen hat in Zeng-Hu Pharmaceuticals colors. Shivering isn't very professional!"
icon_state = "hat_zeng"
item_state = "hat_zeng"
/obj/item/clothing/head/wool/zeng/alt
icon_state = "hat_zeng_alt"
item_state = "hat_zeng_alt"
icon_state = "hat_zeng_alt"
item_state = "hat_zeng_alt"
/obj/item/clothing/head/wool/orion
name = "orion woolen hat"
desc = "A warm woolen hat in Orion Express colors. Cozy employees deliver cargo faster!"
icon_state = "hat_orion"
item_state = "hat_orion"
name = "orion woolen hat"
desc = "A warm woolen hat in Orion Express colors. Cozy employees deliver cargo faster!"
icon_state = "hat_orion"
item_state = "hat_orion"
/obj/item/clothing/head/wool/orion/alt
icon_state = "hat_orion_alt"
item_state = "hat_orion_alt"
icon_state = "hat_orion_alt"
item_state = "hat_orion_alt"
/obj/item/clothing/head/wool/scc
name = "scc woolen hat"
desc = "A warm woolen hat in SCC colors. Is that real gold in the wool?"
icon_state = "hat_scc"
item_state = "hat_scc"
name = "scc woolen hat"
desc = "A warm woolen hat in SCC colors. Is that real gold in the wool?"
icon_state = "hat_scc"
item_state = "hat_scc"
/obj/item/clothing/head/wool/scc/alt
icon_state = "hat_scc_alt"
item_state = "hat_scc_alt"
icon_state = "hat_scc_alt"
item_state = "hat_scc_alt"
+1 -1
View File
@@ -7,7 +7,7 @@
contained_sprite = TRUE
species_restricted = list(BODYTYPE_SKRELL)
flags_inv = BLOCKHAIR
/obj/item/clothing/head/skrell/skrell_bandana
name = "skrell bandana"
desc = "A loose fitting bandana used to cover the headtails of a Skrell."
@@ -10,12 +10,12 @@
slot_r_hand_str = "syndicate-helm-black-red"
)
armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_MEDIUM,
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_MEDIUM,
laser = ARMOR_LASER_PISTOL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
max_pressure_protection = FIRESUIT_MAX_PRESSURE
@@ -69,12 +69,12 @@
icon_state = "pirate"
item_state = "pirate"
armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_MINOR
)
flags_inv = BLOCKHAIR
@@ -92,12 +92,12 @@
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen)
slowdown = 0
armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.4
@@ -1,4 +1,4 @@
// Light rigs are not space-capable, but don't suffer excessive slowdown or sight issues when depowered.
// Light rigs are not space-capable, but don't suffer excessive slowdown or sight issues when depowered.
/obj/item/rig/light
name = "light suit control module"
desc = "A lighter, less armored hardsuit."
@@ -305,4 +305,4 @@
/obj/item/rig_module/chem_dispenser/combat,
/obj/item/rig_module/device/door_hack,
/obj/item/rig_module/mounted/xray
)
)
@@ -8,7 +8,7 @@
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_PISTOL,
energy = ARMOR_ENERGY_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
@@ -31,7 +31,7 @@
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_PISTOL,
energy = ARMOR_ENERGY_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
+1 -1
View File
@@ -498,7 +498,7 @@
/obj/item/clothing/accessory/flagpatch/pluto
name = "pluto flagpatch"
desc = "A flagpatch representing Pluto. As loyalty to the party is very important on the communist planet, \
these patches have become a popular way for Plutonians to display their affiliation with their home."
these patches have become a popular way for Plutonians to display their affiliation with their home."
icon_state = "flagpatch_pluto"
item_state = "flagpatch_pluto"
+1 -1
View File
@@ -20,7 +20,7 @@
desc = "A set of mesh weave robes worn almost exclusively by priests of the Blood Eternal faith."
icon_state = "blood_robe"
item_state = "blood_robe"
/obj/item/clothing/suit/diona/carp
name = "carp hide poncho"
desc = "A poncho made up of carp hide."
@@ -250,7 +250,7 @@
var/obj/item/organ/organ = M.get_organ(user.zone_sel.selecting)
if(organ)
user.visible_message(SPAN_NOTICE("[user] places [src] against [M]'s [organ.name] and listens attentively."),
"You place [src] against [M]'s [organ.name]. You hear <b>[english_list(organ.listen())]</b>.")
"You place [src] against [M]'s [organ.name]. You hear <b>[english_list(organ.listen())]</b>.")
return
return ..(M,user)
@@ -759,7 +759,7 @@
desc = "This cloak is given to Zeng-Hu employees who have assisted or worked in collaboration with the Nralakk Federation."
desc_extended = "A cloak given to senior level doctors and researchers for Zeng-Hu who has \
in the past been given the privilege of working within or in collaboration with the Nralakk Federation\
as a show of goodwill between the corporation and federation."
as a show of goodwill between the corporation and federation."
icon = 'icons/obj/item/clothing/accessory/zh_cape.dmi'
icon_override = 'icons/obj/item/clothing/accessory/zh_cape.dmi'
icon_state = "ZH_cape"
@@ -277,11 +277,11 @@
badge_string = null
/obj/item/clothing/accessory/badge/trinary
name = "trinary perfection brooch"
desc = "A metal brooch worn by those who serve or follow the beliefs of the Trinary Perfection. It resembles a gear with a triangle inside."
icon_state = "trinary_badge"
overlay_state = "trinary_badge"
badge_string = null
name = "trinary perfection brooch"
desc = "A metal brooch worn by those who serve or follow the beliefs of the Trinary Perfection. It resembles a gear with a triangle inside."
icon_state = "trinary_badge"
overlay_state = "trinary_badge"
badge_string = null
// passcards
@@ -308,7 +308,7 @@
name = "synthetic residence card"
desc = "A passcard issued to free IPCs within the Republic of Biesel, providing resident status and allowing the owning of property, among other things."
desc_extended = "Working alongside IPC tags within the Republic of Biesel, the synthetic residence card has a small RFID chip embedded in it which allows governmental authorities to confirm whether or not an IPC \
is free and taking residency within the system. They were recently introduced in order to provide streamlined documentation for IPCs that have attained freedom but are not citizens."
is free and taking residency within the system. They were recently introduced in order to provide streamlined documentation for IPCs that have attained freedom but are not citizens."
icon_state = "passcard_ceti_m"
item_state = "passcard_ceti_m"
+1 -1
View File
@@ -8,7 +8,7 @@
desc = "An old prison uniform, tattered with age. A Hephaestus logo has been haphazardly stitched to the shoulder, and a band of green circles around the middle."
icon_state = "narrows"
item_state = "narrows"
/obj/item/clothing/under/diona/dionatunic
name = "floral tunic"
desc = "A tunic made up of several colorful fabrics and adorned with seemingly still-living vines and flowers"
+4 -4
View File
@@ -3,13 +3,13 @@
#define COMPASS_LABEL_OFFSET 150
/*
This folder contains an abstract type (/obj/compass_holder) which contains a set of
waypoints (/datum/compass_waypoint) and generates a circular compass with markers for
mobs that have the object in their screen list. See GPS for an example implementation.
This folder contains an abstract type (/obj/compass_holder) which contains a set of
waypoints (/datum/compass_waypoint) and generates a circular compass with markers for
mobs that have the object in their screen list. See GPS for an example implementation.
*/
/image/compass_marker
maptext_height = 64
maptext_width = 128
maptext_x = -48
maptext_y = -32
maptext_y = -32
+1 -1
View File
@@ -44,7 +44,7 @@
else
str = angle_step_to_dir[clamp(round(angle/45)+1, 1, length(angle_step_to_dir))]
str_col = "#ffffffaa"
else
else
str = "〡"
str_col = "#aaaaaa88"
I.maptext = "<center><font color = '[str_col]' size = '1px'><b>[str]</b></font></center>"
+1 -1
View File
@@ -9,7 +9,7 @@
* * items are objects. Fruits, tools, circuit boards.
* * result is type to create as new object
* * time is optional parameter, you shall use in in your machine,
default /singleton/recipe/ procs does not rely on this parameter.
default /singleton/recipe/ procs does not rely on this parameter.
*
* Functions you need:
* /singleton/recipe/proc/make(var/obj/container as obj)
+2 -2
View File
@@ -234,7 +234,7 @@
installed_upgrade_chip.on_fire(src)
if(installed_barrel)
installed_barrel.on_fire(src)
var/turf/T = get_turf(src)
if(T)
@@ -252,7 +252,7 @@
else
shot_projectile.base_damage = damage_increase
return shot_projectile
if(ispath(installed_barrel.projectile_type, /obj/item/projectile/beam))
var/obj/item/projectile/beam/shot_projectile = new installed_barrel.projectile_type(get_turf(src))
shot_projectile.damage = damage_increase
+1 -1
View File
@@ -155,7 +155,7 @@
reagents.trans_to_mob(H, reagents.total_volume*0.75, CHEM_TOUCH) // most of it gets on the skin
reagents.trans_to_mob(H, reagents.total_volume*0.25, CHEM_BLOOD) // some gets in the wound
user.visible_message(SPAN_NOTICE("\The [user] bandages \a [W.desc] on [M]'s [affecting.name] with [src], tying it in place."), \
SPAN_NOTICE("You bandage \a [W.desc] on [M]'s [affecting.name] with [src], tying it in place."))
SPAN_NOTICE("You bandage \a [W.desc] on [M]'s [affecting.name] with [src], tying it in place."))
W.bandage()
qdel(src) // the rag is used up, it'll be all bloody and useless after
return // we can only do one at a time
@@ -70,12 +70,12 @@
/atom/proc/get_swab_name()
return "\the [initial(name)]"
return "\the [initial(name)]"
/obj/machinery/door/get_swab_name()
if(name != initial(name))
return "\the [initial(name)]: [name]"
return ..()
if(name != initial(name))
return "\the [initial(name)]: [name]"
return ..()
/obj/item/sample/fibers
name = "fiber bag"
+2 -2
View File
@@ -121,6 +121,6 @@
body += "Tourists are flocking to [affected_dest.name] after the surprise announcement of [pick("major shopping bargains by a wily retailer",\
"a huge new ARG by a popular entertainment company","a secret tour by popular artiste [random_name(pick(MALE,FEMALE))]")]. \
Tau Ceti Daily is offering discount tickets for two to see [random_name(pick(MALE,FEMALE))] live in return for eyewitness reports and up to the minute coverage."
var/datum/feed_channel/ch = SSnews.GetFeedChannel(channel)
SSnews.SubmitArticle(body, author, ch, null, 1)
SSnews.SubmitArticle(body, author, ch, null, 1)
+2 -2
View File
@@ -1,6 +1,6 @@
/*
/datum/effect_system
var/atom/movable/holder
var/atom/movable/holder
- The atom that this effect_system is attached to.
var/no_del
- If this effect_system should be deleted at end of processing.
@@ -14,7 +14,7 @@
- Called when the object is queued for update. Overriding procs should call ..()
/datum/effect_system/process()
- Called when the processor processes this effect.
- Called when the processor processes this effect.
Return ..() to allow default behavior of self-destroying after one tick.
Alternately; EFFECT_HALT, EFFECT_CONTINUE, and EFFECT_DESTROY can be used to tell the processor what to do with the object.
@@ -30,7 +30,7 @@
/obj/effect/map_effect/interval/Initialize()
. = ..()
START_PROCESSING(SSprocessing, src)
/obj/effect/map_effect/interval/Destroy()
STOP_PROCESSING(SSprocessing, src)
return ..()
@@ -44,7 +44,7 @@
//Not yet!
if(world.time < next_attempt)
return
// Check to see if we're useful first.
if(!always_run && !check_for_player_proximity(src, proximity_needed, ignore_ghosts, ignore_afk))
next_attempt = world.time + retry_delay
@@ -66,4 +66,4 @@
continue
if(M.z == proximity_to.z && get_dist(M, proximity_to) <= radius)
return TRUE
return FALSE
return FALSE
+9 -9
View File
@@ -9,27 +9,27 @@ Portals do have some specific requirements when mapping them in;
- Each side must face opposite directions, e.g. if side A faces SOUTH, side B must face NORTH.
- Each side must have the same orientation, e.g. horizontal on both sides, or vertical on both sides.
- Portals can be made to be longer than 1x1 with `/obj/effect/map_effect/portal/line`s,
but both sides must have the same length.
but both sides must have the same length.
- If portal lines are added, they must form a straight line and be next to a portal master or another portal line.
- If portal lines are used, both portal masters should be in the same relative position among the lines.
E.g. both being on the left most side on a horizontal row.
E.g. both being on the left most side on a horizontal row.
Portals also have some limitations to be aware of when mapping. Some of these are not an issue if you're trying to make an 'obvious' portal;
- The objects seen through portals are purely visual, which has many implications,
such as simple_animal AIs being blind to mobs on the other side of portals.
such as simple_animal AIs being blind to mobs on the other side of portals.
- Objects on the other side of a portal can be interacted with if the interaction has no range limitation,
or the distance between the two portal sides happens to be less than the interaction max range. Examine will probably work,
while picking up an item that appears to be next to you will fail.
or the distance between the two portal sides happens to be less than the interaction max range. Examine will probably work,
while picking up an item that appears to be next to you will fail.
- Sounds currently are not carried across portals.
- Mismatched lighting between each portal end can make the portal look obvious.
- Portals look weird when observing as a ghost, or otherwise when able to see through walls. Meson vision will also spoil the illusion.
- Walls that change icons based on neightboring walls can give away that a portal is nearby if both sides don't have a similar transition.
- Projectiles that pass through portals will generally work as intended, however aiming and firing upon someone on the other side of a portal
will likely be weird due to the click targeting the real position of the thing clicked instead of the apparent position.
Thrown objects suffer a similar fate.
will likely be weird due to the click targeting the real position of the thing clicked instead of the apparent position.
Thrown objects suffer a similar fate.
- The tiles that are visually shown across a portal are determined based on visibility at the time of portal initialization,
and currently don't update, meaning that opacity changes are not reflected, e.g. a wall is deconstructed, or an airlock is opened.
and currently don't update, meaning that opacity changes are not reflected, e.g. a wall is deconstructed, or an airlock is opened.
- There is currently a small but somewhat noticable pause in mob movement when moving across a portal,
as a result of the mob's glide animation being inturrupted by a teleport.
as a result of the mob's glide animation being inturrupted by a teleport.
- Gas is not transferred through portals, and ZAS is oblivious to them.
A lot of those limitations can potentially be solved with some more work. Otherwise, portals work best in static environments like Points of Interest,
when portals are shortly lived, or when portals are made to be obvious with special effects.
@@ -2,13 +2,13 @@
name = "maze helper"
/**
* Helper handler proc
*
* This exists as an overridable method so you can do custom helper logic.
* An example of this is removing all windows on a tile.
*
* Arguments:
* * blockwise - This will be TRUE if the maze this is running on is a blockwise maze
*/
* Helper handler proc
*
* This exists as an overridable method so you can do custom helper logic.
* An example of this is removing all windows on a tile.
*
* Arguments:
* * blockwise - This will be TRUE if the maze this is running on is a blockwise maze
*/
/obj/effect/mazegen/module_helper/proc/helper_run(blockwise = FALSE, obj/effect/mazegen/host)
CRASH("spawn_loot() not overriden for [type]")
@@ -4,13 +4,13 @@
var/spawn_probability = 0
/**
* Loot spawner proc
*
* This exists as an overridable method so you can do more than just spawn objects.
* An example of this is spawning a specific mob based on a condition.
*
* Arguments:
* * T - The turf loot will be spawned on
*/
* Loot spawner proc
*
* This exists as an overridable method so you can do more than just spawn objects.
* An example of this is spawning a specific mob based on a condition.
*
* Arguments:
* * T - The turf loot will be spawned on
*/
/obj/effect/mazegen/module_loot/proc/spawn_loot(turf/T)
CRASH("spawn_loot() not overriden for [type]")
+2 -2
View File
@@ -17,7 +17,7 @@
spread = spread_dirs
else
spread = list()
..(start_immediately)
/datum/effect_system/sparks/process()
@@ -40,6 +40,6 @@
direction = 0
S = new /obj/effect/visual/sparks(location, src)
S.start(direction)
S.start(direction)
QUEUE_VISUAL(S)
total_sparks++
+8 -8
View File
@@ -240,16 +240,16 @@
emote_message_3p = "USER hisses softly."
/singleton/emote/audible/growl
key = "growl"
emote_message_3p_target = "USER growls at TARGET."
emote_message_3p = "USER growls."
emote_sound = 'sound/voice/lizardgrowl.ogg'
key = "growl"
emote_message_3p_target = "USER growls at TARGET."
emote_message_3p = "USER growls."
emote_sound = 'sound/voice/lizardgrowl.ogg'
/singleton/emote/audible/hiss/long
key = "hiss2"
emote_message_3p_target = "USER hisses loudly at TARGET!"
emote_message_3p = "USER hisses loudly!"
emote_sound = 'sound/voice/Lizardhiss2.ogg'
key = "hiss2"
emote_message_3p_target = "USER hisses loudly at TARGET!"
emote_message_3p = "USER hisses loudly!"
emote_sound = 'sound/voice/Lizardhiss2.ogg'
/singleton/emote/audible/lizard_bellow
key = "bellow"
+10 -7
View File
@@ -41,13 +41,16 @@
infectedMachine.shoot_inventory = 1
if(IsMultiple(activeFor, 12))
originMachine.speak(pick("Try our aggressive new marketing strategies!", \
"You should buy products to feed your lifestyle obsession!", \
"Consume!", \
"Your money can buy happiness!", \
"Engage direct marketing!", \
"Advertising is legalized lying! But don't let that put you off our great deals!", \
"You don't want to buy anything? Yeah, well I didn't want to buy your mom either."))
originMachine.speak(pick(
"Try our aggressive new marketing strategies!", \
"You should buy products to feed your lifestyle obsession!", \
"Consume!", \
"Your money can buy happiness!", \
"Engage direct marketing!", \
"Advertising is legalized lying! But don't let that put you off our great deals!", \
"You don't want to buy anything? Yeah, well I didn't want to buy your mom either."\
)
)
/datum/event/brand_intelligence/end(var/faked)
for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines)
+1 -1
View File
@@ -32,7 +32,7 @@
//Only give an ion law/mess with spam filters if it's the station ship that passed through the storm
if(station_level)
give_ion_law()
for(var/obj/machinery/telecomms/message_server/MS in SSmachinery.all_telecomms)
MS.spamfilter.Cut()
var/filter_num = rand(1, MS.spamfilter_limit)
+18 -18
View File
@@ -1,31 +1,31 @@
/datum/event/rescue_pod
no_fake = 1
var/spawner_name = "rescuepodsurv"
var/datum/ghostspawner/human/rescuepodsurv/spawner
no_fake = 1
var/spawner_name = "rescuepodsurv"
var/datum/ghostspawner/human/rescuepodsurv/spawner
/datum/event/rescue_pod/announce()
if(prob(66))
command_announcement.Announce("Ship sensors indicate an escape pod inbound to a nearby celestial body. Investigate the situation if necessary and hand off the survivors, if any, to a third party vessel.", new_title="SCCV Horizon Sensor Suite", new_sound = 'sound/AI/commandreport.ogg', zlevels = affecting_z)
if(prob(66))
command_announcement.Announce("Ship sensors indicate an escape pod inbound to a nearby celestial body. Investigate the situation if necessary and hand off the survivors, if any, to a third party vessel.", new_title="SCCV Horizon Sensor Suite", new_sound = 'sound/AI/commandreport.ogg', zlevels = affecting_z)
/datum/event/rescue_pod/setup()
for(var/datum/event/E in typesof(src))
if(is_type_in_list(E, SSevents.finished_events))
kill(TRUE)
return
spawner = SSghostroles.get_spawner(spawner_name)
for(var/datum/event/E in typesof(src))
if(is_type_in_list(E, SSevents.finished_events))
kill(TRUE)
return
spawner = SSghostroles.get_spawner(spawner_name)
/datum/event/rescue_pod/start()
if(istype(spawner))
spawner.enable()
if(istype(spawner))
spawner.enable()
/datum/event/rescue_pod/burglar
no_fake = 1
spawner_name = "burglarpod"
no_fake = 1
spawner_name = "burglarpod"
/datum/event/rescue_pod/burglar/announce()
if(prob(33)) // Make a silent drop more likely since they're spooky burglar
..()
if(prob(33)) // Make a silent drop more likely since they're spooky burglar
..()
/datum/event/rescue_pod/burglar/start()
if(istype(spawner))
spawner.enable()
if(istype(spawner))
spawner.enable()
+2 -2
View File
@@ -17,7 +17,7 @@
new /obj/structure/closet/crate/loot(spawn_loc, rarity, quantity)
log_and_message_admins("Unusual container spawned at (<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[spawn_loc.x];Y=[spawn_loc.y];Z=[spawn_loc.z]'>JMP</a>)")
spark(spawn_loc, 10, alldirs)
/datum/event/supply_drop/announce()
@@ -26,4 +26,4 @@
else if (prob(25))//Announce the transport, but not the location
command_announcement.Announce("External transport signature of unknown origin detected aboard [station_name()], precise destination point cannot be determined, please investigate.", "Unknown Object", new_sound = 'sound/AI/strangeobject.ogg', zlevels = affecting_z)
//Otherwise, no announcement at all.
//Someone will randomly stumble across it, and probably quietly loot it without telling anyone
//Someone will randomly stumble across it, and probably quietly loot it without telling anyone
+5 -5
View File
@@ -1,10 +1,10 @@
/datum/event/visitor
no_fake = 1
var/datum/ghostspawner/human/visitor/spawner
no_fake = 1
var/datum/ghostspawner/human/visitor/spawner
/datum/event/visitor/setup()
spawner = SSghostroles.get_spawner("visitor")
spawner = SSghostroles.get_spawner("visitor")
/datum/event/visitor/start()
if(istype(spawner))
spawner.enable()
if(istype(spawner))
spawner.enable()
@@ -353,7 +353,7 @@
accessory_contents = list(/obj/item/gun/projectile/sec/lethal = 1)
back = /obj/item/storage/backpack/satchel/leather
backpack_contents = list(
/obj/item/device/camera = 1,
/obj/item/device/camera = 1,
/obj/item/clothing/suit/storage/toggle/bssb = 1,
/obj/item/handcuffs = 1,
/obj/item/device/oxycandle = 1,
@@ -21,11 +21,11 @@
mob_name = null
/datum/ghostspawner/human/merchantass/can_edit(mob/user)
. = ..()
var/is_merchant = FALSE
. = ..()
var/is_merchant = FALSE
if(ishuman(user))
var/mob/living/carbon/human/H = user
is_merchant = (H.job == "Merchant")
if(ishuman(user))
var/mob/living/carbon/human/H = user
is_merchant = (H.job == "Merchant")
return . || is_merchant
return . || is_merchant
@@ -12,7 +12,7 @@
//Vars related to human mobs
outfit = /datum/outfit/admin/random/visitor
possible_species = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_UNATHI, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_WORKER, SPECIES_IPC, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_IPC_G1, SPECIES_IPC_G2)
possible_species = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_UNATHI, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_WORKER, SPECIES_IPC, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_IPC_G1, SPECIES_IPC_G2)
allow_appearance_change = APPEARANCE_PLASTICSURGERY
assigned_role = "Visitor"
@@ -91,10 +91,10 @@
return data
/obj/effect/ghostspawpoint/ui_state(mob/user)
return observer_state
return observer_state
/obj/effect/ghostspawpoint/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
return UI_INTERACTIVE
/obj/effect/ghostspawpoint/proc/is_available()
return TRUE
+1 -1
View File
@@ -2,7 +2,7 @@
// -- Global Listeners --
/*
This is basically just a simple way to add a reference to an object to an automatically maintained & named global list.
Lists are indexed by a string ID, and the lists can contain any /datum type.
Lists are indexed by a string ID, and the lists can contain any /datum type.
Creating a listener:
@@ -42,7 +42,7 @@
addtimer(CALLBACK(src, PROC_REF(end)), duration)
//You emoting to others involuntarily. This happens mostly in end()
/datum/hallucination/proc/hallucination_emote()
/datum/hallucination/proc/hallucination_emote()
if(prob(min(holder.hallucination - 5, 80)) && !holder.stat)
var/chosen_emote = pick(SShallucinations.hal_emote)
if(prob(10)) //You are aware of it in this instance
+1 -1
View File
@@ -57,7 +57,7 @@
if(10 to 15) //Announcements that would be made by a player instead of random event
var/list/body = list(
"Please avoid [pick("medical", "security", "the bar", "engineering", "operations", "the hangar")] at this time due to [pick("a k'ois outbreak.", "a hostage situation.", "hostile boarders.", "[holder].")]",
"Please avoid [pick("medical", "security", "the bar", "engineering", "operations", "the hangar")] at this time due to [pick("a k'ois outbreak.", "a hostage situation.", "hostile boarders.", "[holder].")]",
"Due to various complaints about [holder], we have conducted an investigation and due to the findings, we will [pick("arrest them. Please turn yourself in, [holder]", "terminate their employment with us.", "inform their family of their shortcomings.", "cyborgify them immediately.")]. Thank you.",
"[pick("Boarders have", "The AI has", "Intruders have")] demanded we sacrifice a crewmember to them. After [pick("much", "little", "quick")] deliberation, we have chosen [holder]. Please turn yourself over, or [pick("we", "your family", "all of us", "those you love")] will die.",
"Central Command has chosen [holder] as the SCC employee of the month! Everyone please congratulate them.",
+1 -1
View File
@@ -287,7 +287,7 @@
var/missing_gas = 0
for(var/gas in consume_gasses)
if(environment && environment.gas && environment.gas[gas] && \
environment.gas[gas] >= consume_gasses[gas])
environment.gas[gas] >= consume_gasses[gas])
if(!check_only)
environment.adjust_gas(gas,-consume_gasses[gas],1)
else
@@ -115,9 +115,7 @@
check_health()
// If enough time (in cycles, not ticks) has passed since the plant was harvested, we're ready to harvest again.
if((age > seed.get_trait(TRAIT_MATURATION)) && \
((age - lastproduce) > seed.get_trait(TRAIT_PRODUCTION)) && \
(!harvest && !dead))
if((age > seed.get_trait(TRAIT_MATURATION)) && ((age - lastproduce) > seed.get_trait(TRAIT_PRODUCTION)) && (!harvest && !dead))
harvest = 1
lastproduce = age
if(seed.get_trait(TRAIT_SPOROUS) && !closed_system)
@@ -125,11 +123,9 @@
visible_message("<span class='danger'>\The [src] releases its spores!</span>")
// If we're a vine which is not in a closed tray and is at least half mature, and there's no vine currently on our turf: make one (maybe)
if(!closed_system && \
seed.get_trait(TRAIT_SPREAD) == 2 && \
2 * age >= seed.get_trait(TRAIT_MATURATION) && \
!(locate(/obj/effect/plant) in get_turf(src)) && \
prob(2 * seed.get_trait(TRAIT_POTENCY)))
if(!closed_system && seed.get_trait(TRAIT_SPREAD) == 2 && 2 * age >= seed.get_trait(TRAIT_MATURATION) && !(locate(/obj/effect/plant) in get_turf(src)) && \
prob(2 * seed.get_trait(TRAIT_POTENCY)))
new /obj/effect/plant(get_turf(src), seed)
if(prob(3)) // On each tick, there's a chance the pest population will increase
@@ -64,4 +64,4 @@
var/removable = TRUE // Determines if a circuit is removable from the assembly.
var/displayed_name = ""
var/allow_multitool = TRUE // Allows additional multitool functionality
// Used as a global var, (Do not set manually in children).
// Used as a global var, (Do not set manually in children).
@@ -12,8 +12,8 @@ A [2]\ /[8] result
B [1]-\|++|/
C [4]-/|++|
D [1]/ ||
||
Activator
||
Activator
@@ -8,7 +8,7 @@
// Positionless remove/Edit are a bit weird,
// not sure if adding these buttons is quite a good idea.
// They introduce uncertainty, since, in case of 2 elements,
// They introduce uncertainty, since, in case of 2 elements,
// they will work just with the 1st one
/datum/integrated_io/list/proc/interact(mob/user)
var/list/my_list = data
@@ -21,7 +21,7 @@
t += "<a href='?src=\ref[src];swap=1'>Swap</a> | "
t += "<a href='?src=\ref[src];clear=1'>Clear</a><br>"
t += "<hr>"
// Iterating by index simplifies editing/deletion in game,
// Iterating by index simplifies editing/deletion in game,
// since the href_list["pos"] var is consistent
for(var/i = 1, i <= my_list.len; i++)
t += "#[i] | [display_data(my_list[i])] | "
@@ -121,7 +121,8 @@
desc = "Produces electricity from chemicals."
icon_state = "chemical_cell"
extended_desc = "This is effectively an internal beaker. It will consume and produce power from phoron, slime jelly, welding fuel, carbon,\
ethanol, nutriments and blood, in order of decreasing efficiency. It will consume fuel only if the battery can take more energy."
ethanol, nutriments and blood, in order of decreasing efficiency. It will consume fuel only if the battery can take more energy."
flags = OPENCONTAINER
complexity = 4
inputs = list()
@@ -91,7 +91,7 @@
for(var/i = 1 to outputs.len)
set_pin_data(IC_OUTPUT, i, i == output_index ? output : null)
push_data()
activate_pin(2)
@@ -7,13 +7,13 @@
var/list/items_contained = list()
activators = list("eject contents" = IC_PINTYPE_PULSE_IN)
outputs = list("has item" = IC_PINTYPE_BOOLEAN)
power_draw_per_use = 1
power_draw_per_use = 1
w_class = ITEMSIZE_NORMAL
size = 5
complexity = 1
//call this function from components that want to get items from this component
//set remove to FALSE if you dont want the item removed from the component and just want a reference to it
//set remove to FALSE if you dont want the item removed from the component and just want a reference to it
//(e.g. for beakers)
/obj/item/integrated_circuit/insert_slot/proc/get_item(var/remove = FALSE)
if(items_contained.len > 0)
+35 -35
View File
@@ -1,56 +1,56 @@
/*
-- Aurora directional lighting system, based off of /vg/lights. --
-- Aurora directional lighting system, based off of /vg/lights. --
Documentation is present in most of the code files.
lighting_atom.dm -> procs/vars for tracking/managing lights attached to objects.
lighting_turf.dm -> procs/vars for managing lighting overlays bound to turfs, tracking lights affecting said turf, and getting information about the turf's light level.
lighting_corner.dm -> contains code for tracking per-corner lighting data.
lighting_source.dm -> contains actual light emitter datum & core lighting calculations. Directional lights and Z-lights are implemented here.
lighting_source_novis.dm -> Same as lighting_source.dm, but does not take visibility into account - used for sun objects.
lighting_profiler.dm -> contains code used for the diagnostic lighting profiler (currently disabled).
lighting_area.dm -> contains area vars/procs for managing an area's dynamic lighting state.
lighting_verbs.dm -> contains verbs for debugging lighting.
Documentation is present in most of the code files.
lighting_atom.dm -> procs/vars for tracking/managing lights attached to objects.
lighting_turf.dm -> procs/vars for managing lighting overlays bound to turfs, tracking lights affecting said turf, and getting information about the turf's light level.
lighting_corner.dm -> contains code for tracking per-corner lighting data.
lighting_source.dm -> contains actual light emitter datum & core lighting calculations. Directional lights and Z-lights are implemented here.
lighting_source_novis.dm -> Same as lighting_source.dm, but does not take visibility into account - used for sun objects.
lighting_profiler.dm -> contains code used for the diagnostic lighting profiler (currently disabled).
lighting_area.dm -> contains area vars/procs for managing an area's dynamic lighting state.
lighting_verbs.dm -> contains verbs for debugging lighting.
*/
/*
Useful procs when using lights:
Useful procs when using lights:
/atom/proc/set_light(range, power, color, uv_power, angle, no_update)
desc: Sets an atom's light emission. `set_light(FALSE)` will disable the light.
args:
range -> the range of the light. 1.4 is the lowest possible value here.
power -> the power (intensity) of the light. Generally should be 1 or lower. Optional.
color -> The hex string (#FFFFFF) color of the light. Optional.
uv_power -> The UV power of this light. Must be between 0 and 255. Optional.
angle -> The angle of the cone that the light should shine at (directional lighting). Behavior of lights over 180 degrees is undefined. Best to stick to using the LIGHT_ defines for this. Optional.
no_update -> if TRUE, the light will not be updated. Useful for when making several of these calls to the same object. Optional.
desc: Sets an atom's light emission. `set_light(FALSE)` will disable the light.
args:
range -> the range of the light. 1.4 is the lowest possible value here.
power -> the power (intensity) of the light. Generally should be 1 or lower. Optional.
color -> The hex string (#FFFFFF) color of the light. Optional.
uv_power -> The UV power of this light. Must be between 0 and 255. Optional.
angle -> The angle of the cone that the light should shine at (directional lighting). Behavior of lights over 180 degrees is undefined. Best to stick to using the LIGHT_ defines for this. Optional.
no_update -> if TRUE, the light will not be updated. Useful for when making several of these calls to the same object. Optional.
/atom/proc/set_opacity(new_opacity)
desc: Sets an atom's opacity, updating affecting lights' visibility. Returns TRUE if opacity changed, FALSE otherwise.
args:
new_opacity -> the new opacity value.
desc: Sets an atom's opacity, updating affecting lights' visibility. Returns TRUE if opacity changed, FALSE otherwise.
args:
new_opacity -> the new opacity value.
/turf/proc/reconsider_lights()
desc: Cause all lights affecting this turf to recalculate visibility.
args: none
desc: Cause all lights affecting this turf to recalculate visibility.
args: none
/turf/proc/force_update_lights()
desc: Force all lights affecting this turf to regenerate. Slow, use reconsider_lights instead when possible.
args: none
desc: Force all lights affecting this turf to regenerate. Slow, use reconsider_lights instead when possible.
args: none
/turf/proc/get_avg_color()
desc: Gets the average color of this tile as a hexadecimal color string. Used by cameras.
desc: Gets the average color of this tile as a hexadecimal color string. Used by cameras.
/turf/proc/get_lumcount(minlum = 0, maxlum = 1)
desc: Gets the brightness of this tile. If not dynamically lit, always returns 0.5, otherwise returns the average brightness of all 4 corners, scaled between minlum and maxlum.
args:
minlum -> the low-bound of the scalar.
maxlum -> the high-bound of the scalar.
desc: Gets the brightness of this tile. If not dynamically lit, always returns 0.5, otherwise returns the average brightness of all 4 corners, scaled between minlum and maxlum.
args:
minlum -> the low-bound of the scalar.
maxlum -> the high-bound of the scalar.
/turf/proc/get_uv_lumcount(minlum = 0, maxlum = 1)
desc: Same as above, but only considers UV light.
args:
minlum -> the low-bound of the scalar.
maxlum -> the high-bound of the scalar.
desc: Same as above, but only considers UV light.
args:
minlum -> the low-bound of the scalar.
maxlum -> the high-bound of the scalar.
*/
@@ -194,4 +194,4 @@
#undef QUEUE_UPDATE
#endif
#endif
+1 -1
View File
@@ -185,7 +185,7 @@
/turf/proc/generate_missing_corners()
if (!dynamic_lighting && !light_sources)
return
lighting_corners_initialised = TRUE
if (!corners)
corners = list(null, null, null, null)
+1 -1
View File
@@ -14,7 +14,7 @@
place_near_main = list(1, 1)
/obj/effect/overmap/visitable/sector/exoplanet/barren/asteroid/update_icon()
icon_state = "asteroid[rand(1,3)]"
icon_state = "asteroid[rand(1,3)]"
/obj/effect/overmap/visitable/sector/exoplanet/barren/asteroid/generate_planet_image()
skybox_image = image('icons/skybox/skybox_rock_128.dmi', "bigrock")
+17 -20
View File
@@ -18,8 +18,7 @@
- House interiors
- Individual custom player houses
- Virtually unlimited terrain
- Sharing maps between servers running different instances of the same
game
- Sharing maps between servers running different instances of the same game
- Loading and saving pieces of maps for reusable room templates
*/
@@ -58,7 +57,7 @@
SwapMaps_CreateFromTemplate(id)
Create a new map by loading another map to use as a template.
This map has id==src and will not be saved. To make it savable,
change id with swapmap.SetID(newid).
change id with swapmap.SetID(newid).
SwapMaps_LoadChunk(id,turf/locorner)
Load a swapmap as a "chunk", at a specific place. A new datum is
created but it's not added to the list of maps to save or unload.
@@ -79,16 +78,16 @@
Cache an icon file by name for space-saving storage
swapmap.New(id,x,y,z)
Create a new map; specify id, width (x), height (y), and
depth (z)
Create a new map; specify id, width (x), height (y), and depth (z)
Default size is world.maxx,world.maxy,1
swapmap.New(id,turf1,turf2)
Create a new map; specify id and 2 corners
This becomes a /swapmap for one of the compiled-in maps, for
easy saving.
This becomes a /swapmap for one of the compiled-in maps, for easy saving.
swapmap.New()
Create a new map datum, but does not allocate space or assign an
ID (used for loading).
Create a new map datum, but does not allocate space or assign an ID (used for loading).
swapmap.Del()
Deletes a map but does not save
swapmap.Save()
@@ -100,30 +99,28 @@
swapmap.SetID(id)
Change the map's id and make changes to the lookup list
swapmap.AllTurfs(z)
Returns a block of turfs encompassing the entire map, or on just
one z-level
Returns a block of turfs encompassing the entire map, or on just one z-level
z is in world coordinates; it is optional
swapmap.Contains(turf/T)
Returns nonzero if T is inside the map's boundaries.
Also works for objs and mobs, but the proc is not area-safe.
swapmap.InUse()
Returns nonzero if a mob with a key is within the map's
boundaries.
Returns nonzero if a mob with a key is within the map's boundaries.
swapmap.LoCorner(z=z1)
Returns locate(x1,y1,z), where z=z1 if none is specified.
swapmap.HiCorner(z=z2)
Returns locate(x2,y2,z), where z=z2 if none is specified.
swapmap.BuildFilledRectangle(turf/corner1,turf/corner2,item)
Builds a filled rectangle of item from one corner turf to the
other, on multiple z-levels if necessary. The corners may be
specified in any order.
Builds a filled rectangle of item from one corner turf to the other, on multiple z-levels if necessary. The corners may be specified in any order.
item is a type path like /turf/wall or /obj/barrel{full=1}.
swapmap.BuildRectangle(turf/corner1,turf/corner2,item)
Builds an unfilled rectangle of item from one corner turf to
the other, on multiple z-levels if necessary.
Builds an unfilled rectangle of item from one corner turf to the other, on multiple z-levels if necessary.
swapmap.BuildInTurfs(list/turfs,item)
Builds item on all of the turfs listed. The list need not
contain only turfs, or even only atoms.
Builds item on all of the turfs listed. The list need not contain only turfs, or even only atoms.
*/
/swapmap
+3 -3
View File
@@ -61,7 +61,7 @@
if(!D.stat && !D.weakened)
A.do_attack_animation(D)
D.visible_message("<span class='warning'>[A] knees [D] in the stomach!</span>", \
"<span class='danger'>[A] winds you with a knee in the stomach!</span>")
"<span class='danger'>[A] winds you with a knee in the stomach!</span>")
D.audible_message("<b>[D]</b> gags!")
if (!(D.species.flags & NO_BREATHE))
D.losebreath += 3
@@ -75,7 +75,7 @@
if(!D.stat && !D.weakened)
A.do_attack_animation(D)
D.visible_message("<span class='warning'>[A] kicks [D] in the head!</span>", \
"<span class='danger'>[A] kicks you in the jaw!</span>")
"<span class='danger'>[A] kicks you in the jaw!</span>")
D.apply_damage(20, DAMAGE_BRUTE, BP_HEAD)
D.drop_item()
playsound(get_turf(D), "punch", 50, 1, -1)
@@ -134,4 +134,4 @@
#undef BACK_KICK_COMBO
#undef STOMACH_KNEE_COMBO
#undef HEAD_KICK_COMBO
#undef ELBOW_DROP_COMBO
#undef ELBOW_DROP_COMBO
+2 -2
View File
@@ -48,7 +48,7 @@
A.do_attack_animation(D)
var/atk_verb = pick("slices", "pinches", "chops", "bites", "claws")
D.visible_message("<span class='danger'>[A] [atk_verb] [D]!</span>", \
"<span class='danger'>[A] [atk_verb] you!</span>")
"<span class='danger'>[A] [atk_verb] you!</span>")
D.apply_damage(rand(5,15), DAMAGE_BRUTE, damage_flags = DAMAGE_FLAG_SHARP)
playsound(get_turf(D), 'sound/weapons/slash.ogg', 25, 1, -1)
@@ -98,4 +98,4 @@
#undef PIERCING_STRIKE
#undef SWIFT_BITE
#undef CRUSHING_JAWS
#undef CRUSHING_JAWS
+1 -1
View File
@@ -111,4 +111,4 @@
icon_state = "coin_[cmineral]_[comment]"
playsound(get_turf(src), 'sound/items/coinflip.ogg', 100, 1, -4)
user.visible_message(SPAN_NOTICE("\The [user] throws \the [src]. It lands on [comment]!"), \
SPAN_NOTICE("You throw \the [src]. It lands on [comment]!"))
SPAN_NOTICE("You throw \the [src]. It lands on [comment]!"))
+1 -1
View File
@@ -18,7 +18,7 @@
/obj/item/pickaxe/diamond = /obj/item/rig_module/device/drill,
/obj/item/gun/energy/vaurca/thermaldrill = /obj/item/rig_module/mounted/thermalldrill
)
/obj/machinery/mineral/rigpress/Initialize()
. = ..()
for(var/press_type in press_types)
@@ -9,7 +9,7 @@
var/obj/machinery/camera/c = source
if(!c.can_use())
continue
for(var/turf/t in c.can_see())
visible[t] = t
else if(isAI(source))
@@ -21,4 +21,4 @@
visible[t] = t
else
log_visualnet("Contained an unhandled source", source)
sources -= source
sources -= source

Some files were not shown because too many files have changed in this diff Show More