Whitespace cleanup part 2. (#19891)

This commit is contained in:
warriorstar-orion
2022-12-24 12:38:43 -05:00
committed by GitHub
parent 19d759b257
commit a7d09cf033
134 changed files with 652 additions and 656 deletions
+2 -2
View File
@@ -21,7 +21,7 @@ GLOBAL_VAR_INIT(nologevent, 0)
* Arguments:
* msg - The message being send
* important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
send a sound and flash the window. Defaults to FALSE
* send a sound and flash the window. Defaults to FALSE
*/
/proc/message_adminTicket(msg, important = FALSE)
for(var/client/C in GLOB.admins)
@@ -38,7 +38,7 @@ GLOBAL_VAR_INIT(nologevent, 0)
* Arguments:
* msg - The message being send
* important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
send a sound and flash the window. Defaults to FALSE
* send a sound and flash the window. Defaults to FALSE
*/
/proc/message_mentorTicket(msg, important = FALSE)
for(var/client/C in GLOB.admins)
+1 -1
View File
@@ -122,7 +122,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
<tr>
<th>Uniform:</th>
<td>
[uniform_select]
[uniform_select]
</td>
</tr>
<tr>
+3 -3
View File
@@ -444,9 +444,9 @@
var/jobs = ""
/***********************************WARNING!************************************
The jobban stuff looks mangled and disgusting
But it looks beautiful in-game
-Nodrak
The jobban stuff looks mangled and disgusting
But it looks beautiful in-game
-Nodrak
************************************WARNING!***********************************/
var/counter = 0
//Regular jobs
+1 -1
View File
@@ -25,7 +25,7 @@
return
/datum/admins/proc/CandCheck(role = null, mob/living/carbon/human/M, datum/game_mode/temp = null)
// You pass in ROLE define (optional), the applicant, and the gamemode, and it will return true / false depending on whether the applicant qualify for the candidacy in question
// You pass in ROLE define (optional), the applicant, and the gamemode, and it will return true / false depending on whether the applicant qualify for the candidacy in question
if(jobban_isbanned(M, ROLE_SYNDICATE))
return FALSE
if(M.stat || !M.mind || M.mind.special_role || M.mind.offstation_role)
+1 -1
View File
@@ -698,7 +698,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
for(var/datum/job/job in SSjobs.occupations)
to_chat(src, "<span class='notice'>[job.title]: [job.current_positions] / \
[job.total_positions == -1 ? "<b>UNLIMITED</b>" : job.total_positions] \
<b>([job.total_positions == -1 ? "UNLIMITED" : job.total_positions - job.current_positions])</b></span>")
<b>([job.total_positions == -1 ? "UNLIMITED" : job.total_positions - job.current_positions])</b></span>")
if(job.total_positions != -1) // Only count position that isn't unlimited
currentpositiontally += job.current_positions
totalpositiontally += job.total_positions
@@ -9,9 +9,9 @@
power_type = CHANGELING_PURCHASABLE_POWER
/datum/action/changeling/headslug/try_to_sting(mob/user, mob/target)
if(alert("Are you sure you wish to do this? This action cannot be undone.",,"Yes","No")=="No")
return
..()
if(alert("Are you sure you wish to do this? This action cannot be undone.",,"Yes","No")=="No")
return
..()
/datum/action/changeling/headslug/sting_action(mob/user)
var/datum/mind/M = user.mind
@@ -270,7 +270,7 @@
return "You and the target must be standing in the extraction area to start the extraction process."
M.visible_message("<span class='notice'>[M] starts entering a cryptic series of characters on [U].</span>",\
"<span class='notice'>You start entering an extraction signal to your handlers on [U]...</span>")
"<span class='notice'>You start entering an extraction signal to your handlers on [U]...</span>")
if(do_after(M, EXTRACTION_PHASE_PREPARE, target = M))
if(!U.Adjacent(M) || extraction_deadline > world.time)
return
@@ -278,7 +278,7 @@
extraction_flare = F
extraction_deadline = world.time + extraction_cooldown
M.visible_message("<span class='notice'>[M] enters a mysterious code on [U] and pulls a black and gold flare from [M.p_their()] belongings before lighting it.</span>",\
"<span class='notice'>You finish entering the signal on [U] and light an extraction flare, initiating the extraction process.</span>")
"<span class='notice'>You finish entering the signal on [U] and light an extraction flare, initiating the extraction process.</span>")
addtimer(CALLBACK(src, PROC_REF(open_extraction_portal), U, M, F), EXTRACTION_PHASE_PORTAL)
extraction_timer_handle = addtimer(CALLBACK(src, PROC_REF(deadline_reached)), portal_duration, TIMER_STOPPABLE)
@@ -301,7 +301,7 @@
invalidate()
return
U.message_holder("Extraction signal received, agent. [SSmapping.map_datum.fluff_name]'s bluespace transport jamming systems have been sabotaged. "\
+ "We have opened a temporary portal at your flare location - proceed to the target's extraction by inserting them into the portal.", 'sound/effects/confirmdropoff.ogg')
+ "We have opened a temporary portal at your flare location - proceed to the target's extraction by inserting them into the portal.", 'sound/effects/confirmdropoff.ogg')
// Open a portal
var/obj/effect/portal/redspace/contractor/P = new(get_turf(F), pick(GLOB.syndieprisonwarp), F, 0, M)
P.contract = src
@@ -336,7 +336,7 @@
if(target_dead)
penalty_text = " (penalty applied as the target was extracted dead)"
owning_hub.contractor_uplink?.message_holder("Well done, agent. The package has been received and will be processed shortly before being returned. "\
+ "As agreed, you have been credited with [tc] telecrystals[penalty_text] and [creds] credits.", 'sound/machines/terminal_prompt_confirm.ogg')
+ "As agreed, you have been credited with [tc] telecrystals[penalty_text] and [creds] credits.", 'sound/machines/terminal_prompt_confirm.ogg')
/**
* Handles the target's experience from extraction.
@@ -37,6 +37,6 @@
return
to_chat(M, "<span class='notice'>[bicon(src)] Incoming encrypted transmission from your handlers. Message as follows:</span><br />"\
+ "<span class='boldnotice'>[text]</span>")
+ "<span class='boldnotice'>[text]</span>")
if(sndfile)
M.playsound_local(get_turf(M), sndfile, 30, FALSE, use_reverb = FALSE)
@@ -50,11 +50,11 @@
var/mob/M = owner.current
var/obj/item/uplink_holder = locate(/obj/item/pda) in M.contents
// No PDA or it has no uplink? Check headset
// No PDA or it has no uplink? Check headset
if(!uplink_holder || !uplink_holder.hidden_uplink)
uplink_holder = locate(/obj/item/radio) in M.contents
// If the headset has an uplink, delete it
// If the headset has an uplink, delete it
if(uplink_holder && uplink_holder.hidden_uplink)
var/uplink = locate(/obj/item/uplink/hidden) in uplink_holder.contents
uplink_holder.hidden_uplink = null
+1 -1
View File
@@ -49,7 +49,7 @@
$('#debug-streak').html(0); //reset streak
setTimeout(gameShutDown,500); //end game because you dropped it
},4*error+300);
}else{
}else{
prizeWon = true; // Incase you are interupted, you still get a prize.
}
state = 'is grabbed';
@@ -114,9 +114,9 @@
SSair.add_to_active(src,command)
/atom/movable/proc/move_update_air(turf/T)
if(isturf(T))
T.air_update_turf(1)
air_update_turf(1)
if(isturf(T))
T.air_update_turf(1)
air_update_turf(1)
@@ -110,7 +110,7 @@
"power" = on,
"volume_rate" = volume_rate,
"sigtype" = "status"
)
)
radio_connection.post_signal(src, signal, RADIO_ATMOSIA)
+2 -2
View File
@@ -500,8 +500,8 @@
assignedrole = "Space Bartender"
/obj/effect/mob_spawn/human/beach/alive/lifeguard
flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff. Then suddenly your entire beach was transported to this strange hell.\
You aren't trained for this, but you'll still keep your guests alive!"
flavour_text = "You're a spunky lifeguard! It's up to you to make sure nobody drowns or gets eaten by sharks and stuff. Then suddenly your entire beach was transported to this strange hell. \
You aren't trained for this, but you'll still keep your guests alive!"
description = "Try to survive on lavaland with the pitiful equipment of a lifeguard. Or hide in your biodome."
mob_gender = "female"
name = "lifeguard sleeper"
@@ -102,7 +102,7 @@
Adamantine golems are the only golems that can resonate to all golems.</span>")
to_chat(new_spawn, "Build golem shells in the autolathe, and feed refined mineral sheets to the shells to bring them to life! You are generally a peaceful group unless provoked.")
to_chat(new_spawn, "<span class='warning'>You may interact or trade with crew you come across, aswell as defend yourself and your ship \
but avoid actively interfering with the station, you are required to adminhelp and request permission to board the main station.</span>")
but avoid actively interfering with the station, you are required to adminhelp and request permission to board the main station.</span>")
else
new_spawn.mind.store_memory("<b>Serve [owner.real_name], your creator.</b>")
log_game("[key_name(new_spawn)] possessed a golem shell enslaved to [key_name(owner)].")
+2 -2
View File
@@ -8,8 +8,8 @@
log_debug("Setting up atmos")
/* setup_allturfs is superfluous during server initialization because
air subsystem will call subsequently call setup_allturfs with _every_
turf in the world */
* air subsystem will call subsequently call setup_allturfs with _every_
* turf in the world */
if(SSair && SSair.initialized)
SSair.setup_allturfs(turfs)
log_debug("\tTook [stop_watch(subtimer)]s")
+4 -4
View File
@@ -1646,10 +1646,10 @@
popup.open(0)
/datum/character_save/proc/GetPlayerAltTitle(datum/job/job)
if(player_alt_titles.Find(job.title) > 0) // Does it exist in the list
if(player_alt_titles[job.title] in job.alt_titles) // Is it valid
return player_alt_titles[job.title]
return job.title // Use default
if(player_alt_titles.Find(job.title) > 0) // Does it exist in the list
if(player_alt_titles[job.title] in job.alt_titles) // Is it valid
return player_alt_titles[job.title]
return job.title // Use default
/datum/character_save/proc/SetPlayerAltTitle(datum/job/job, new_title)
// remove existing entry
+7 -7
View File
@@ -222,13 +222,13 @@
resistance_flags = NONE
/*
SEE_SELF // can see self, no matter what
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
BLIND // can't see anything
* SEE_SELF // can see self, no matter what
* 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
* BLIND // can't see anything
*/
/obj/item/clothing/glasses/verb/adjust_eyewear() //Adjust eyewear to be worn above or below the mask.
+6 -6
View File
@@ -353,12 +353,12 @@
/obj/item/clothing/shoes/cowboy/lizardmasterwork = 1)
/obj/item/clothing/shoes/footwraps
name = "cloth footwraps"
desc = "A roll of treated canvas used for wrapping claws or paws."
icon_state = "clothwrap"
item_state = "clothwrap"
force = 0
w_class = WEIGHT_CLASS_SMALL
name = "cloth footwraps"
desc = "A roll of treated canvas used for wrapping claws or paws."
icon_state = "clothwrap"
item_state = "clothwrap"
force = 0
w_class = WEIGHT_CLASS_SMALL
/obj/item/clothing/shoes/bhop
name = "jump boots"
+1 -1
View File
@@ -87,7 +87,7 @@
//Chef
/obj/item/clothing/suit/toggle/chef
name = "chef's apron"
name = "chef's apron"
//Chef
+2 -2
View File
@@ -516,7 +516,7 @@
armor = list(MELEE = 5, BULLET = 5, LASER = 50, ENERGY = 50, BOMB = 0, BIO = 0, RAD = 0, FIRE = INFINITY, ACID = INFINITY)
strip_delay = 3 SECONDS
sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/head.dmi',
"Grey" = 'icons/mob/clothing/species/grey/head.dmi')
"Grey" = 'icons/mob/clothing/species/grey/head.dmi')
/obj/item/clothing/suit/hooded/ablative
name = "ablative trenchcoat"
@@ -534,7 +534,7 @@
strip_delay = 3 SECONDS
put_on_delay = 4 SECONDS
sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi')
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi')
var/hit_reflect_chance = 50
/obj/item/clothing/suit/hooded/ablative/IsReflect()
+17 -17
View File
@@ -667,7 +667,7 @@
result = list(/obj/item/clothing/accessory/necklace/talisman)
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonecodpiece
@@ -675,7 +675,7 @@
result = list(/obj/item/clothing/accessory/necklace/skullcodpiece)
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bracers
@@ -683,7 +683,7 @@
result = list(/obj/item/clothing/gloves/bracer)
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/skullhelm
@@ -738,7 +738,7 @@
result = list(/obj/item/twohanded/spear/bonespear)
time = 30
reqs = list(/obj/item/stack/sheet/bone = 4,
/obj/item/stack/sheet/sinew = 1)
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonepickaxe
@@ -746,7 +746,7 @@
result = list(/obj/item/pickaxe/bone)
time = 40
reqs = list(/obj/item/stack/sheet/bone = 4,
/obj/item/stack/sheet/sinew = 2)
/obj/item/stack/sheet/sinew = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/bonescythe
@@ -754,7 +754,7 @@
result = list(/obj/item/scythe/bone)
time = 40
reqs = list(/obj/item/stack/sheet/bone = 5,
/obj/item/stack/sheet/sinew = 2)
/obj/item/stack/sheet/sinew = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/boneaxe
@@ -762,7 +762,7 @@
result = list(/obj/item/twohanded/fireaxe/boneaxe)
time = 50
reqs = list(/obj/item/stack/sheet/bone = 6,
/obj/item/stack/sheet/sinew = 3)
/obj/item/stack/sheet/sinew = 3)
category = CAT_PRIMAL
/datum/crafting_recipe/bonfire
@@ -792,8 +792,8 @@
result = list(/obj/structure/guillotine)
time = 150 // Building a functioning guillotine takes time
reqs = list(/obj/item/stack/sheet/plasteel = 3,
/obj/item/stack/sheet/wood = 20,
/obj/item/stack/cable_coil = 10)
/obj/item/stack/sheet/wood = 20,
/obj/item/stack/cable_coil = 10)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
category = CAT_MISC
@@ -810,10 +810,10 @@
result = list(/obj/item/thermal_drill)
time = 60
reqs = list(/obj/item/stack/cable_coil = 5,
/obj/item/mecha_parts/mecha_equipment/drill = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/stack/rods = 2,
/obj/item/assembly/timer = 1)
/obj/item/mecha_parts/mecha_equipment/drill = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/stack/rods = 2,
/obj/item/assembly/timer = 1)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH)
category = CAT_MISC
@@ -822,10 +822,10 @@
result = list(/obj/item/thermal_drill/diamond_drill)
time = 60
reqs = list(/obj/item/stack/cable_coil = 5,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/stack/rods = 2,
/obj/item/assembly/prox_sensor = 1) // Not a timer because the system sees a diamond drill as a drill too, letting you make both otherwise.
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/stack/rods = 2,
/obj/item/assembly/prox_sensor = 1) // Not a timer because the system sees a diamond drill as a drill too, letting you make both otherwise.
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH)
category = CAT_MISC
+10 -10
View File
@@ -56,8 +56,8 @@
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/security = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunsecremoval
@@ -74,8 +74,8 @@
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/health = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunmedremoval
@@ -92,8 +92,8 @@
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/diagnostic = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsundiagremoval
@@ -110,8 +110,8 @@
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/science = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/beergogglesremoval
@@ -169,6 +169,6 @@
time = 45
tools = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL)
reqs = list(/obj/item/clothing/mask/gas = 1,
/obj/item/assembly/voice = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/assembly/voice = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
+13 -13
View File
@@ -1090,12 +1090,12 @@
item_color = "fallout_dress"
/obj/item/clothing/under/fluff/soviet_casual_uniform // Norstead : Natalya Sokolova
icon = 'icons/obj/custom_items.dmi'
name = "Soviet Casual Uniform"
desc = "Female U.S.S.P. casual wear. Dlya Rodiny!"
icon_state = "soviet_casual_uniform"
item_state = "soviet_casual_uniform"
item_color = "soviet_casual_uniform"
icon = 'icons/obj/custom_items.dmi'
name = "Soviet Casual Uniform"
desc = "Female U.S.S.P. casual wear. Dlya Rodiny!"
icon_state = "soviet_casual_uniform"
item_state = "soviet_casual_uniform"
item_color = "soviet_casual_uniform"
/obj/item/clothing/under/fluff/kharshai // Kharshai: Athena Castile
name = "Castile formal outfit"
@@ -1249,7 +1249,7 @@
actions_types = list(/datum/action/item_action/adjust)
var/prompting_change = FALSE
var/list/plush_colors = list("red fox plushie" = "redfox", "black fox plushie" = "blackfox", "marble fox plushie" = "marblefox", "blue fox plushie" = "bluefox", "orange fox plushie" = "orangefox",
"coffee fox plushie" = "coffeefox", "pink fox plushie" = "pinkfox", "purple fox plushie" = "purplefox", "crimson fox plushie" = "crimsonfox")
"coffee fox plushie" = "coffeefox", "pink fox plushie" = "pinkfox", "purple fox plushie" = "purplefox", "crimson fox plushie" = "crimsonfox")
/obj/item/toy/plushie/fluff/fox/proc/change_color()
if(prompting_change)
@@ -1613,12 +1613,12 @@
slot_flags = SLOT_TIE
/obj/item/clothing/accessory/rbscarf //Rb303: Isthel Eisenwald
name = "Old purple scarf"
desc = "An old, striped purple scarf. It appears to be hand-knitted and has the name 'Isthel' written on it in bad handwriting."
icon = 'icons/obj/custom_items.dmi'
icon_state = "rbscarf"
item_state = "rbscarf"
item_color = "rbscarf"
name = "Old purple scarf"
desc = "An old, striped purple scarf. It appears to be hand-knitted and has the name 'Isthel' written on it in bad handwriting."
icon = 'icons/obj/custom_items.dmi'
icon_state = "rbscarf"
item_state = "rbscarf"
item_color = "rbscarf"
/obj/item/clothing/head/fluff/pinesalad_horns //Pineapple Salad: Dan Jello
name = "Bluespace Horns"
+6 -6
View File
@@ -6,12 +6,12 @@
var/list/obj/machinery/economy/vending/infectedMachines = list()
var/obj/machinery/economy/vending/originMachine
var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \
"You should buy products to feed your lifestyle obession!", \
"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.")
"You should buy products to feed your lifestyle obession!", \
"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/announce()
GLOB.minor_announcement.Announce("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert", 'sound/AI/brand_intelligence.ogg')
+2 -2
View File
@@ -1,7 +1,7 @@
/datum/event/carp_migration/koi
spawned_mobs = list(
/mob/living/simple_animal/hostile/retaliate/carp/koi = 98,
/mob/living/simple_animal/hostile/retaliate/carp/koi/honk = 2)
/mob/living/simple_animal/hostile/retaliate/carp/koi = 98,
/mob/living/simple_animal/hostile/retaliate/carp/koi/honk = 2)
/datum/event/carp_migration/koi/start()
+10 -10
View File
@@ -16,16 +16,16 @@
volume = 50
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites.
var/list/possible_states = list(
"ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."),
"capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"),
"enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"),
"soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"),
"frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in it's passage"),
"sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"),
"blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
"cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"),
"wasabi" = list("wasabitube", "wasabi bottle", "A pungent paste commonly served in tiny amounts with sushi. Spicy!"),
"sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"))
"ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."),
"capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"),
"enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"),
"soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"),
"frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in it's passage"),
"sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"),
"blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
"cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"),
"wasabi" = list("wasabitube", "wasabi bottle", "A pungent paste commonly served in tiny amounts with sushi. Spicy!"),
"sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"))
var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters.
/obj/item/reagent_containers/food/condiment/attack_self(mob/user)
+1 -1
View File
@@ -216,7 +216,7 @@
var/slices_lost = 0
if(!inaccurate)
user.visible_message("<span class='notice'>[user] slices [src]!</span>",
"<span class='notice'>You slice [src]!</span>")
"<span class='notice'>You slice [src]!</span>")
else
user.visible_message("<span class='notice'>[user] crudely slices [src] with [I]!</span>",
"<span class='notice'>You crudely slice [src] with your [I]</span>!")
@@ -28,13 +28,13 @@
/datum/recipe/candy/fudge_peanut
reagents = list("sugar" = 5, "milk" = 5)
items = list(/obj/item/reagent_containers/food/snacks/chocolatebar, /obj/item/reagent_containers/food/snacks/grown/peanuts,
/obj/item/reagent_containers/food/snacks/grown/peanuts, /obj/item/reagent_containers/food/snacks/grown/peanuts)
/obj/item/reagent_containers/food/snacks/grown/peanuts, /obj/item/reagent_containers/food/snacks/grown/peanuts)
result = /obj/item/reagent_containers/food/snacks/candy/fudge/peanut
/datum/recipe/candy/fudge_cherry
reagents = list("sugar" = 5, "milk" = 5)
items = list(/obj/item/reagent_containers/food/snacks/chocolatebar, /obj/item/reagent_containers/food/snacks/grown/cherries,
/obj/item/reagent_containers/food/snacks/grown/cherries, /obj/item/reagent_containers/food/snacks/grown/cherries)
/obj/item/reagent_containers/food/snacks/grown/cherries, /obj/item/reagent_containers/food/snacks/grown/cherries)
result = /obj/item/reagent_containers/food/snacks/candy/fudge/cherry
/datum/recipe/candy/fudge_cookies_n_cream
@@ -210,13 +210,13 @@
/datum/recipe/microwave/spacylibertyduff
reagents = list("water" = 5, "vodka" = 5)
items = list(/obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap, /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap,
/obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap)
/obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap)
result = /obj/item/reagent_containers/food/snacks/spacylibertyduff
/datum/recipe/microwave/amanitajelly
reagents = list("water" = 5, "vodka" = 5)
items = list(/obj/item/reagent_containers/food/snacks/grown/mushroom/amanita, /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita,
/obj/item/reagent_containers/food/snacks/grown/mushroom/amanita)
/obj/item/reagent_containers/food/snacks/grown/mushroom/amanita)
result = /obj/item/reagent_containers/food/snacks/amanitajelly
/datum/recipe/microwave/amanitajelly/make_food(obj/container)
@@ -232,7 +232,7 @@
/datum/recipe/microwave/vegetablesoup
reagents = list("water" = 10)
items = list(/obj/item/reagent_containers/food/snacks/grown/potato, /obj/item/reagent_containers/food/snacks/grown/carrot,
/obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/eggplant)
/obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/eggplant)
result = /obj/item/reagent_containers/food/snacks/soup/vegetablesoup
/datum/recipe/microwave/nettlesoup
@@ -349,7 +349,7 @@
/datum/recipe/microwave/stewedsoymeat
items = list(/obj/item/reagent_containers/food/snacks/soydope, /obj/item/reagent_containers/food/snacks/soydope,
/obj/item/reagent_containers/food/snacks/grown/carrot, /obj/item/reagent_containers/food/snacks/grown/tomato)
/obj/item/reagent_containers/food/snacks/grown/carrot, /obj/item/reagent_containers/food/snacks/grown/tomato)
result = /obj/item/reagent_containers/food/snacks/stewedsoymeat
/datum/recipe/microwave/boiledspaghetti
@@ -370,7 +370,7 @@
/datum/recipe/microwave/pastatomato
reagents = list("water" = 5)
items = list(/obj/item/reagent_containers/food/snacks/spaghetti, /obj/item/reagent_containers/food/snacks/grown/tomato,
/obj/item/reagent_containers/food/snacks/grown/tomato)
/obj/item/reagent_containers/food/snacks/grown/tomato)
result = /obj/item/reagent_containers/food/snacks/pastatomato
/datum/recipe/microwave/poppypretzel
@@ -526,7 +526,7 @@
/datum/recipe/microwave/herbsalad
items = list(/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/apple)
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/apple)
result = /obj/item/reagent_containers/food/snacks/herbsalad
/datum/recipe/microwave/herbsalad/make_food(obj/container)
@@ -536,13 +536,13 @@
/datum/recipe/microwave/aesirsalad
items = list(/obj/item/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus,
/obj/item/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/reagent_containers/food/snacks/grown/apple/gold)
/obj/item/reagent_containers/food/snacks/grown/ambrosia/deus, /obj/item/reagent_containers/food/snacks/grown/apple/gold)
result = /obj/item/reagent_containers/food/snacks/aesirsalad
/datum/recipe/microwave/validsalad
items = list(/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/potato,
/obj/item/reagent_containers/food/snacks/meatball)
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/potato,
/obj/item/reagent_containers/food/snacks/meatball)
result = /obj/item/reagent_containers/food/snacks/validsalad
/datum/recipe/microwave/validsalad/make_food(obj/container)
@@ -129,4 +129,4 @@
*/
/obj/effect/hallucination/chaser/attacker/proc/on_knockdown()
target.visible_message("<span class='warning'>[target] recoils as if hit by something, before suddenly collapsing!</span>",
"<span class='userdanger'>[src]'s blow was too much for you, causing you to collapse!</span>")
"<span class='userdanger'>[src]'s blow was too much for you, causing you to collapse!</span>")
+6 -6
View File
@@ -43,7 +43,7 @@
/obj/effect/hallucination/chaser/attacker/terror_spider/on_knockdown()
target.visible_message("<span class='warning'>[target] recoils as if hit by something, before suddenly collapsing!</span>",
"<span class='userdanger'>[name] bites you!</span>")
"<span class='userdanger'>[name] bites you!</span>")
/**
* # Hallucination - Spider Web
@@ -66,7 +66,7 @@
/obj/effect/hallucination/tripper/spider_web/on_crossed()
target.visible_message("<span class='warning'>[target] trips over nothing.</span>",
"<span class='userdanger'>You get stuck in [src]!</span>")
"<span class='userdanger'>You get stuck in [src]!</span>")
/obj/effect/hallucination/tripper/spider_web/attackby(obj/item/I, mob/user, params)
if(user != target)
@@ -75,7 +75,7 @@
step_towards(target, get_turf(src))
target.Weaken(4 SECONDS)
target.visible_message("<span class='warning'>[target] flails [target.p_their()] [I.name] as if striking something, only to trip!</span>",
"<span class='userdanger'>[src] vanishes as you strike it with [I], causing you to stumble forward!</span>")
"<span class='userdanger'>[src] vanishes as you strike it with [I], causing you to stumble forward!</span>")
qdel(src)
/**
@@ -183,7 +183,7 @@
/obj/effect/hallucination/chaser/attacker/abductor/on_knockdown()
target.visible_message("<span class='warning'>[target] recoils as if hit by something, before suddenly collapsing!</span>",
"<span class='userdanger'>[name] has stunned you with the advanced baton!</span>")
"<span class='userdanger'>[name] has stunned you with the advanced baton!</span>")
if(!QDELETED(owning_hallucination))
owning_hallucination.spawn_scientist()
else
@@ -327,7 +327,7 @@
/obj/effect/hallucination/chaser/attacker/assaulter/on_knockdown()
target.visible_message("<span class='warning'>[target] recoils as if hit by something, before suddenly collapsing!</span>",
"<span class='userdanger'>[name] has [attack_verb] [target]!</span>")
"<span class='userdanger'>[name] has [attack_verb] [target]!</span>")
QDEL_IN(src, 3 SECONDS)
/**
@@ -383,7 +383,7 @@
forceMove(get_turf(target))
target.Weaken(10 SECONDS)
target.visible_message("<span class='danger'>[target] recoils backwards and falls flat!</span>",
"<span class='userdanger'>[name] pounces on you!</span>")
"<span class='userdanger'>[name] pounces on you!</span>")
to_chat(target, "<span class='notice'>[name] begins climbing into the ventilation system...</span>")
QDEL_IN(src, 2 SECONDS)
@@ -105,7 +105,7 @@
user.Weaken(4 SECONDS)
user.visible_message("<span class='warning'>[user] does a grabbing motion towards [get_turf(src)] but [user.p_they()] stumble[user.p_s()] - nothing is there!</span>",
"<span class='userdanger'>[src] vanishes as you try grabbing it, causing you to stumble!</span>")
"<span class='userdanger'>[src] vanishes as you try grabbing it, causing you to stumble!</span>")
qdel(src)
/**
@@ -221,7 +221,7 @@
/obj/effect/hallucination/tripper/chasm/on_crossed()
target.visible_message("<span class='warning'>[target] trips over nothing and flails on [get_turf(target)] as if they were falling!</span>",
"<span class='userdanger'>You stumble and stare into an abyss before you. It stares back, and you fall into the enveloping dark!</span>")
"<span class='userdanger'>You stumble and stare into an abyss before you. It stares back, and you fall into the enveloping dark!</span>")
/**
* # Hallucination - Delamination Alarm
@@ -1,5 +1,3 @@
// Cannabis
/obj/item/seeds/cannabis
name = "pack of cannabis seeds"
+7 -7
View File
@@ -7,20 +7,20 @@
name = "Crisis Brass Section"
id = "crbrass"
real_samples = list("36"='sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg',
"48"='sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg',
"60"='sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg',
"72"='sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg')
"48"='sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg',
"60"='sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg',
"72"='sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg')
/datum/instrument/brass/crisis_trombone
name = "Crisis Trombone"
id = "crtrombone"
real_samples = list("36"='sound/instruments/synthesis_samples/brass/crisis_trombone/c2.ogg',
"48"='sound/instruments/synthesis_samples/brass/crisis_trombone/c3.ogg',
"60"='sound/instruments/synthesis_samples/brass/crisis_trombone/c4.ogg',
"72"='sound/instruments/synthesis_samples/brass/crisis_trombone/c5.ogg')
"48"='sound/instruments/synthesis_samples/brass/crisis_trombone/c3.ogg',
"60"='sound/instruments/synthesis_samples/brass/crisis_trombone/c4.ogg',
"72"='sound/instruments/synthesis_samples/brass/crisis_trombone/c5.ogg')
/datum/instrument/brass/crisis_trumpet
name = "Crisis Trumpet"
id = "crtrumpet"
real_samples = list("60"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c4.ogg',
"72"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c5.ogg')
"72"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c5.ogg')
@@ -7,25 +7,25 @@
name = "Crisis Vibraphone"
id = "crvibr"
real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg',
"48"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg',
"60"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg',
"72"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg')
"48"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg',
"60"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg',
"72"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg')
/datum/instrument/chromatic/musicbox1
name = "SGM Music Box"
id = "sgmmbox"
real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg',
"48"='sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg',
"60"='sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg',
"72"='sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg')
"48"='sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg',
"60"='sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg',
"72"='sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg')
/datum/instrument/chromatic/fluid_celeste
name = "FluidR3 Celeste"
id = "r3celeste"
real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c2.ogg',
"48"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c3.ogg',
"60"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c4.ogg',
"72"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c5.ogg',
"84"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c6.ogg',
"96"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c7.ogg',
"108"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c8.ogg')
"48"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c3.ogg',
"60"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c4.ogg',
"72"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c5.ogg',
"84"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c6.ogg',
"96"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c7.ogg',
"108"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c8.ogg')
+12 -12
View File
@@ -7,30 +7,30 @@
name = "Crisis Steel String Guitar"
id = "csteelgt"
real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg',
"48"='sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg')
"48"='sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg')
/datum/instrument/guitar/nylon_crisis
name = "Crisis Nylon String Guitar"
id = "cnylongt"
real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg',
"48"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg')
"48"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg')
/datum/instrument/guitar/clean_crisis
name = "Crisis Clean Guitar"
id = "ccleangt"
real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_clean/c2.ogg',
"48"='sound/instruments/synthesis_samples/guitar/crisis_clean/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_clean/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_clean/c5.ogg')
"48"='sound/instruments/synthesis_samples/guitar/crisis_clean/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_clean/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_clean/c5.ogg')
/datum/instrument/guitar/muted_crisis
name = "Crisis Muted Guitar"
id = "cmutedgt"
real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_muted/c2.ogg',
"48"='sound/instruments/synthesis_samples/guitar/crisis_muted/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_muted/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_muted/c5.ogg')
"48"='sound/instruments/synthesis_samples/guitar/crisis_muted/c3.ogg',
"60"='sound/instruments/synthesis_samples/guitar/crisis_muted/c4.ogg',
"72"='sound/instruments/synthesis_samples/guitar/crisis_muted/c5.ogg')
+14 -14
View File
@@ -7,37 +7,37 @@
name = "Crisis Church Organ"
id = "crichugan"
real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg',
"48"='sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg')
"48"='sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg')
/datum/instrument/organ/crisis_hammond
name = "Crisis Hammond Organ"
id = "crihamgan"
real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg',
"48"='sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg')
"48"='sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg')
/datum/instrument/organ/crisis_accordian
name = "Crisis Accordion"
id = "crack"
real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg',
"48"='sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg')
"48"='sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg')
/datum/instrument/organ/crisis_harmonica
name = "Crisis Harmonica"
id = "crharmony"
real_samples = list("48"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg')
"60"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg')
/datum/instrument/organ/crisis_tango_accordian
name = "Crisis Tango Accordion"
id = "crtango"
real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg',
"48"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg')
"48"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg',
"60"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg',
"72"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg')
+27 -27
View File
@@ -7,50 +7,50 @@
name = "FluidR3 Grand Piano"
id = "r3grand"
real_samples = list("36"='sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg',
"48"='sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg')
"48"='sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg')
/datum/instrument/piano/fluid_harpsichord
name = "FluidR3 Harpsichord"
id = "r3harpsi"
real_samples = list("36"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c2.ogg',
"48"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c8.ogg')
"48"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c8.ogg')
/datum/instrument/piano/crisis_harpsichord
name = "Crisis Harpsichord"
id = "crharpsi"
real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg',
"48"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg')
"48"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg')
/datum/instrument/piano/crisis_grandpiano_uni
name = "Crisis Grand Piano One"
id = "crgrand1"
real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg',
"48"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg')
"48"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg')
/datum/instrument/piano/crisis_brightpiano_uni
name = "Crisis Bright Piano One"
id = "crbright1"
real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg',
"48"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg')
"48"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg',
"60"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg',
"72"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg',
"84"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg',
"96"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg',
"108"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg')
+24 -24
View File
@@ -5,17 +5,17 @@
/*
* # Library Catalog
This datum forms the basis for the entire library system, one is created at roundstart and stored to a global variable
It holds lists for all predefined report and book categories, books flagged during the round, and all programmatic
books.
Additionally, ALL library SQL queries are handled in this datum. This is intentional so that we do not have multiple SQL
queries trying to do the same thing but in 4-5 different dm files. This file is split/organized into a specific
structure:
TOP - Defining Library Lists
MIDDLE - Get Procs that get information from the catalog or DB
BOTTOM - Send/Update procs that perform changes to the Database. Don't mix their functionalities together.
*
* This datum forms the basis for the entire library system, one is created at roundstart and stored to a global variable
* It holds lists for all predefined report and book categories, books flagged during the round, and all programmatic
* books.
*
* Additionally, ALL library SQL queries are handled in this datum. This is intentional so that we do not have multiple SQL
* queries trying to do the same thing but in 4-5 different dm files. This file is split/organized into a specific
* structure:
* TOP - Defining Library Lists
* MIDDLE - Get Procs that get information from the catalog or DB
* BOTTOM - Send/Update procs that perform changes to the Database. Don't mix their functionalities together.
*/
/datum/library_catalog
///Lists of all reported books in the current round
@@ -55,7 +55,7 @@
DEFINE_CATEGORY(LIB_CATEGORY_PHILOSOPHY, "Philosophy"),
DEFINE_CATEGORY(LIB_CATEGORY_DRAMA, "Drama and Thriller"),
DEFINE_CATEGORY(LIB_CATEGORY_EXPERIMENT, "Experiment Notes"),
DEFINE_CATEGORY(LIB_CATEGORY_EXPERIMENT, "Experiment Notes"),
DEFINE_CATEGORY(LIB_CATEGORY_LEGAL, "Legal Document"),
DEFINE_CATEGORY(LIB_CATEGORY_BIOGRAPHY, "Biography"),
DEFINE_CATEGORY(LIB_CATEGORY_GUIDE, "Guides and References"),
@@ -67,7 +67,7 @@
DEFINE_CATEGORY(LIB_CATEGORY_THEATRE, "Theatre"),
DEFINE_CATEGORY(LIB_CATEGORY_POETRY, "Poetry"),
DEFINE_CATEGORY(LIB_CATEGORY_LAW, "Law"),
DEFINE_CATEGORY(LIB_CATEGORY_LAW, "Law"),
DEFINE_CATEGORY(LIB_CATEGORY_SECURITY, "Security"),
DEFINE_CATEGORY(LIB_CATEGORY_SUPPLY, "Supply"),
DEFINE_CATEGORY(LIB_CATEGORY_ENGINEERING, "Engineering"),
@@ -639,15 +639,15 @@
#undef MAX_PLAYER_UPLOADS
/* here be dragons~~~
__ _
_/ \ _(\(o
/ \ / _ ^^^o
/ ! \/ ! '!!!v'
! ! \ _' ( \____
! . \ _!\ \===^\)
\ \_! / __!
\! / \
(\_ _/ _\ )
\ ^^--^^ __-^ /(__
^^----^^ "^--v'
* __ _
* _/ \ _(\(o
* / \ / _ ^^^o
* / ! \/ ! '!!!v'
* ! ! \ _' ( \____
* ! . \ _!\ \===^\)
* \ \_! / __!
* \! / \
* (\_ _/ _\ )
* \ ^^--^^ __-^ /(__
* ^^----^^ "^--v'
*/
+6 -6
View File
@@ -4,12 +4,12 @@
//
//*******************************
/*
The Library
------------
A place for the crew to go, relax, and enjoy a good book.
Aspiring authors can even self publish and submit it to the Archives
to be chronicled in history forever - some say even persisting
through alternate dimensions.
* The Library
* ------------
* A place for the crew to go, relax, and enjoy a good book.
* Aspiring authors can even self publish and submit it to the Archives
* to be chronicled in history forever - some say even persisting
* through alternate dimensions.
*/
/* DB Notes:
+48 -48
View File
@@ -4,64 +4,64 @@ BS12 object based lighting system
/*
Changes from tg DAL:
- Lighting is done using objects instead of subareas.
- Animated transitions. (newer tg DAL has this)
- Full colours with mixing.
- Support for lights on shuttles.
- Code:
- Instead of one flat luminosity var, light is represented by 3 atom vars:
- light_range; range in tiles of the light, used for calculating falloff,
- light_power; multiplier for the brightness of lights,
- light_color; hex string representing the RGB colour of the light.
- setLuminousity() is now set_light() and takes the three variables above.
- Variables can be left as null to not update them.
- set_opacity() is now set_opacity().
- Areas have luminosity set to 1 permanently, no hard-lighting.
- Objects inside other objects can have lights and they properly affect the turf. (flashlights)
- area/master and area/list/related have been eviscerated since subareas aren't needed.
* - Lighting is done using objects instead of subareas.
* - Animated transitions. (newer tg DAL has this)
* - Full colours with mixing.
* - Support for lights on shuttles.
*
* - Code:
* - Instead of one flat luminosity var, light is represented by 3 atom vars:
* - light_range; range in tiles of the light, used for calculating falloff,
* - light_power; multiplier for the brightness of lights,
* - light_color; hex string representing the RGB colour of the light.
* - setLuminousity() is now set_light() and takes the three variables above.
* - Variables can be left as null to not update them.
* - set_opacity() is now set_opacity().
* - Areas have luminosity set to 1 permanently, no hard-lighting.
* - Objects inside other objects can have lights and they properly affect the turf. (flashlights)
* - area/master and area/list/related have been eviscerated since subareas aren't needed.
*/
/*
Relevant vars/procs:
atom: (lighting_atom.dm)
- var/light_range; range in tiles of the light, used for calculating falloff
- var/light_power; multiplier for the brightness of lights
- var/light_color; hex string representing the RGB colour of the light
- var/datum/light_source/light; light source datum for this atom, only present if light_range && light_power
- var/list/light_sources; light sources in contents that are shining through this object, including this object
- proc/set_light(l_range, l_power, l_color):
- Sets light_range/power/color to non-null args and calls update_light()
- proc/set_opacity(new_opacity):
- Sets opacity to new_opacity.
- If opacity has changed, call turf.reconsider_lights() to fix light occlusion
- proc/update_light():
- Updates the light var on this atom, deleting or creating as needed and calling .update()
* - var/light_range; range in tiles of the light, used for calculating falloff
* - var/light_power; multiplier for the brightness of lights
* - var/light_color; hex string representing the RGB colour of the light
*
* - var/datum/light_source/light; light source datum for this atom, only present if light_range && light_power
* - var/list/light_sources; light sources in contents that are shining through this object, including this object
*
* - proc/set_light(l_range, l_power, l_color):
* - Sets light_range/power/color to non-null args and calls update_light()
* - proc/set_opacity(new_opacity):
* - Sets opacity to new_opacity.
* - If opacity has changed, call turf.reconsider_lights() to fix light occlusion
* - proc/update_light():
* - Updates the light var on this atom, deleting or creating as needed and calling .update()
turf: (lighting_turf.dm)
- var/list/affecting_lights; list of light sources that are shining onto this turf
- proc/reconsider_lights():
- Force all light sources shining onto this turf to update
- proc/lighting_clear_overlays():
- Delete (manual GC) all light overlays on this turf, used when changing turf to space
- proc/lighting_build_overlays():
- Create lighting overlays for this turf
* - var/list/affecting_lights; list of light sources that are shining onto this turf
*
* - proc/reconsider_lights():
* - Force all light sources shining onto this turf to update
*
* - proc/lighting_clear_overlays():
* - Delete (manual GC) all light overlays on this turf, used when changing turf to space
* - proc/lighting_build_overlays():
* - Create lighting overlays for this turf
atom/movable/lighting_object: (lighting_object.dm)
- var/lum_r, var/lum_g, var/lum_b; lumcounts of each colour
- var/needs_update; set on update_lumcount, checked by lighting process
- var/xoffset, var/yoffset; (only present when using sub-tile overlays) fractional offset of this overlay in the tile
- proc/update_lumcount(delta_r, delta_g, delta_b):
- Change the lumcount vars and queue the overlay for update
- proc/update_overlay()
- Called by the lighting process to update the color of the overlay
* - var/lum_r, var/lum_g, var/lum_b; lumcounts of each colour
* - var/needs_update; set on update_lumcount, checked by lighting process
*
* - var/xoffset, var/yoffset; (only present when using sub-tile overlays) fractional offset of this overlay in the tile
*
* - proc/update_lumcount(delta_r, delta_g, delta_b):
* - Change the lumcount vars and queue the overlay for update
* - proc/update_overlay()
* - Called by the lighting process to update the color of the overlay
*/
-1
View File
@@ -104,7 +104,6 @@
. *= light_power; \
var/OLD = effect_str[C]; \
effect_str[C] = .; \
\
C.update_lumcount \
( \
(. * lum_r) - (OLD * applied_lum_r), \
+1 -1
View File
@@ -17,7 +17,7 @@
. = MARTIAL_COMBO_DONE
else if(IS_HORIZONTAL(target) && user != target)
target.visible_message("<span class='warning'>[user] kicks [target]'s head, disorienting [target.p_them()]!</span>", \
"<span class='userdanger'>[user] kicks your head, disorienting you!</span>")
"<span class='userdanger'>[user] kicks your head, disorienting you!</span>")
playsound(get_turf(user), 'sound/weapons/genhit1.ogg', 25, 1, -1)
var/atom/throw_target = get_edge_target_turf(target, user.dir)
target.throw_at(throw_target, 1, 8, user)
@@ -2,7 +2,7 @@
name = "Restrain"
steps = list(MARTIAL_COMBO_STEP_GRAB, MARTIAL_COMBO_STEP_GRAB)
explaination_text = "Locks opponents into a restraining position that is more effective the more stamina damage the target has taken, \
disarm to begin a chokehold that will knock them out."
disarm to begin a chokehold that will knock them out."
combo_text_override = "Grab, switch hands, Grab"
/datum/martial_combo/cqc/restrain/perform_combo(mob/living/carbon/human/user, mob/living/target, datum/martial_art/MA)
@@ -13,7 +13,7 @@
return MARTIAL_COMBO_DONE_CLEAR_COMBOS
user.do_attack_animation(target, ATTACK_EFFECT_KICK)
target.visible_message("<span class='warning'>[user] leg sweeps [target]!</span>", \
"<span class='userdanger'>[user] leg sweeps you!</span>")
"<span class='userdanger'>[user] leg sweeps you!</span>")
playsound(get_turf(user), 'sound/effects/hit_kick.ogg', 50, 1, -1)
target.apply_damage(5, BRUTE)
target.KnockDown(4 SECONDS)
@@ -5,7 +5,7 @@
/datum/martial_combo/krav_maga/lung_punch/perform_combo(mob/living/carbon/human/user, mob/living/target, datum/martial_art/MA)
user.do_attack_animation(target, ATTACK_EFFECT_PUNCH)
target.visible_message("<span class='warning'>[user] pounds [target] on the chest!</span>", \
"<span class='userdanger'>[user] slams your chest! You can't breathe!</span>")
"<span class='userdanger'>[user] slams your chest! You can't breathe!</span>")
playsound(get_turf(user), 'sound/effects/hit_punch.ogg', 50, 1, -1)
target.AdjustLoseBreath(10 SECONDS)
target.adjustStaminaLoss(30)
+1 -1
View File
@@ -13,5 +13,5 @@
playsound(get_turf(D), 'sound/effects/hit_kick.ogg', 50, 1, -1)
D.apply_damage(bonus_damage, BRUTE)
D.visible_message("<span class='danger'>[A] [picked_hit_type] [D]!</span>", \
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
return TRUE
+1 -1
View File
@@ -105,7 +105,7 @@
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
playsound(get_turf(D), 'sound/effects/hit_punch.ogg', 50, 1, -1)
D.visible_message("<span class='danger'>[A] [picked_hit_type] [D]!</span>", \
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
"<span class='userdanger'>[A] [picked_hit_type] you!</span>")
return TRUE
/datum/martial_art/krav_maga/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
+8 -8
View File
@@ -362,24 +362,24 @@
var/mob/living/carbon/human/H = target
var/list/fluffmessages = list("[user] clubs [H] with [src]!", \
"[user] smacks [H] with the butt of [src]!", \
"[user] broadsides [H] with [src]!", \
"[user] smashes [H]'s head with [src]!", \
"[user] beats [H] with front of [src]!", \
"[user] twirls and slams [H] with [src]!")
"[user] smacks [H] with the butt of [src]!", \
"[user] broadsides [H] with [src]!", \
"[user] smashes [H]'s head with [src]!", \
"[user] beats [H] with front of [src]!", \
"[user] twirls and slams [H] with [src]!")
H.visible_message("<span class='warning'>[pick(fluffmessages)]</span>", \
"<span class='userdanger'>[pick(fluffmessages)]</span>")
"<span class='userdanger'>[pick(fluffmessages)]</span>")
playsound(get_turf(user), 'sound/effects/woodhit.ogg', 75, 1, -1)
H.adjustStaminaLoss(rand(13,20))
if(prob(10))
H.visible_message("<span class='warning'>[H] collapses!</span>", \
"<span class='userdanger'>Your legs give out!</span>")
"<span class='userdanger'>Your legs give out!</span>")
H.Weaken(8 SECONDS)
if(H.staminaloss && !H.IsSleeping())
var/total_health = (H.health - H.staminaloss)
if(total_health <= HEALTH_THRESHOLD_CRIT && !H.stat)
H.visible_message("<span class='warning'>[user] delivers a heavy hit to [H]'s head, knocking [H.p_them()] out cold!</span>", \
"<span class='userdanger'>[user] knocks you unconscious!</span>")
"<span class='userdanger'>[user] knocks you unconscious!</span>")
H.SetSleeping(60 SECONDS)
H.adjustBrainLoss(25)
return
+1 -1
View File
@@ -13,7 +13,7 @@
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
var/atk_verb = pick("punches", "kicks", "chops", "hits", "slams")
D.visible_message("<span class='danger'>[A] [atk_verb] [D]!</span>",
"<span class='userdanger'>[A] [atk_verb] you!</span>")
"<span class='userdanger'>[A] [atk_verb] you!</span>")
D.apply_damage(rand(10, 15), BRUTE, A.zone_selected)
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, TRUE, -1)
add_attack_logs(A, D, "Melee attacked with martial-art [src] : Punched", ATKLOG_ALL)
@@ -284,7 +284,7 @@
if(istype(W, /obj/item/wrench))
playsound(loc, W.usesound, 50, 1)
user.visible_message("<span class='warning'>[user] disassembles the fan.</span>", \
"<span class='notice'>You start to disassemble the fan...</span>", "You hear clanking and banging noises.")
"<span class='notice'>You start to disassemble the fan...</span>", "You hear clanking and banging noises.")
if(do_after(user, 20 * W.toolspeed, target = src))
deconstruct()
return ..()
@@ -327,7 +327,7 @@
if(istype(W, /obj/item/wrench))
playsound(loc, W.usesound, 50, 1)
user.visible_message("<span class='warning'>[user] disassembles [src].</span>", \
"<span class='notice'>You start to disassemble [src]...</span>", "You hear clanking and banging noises.")
"<span class='notice'>You start to disassemble [src]...</span>", "You hear clanking and banging noises.")
if(do_after(user, 20 * W.toolspeed, target = src))
new /obj/item/stack/rods(loc)
qdel(src)
@@ -137,7 +137,7 @@
destination = pick(L)
var/obj/effect/temp_visual/getaway_flare/F = new(get_turf(src))
user.visible_message("<span class='notice'>[user] pulls out a black and gold flare and lights it.</span>",\
"<span class='notice'>You light an emergency extraction flare, initiating the extraction process.</span>")
"<span class='notice'>You light an emergency extraction flare, initiating the extraction process.</span>")
user.drop_item()
forceMove(F)
addtimer(CALLBACK(src, PROC_REF(create_portal), destination), 5 SECONDS)
@@ -165,7 +165,7 @@
/obj/machinery/anomalous_crystal/emitter/Initialize(mapload)
. = ..()
generated_projectile = pick(/obj/item/projectile/magic/fireball/infernal,
/obj/item/projectile/bullet/meteorshot, /obj/item/projectile/beam/xray, /obj/item/projectile/colossus)
/obj/item/projectile/bullet/meteorshot, /obj/item/projectile/beam/xray, /obj/item/projectile/colossus)
/obj/machinery/anomalous_crystal/emitter/ActivationReaction(mob/user, method)
if(..())
@@ -298,7 +298,7 @@
cooldown_add = 50
activation_sound = 'sound/magic/timeparadox2.ogg'
var/list/banned_items_typecache = list(/obj/item/storage, /obj/item/implant, /obj/item/implanter, /obj/item/disk/nuclear,
/obj/item/projectile, /obj/item/spellbook, /obj/item/clothing/mask/facehugger, /obj/item/contractor_uplink)
/obj/item/projectile, /obj/item/spellbook, /obj/item/clothing/mask/facehugger, /obj/item/contractor_uplink)
/obj/machinery/anomalous_crystal/refresher/Initialize(mapload)
. = ..()
+1 -1
View File
@@ -209,7 +209,7 @@
SStgui.update_uis(src)
interact(user)
user.visible_message("<span class='notice'>[user] inserts [I] into [src].</span>",
"<span class='notice'>You insert [I] into [src].</span>")
"<span class='notice'>You insert [I] into [src].</span>")
return
return ..()
+3 -3
View File
@@ -29,9 +29,9 @@
sentience_type = SENTIENCE_MINEBOT
speak_emote = list("states")
wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver,
/obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron,
/obj/item/stack/ore/bananium, /obj/item/stack/ore/tranquillite, /obj/item/stack/ore/glass,
/obj/item/stack/ore/titanium)
/obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron,
/obj/item/stack/ore/bananium, /obj/item/stack/ore/tranquillite, /obj/item/stack/ore/glass,
/obj/item/stack/ore/titanium)
healable = FALSE
del_on_death = TRUE
var/mode = MINEDRONE_COLLECT
+2 -2
View File
@@ -474,8 +474,8 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
playsound(user.loc, 'sound/items/coinflip.ogg', 50, 1)
if(do_after(user, 15, target = src))
user.visible_message("<span class='notice'>[user] has flipped [src]. It lands on [coinflip].</span>", \
"<span class='notice'>You flip [src]. It lands on [coinflip].</span>", \
"<span class='notice'>You hear the clattering of loose change.</span>")
"<span class='notice'>You flip [src]. It lands on [coinflip].</span>", \
"<span class='notice'>You hear the clattering of loose change.</span>")
#undef GIBTONITE_QUALITY_LOW
#undef GIBTONITE_QUALITY_MEDIUM
+19 -19
View File
@@ -386,10 +386,10 @@
flags = RESTRICTED | WHITELISTED
join_override = "-"
syllables = list("år", "i", "går", "sek", "mo", "ff", "ok", "gj", "ø", "gå", "la", "le",
"lit", "ygg", "van", "dår", "næ", "møt", "idd", "hvo", "ja", "på", "han",
"så", "ån", "det", "att", "nå", "gö", "bra", "int", "tyc", "om", "när", "två",
"må", "dag", "sjä", "vii", "vuo", "eil", "tun", "käyt", "teh", "vä", "hei",
"huo", "suo", "ää", "ten", "ja", "heu", "stu", "uhr", "kön", "we", "hön")
"lit", "ygg", "van", "dår", "næ", "møt", "idd", "hvo", "ja", "på", "han",
"så", "ån", "det", "att", "nå", "gö", "bra", "int", "tyc", "om", "när", "två",
"må", "dag", "sjä", "vii", "vuo", "eil", "tun", "käyt", "teh", "vä", "hei",
"huo", "suo", "ää", "ten", "ja", "heu", "stu", "uhr", "kön", "we", "hön")
/datum/language/moth/get_random_name()
var/new_name = "[pick(list("Abbot","Archer","Arkwright","Baker","Bard","Biologist","Broker","Caller","Chamberlain","Clerk","Cooper","Culinarian","Dean","Director","Duke","Energizer","Excavator","Explorer","Fletcher","Gatekeeper","Guardian","Guide","Healer","Horner","Keeper","Knight","Laidler","Mapper","Marshall","Mechanic","Miller","Navigator","Pilot","Prior","Seeker","Seer","Smith","Stargazer","Teacher","Tech Whisperer","Tender","Thatcher","Voidcrafter","Voidhunter","Voidwalker","Ward","Watcher","Weaver","Webster","Wright"))]"
@@ -429,13 +429,13 @@
key = "2"
space_chance = 100
syllables = list("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit",
"sed", "do", "eiusmod", "tempor", "incididunt", "ut", "labore", "et", "dolore",
"magna", "aliqua", "ut", "enim", "ad", "minim", "veniam", "quis", "nostrud",
"exercitation", "ullamco", "laboris", "nisi", "ut", "aliquip", "ex", "ea", "commodo",
"consequat", "duis", "aute", "irure", "dolor", "in", "reprehenderit", "in",
"voluptate", "velit", "esse", "cillum", "dolore", "eu", "fugiat", "nulla",
"pariatur", "excepteur", "sint", "occaecat", "cupidatat", "non", "proident", "sunt",
"in", "culpa", "qui", "officia", "deserunt", "mollit", "anim", "id", "est", "laborum")
"sed", "do", "eiusmod", "tempor", "incididunt", "ut", "labore", "et", "dolore",
"magna", "aliqua", "ut", "enim", "ad", "minim", "veniam", "quis", "nostrud",
"exercitation", "ullamco", "laboris", "nisi", "ut", "aliquip", "ex", "ea", "commodo",
"consequat", "duis", "aute", "irure", "dolor", "in", "reprehenderit", "in",
"voluptate", "velit", "esse", "cillum", "dolore", "eu", "fugiat", "nulla",
"pariatur", "excepteur", "sint", "occaecat", "cupidatat", "non", "proident", "sunt",
"in", "culpa", "qui", "officia", "deserunt", "mollit", "anim", "id", "est", "laborum")
/datum/language/gutter
name = "Gutter"
@@ -468,14 +468,14 @@
space_chance = 65
english_names = 1
syllables = list("dyen","bar","bota","vyek","tvo","slov","slav","syen","doup","vah","laz","gloz","yet",
"nyet","da","sky","glav","glaz","netz","doomat","zat","moch","boz",
"comy","vrad","vrade","tay","bli","ay","nov","livn","tolv","glaz","gliz",
"ouy","zet","yevt","dat","botat","nev","novy","vzy","nov","sho","obsh","dasky",
"key","skey","ovsky","skaya","bib","kiev","studen","var","bul","vyan",
"tzion","vaya","myak","gino","volo","olam","miti","nino","menov","perov",
"odasky","trov","niki","ivano","dostov","sokol","oupa","pervom","schel",
"tizan","chka","tagan","dobry","okt","boda","veta","idi","cyk","blyt","hui","na",
"udi","litchki","casa","linka","toly","anatov","vich","vech","vuch","toi","ka","vod")
"nyet","da","sky","glav","glaz","netz","doomat","zat","moch","boz",
"comy","vrad","vrade","tay","bli","ay","nov","livn","tolv","glaz","gliz",
"ouy","zet","yevt","dat","botat","nev","novy","vzy","nov","sho","obsh","dasky",
"key","skey","ovsky","skaya","bib","kiev","studen","var","bul","vyan",
"tzion","vaya","myak","gino","volo","olam","miti","nino","menov","perov",
"odasky","trov","niki","ivano","dostov","sokol","oupa","pervom","schel",
"tizan","chka","tagan","dobry","okt","boda","veta","idi","cyk","blyt","hui","na",
"udi","litchki","casa","linka","toly","anatov","vich","vech","vuch","toi","ka","vod")
/datum/language/xenocommon
name = "Xenomorph"
@@ -152,17 +152,17 @@ Doesn't work on other aliens/AI.*/
visible_message("<span class='alertalien'><B>[src] hurls out the contents of [p_their()] stomach!</span>")
/mob/living/carbon/proc/getPlasma()
var/obj/item/organ/internal/xenos/plasmavessel/vessel = get_int_organ(/obj/item/organ/internal/xenos/plasmavessel)
if(!vessel) return 0
return vessel.stored_plasma
var/obj/item/organ/internal/xenos/plasmavessel/vessel = get_int_organ(/obj/item/organ/internal/xenos/plasmavessel)
if(!vessel) return 0
return vessel.stored_plasma
/mob/living/carbon/proc/adjustPlasma(amount)
var/obj/item/organ/internal/xenos/plasmavessel/vessel = get_int_organ(/obj/item/organ/internal/xenos/plasmavessel)
if(!vessel) return
vessel.stored_plasma = max(vessel.stored_plasma + amount,0)
vessel.stored_plasma = min(vessel.stored_plasma, vessel.max_plasma) //upper limit of max_plasma, lower limit of 0
return 1
var/obj/item/organ/internal/xenos/plasmavessel/vessel = get_int_organ(/obj/item/organ/internal/xenos/plasmavessel)
if(!vessel) return
vessel.stored_plasma = max(vessel.stored_plasma + amount,0)
vessel.stored_plasma = min(vessel.stored_plasma, vessel.max_plasma) //upper limit of max_plasma, lower limit of 0
return 1
/mob/living/carbon/alien/adjustPlasma(amount)
. = ..()
+2 -2
View File
@@ -113,13 +113,13 @@
to_chat(user, "<span class='warning'>There is no radio in [src]!</span>")
return
user.visible_message("<span class='warning'>[user] begins to uninstall the radio from [src]...</span>", \
"<span class='notice'>You start to uninstall the radio from [src]...</span>")
"<span class='notice'>You start to uninstall the radio from [src]...</span>")
if(!I.use_tool(src, user, 40, volume = I.tool_volume) || !radio)
return
uninstall_radio()
new /obj/item/mmi_radio_upgrade(get_turf(src))
user.visible_message("<span class='warning'>[user] uninstalls the radio from [src].</span>", \
"<span class='notice'>You uninstall the radio from [src].</span>")
"<span class='notice'>You uninstall the radio from [src].</span>")
/obj/item/mmi/attack_self(mob/user as mob)
@@ -1123,7 +1123,7 @@
var/obj/item/organ/internal/I = new organ(temp_holder) //Create the organ inside our holder so we can check it before implantation.
if(H.get_organ_slot(I.slot)) //Check to see if the user already has an organ in the slot the 'missing organ' belongs to. If they do, skip implantation.
continue //In an example, this will prevent duplication of the mob's eyes if the mob is a Human and they have Nucleation eyes, since,
//while the organ in the eyes slot may not be listed in the mob's species' organs definition, it is still viable and fits in the appropriate organ slot.
//while the organ in the eyes slot may not be listed in the mob's species' organs definition, it is still viable and fits in the appropriate organ slot.
else
I = new organ(H) //Create the organ inside the player.
I.insert(H)
@@ -26,7 +26,7 @@ emp_act
if(reflected)
visible_message("<span class='danger'>[P] gets reflected by [src]!</span>", \
"<span class='userdanger'>[P] gets reflected by [src]!</span>")
"<span class='userdanger'>[P] gets reflected by [src]!</span>")
add_attack_logs(P.firer, src, "hit by [P.type] but got reflected")
P.reflect_back(src)
return -1
@@ -632,7 +632,7 @@ emp_act
playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] has slashed at [src]!</span>", \
"<span class='userdanger'>[M] has slashed at [src]!</span>")
"<span class='userdanger'>[M] has slashed at [src]!</span>")
apply_damage(M.alien_slash_damage, BRUTE, affecting, armor_block)
add_attack_logs(M, src, "Alien attacked")
+42 -42
View File
@@ -102,48 +102,48 @@
if(getBrainLoss() >= 60 && stat != DEAD)
if(prob(3))
var/list/crazysay = list("IM A [pick("PONY","LIZARD","taJaran","kitty","Vulpakin","drASK","BIRDIE","voxxie","race car","combat meCH","SPESSSHIP")] [pick("NEEEEEEIIIIIIIIIGH","sKREEEEEE","MEOW","NYA~","rawr","Barkbark","Hissssss","vROOOOOM","pewpew","choo Choo")]!",
"without oxigen blob don't evoluate?",
"CAPTAINS A COMDOM",
"[pick("", "that damn traitor")] [pick("joerge", "george", "gorge", "gdoruge")] [pick("mellens", "melons", "mwrlins")] is grifing me HAL;P!!!",
"can u give me [pick("telikesis","halk","eppilapse")]?",
"THe saiyans screwed",
"Bi is THE BEST OF BOTH WORLDS",
"I WANNA PET TEH monkeyS",
"stop grifing me!!!!",
"SOTP IT!",
"HALPZ SITCULITY",
"VOXES caN't LOVE",
"my dad own this station",
"the CHef put [pick("PROTEIN", "toiret waTer", "RiPPleing TendIes", "Einzymes","HORRY WALTER","nuTriments","ReActive MutAngen","TeSLium","sKrektonium")] in my [pick("wiSh soup","Bullito","rAingurber","sOilent GREEn","KoI Susishes","yaya")]!",
"the monkey have TASER ARMS!",
"qM blew my points on [pick("cOMbat Shtogun","inSuLated gloves","LOTS MASSHEEN!")]",
"EI'NATH!",
"WAKE UP SHEEPLES!",
"et wus my [pick("wittle brother!!","fiancee","friend staying over","entiRe orphanage","love interest","wife","husband","liTTle kids","sentient cAT","accidentally")]!",
"FUS RO DAH",
"fuckin tangerines!!!",
"stAT ME",
"my FACE",
"rOLl it eaSy!",
"waaaaaagh!!!",
"red wonz go fasta",
"FOR TEH EMPRAH",
"HAZ A SECURE DAY!!!!",
"dem dwarfs man, dem dwarfs",
"SPESS MAHREENS",
"hwee did eet fhor khayosss",
"lifelike texture",
"luv can bloooom",
"PACKETS!!!",
"[pick("WHERE MY","aYE need","giv me my","bath me inn.")] [pick("dermaline","alKkyZine","dylOvene","inAprovaline","biCaridine","Hyperzine","kELotane","lePorazine","bAcch Salts","tricord","clOnexazone","hydroChloric Acid","chlORine Hydrate","paRoxetine")]!",
"mALPRACTICEBAY",
"I HavE A pe H dee iN ENTerpriSE resOUrCE pLaNNIN",
"h-h-HalP MaINT",
"dey come, dey COME! DEY COME!!!",
"THE END IS NIGH!",
"I FOT AND DIED FOR MUH [pick("RITES","FREEDOM","payCHECK","cARGO points","teCH Level","doG","mAPLe syrup","fluffy fWiends","gATEway LoOt")]",
"KILL DEM [pick("mainTnacE cHickinNS","kiRA CulwnNES","FLOOR CLUWNEs","MIME ASSASSIN","BOMBING TAJARAN","cC offiser","morPhlings","slinglings")]!",
"I CAN FORCE YOU TO SAY WHATEREVE!!?!?!")
"without oxigen blob don't evoluate?",
"CAPTAINS A COMDOM",
"[pick("", "that damn traitor")] [pick("joerge", "george", "gorge", "gdoruge")] [pick("mellens", "melons", "mwrlins")] is grifing me HAL;P!!!",
"can u give me [pick("telikesis","halk","eppilapse")]?",
"THe saiyans screwed",
"Bi is THE BEST OF BOTH WORLDS",
"I WANNA PET TEH monkeyS",
"stop grifing me!!!!",
"SOTP IT!",
"HALPZ SITCULITY",
"VOXES caN't LOVE",
"my dad own this station",
"the CHef put [pick("PROTEIN", "toiret waTer", "RiPPleing TendIes", "Einzymes","HORRY WALTER","nuTriments","ReActive MutAngen","TeSLium","sKrektonium")] in my [pick("wiSh soup","Bullito","rAingurber","sOilent GREEn","KoI Susishes","yaya")]!",
"the monkey have TASER ARMS!",
"qM blew my points on [pick("cOMbat Shtogun","inSuLated gloves","LOTS MASSHEEN!")]",
"EI'NATH!",
"WAKE UP SHEEPLES!",
"et wus my [pick("wittle brother!!","fiancee","friend staying over","entiRe orphanage","love interest","wife","husband","liTTle kids","sentient cAT","accidentally")]!",
"FUS RO DAH",
"fuckin tangerines!!!",
"stAT ME",
"my FACE",
"rOLl it eaSy!",
"waaaaaagh!!!",
"red wonz go fasta",
"FOR TEH EMPRAH",
"HAZ A SECURE DAY!!!!",
"dem dwarfs man, dem dwarfs",
"SPESS MAHREENS",
"hwee did eet fhor khayosss",
"lifelike texture",
"luv can bloooom",
"PACKETS!!!",
"[pick("WHERE MY","aYE need","giv me my","bath me inn.")] [pick("dermaline","alKkyZine","dylOvene","inAprovaline","biCaridine","Hyperzine","kELotane","lePorazine","bAcch Salts","tricord","clOnexazone","hydroChloric Acid","chlORine Hydrate","paRoxetine")]!",
"mALPRACTICEBAY",
"I HavE A pe H dee iN ENTerpriSE resOUrCE pLaNNIN",
"h-h-HalP MaINT",
"dey come, dey COME! DEY COME!!!",
"THE END IS NIGH!",
"I FOT AND DIED FOR MUH [pick("RITES","FREEDOM","payCHECK","cARGO points","teCH Level","doG","mAPLe syrup","fluffy fWiends","gATEway LoOt")]",
"KILL DEM [pick("mainTnacE cHickinNS","kiRA CulwnNES","FLOOR CLUWNEs","MIME ASSASSIN","BOMBING TAJARAN","cC offiser","morPhlings","slinglings")]!",
"I CAN FORCE YOU TO SAY WHATEREVE!!?!?!")
if(prob(66))
say(pick(crazysay))
else
@@ -150,8 +150,8 @@
//Defining lists of icon skin tones for species that have them.
var/list/icon_skin_tones = list()
// Determines the organs that the species spawns with and
var/list/has_organ = list( // which required-organ checks are conducted.
// Determines the organs that the species spawns with and
var/list/has_organ = list( // which required-organ checks are conducted.
"heart" = /obj/item/organ/internal/heart,
"lungs" = /obj/item/organ/internal/lungs,
"liver" = /obj/item/organ/internal/liver,
@@ -42,7 +42,7 @@
"brain" = /obj/item/organ/internal/brain/tajaran,
"appendix" = /obj/item/organ/internal/appendix,
"eyes" = /obj/item/organ/internal/eyes/tajaran /*Most Tajara see in full colour as a result of genetic augmentation, although it cost them their darksight (darksight = 2)
unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/
unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/
)
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/chick, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/hostile/poison/bees)
@@ -48,7 +48,7 @@
)
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
/mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/hostile/poison/bees)
/mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/hostile/poison/bees)
suicide_messages = list(
"is attempting to bite their tongue off!",
@@ -12,7 +12,7 @@
dual-star Vazzend system. Their politically de-centralized society and independent natures have led them to become a species and \
culture both feared and respected for their scientific breakthroughs. Discovery, loyalty, and utilitarianism dominates their lifestyles \
to the degree it can cause conflict with more rigorous and strict authorities. They speak a guttural language known as 'Canilunzt' \
which has a heavy emphasis on utilizing tail positioning and ear twitches to communicate intent."
which has a heavy emphasis on utilizing tail positioning and ear twitches to communicate intent."
species_traits = list(LIPS)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
@@ -36,11 +36,11 @@
"brain" = /obj/item/organ/internal/brain/vulpkanin,
"appendix" = /obj/item/organ/internal/appendix,
"eyes" = /obj/item/organ/internal/eyes/vulpkanin /*Most Vulpkanin see in full colour as a result of genetic augmentation, although it cost them their darksight (darksight = 2)
unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/
unless they choose otherwise by selecting the colourblind disability in character creation (darksight = 8 but colourblind).*/
)
allowed_consumed_mobs = list(/mob/living/simple_animal/mouse, /mob/living/simple_animal/lizard, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
/mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/hostile/poison/bees)
/mob/living/simple_animal/crab, /mob/living/simple_animal/butterfly, /mob/living/simple_animal/parrot, /mob/living/simple_animal/hostile/poison/bees)
suicide_messages = list(
"is attempting to bite their tongue off!",
@@ -342,7 +342,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
if(head_accessory_style.do_colouration)
head_accessory_s.Blend(head_organ.headacc_colour, ICON_ADD)
head_accessory_standing = head_accessory_s //head_accessory_standing.Blend(head_accessory_s, ICON_OVERLAY)
//Having it this way preserves animations. Useful for animated antennae.
//Having it this way preserves animations. Useful for animated antennae.
if(head_accessory_style.over_hair) //Select which layer to use based on the properties of the head accessory style.
overlays_standing[HEAD_ACC_OVER_LAYER] = mutable_appearance(head_accessory_standing, layer = -HEAD_ACC_OVER_LAYER)
+35 -35
View File
@@ -1,40 +1,40 @@
GLOBAL_LIST_INIT(department_radio_keys, list(
":r" = "right ear", "#r" = "right ear", ".r" = "right ear",
":l" = "left ear", "#l" = "left ear", ".l" = "left ear",
":i" = "intercom", "#i" = "intercom", ".i" = "intercom",
":h" = "department", "#h" = "department", ".h" = "department",
":+" = "special", "#+" = "special", ".+" = "special", //activate radio-specific special functions
":c" = "Command", "#c" = "Command", ".c" = "Command",
":n" = "Science", "#n" = "Science", ".n" = "Science",
":m" = "Medical", "#m" = "Medical", ".m" = "Medical",
":x" = "Procedure", "#x" = "Procedure", ".x" = "Procedure",
":e" = "Engineering", "#e" = "Engineering", ".e" = "Engineering",
":s" = "Security", "#s" = "Security", ".s" = "Security",
":w" = "whisper", "#w" = "whisper", ".w" = "whisper",
":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate",
":u" = "Supply", "#u" = "Supply", ".u" = "Supply",
":z" = "Service", "#z" = "Service", ".z" = "Service",
":p" = "AI Private", "#p" = "AI Private", ".p" = "AI Private",
":r" = "right ear", "#r" = "right ear", ".r" = "right ear",
":l" = "left ear", "#l" = "left ear", ".l" = "left ear",
":i" = "intercom", "#i" = "intercom", ".i" = "intercom",
":h" = "department", "#h" = "department", ".h" = "department",
":+" = "special", "#+" = "special", ".+" = "special", //activate radio-specific special functions
":c" = "Command", "#c" = "Command", ".c" = "Command",
":n" = "Science", "#n" = "Science", ".n" = "Science",
":m" = "Medical", "#m" = "Medical", ".m" = "Medical",
":x" = "Procedure", "#x" = "Procedure", ".x" = "Procedure",
":e" = "Engineering", "#e" = "Engineering", ".e" = "Engineering",
":s" = "Security", "#s" = "Security", ".s" = "Security",
":w" = "whisper", "#w" = "whisper", ".w" = "whisper",
":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate",
":u" = "Supply", "#u" = "Supply", ".u" = "Supply",
":z" = "Service", "#z" = "Service", ".z" = "Service",
":p" = "AI Private", "#p" = "AI Private", ".p" = "AI Private",
":R" = "right ear", "#R" = "right ear", ".R" = "right ear",
":L" = "left ear", "#L" = "left ear", ".L" = "left ear",
":I" = "intercom", "#I" = "intercom", ".I" = "intercom",
":H" = "department", "#H" = "department", ".H" = "department",
":C" = "Command", "#C" = "Command", ".C" = "Command",
":N" = "Science", "#N" = "Science", ".N" = "Science",
":M" = "Medical", "#M" = "Medical", ".M" = "Medical",
":X" = "Procedure", "#X" = "Procedure", ".X" = "Procedure",
":E" = "Engineering", "#E" = "Engineering", ".E" = "Engineering",
":S" = "Security", "#S" = "Security", ".S" = "Security",
":W" = "whisper", "#W" = "whisper", ".W" = "whisper",
":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate",
":U" = "Supply", "#U" = "Supply", ".U" = "Supply",
":Z" = "Service", "#Z" = "Service", ".Z" = "Service",
":P" = "AI Private", "#P" = "AI Private", ".P" = "AI Private",
":$" = "Response Team", "#$" = "Response Team", ".$" = "Response Team",
":-" = "Special Ops", "#-" = "Special Ops", ".-" = "Special Ops",
":_" = "SyndTeam", "#_" = "SyndTeam", "._" = "SyndTeam",
":~" = "cords", "#~" = "cords", ".~" = "cords"
":R" = "right ear", "#R" = "right ear", ".R" = "right ear",
":L" = "left ear", "#L" = "left ear", ".L" = "left ear",
":I" = "intercom", "#I" = "intercom", ".I" = "intercom",
":H" = "department", "#H" = "department", ".H" = "department",
":C" = "Command", "#C" = "Command", ".C" = "Command",
":N" = "Science", "#N" = "Science", ".N" = "Science",
":M" = "Medical", "#M" = "Medical", ".M" = "Medical",
":X" = "Procedure", "#X" = "Procedure", ".X" = "Procedure",
":E" = "Engineering", "#E" = "Engineering", ".E" = "Engineering",
":S" = "Security", "#S" = "Security", ".S" = "Security",
":W" = "whisper", "#W" = "whisper", ".W" = "whisper",
":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate",
":U" = "Supply", "#U" = "Supply", ".U" = "Supply",
":Z" = "Service", "#Z" = "Service", ".Z" = "Service",
":P" = "AI Private", "#P" = "AI Private", ".P" = "AI Private",
":$" = "Response Team", "#$" = "Response Team", ".$" = "Response Team",
":-" = "Special Ops", "#-" = "Special Ops", ".-" = "Special Ops",
":_" = "SyndTeam", "#_" = "SyndTeam", "._" = "SyndTeam",
":~" = "cords", "#~" = "cords", ".~" = "cords"
))
GLOBAL_LIST_EMPTY(channel_to_radio_key)
@@ -61,7 +61,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
var/ear_protection = FALSE
var/damage_protection = 0
var/emp_protection = FALSE
/// Value incoming brute damage to borgs is mutiplied by.
/// Value incoming brute damage to borgs is mutiplied by.
var/brute_mod = 1
/// Value incoming burn damage to borgs is multiplied by.
var/burn_mod = 1
@@ -1580,7 +1580,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
to_chat(src, "<span class='warning'>The low-power capacitor for your speaker system is still recharging, please try again later.</span>")
return
visible_message("<span class='warning'>The power warning light on <span class='name'>[src]</span> flashes urgently.</span>",\
"<span class='warning'>You announce you are operating in low power mode.</span>")
"<span class='warning'>You announce you are operating in low power mode.</span>")
playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0)
else
to_chat(src, "<span class='warning'>You can only use this emote when you're out of charge.</span>")
@@ -193,7 +193,7 @@
if(data_hud)
data_hud.remove_hud_from(src)
GLOB.bots_list -= src
GLOB.bots_list -= src
QDEL_NULL(path)
QDEL_NULL(Radio)
QDEL_NULL(access_card)
@@ -577,7 +577,7 @@ Pass a positive integer as an argument to override a bot's default speed.
if(reset_access_timer_id)
deltimer(reset_access_timer_id)
reset_access_timer_id = null
set_path(null)
set_path(null)
summon_target = null
pathset = FALSE
access_card.access = prev_access
@@ -302,7 +302,7 @@
/mob/living/simple_animal/bot/floorbot/proc/repair(turf/target_turf)
if(isspaceturf(target_turf))
//Must be a hull breach or in bridge mode to continue.
//Must be a hull breach or in bridge mode to continue.
if(!is_hull_breach(target_turf) && !targetdirection)
target = null
return
@@ -311,12 +311,12 @@
if(!istype(C) || !C || in_range(src, target))
return
C.visible_message("<span class='warning'>[pick( \
"[C] dives out of [src]'s way!", \
"[C] stumbles over [src]!", \
"[C] jumps out of [src]'s path!", \
"[C] trips over [src] and falls!", \
"[C] topples over [src]!", \
"[C] leaps out of [src]'s way!")]</span>")
"[C] dives out of [src]'s way!", \
"[C] stumbles over [src]!", \
"[C] jumps out of [src]'s path!", \
"[C] trips over [src] and falls!", \
"[C] topples over [src]!", \
"[C] leaps out of [src]'s way!")]</span>")
C.KnockDown(10 SECONDS)
playsound(loc, 'sound/misc/sadtrombone.ogg', 50, 1, -1)
if(!client)
@@ -460,12 +460,12 @@
if(!istype(C) || !C || in_range(src, target))
return
C.visible_message("<span class='warning'>[pick( \
"[C] dives out of [src]'s way!", \
"[C] stumbles over [src]!", \
"[C] jumps out of [src]'s path!", \
"[C] trips over [src] and falls!", \
"[C] topples over [src]!", \
"[C] leaps out of [src]'s way!")]</span>")
"[C] dives out of [src]'s way!", \
"[C] stumbles over [src]!", \
"[C] jumps out of [src]'s path!", \
"[C] trips over [src] and falls!", \
"[C] topples over [src]!", \
"[C] leaps out of [src]'s way!")]</span>")
C.KnockDown(4 SECONDS)
return
..()
@@ -76,10 +76,10 @@
if(src != M)
Beam(M,icon_state="sendbeam",time=4)
M.visible_message("<span class='danger'>[M] repairs some of \the <b>[src]'s</b> dents.</span>", \
"<span class='cult'>You repair some of <b>[src]'s</b> dents, leaving <b>[src]</b> at <b>[health]/[maxHealth]</b> health.</span>")
"<span class='cult'>You repair some of <b>[src]'s</b> dents, leaving <b>[src]</b> at <b>[health]/[maxHealth]</b> health.</span>")
else
M.visible_message("<span class='danger'>[M] repairs some of its own dents.</span>", \
"<span class='cult'>You repair some of your own dents, leaving you at <b>[M.health]/[M.maxHealth]</b> health.</span>")
"<span class='cult'>You repair some of your own dents, leaving you at <b>[M.health]/[M.maxHealth]</b> health.</span>")
else
if(src != M)
to_chat(M, "<span class='cult'>You cannot repair <b>[src]'s</b> dents, as it has none!</span>")
@@ -1,6 +1,6 @@
/*
Tiny babby plant critter plus procs.
*/
* Tiny babby plant critter plus procs.
*/
//Mob defines.
/mob/living/simple_animal/diona
@@ -148,7 +148,7 @@
return FALSE
/mob/living/simple_animal/hostile/poison/bees/AttackingTarget()
//Pollinate
//Pollinate
if(istype(target, /obj/machinery/hydroponics))
var/obj/machinery/hydroponics/Hydro = target
pollinate(Hydro)
@@ -248,11 +248,11 @@
//Botany Queen Bee
/mob/living/simple_animal/hostile/poison/bees/queen
name = "queen bee"
desc = "She's the queen of bees, BZZ BZZ"
icon_base = "queen"
isqueen = TRUE
mouse_opacity = MOUSE_OPACITY_OPAQUE
name = "queen bee"
desc = "She's the queen of bees, BZZ BZZ"
icon_base = "queen"
isqueen = TRUE
mouse_opacity = MOUSE_OPACITY_OPAQUE
//the Queen doesn't leave the box on her own, and she CERTAINLY doesn't pollinate by herself
@@ -56,8 +56,8 @@ Difficulty: Medium
death_sound = "bodyfall"
footstep_type = FOOTSTEP_MOB_HEAVY
attack_action_types = list(/datum/action/innate/megafauna_attack/dash,
/datum/action/innate/megafauna_attack/kinetic_accelerator,
/datum/action/innate/megafauna_attack/transform_weapon)
/datum/action/innate/megafauna_attack/kinetic_accelerator,
/datum/action/innate/megafauna_attack/transform_weapon)
/obj/item/gps/internal/miner
icon_state = null
@@ -65,9 +65,9 @@ Difficulty: Hard
deathmessage = "sinks into a pool of blood, fleeing the battle. You've won, for now... "
death_sound = 'sound/misc/enter_blood.ogg'
attack_action_types = list(/datum/action/innate/megafauna_attack/triple_charge,
/datum/action/innate/megafauna_attack/hallucination_charge,
/datum/action/innate/megafauna_attack/hallucination_surround,
/datum/action/innate/megafauna_attack/blood_warp)
/datum/action/innate/megafauna_attack/hallucination_charge,
/datum/action/innate/megafauna_attack/hallucination_surround,
/datum/action/innate/megafauna_attack/blood_warp)
/obj/item/gps/internal/bubblegum
icon_state = null
@@ -55,9 +55,9 @@ Difficulty: Very Hard
deathmessage = "disintegrates, leaving a glowing core in its wake."
death_sound = 'sound/misc/demon_dies.ogg'
attack_action_types = list(/datum/action/innate/megafauna_attack/spiral_attack,
/datum/action/innate/megafauna_attack/aoe_attack,
/datum/action/innate/megafauna_attack/shotgun,
/datum/action/innate/megafauna_attack/alternating_cardinals)
/datum/action/innate/megafauna_attack/aoe_attack,
/datum/action/innate/megafauna_attack/shotgun,
/datum/action/innate/megafauna_attack/alternating_cardinals)
/// Have we used our final attack yet?
var/final_available = TRUE
@@ -62,9 +62,9 @@ Difficulty: Medium
death_sound = 'sound/misc/demon_dies.ogg'
footstep_type = FOOTSTEP_MOB_HEAVY
attack_action_types = list(/datum/action/innate/megafauna_attack/fire_cone,
/datum/action/innate/megafauna_attack/fire_cone_meteors,
/datum/action/innate/megafauna_attack/mass_fire,
/datum/action/innate/megafauna_attack/lava_swoop)
/datum/action/innate/megafauna_attack/fire_cone_meteors,
/datum/action/innate/megafauna_attack/mass_fire,
/datum/action/innate/megafauna_attack/lava_swoop)
/datum/action/innate/megafauna_attack/fire_cone
name = "Fire Cone"
@@ -64,9 +64,9 @@ Difficulty: Hard
del_on_death = TRUE
death_sound = 'sound/magic/repulse.ogg'
attack_action_types = list(/datum/action/innate/megafauna_attack/blink,
/datum/action/innate/megafauna_attack/chaser_swarm,
/datum/action/innate/megafauna_attack/cross_blasts,
/datum/action/innate/megafauna_attack/blink_spam)
/datum/action/innate/megafauna_attack/chaser_swarm,
/datum/action/innate/megafauna_attack/cross_blasts,
/datum/action/innate/megafauna_attack/blink_spam)
var/burst_range = 3 //range on burst aoe
var/beam_range = 5 //range on cross blast beams
@@ -202,7 +202,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
/mob/living/simple_animal/hostile/mimic/copy/machine
speak = list("HUMANS ARE IMPERFECT!", "YOU SHALL BE ASSIMILATED!", "YOU ARE HARMING YOURSELF", "You have been deemed hazardous. Will you comply?", \
"My logic is undeniable.", "One of us.", "FLESH IS WEAK", "THIS ISN'T WAR, THIS IS EXTERMINATION!")
"My logic is undeniable.", "One of us.", "FLESH IS WEAK", "THIS ISN'T WAR, THIS IS EXTERMINATION!")
speak_chance = 15
/mob/living/simple_animal/hostile/mimic/copy/machine/CanAttack(atom/the_target)
@@ -27,7 +27,7 @@
status_flags = CANPUSH
search_objects = 1
wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver,
/obj/item/stack/ore/uranium)
/obj/item/stack/ore/uranium)
var/chase_time = 100
var/will_burrow = TRUE
@@ -62,9 +62,9 @@
RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(readd_infected))
/obj/item/organ/internal/body_egg/terror_eggs/proc/readd_infected(mob/infected, new_stat, old_stat)
SIGNAL_HANDLER
if(new_stat != DEAD)
GLOB.ts_infected_list |= src
SIGNAL_HANDLER
if(new_stat != DEAD)
GLOB.ts_infected_list |= src
/obj/item/organ/internal/body_egg/terror_eggs/Destroy()
GLOB.ts_infected_list -= src
+12 -12
View File
@@ -103,17 +103,17 @@
parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var
verbs.Add(/mob/living/simple_animal/parrot/proc/steal_from_ground, \
/mob/living/simple_animal/parrot/proc/steal_from_mob, \
/mob/living/simple_animal/parrot/verb/drop_held_item_player, \
/mob/living/simple_animal/parrot/proc/perch_player)
/mob/living/simple_animal/parrot/proc/steal_from_mob, \
/mob/living/simple_animal/parrot/verb/drop_held_item_player, \
/mob/living/simple_animal/parrot/proc/perch_player)
desired_perches = typecacheof(list(/obj/structure/computerframe, /obj/structure/displaycase, \
/obj/structure/filingcabinet, /obj/machinery/teleport, \
/obj/machinery/suit_storage_unit,/obj/machinery/clonepod, \
/obj/machinery/dna_scannernew, /obj/machinery/tcomms, \
/obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \
/obj/machinery/recharge_station, /obj/machinery/smartfridge, \
/obj/machinery/computer))
/obj/structure/filingcabinet, /obj/machinery/teleport, \
/obj/machinery/suit_storage_unit,/obj/machinery/clonepod, \
/obj/machinery/dna_scannernew, /obj/machinery/tcomms, \
/obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \
/obj/machinery/recharge_station, /obj/machinery/smartfridge, \
/obj/machinery/computer))
/mob/living/simple_animal/parrot/Destroy()
GLOB.hear_radio_list -= src
@@ -315,9 +315,9 @@
//-----SPEECH
/* Parrot speech mimickry!
Phrases that the parrot hears in mob/living/say() get added to speach_buffer.
Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list.
Then it clears the buffer to make sure they dont magically remember something from hours ago. */
Phrases that the parrot hears in mob/living/say() get added to speach_buffer.
Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list.
Then it clears the buffer to make sure they dont magically remember something from hours ago. */
if(speech_buffer.len && prob(10))
if(clean_speak.len)
clean_speak -= pick(clean_speak)
+5 -5
View File
@@ -129,13 +129,13 @@ STATUS EFFECTS
pixel_y = 0
/* makes sure the crawlers head is pointing in the direction they crawl
* effectively splits dirs down the middle.
* effectively splits dirs down the middle.
# | #
moving this way points the head left # | # moving this way points the head right
# | #
* # | #
* moving this way points the head left # | # moving this way points the head right
* # | #
moving up or down retains their old lying angle
* moving up or down retains their old lying angle
*/
/mob/living/proc/orient_crawling(datum/source, old_dir, new_dir)
+7 -7
View File
@@ -3,7 +3,7 @@
var/mob/living/carbon/human/H = A
if(H.dna.species && H.dna.species.is_small)
return 1
return 0
return 0
/proc/ispet(A)
if(isanimal(A))
@@ -38,10 +38,10 @@
// Red-green (green weak, deuteranopia)
// Below is a colour matrix to account for that
. = list(
1.8, 0, -0.14, 0,
1.8, 0, -0.14, 0,
-1.05, 1, 0.1, 0,
0.3, 0, 1, 0,
0, 0, 0, 1
0.3, 0, 1, 0,
0, 0, 0, 1
) // Time spent creating this matrix: 1 hour 32 minutes
if(COLOURBLIND_MODE_PROT)
@@ -58,10 +58,10 @@
// Blue-yellow (tritanopia)
// Below is a colour matrix to account for that
. = list(
0.74, 0.07, 0, 0,
0.74, 0.07, 0, 0,
-0.405, 0.593, 0, 0,
0.665, 0.335, 1, 0,
0, 0, 0, 1
0.665, 0.335, 1, 0,
0, 0, 0, 1
) // Time spent creating this matrix: 34 minutes
return
@@ -1,10 +1,10 @@
//DIONA: Sprites by skittles below
/datum/sprite_accessory/hair/diona
icon = 'icons/mob/sprite_accessories/diona/diona_hair.dmi'
species_allowed = list("Diona")
glasses_over = 1
do_colouration = 0
icon = 'icons/mob/sprite_accessories/diona/diona_hair.dmi'
species_allowed = list("Diona")
glasses_over = 1
do_colouration = 0
/datum/sprite_accessory/hair/diona/diona_bracket
name = "Bracket"
@@ -1,7 +1,7 @@
/datum/sprite_accessory/body_markings/drask
species_allowed = list("Drask")
species_allowed = list("Drask")
/datum/sprite_accessory/body_markings/drask/arm_spines_drask
icon = 'icons/mob/sprite_accessories/drask/drask_body_markings.dmi'
name = "Drask Arm Spines"
icon_state = "armspines"
icon = 'icons/mob/sprite_accessories/drask/drask_body_markings.dmi'
name = "Drask Arm Spines"
icon_state = "armspines"
@@ -1,6 +1,6 @@
/datum/sprite_accessory/body_markings/tattoo/grey
icon = 'icons/mob/sprite_accessories/grey/grey_body_markings.dmi'
species_allowed = list("Grey")
icon = 'icons/mob/sprite_accessories/grey/grey_body_markings.dmi'
species_allowed = list("Grey")
/datum/sprite_accessory/body_markings/tattoo/grey/heart_grey
name = "Grey Heart Tattoo"
@@ -7,11 +7,11 @@
*/
/datum/sprite_accessory/facial_hair/shaved
icon = 'icons/mob/human_face.dmi' // Special case, use the bald icon in human face
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list("Human", "Unathi", "Tajaran", "Skrell", "Vox", "Diona", "Kidan", "Greys", "Vulpkanin", "Slime People")
icon = 'icons/mob/human_face.dmi' // Special case, use the bald icon in human face
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list("Human", "Unathi", "Tajaran", "Skrell", "Vox", "Diona", "Kidan", "Greys", "Vulpkanin", "Slime People")
/datum/sprite_accessory/facial_hair/watson
name = "Watson Mustache"
@@ -1,8 +1,8 @@
/datum/sprite_accessory/head_accessory/ipc
icon = 'icons/mob/sprite_accessories/ipc/ipc_head_accessories.dmi'
species_allowed = list("Machine")
over_hair = 1
icon = 'icons/mob/sprite_accessories/ipc/ipc_head_accessories.dmi'
species_allowed = list("Machine")
over_hair = 1
/datum/sprite_accessory/head_accessory/ipc/ipc_antennae
name = "Antennae"
@@ -1,9 +1,9 @@
/datum/sprite_accessory/body_markings/head/optics
icon = 'icons/mob/sprite_accessories/ipc/ipc_optics.dmi'
name = "Humanoid Optics"
species_allowed = list("Machine")
icon_state = "optics"
models_allowed = list("Bishop Cybernetics", "Hesphiastos Industries", "Ward-Takahashi", "Xion Manufacturing Group", "Zeng-Hu Pharmaceuticals") //Should be the same as the manufacturing company of the limb in robolimbs.dm
icon = 'icons/mob/sprite_accessories/ipc/ipc_optics.dmi'
name = "Humanoid Optics"
species_allowed = list("Machine")
icon_state = "optics"
models_allowed = list("Bishop Cybernetics", "Hesphiastos Industries", "Ward-Takahashi", "Xion Manufacturing Group", "Zeng-Hu Pharmaceuticals") //Should be the same as the manufacturing company of the limb in robolimbs.dm
/datum/sprite_accessory/body_markings/head/optics/bishop_alt
name = "Bishop Alt. Optics"
@@ -1,6 +1,6 @@
/datum/sprite_accessory/body_markings/kidan
icon = 'icons/mob/sprite_accessories/kidan/kidan_body_markings.dmi'
species_allowed = list("Kidan")
icon = 'icons/mob/sprite_accessories/kidan/kidan_body_markings.dmi'
species_allowed = list("Kidan")
/datum/sprite_accessory/body_markings/kidan/outline_kid
name = "Kidan Outline"
@@ -1,32 +1,32 @@
/datum/sprite_accessory/head_accessory/tajara
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_accessories.dmi' // Nearly all head accessories are head markings, however this is the default for consistency sake
species_allowed = list("Tajaran")
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_accessories.dmi' // Nearly all head accessories are head markings, however this is the default for consistency sake
species_allowed = list("Tajaran")
/datum/sprite_accessory/head_accessory/tajara/taj_ears
name = "Tajaran Ears"
icon_state = "ears_plain"
name = "Tajaran Ears"
icon_state = "ears_plain"
/datum/sprite_accessory/head_accessory/tajara/outears_taj
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Outer Ears"
icon_state = "outears"
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Outer Ears"
icon_state = "outears"
/datum/sprite_accessory/head_accessory/tajara/inears_taj
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Inner Ears"
icon_state = "inears"
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Inner Ears"
icon_state = "inears"
/datum/sprite_accessory/head_accessory/tajara/muzzle_taj
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Muzzle"
icon_state = "muzzle"
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Muzzle"
icon_state = "muzzle"
/datum/sprite_accessory/head_accessory/tajara/muzzle_and_inears_taj
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Muzzle and Inner Ears"
icon_state = "muzinears"
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Muzzle and Inner Ears"
icon_state = "muzinears"
/datum/sprite_accessory/head_accessory/tajara/taj_nose
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Nose"
icon_state = "nose"
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
name = "Tajaran Nose"
icon_state = "nose"
@@ -1,7 +1,7 @@
/datum/sprite_accessory/body_markings/head/tajara
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
species_allowed = list("Tajaran")
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_head_markings.dmi'
species_allowed = list("Tajaran")
/datum/sprite_accessory/body_markings/head/tajara/tiger_head_taj
name = "Tajaran Tiger Head"
@@ -1,6 +1,6 @@
/datum/sprite_accessory/body_markings/tail/tajara
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_tail_markings.dmi'
species_allowed = list("Tajaran")
icon = 'icons/mob/sprite_accessories/tajaran/tajaran_tail_markings.dmi'
species_allowed = list("Tajaran")
/datum/sprite_accessory/body_markings/tail/tajara/taj_wingler_stripes //Tiger stripes.
name = "Tajaran Tail Stripes"
@@ -1,6 +1,6 @@
/datum/sprite_accessory/body_markings/unathi
icon = 'icons/mob/sprite_accessories/unathi/unathi_body_markings.dmi'
species_allowed = list("Unathi")
icon = 'icons/mob/sprite_accessories/unathi/unathi_body_markings.dmi'
species_allowed = list("Unathi")
/datum/sprite_accessory/body_markings/unathi/stripe_una
name = "Unathi Stripe"
@@ -53,7 +53,7 @@
name = "Side Frills"
icon_state = "sidefrills"
secondary_theme = "webbing"
/datum/sprite_accessory/facial_hair/unathi/una_frills_dorsal
over_hair = null
name = "Dorsal Frills"
@@ -11,10 +11,10 @@
secondary_theme = "beads"
/datum/sprite_accessory/hair/unathi/una_cobra_hood
name = "Unathi Cobra Hood"
icon_state = "cobrahood"
secondary_theme = "webbing"
name = "Unathi Cobra Hood"
icon_state = "cobrahood"
secondary_theme = "webbing"
/datum/sprite_accessory/hair/unathi/simple
name = "Simple Horns"
icon_state = "simple_horns"

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