mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 16:44:33 +01:00
Whitespace cleanup part 2. (#19891)
This commit is contained in:
committed by
GitHub
parent
19d759b257
commit
a7d09cf033
@@ -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)
|
||||
|
||||
@@ -122,7 +122,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
<tr>
|
||||
<th>Uniform:</th>
|
||||
<td>
|
||||
[uniform_select]
|
||||
[uniform_select]
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)].")
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
//Chef
|
||||
/obj/item/clothing/suit/toggle/chef
|
||||
name = "chef's apron"
|
||||
name = "chef's apron"
|
||||
|
||||
|
||||
//Chef
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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')
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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,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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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'
|
||||
*/
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -104,7 +104,6 @@
|
||||
. *= light_power; \
|
||||
var/OLD = effect_str[C]; \
|
||||
effect_str[C] = .; \
|
||||
\
|
||||
C.update_lumcount \
|
||||
( \
|
||||
(. * lum_r) - (OLD * applied_lum_r), \
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
+19
-19
@@ -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
Reference in New Issue
Block a user