mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-25 14:16:58 +01:00
Merge remote-tracking branch 'Repede/master'
This commit is contained in:
@@ -50,6 +50,7 @@
|
||||
#define LANGUAGE_MINBUS "Minbus"
|
||||
#define LANGUAGE_EVENT1 "Occursus"
|
||||
#define LANGUAGE_AKHANI "Akhani"
|
||||
#define LANGUAGE_ALAI "Alai"
|
||||
|
||||
// Language flags.
|
||||
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
|
||||
|
||||
@@ -32,7 +32,6 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
#define INIT_ORDER_LIGHTING 0
|
||||
#define INIT_ORDER_AIR -1
|
||||
#define INIT_ORDER_PLANETS -4
|
||||
#define INIT_ORDER_HOLOMAPS -5 //VOREStation Add
|
||||
#define INIT_ORDER_OVERLAY -6
|
||||
#define INIT_ORDER_XENOARCH -20
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
#define INIT_ORDER_HOLOMAPS -5 //VOREStation Add
|
||||
@@ -8,6 +8,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
var/obj/effect/landmark/engine_loader/engine_loader
|
||||
var/obj/effect/landmark/engine_loader_pickable/engine_loader_pickable
|
||||
|
||||
var/list/shelter_templates = list()
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
//
|
||||
// Additions to mapping subsystem handles initialization of random map elements at server start
|
||||
// I'm kidnapping Vores random engine spawn code - Gozulio.
|
||||
//
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/pickEngine(pickedEngine)
|
||||
if(!engine_loader_pickable)
|
||||
to_world_log("Ignoring player picked engine")
|
||||
return // Either this map doesn't use this engine loader or doesn't need one at all.
|
||||
|
||||
var/turf/T = get_turf(engine_loader_pickable)
|
||||
if(!isturf(T))
|
||||
to_world_log("[log_info_line(engine_loader_pickable)] not on a turf! Cannot place engine template.")
|
||||
return
|
||||
|
||||
// Choose an engine type
|
||||
var/datum/map_template/engine/chosen_type = null
|
||||
if (LAZYLEN(config.engine_map))
|
||||
var/chosen_name = pickedEngine //Instead of using the config, we'll take an argument.
|
||||
chosen_type = map_templates[chosen_name]
|
||||
if(!istype(chosen_type))
|
||||
error("Configured engine map [chosen_name] is not a valid engine map name!")
|
||||
if(!istype(chosen_type))
|
||||
var/list/engine_types = list()
|
||||
for(var/map in map_templates)
|
||||
var/datum/map_template/engine/MT = map_templates[map]
|
||||
if(istype(MT))
|
||||
engine_types += MT
|
||||
chosen_type = pick(engine_types)
|
||||
global_announcer.autosay("Engineering has selected [chosen_type.name] as todays engine.", "Engine Constructor")
|
||||
to_world_log("Chose Engine Map: [chosen_type.name]")
|
||||
admin_notice("<span class='danger'>Chose Engine Map: [chosen_type.name]</span>", R_DEBUG)
|
||||
|
||||
// Annihilate movable atoms
|
||||
engine_loader_pickable.annihilate_bounds()
|
||||
//CHECK_TICK //Don't let anything else happen for now
|
||||
// Actually load it
|
||||
chosen_type.load(T)
|
||||
sleep(1)
|
||||
engine_loader_pickable.lateload_init()
|
||||
@@ -62,7 +62,7 @@ SUBSYSTEM_DEF(planets)
|
||||
while(currentlist.len)
|
||||
var/turf/simulated/OT = currentlist[currentlist.len]
|
||||
currentlist.len--
|
||||
if(istype(OT) && z_to_planet[OT.z])
|
||||
if(istype(OT) && z_to_planet.len >= OT.z && z_to_planet[OT.z])
|
||||
var/datum/planet/P = z_to_planet[OT.z]
|
||||
P.planet_floors |= OT
|
||||
OT.vis_contents |= P.weather_holder.visuals
|
||||
@@ -73,7 +73,7 @@ SUBSYSTEM_DEF(planets)
|
||||
while(currentlist.len)
|
||||
var/turf/unsimulated/wall/planetary/PW = currentlist[currentlist.len]
|
||||
currentlist.len--
|
||||
if(istype(PW) && z_to_planet[PW.z])
|
||||
if(istype(PW) && z_to_planet.len >= PW.z && z_to_planet[PW.z])
|
||||
var/datum/planet/P = z_to_planet[PW.z]
|
||||
P.planet_walls |= PW
|
||||
if(!initial && MC_TICK_CHECK)
|
||||
|
||||
@@ -5,12 +5,14 @@
|
||||
var/list/languages
|
||||
var/identifying_gender
|
||||
var/list/flavour_texts
|
||||
var/list/genMods
|
||||
|
||||
/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages, var/newIdentifying_Gender, var/list/newFlavour)
|
||||
/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages, var/newIdentifying_Gender, var/list/newFlavour, var/list/newGenMods)
|
||||
..()
|
||||
name = newName
|
||||
dna = newDNA
|
||||
speciesName = newSpecies
|
||||
languages = newLanguages
|
||||
identifying_gender = newIdentifying_Gender
|
||||
flavour_texts = newFlavour ? newFlavour.Copy() : null
|
||||
flavour_texts = newFlavour ? newFlavour.Copy() : null
|
||||
genMods = newGenMods ? newGenMods.Copy() : null
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
src << "<span class='notice'>We can now re-adapt, reverting our evolution so that we may start anew, if needed.</span>"
|
||||
|
||||
var/datum/absorbed_dna/newDNA = new(T.real_name, T.dna, T.species.name, T.languages, T.identifying_gender, T.flavor_texts)
|
||||
var/datum/absorbed_dna/newDNA = new(T.real_name, T.dna, T.species.name, T.languages, T.identifying_gender, T.flavor_texts, T.modifiers)
|
||||
absorbDNA(newDNA)
|
||||
|
||||
if(T.mind && T.mind.changeling)
|
||||
|
||||
@@ -48,6 +48,13 @@
|
||||
src.UpdateAppearance()
|
||||
domutcheck(src, null)
|
||||
changeling_update_languages(changeling.absorbed_languages)
|
||||
if(chosen_dna.genMods)
|
||||
var/mob/living/carbon/human/self = src
|
||||
for(var/datum/modifier/mod in self.modifiers)
|
||||
self.modifiers.Remove(mod.type)
|
||||
|
||||
for(var/datum/modifier/mod in chosen_dna.genMods)
|
||||
self.modifiers.Add(mod.type)
|
||||
|
||||
src.verbs -= /mob/proc/changeling_transform
|
||||
spawn(10)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/item/weapon/spell/proc/within_range(var/atom/target, var/max_range = 7) // Beyond 7 is off the screen.
|
||||
if(range(get_dist(owner, target) <= max_range))
|
||||
if(target in view(max_range, owner))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -21,11 +21,13 @@
|
||||
if(!AM.loc) //Don't teleport HUD telements to us.
|
||||
return
|
||||
if(AM.anchored)
|
||||
user << "<span class='warning'>\The [hit_atom] is firmly secured and anchored, you can't move it!</span>"
|
||||
to_chat(user, "<span class='warning'>\The [hit_atom] is firmly secured and anchored, you can't move it!</span>")
|
||||
return
|
||||
|
||||
if(!within_range(hit_atom) && !check_for_scepter())
|
||||
user << "<span class='warning'>\The [hit_atom] is too far away.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [hit_atom] is too far away.</span>")
|
||||
return
|
||||
|
||||
//Teleporting an item.
|
||||
if(istype(hit_atom, /obj/item))
|
||||
var/obj/item/I = hit_atom
|
||||
@@ -47,7 +49,7 @@
|
||||
//Now let's try to teleport a living mob.
|
||||
else if(istype(hit_atom, /mob/living))
|
||||
var/mob/living/L = hit_atom
|
||||
L << "<span class='danger'>You are teleported towards \the [user].</span>"
|
||||
to_chat(L, "<span class='danger'>You are teleported towards \the [user].</span>")
|
||||
var/datum/effect/effect/system/spark_spread/s1 = new /datum/effect/effect/system/spark_spread
|
||||
var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/spark_spread
|
||||
s1.set_up(2, 1, user)
|
||||
@@ -60,7 +62,7 @@
|
||||
|
||||
spawn(1 SECOND)
|
||||
if(!user.Adjacent(L))
|
||||
user << "<span class='warning'>\The [L] is out of your reach.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [L] is out of your reach.</span>")
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -12,13 +12,12 @@
|
||||
head_position = 1
|
||||
minimum_character_age = 25
|
||||
ideal_character_age = 32 //Experienced, but physically in their prime
|
||||
minimal_player_age = 3
|
||||
economic_modifier = 8
|
||||
access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers,
|
||||
access_medical, access_engine, access_change_ids, access_eva, access_heads, access_teleporter,
|
||||
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue,
|
||||
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
|
||||
access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
|
||||
access_hop, access_RC_announce, access_keycard_auth, access_gateway, )
|
||||
minimal_access = list(access_forensics_lockers, access_sec_doors, access_medical, access_construction, access_engine, access_maint_tunnels, access_research, access_RC_announce, access_keycard_auth, access_heads)
|
||||
access = list(access_security, access_sec_doors, access_brig,
|
||||
access_medical, access_eva, access_heads, access_teleporter,
|
||||
access_maint_tunnels, access_morgue,
|
||||
access_crematorium, access_research, access_hop, access_RC_announce, access_keycard_auth, access_gateway)
|
||||
minimal_access = list(access_forensics_lockers, access_sec_doors, access_medical, access_maint_tunnels, access_RC_announce, access_keycard_auth, access_heads)
|
||||
|
||||
outfit_type = /decl/hierarchy/outfit/job/blueshield
|
||||
@@ -148,7 +148,8 @@
|
||||
feedback_set_details("religion_deity","[new_deity]")
|
||||
feedback_set_details("religion_book","[new_book_style]")
|
||||
return 1
|
||||
/* IF you uncomment this, every time the mob preview updates it makes a new PDA. It seems to work just fine and display without it, so why this exists, haven't a clue. -Hawk
|
||||
|
||||
/* If you uncomment this, every time the mob preview updates it makes a new PDA. It seems to work just fine and display without it, so why this exists, haven't a clue. -Hawk
|
||||
/datum/job/chaplain/equip_preview(var/mob/living/carbon/human/H, var/alt_title)
|
||||
return equip(H, alt_title, FALSE)
|
||||
*/
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
break
|
||||
return selected
|
||||
|
||||
#define CLONE_BIOMASS 60
|
||||
#define CLONE_BIOMASS 30 //VOREstation Edit
|
||||
|
||||
/obj/machinery/clonepod
|
||||
name = "cloning pod"
|
||||
@@ -243,7 +243,6 @@
|
||||
else
|
||||
locked = 0
|
||||
to_chat(user, "System unlocked.")
|
||||
|
||||
else if(istype(W,/obj/item/weapon/reagent_containers/glass))
|
||||
if(LAZYLEN(containers) >= container_limit)
|
||||
to_chat(user, "<span class='warning'>\The [src] has too many containers loaded!</span>")
|
||||
@@ -253,7 +252,6 @@
|
||||
user.drop_item()
|
||||
W.forceMove(src)
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
if(locked && (anchored || occupant))
|
||||
to_chat(user, "<span class='warning'>Can not do that while [src] is in use.</span>")
|
||||
|
||||
@@ -31,6 +31,7 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal)
|
||||
return
|
||||
|
||||
/obj/effect/portal/New()
|
||||
..() // Necessary for the list boilerplate to work
|
||||
spawn(300)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/obj/item/gunbox/blueshield
|
||||
name = "blueshield mainarm box"
|
||||
desc = "A secure box containing a blueshield main weapon."
|
||||
|
||||
//Primary gun: Either shotgun or SMG
|
||||
|
||||
/obj/item/gunbox/blueshield/attack_self(mob/living/user)
|
||||
var/list/options = list()
|
||||
options["Jackhammer Revolver Shotgun (12 Gauge)"] = list(/obj/item/weapon/gun/projectile/revolvershotgun, /obj/item/ammo_magazine/m12gdrumjack, /obj/item/ammo_magazine/m12gdrumjack, /obj/item/ammo_magazine/m12gdrumjack/beanbag)
|
||||
options["WT550 Machine Pistol (9mm)"] = list(/obj/item/weapon/gun/projectile/automatic/wt550, /obj/item/ammo_magazine/m9mmt/rubber, /obj/item/ammo_magazine/m9mmt, /obj/item/ammo_magazine/m9mmt)
|
||||
options["X01 Energy Gun (Weapon Cell)"] = list(/obj/item/weapon/gun/energy/x01, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/cell/device/weapon)
|
||||
var/choice = input(user,"Would you prefer a Jackhammer shotgun, a WT550 Machine Pistol, or an X01 Energy Gun?") as null|anything in options
|
||||
if(src && choice)
|
||||
var/list/things_to_spawn = options[choice]
|
||||
for(var/new_type in things_to_spawn) // Spawn all the things, the gun and the ammo.
|
||||
var/atom/movable/AM = new new_type(get_turf(src))
|
||||
if(istype(AM, /obj/item/weapon/gun))
|
||||
to_chat(user, "You have chosen \the [AM].")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/gunbox/blueshield/secondary
|
||||
name = "blueshield sidearm box"
|
||||
desc = "A secure box containing a blueshield sidearm."
|
||||
|
||||
//Sidearm: Egun, or a .44 with rubber and lethal mag
|
||||
|
||||
/obj/item/gunbox/blueshield/secondary/attack_self(mob/living/user)
|
||||
var/list/options = list()
|
||||
// options["NSFW Variable Pistol(Microbattery)"] = list(/obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos) It's broken, and I can't fix it because the snowflake keeps metastasizing.
|
||||
options["E-Gun (Weapon Cell)"] = list(/obj/item/weapon/gun/energy/gun, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/cell/device/weapon)
|
||||
options["Consul Revolver (.44)"] = list(/obj/item/weapon/gun/projectile/revolver/consul, /obj/item/ammo_magazine/s44, /obj/item/ammo_magazine/s44, /obj/item/ammo_magazine/s44/rubber)
|
||||
var/choice = input(user,"Would you prefer an e-gun or a revolver?") as null|anything in options
|
||||
if(src && choice)
|
||||
var/list/things_to_spawn = options[choice]
|
||||
for(var/new_type in things_to_spawn) // Spawn all the things, the gun and the ammo.
|
||||
var/atom/movable/AM = new new_type(get_turf(src))
|
||||
if(istype(AM, /obj/item/weapon/gun))
|
||||
to_chat(user, "You have chosen \the [AM].")
|
||||
qdel(src)
|
||||
@@ -170,7 +170,7 @@
|
||||
singular_name = "advanced trauma kit"
|
||||
desc = "An advanced trauma kit for severe injuries."
|
||||
icon_state = "traumakit"
|
||||
heal_brute = 3
|
||||
heal_brute = 7 //VOREStation Edit
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
apply_sounds = list('sound/effects/rip1.ogg','sound/effects/rip2.ogg','sound/effects/tape.ogg')
|
||||
|
||||
@@ -198,8 +198,8 @@
|
||||
continue
|
||||
if (W.bandaged && W.disinfected)
|
||||
continue
|
||||
if(used == amount)
|
||||
break
|
||||
//if(used == amount) //VOREStation Edit
|
||||
// break //VOREStation Edit
|
||||
if(!do_mob(user, M, W.damage/5))
|
||||
to_chat(user, "<span class='notice'>You must stand still to bandage wounds.</span>")
|
||||
break
|
||||
@@ -219,7 +219,7 @@
|
||||
W.disinfect()
|
||||
W.heal_damage(heal_brute)
|
||||
playsound(src, pick(apply_sounds), 25)
|
||||
used++
|
||||
used = 1 //VOREStation Edit
|
||||
affecting.update_damages()
|
||||
if(used == amount)
|
||||
if(affecting.is_bandaged())
|
||||
@@ -233,7 +233,7 @@
|
||||
singular_name = "advanced burn kit"
|
||||
desc = "An advanced treatment kit for severe burns."
|
||||
icon_state = "burnkit"
|
||||
heal_burn = 3
|
||||
heal_burn = 7 //VOREStation Edit
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
apply_sounds = list('sound/effects/ointment.ogg')
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ GLOBAL_LIST_BOILERPLATE(all_mops, /obj/item/weapon/mop)
|
||||
|
||||
/obj/item/weapon/mop/New()
|
||||
create_reagents(30)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/mop/afterattack(atom/A, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/tape_roll,
|
||||
/obj/item/device/integrated_electronics/wirer,
|
||||
/obj/item/device/integrated_electronics/debugger, //Vorestation edit adding debugger to toolbelt can hold list
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/full
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8)
|
||||
|
||||
/obj/item/weapon/storage/box/beanbags/large/New()
|
||||
/obj/item/weapon/storage/box/beanbags/large
|
||||
starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16)
|
||||
|
||||
/obj/item/weapon/storage/box/shotgunammo
|
||||
|
||||
@@ -10,24 +10,25 @@
|
||||
/obj/item/weapon/storage/firstaid
|
||||
name = "first aid kit"
|
||||
desc = "It's an emergency medical kit for those serious boo-boos."
|
||||
icon = 'icons/obj/storage_vr.dmi'
|
||||
icon_state = "firstaid"
|
||||
throw_speed = 2
|
||||
throw_range = 8
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14
|
||||
var/list/icon_variety
|
||||
// var/list/icon_variety // VOREStation edit
|
||||
|
||||
/obj/item/weapon/storage/firstaid/initialize()
|
||||
. = ..()
|
||||
if(icon_variety)
|
||||
icon_state = pick(icon_variety)
|
||||
icon_variety = null
|
||||
// if(icon_variety) // VOREStation edit
|
||||
// icon_state = pick(icon_variety)
|
||||
// icon_variety = null
|
||||
|
||||
/obj/item/weapon/storage/firstaid/fire
|
||||
name = "fire first aid kit"
|
||||
desc = "It's an emergency medical kit for when the toxins lab <i>spontaneously</i> burns down."
|
||||
icon_state = "ointment"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-ointment", slot_l_hand_str = "firstaid-ointment")
|
||||
icon_variety = list("ointment","firefirstaid")
|
||||
// icon_variety = list("ointment","firefirstaid") // VOREStation edit
|
||||
starts_with = list(
|
||||
/obj/item/device/healthanalyzer,
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector,
|
||||
@@ -55,7 +56,7 @@
|
||||
desc = "Used to treat when one has a high amount of toxins in their body."
|
||||
icon_state = "antitoxin"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-toxin", slot_l_hand_str = "firstaid-toxin")
|
||||
icon_variety = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
|
||||
// icon_variety = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") // VOREStation edit
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin,
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin,
|
||||
@@ -70,7 +71,7 @@
|
||||
name = "oxygen deprivation first aid kit"
|
||||
desc = "A box full of oxygen goodies."
|
||||
icon_state = "o2"
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-o2", slot_l_hand_str = "firstaid-o2")
|
||||
item_state_slots = list(slot_r_hand_str = "firstaid-o2", slot_l_hand_str = "firstaid-o2")
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/pill/dexalin,
|
||||
/obj/item/weapon/reagent_containers/pill/dexalin,
|
||||
@@ -116,6 +117,7 @@
|
||||
/obj/item/weapon/storage/firstaid/surgery
|
||||
name = "surgery kit"
|
||||
desc = "Contains tools for surgery. Has precise foam fitting for safe transport and automatically sterilizes the content between uses."
|
||||
icon = 'icons/obj/storage.dmi' // VOREStation edit
|
||||
icon_state = "surgerykit"
|
||||
item_state = "firstaid-surgery"
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
@@ -152,6 +154,7 @@
|
||||
/obj/item/weapon/storage/firstaid/clotting
|
||||
name = "clotting kit"
|
||||
desc = "Contains chemicals to stop bleeding."
|
||||
icon_state = "clottingkit" // VOREStation edit
|
||||
max_storage_space = ITEMSIZE_COST_SMALL * 7
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting = 8)
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
/obj/item/weapon/storage/belt/security,
|
||||
/obj/item/weapon/grenade/flashbang,
|
||||
/obj/item/device/flash,
|
||||
/obj/item/weapon/reagent_containers/spray/pepper,
|
||||
/obj/item/weapon/handcuffs,
|
||||
/obj/item/weapon/melee/baton/loaded,
|
||||
/obj/item/clothing/glasses/sunglasses,
|
||||
@@ -30,8 +31,6 @@
|
||||
/obj/item/clothing/accessory/holster/leg,
|
||||
/obj/item/clothing/shoes/boots/jackboots,
|
||||
/obj/item/clothing/shoes/boots/jackboots/toeless,
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump,
|
||||
/obj/item/weapon/storage/box/beanbags,
|
||||
/obj/item/weapon/storage/box/shotgunshells,
|
||||
/obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos
|
||||
/obj/item/gunbox/blueshield,
|
||||
/obj/item/gunbox/blueshield/secondary
|
||||
)
|
||||
|
||||
@@ -168,7 +168,10 @@
|
||||
/obj/item/clothing/shoes/boots/winter/security,
|
||||
/obj/item/device/flashlight/maglight,
|
||||
/obj/item/device/megaphone,
|
||||
/obj/item/clothing/mask/gas/half)
|
||||
/obj/item/clothing/mask/gas/half,
|
||||
/obj/item/weapon/gun/projectile/revolvershotgun,
|
||||
/obj/item/ammo_magazine/m12gdrumjack/beanbag,
|
||||
/obj/item/ammo_magazine/m12gdrumjack/beanbag)
|
||||
|
||||
/obj/structure/closet/secure_closet/warden/initialize()
|
||||
if(prob(50))
|
||||
|
||||
@@ -49,7 +49,9 @@
|
||||
/obj/item/weapon/storage/box/flashbangs,
|
||||
/obj/item/device/flash,
|
||||
/obj/item/weapon/melee/baton/loaded,
|
||||
/obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos,
|
||||
// /obj/item/weapon/storage/secure/briefcase/nsfw_pack_hos,
|
||||
/obj/item/weapon/gun/energy/x01,
|
||||
/obj/item/weapon/cell/device/weapon,
|
||||
/obj/item/weapon/melee/telebaton,
|
||||
/obj/item/clothing/head/beret/sec/corporate/hos,
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/security,
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
/mob/living/simple_animal/hostile/alien/sentinel,
|
||||
/mob/living/simple_animal/hostile/alien/queen,
|
||||
/mob/living/simple_animal/otie/feral,
|
||||
/mob/living/simple_animal/otie/red,
|
||||
/mob/living/simple_animal/hostile/corrupthound))
|
||||
return ..()
|
||||
|
||||
@@ -101,6 +102,11 @@
|
||||
desc = "VARMAcorp experimental hostile environment adaptive breeding development kit. WARNING, DO NOT RELEASE IN WILD!"
|
||||
starts_with = list(/mob/living/simple_animal/otie/cotie/phoron)
|
||||
|
||||
/obj/structure/largecrate/animal/otie/phoron/initialize()
|
||||
starts_with = list(pick(/mob/living/simple_animal/otie/cotie/phoron;2,
|
||||
/mob/living/simple_animal/otie/red/friendly;0.5))
|
||||
return ..()
|
||||
|
||||
/obj/structure/largecrate/animal/otie/attack_hand(mob/living/carbon/human/M as mob)//I just couldn't decide between the icons lmao
|
||||
if(taped == 1)
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
|
||||
@@ -20,6 +20,7 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
|
||||
|
||||
/obj/structure/janitorialcart/New()
|
||||
create_reagents(300)
|
||||
..()
|
||||
|
||||
|
||||
/obj/structure/janitorialcart/examine(mob/user)
|
||||
|
||||
@@ -10,4 +10,91 @@
|
||||
|
||||
/obj/effect/floor_decal/industrial/outline/red
|
||||
name = "red outline"
|
||||
color = COLOR_RED
|
||||
color = COLOR_RED
|
||||
/obj/effect/floor_decal/borderfloor/shifted
|
||||
icon_state = "borderfloor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/borderfloorblack/shifted
|
||||
icon_state = "borderfloor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/borderfloorwhite/shifted
|
||||
icon_state = "borderfloor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/beige/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/black/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/blue/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/brown/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/green/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/grey/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightgrey/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange
|
||||
name = "orange corner"
|
||||
color = "#ed983d"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/full
|
||||
icon_state = "corner_white_full"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/three_quarters
|
||||
icon_state = "corner_white_three_quarters"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/border
|
||||
icon_state = "bordercolor"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/bordercorner
|
||||
icon_state = "bordercolorcorner"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/bordercorner2
|
||||
icon_state = "bordercolorcorner2"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/borderfull
|
||||
icon_state = "bordercolorfull"
|
||||
|
||||
/obj/effect/floor_decal/corner/lightorange/bordercee
|
||||
icon_state = "bordercolorcee"
|
||||
|
||||
/obj/effect/floor_decal/corner/lime/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/mauve/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/orange/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/paleblue/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/pink/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/purple/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/red/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/white/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
/obj/effect/floor_decal/corner/yellow/border/shifted
|
||||
icon_state = "bordercolor_shifted"
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
/turf/simulated/wall/dungeon/ex_act()
|
||||
return
|
||||
|
||||
/turf/simulated/wall/dungeon/take_damage() //These things are suppose to be unbreakable
|
||||
return
|
||||
|
||||
/turf/simulated/wall/solidrock //for more stylish anti-cheese.
|
||||
name = "solid rock"
|
||||
desc = "This rock seems dense, impossible to drill."
|
||||
@@ -37,4 +40,7 @@
|
||||
return
|
||||
|
||||
/turf/simulated/wall/solidrock/ex_act()
|
||||
return
|
||||
|
||||
/turf/simulated/wall/solidrock/take_damage() //These things are suppose to be unbreakable
|
||||
return
|
||||
@@ -250,9 +250,8 @@
|
||||
return
|
||||
|
||||
/obj/effect/beam/i_beam/Destroy()
|
||||
. = ..()
|
||||
if(master.first == src)
|
||||
master.first = null
|
||||
if(next)
|
||||
qdel(next)
|
||||
next = null
|
||||
..()
|
||||
if(next && !next.gc_destroyed)
|
||||
qdel_null(next)
|
||||
|
||||
@@ -241,6 +241,46 @@ datum/gear/suit/duster
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/hop
|
||||
allowed_roles = list("Head of Personnel")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/cargo
|
||||
display_name = "cloak, cargo"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/cargo
|
||||
allowed_roles = list("Cargo Technician","Quartermaster")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/mining
|
||||
display_name = "cloak, cargo"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/mining
|
||||
allowed_roles = list("Quartermaster","Shaft Miner")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/security
|
||||
display_name = "cloak, security"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/security
|
||||
allowed_roles = list("Head of Security","Detective","Warden","Security Officer")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/service
|
||||
display_name = "cloak, service"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/service
|
||||
allowed_roles = list("Head of Personnel","Bartender","Botanist","Janitor","Chef","Librarian")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/engineer
|
||||
display_name = "cloak, engineer"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/engineer
|
||||
allowed_roles = list("Chief Engineer","Station Engineer")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/atmos
|
||||
display_name = "cloak, atmos"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/atmos
|
||||
allowed_roles = list("Chief Engineer","Atmospheric Technician")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/research
|
||||
display_name = "cloak, science"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/research
|
||||
allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist")
|
||||
|
||||
/datum/gear/suit/roles/poncho/cloak/medical
|
||||
display_name = "cloak, medical"
|
||||
path = /obj/item/clothing/accessory/poncho/roles/cloak/medical
|
||||
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
|
||||
|
||||
/datum/gear/suit/unathi_robe
|
||||
display_name = "roughspun robe"
|
||||
path = /obj/item/clothing/suit/unathi/robe
|
||||
|
||||
@@ -253,7 +253,8 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
if(slot && slot == slot_gloves)
|
||||
if(H.gloves)
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
if(istype(G))
|
||||
ring = H.gloves
|
||||
if(ring.glove_level >= src.glove_level)
|
||||
to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.")
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
/obj/item/clothing/head/helmet/combat/USDF
|
||||
name = "marine helmet"
|
||||
desc = "If you wanna to keep your brain inside yo' head, you'd best put this on!"
|
||||
icon_state = "UNSC_helm"
|
||||
item_state = "UNSC_helm"
|
||||
icon_state = "unsc_helm"
|
||||
item_state = "unsc_helm"
|
||||
icon = 'icons/obj/clothing/hats_vr.dmi'
|
||||
icon_override = 'icons/mob/head_vr.dmi'
|
||||
|
||||
|
||||
@@ -104,14 +104,14 @@
|
||||
interface_name = "mounted chem injector"
|
||||
interface_desc = "Dispenses loaded chemicals via an arm-mounted injector."
|
||||
|
||||
var/max_reagent_volume = 10 //Regen to this volume
|
||||
var/max_reagent_volume = 20 //Regen to this volume
|
||||
var/chems_to_use = 5 //Per injection
|
||||
|
||||
charges = list(
|
||||
list("inaprovaline", "inaprovaline", 0, 10),
|
||||
list("tricordrazine", "tricordrazine", 0, 10),
|
||||
list("tramadol", "tramadol", 0, 10),
|
||||
list("dexalin plus", "dexalinp", 0, 10)
|
||||
list("inaprovaline", "inaprovaline", 0, 20),
|
||||
list("dylovene", "dylovene", 0, 20),
|
||||
list("paracetamol", "paracetamol", 0, 20),
|
||||
list("dexalin", "dexalin", 0, 20)
|
||||
)
|
||||
|
||||
/obj/item/rig_module/rescue_pharm/process()
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
/obj/item/clothing/suit/armor/combat/USDF
|
||||
name = "marine body armor"
|
||||
desc = "When I joined the Corps, we didn't have any fancy-schmanzy armor. We had sticks! Two sticks, and a rock for the whole platoon–and we had to <i>share</i> the rock!"
|
||||
icon_state = "UNSC_armor"
|
||||
icon_state = "unsc_armor"
|
||||
icon = 'icons/obj/clothing/suits_vr.dmi'
|
||||
icon_override = 'icons/mob/suit_vr.dmi'
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO // ToDo: Break up the armor into smaller bits.
|
||||
|
||||
@@ -121,8 +121,8 @@
|
||||
* Cloak
|
||||
*/
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak
|
||||
name = "brown cloak"
|
||||
desc = "An elaborate brown cloak."
|
||||
name = "quartermaster's cloak"
|
||||
desc = "An elaborate brown and gold cloak."
|
||||
icon_state = "qmcloak"
|
||||
item_state = "qmcloak"
|
||||
body_parts_covered = null
|
||||
@@ -169,6 +169,54 @@
|
||||
icon_state = "capcloak"
|
||||
item_state = "capcloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/cargo
|
||||
name = "brown cloak"
|
||||
desc = "A simple brown and black cloak."
|
||||
icon_state = "cargocloak"
|
||||
item_state = "cargocloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/mining
|
||||
name = "trimmed purple cloak"
|
||||
desc = "A trimmed purple and brown cloak."
|
||||
icon_state = "miningcloak"
|
||||
item_state = "miningcloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/security
|
||||
name = "red cloak"
|
||||
desc = "A simple red and black cloak."
|
||||
icon_state = "seccloak"
|
||||
item_state = "seccloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/service
|
||||
name = "green cloak"
|
||||
desc = "A simple green and blue cloak."
|
||||
icon_state = "servicecloak"
|
||||
item_state = "servicecloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/engineer
|
||||
name = "gold cloak"
|
||||
desc = "A simple gold and brown cloak."
|
||||
icon_state = "engicloak"
|
||||
item_state = "engicloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/atmos
|
||||
name = "yellow cloak"
|
||||
desc = "A trimmed yellow and blue cloak."
|
||||
icon_state = "atmoscloak"
|
||||
item_state = "atmoscloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/research
|
||||
name = "purple cloak"
|
||||
desc = "A simple purple and white cloak."
|
||||
icon_state = "scicloak"
|
||||
item_state = "scicloak"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/roles/cloak/medical
|
||||
name = "blue cloak"
|
||||
desc = "A simple blue and white cloak."
|
||||
icon_state = "medcloak"
|
||||
item_state = "medcloak"
|
||||
|
||||
/obj/item/clothing/accessory/hawaii
|
||||
name = "flower-pattern shirt"
|
||||
desc = "You probably need some welder googles to look at this."
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/under/yw/robotics //fancy blueshield suit,
|
||||
/obj/item/clothing/under/yw/robotics //fancy blueshield suit,
|
||||
name = "A cybernetic uniform"
|
||||
desc = "A roboticist uniform with glowing trim, and some sort of machine port on the back."
|
||||
icon = 'icons/mob/uniform_yw.dmi'
|
||||
|
||||
@@ -140,7 +140,7 @@ var/list/global/map_templates = list()
|
||||
|
||||
/datum/map_template/proc/annihilate_bounds(turf/origin, centered = FALSE)
|
||||
var/deleted_atoms = 0
|
||||
admin_notice("<span class='danger'>Annihilating objects in submap loading locatation.</span>", R_DEBUG)
|
||||
admin_notice("<span class='danger'>Annihilating objects in submap loading location.</span>", R_DEBUG)
|
||||
var/list/turfs_to_clean = get_affected_turfs(origin, centered)
|
||||
if(turfs_to_clean.len)
|
||||
for(var/turf/T in turfs_to_clean)
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
exclaim_verb = "SHRIEKS"
|
||||
colour = "vox"
|
||||
key = "5"
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
syllables = list("ti","ti","ti","hi","hi","ki","ki","ki","ki","ya","ta","ha","ka","ya","chi","cha","kah", \
|
||||
"SKRE","AHK","EHK","RAWK","KRA","AAA","EEE","KI","II","KRI","KA")
|
||||
machine_understands = 0
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
exclaim_verb = "roars"
|
||||
colour = "soghun"
|
||||
key = "o"
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
space_chance = 40
|
||||
syllables = list(
|
||||
"za", "az", "ze", "ez", "zi", "iz", "zo", "oz", "zu", "uz", "zs", "sz",
|
||||
@@ -57,7 +57,7 @@
|
||||
exclaim_verb = "yowls"
|
||||
colour = "tajaran"
|
||||
key = "j"
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
syllables = list("mrr","rr","tajr","kir","raj","kii","mir","kra","ahk","nal","vah","khaz","jri","ran","darr",
|
||||
"mi","jri","dynh","manq","rhe","zar","rrhaz","kal","chur","eech","thaa","dra","jurl","mah","sanu","dra","ii'r",
|
||||
"ka","aasi","far","wa","baq","ara","qara","zir","saam","mak","hrar","nja","rir","khan","jun","dar","rik","kah",
|
||||
@@ -71,7 +71,7 @@
|
||||
exclaim_verb = "wails"
|
||||
colour = "akhani"
|
||||
key = "h"
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
syllables = list("mrr","rr","marr","tar","ahk","ket","hal","kah","dra","nal","kra","vah","dar","hrar", "eh",
|
||||
"ara","ka","zar","mah","ner","zir","mur","hai","raz","ni","ri","nar","njar","jir","ri","ahn","kha","sir",
|
||||
"kar","yar","kzar","rha","hrar","err","fer","rir","rar","yarr","arr","ii'r","jar","kur","ran","rii","ii",
|
||||
@@ -86,6 +86,15 @@
|
||||
new_name += " [..(gender,1)]"
|
||||
return new_name
|
||||
|
||||
/datum/language/tajsign
|
||||
name = LANGUAGE_ALAI
|
||||
desc = "A standardized Tajaran sign language that was developed in Zarraya and gradually adopted by other nations, incorporating \
|
||||
hand gestures and movements of the ears and tail."
|
||||
signlang_verb = list("gestures with their hands", "gestures with their ears and tail", "gestures with their ears, tail and hands")
|
||||
colour = "tajaran"
|
||||
key = "l"
|
||||
flags = WHITELISTED | SIGNLANG | NO_STUTTER | NONVERBAL
|
||||
|
||||
/datum/language/skrell
|
||||
name = LANGUAGE_SKRELLIAN
|
||||
desc = "A set of warbles and hums, the language itself a complex mesh of both melodic and rhythmic components, exceptionally capable of conveying intent and emotion of the speaker."
|
||||
@@ -96,7 +105,7 @@
|
||||
colour = "skrell"
|
||||
key = "k"
|
||||
space_chance = 30
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix")
|
||||
|
||||
/datum/language/skrellfar
|
||||
@@ -109,7 +118,7 @@
|
||||
colour = "skrellfar"
|
||||
key = "p"
|
||||
space_chance = 30
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix", "...", "oo", "q", "nq", "x", "xq", "ll", "...", "...", "...") //should sound like there's holes in it
|
||||
|
||||
|
||||
@@ -120,7 +129,7 @@
|
||||
whisper_verb = "whispers"
|
||||
colour = "solcom"
|
||||
key = "1"
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
//syllables are at the bottom of the file
|
||||
|
||||
/datum/language/human/get_spoken_verb(var/msg_end)
|
||||
@@ -171,7 +180,7 @@
|
||||
exclaim_verb = "trills"
|
||||
colour = "alien"
|
||||
key = "v"
|
||||
flags = WHITELISTED
|
||||
// flags = WHITELISTED (YWEdit)
|
||||
space_chance = 50
|
||||
syllables = list(
|
||||
"ca", "ra", "ma", "sa", "na", "ta", "la", "sha", "scha", "a", "a",
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
"hel","ischt","far","wa","baram","iereng","tech","lach","sam","mak","lich","gen","or","ag","eck","gec","stag","onn", \
|
||||
"bin","ket","jarl","vulf","einech","cresthz","azunein","ghzth")
|
||||
|
||||
/*
|
||||
/datum/language/demon
|
||||
name = "Daemon"
|
||||
desc = "The language spoken by the demons of Infernum, it's composed of deep chanting. It's rarely spoken off of Infernum due to the volume one has to exert."
|
||||
@@ -60,6 +61,7 @@
|
||||
key = "*" //dunno if this is a valid key. - Table
|
||||
syllables = list("salve","sum","loqui","operatur","iusta","et","permittit","facere","effercio","pluribus","enim","hoc",
|
||||
"mihi","wan","six","salve","tartu")
|
||||
(YWEdit) Why define all this twice? */
|
||||
|
||||
/datum/language/squirrel
|
||||
name = LANGUAGE_ECUREUILIAN
|
||||
@@ -94,7 +96,14 @@
|
||||
syllables = list("salve","sum","loqui","operatur","iusta","et","permittit","facere","effercio","pluribus","enim","hoc",
|
||||
"mihi","wan","six","salve","tartu")
|
||||
machine_understands = FALSE
|
||||
|
||||
/* (YWEdit)
|
||||
/datum/language/tajsign
|
||||
name = LANGUAGE_SIIK_TAJR
|
||||
desc = "A type of sign language mostly based on tail movements that was used during the Tajaran rebellion."
|
||||
signlang_verb = list("uses their tail to convey", "gestures with their tail", "gestures with their tail elaborately")
|
||||
colour = "tajaran"
|
||||
key = "l"
|
||||
flags = SIGNLANG | NO_STUTTER | NONVERBAL // | WHITELISTED (YWEdit)
|
||||
|
||||
/datum/language/unathi
|
||||
flags = 0
|
||||
@@ -107,5 +116,4 @@
|
||||
/datum/language/seromi
|
||||
flags = 0
|
||||
/datum/language/gutter
|
||||
flags = WHITELISTED
|
||||
machine_understands = FALSE
|
||||
machine_understands = FALSE */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/mob/living/carbon/human/emote(var/act,var/m_type=1,var/message = null)
|
||||
var/param = null
|
||||
|
||||
|
||||
var/datum/gender/T = gender_datums[get_visible_gender()]
|
||||
|
||||
if (findtext(act, "-", 1, null))
|
||||
@@ -80,10 +80,11 @@
|
||||
|
||||
//Promethean-only emotes
|
||||
if("squish")
|
||||
if(!species.bump_flag == SLIME) //That should do, yaya.
|
||||
/* VOREStation Removal Start - Eh. People can squish maybe.
|
||||
if(species.bump_flag != SLIME) //This should definitely do it.
|
||||
src << "<span class='warning'>You are not a slime thing!</span>"
|
||||
return
|
||||
|
||||
*/ //VOREStation Removal End
|
||||
playsound(src.loc, 'sound/effects/slime_squish.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
|
||||
message = "squishes."
|
||||
m_type = 1
|
||||
@@ -739,7 +740,7 @@
|
||||
set name = "Set Pose"
|
||||
set desc = "Sets a description which will be shown when someone examines you."
|
||||
set category = "IC"
|
||||
|
||||
|
||||
var/datum/gender/T = gender_datums[get_visible_gender()]
|
||||
|
||||
pose = sanitize(input(usr, "This is [src]. [T.he]...", "Pose", null) as text)
|
||||
|
||||
@@ -146,45 +146,35 @@ emp_act
|
||||
|
||||
//this proc returns the armour value for a particular external organ.
|
||||
/mob/living/carbon/human/proc/getarmor_organ(var/obj/item/organ/external/def_zone, var/type)
|
||||
if(!type || !def_zone) return 0
|
||||
if(!type || !def_zone)
|
||||
return 0
|
||||
var/protection = 0
|
||||
var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes)
|
||||
var/list/protective_gear = def_zone.get_covering_clothing()
|
||||
for(var/obj/item/clothing/gear in protective_gear)
|
||||
if(gear.body_parts_covered & def_zone.body_part)
|
||||
protection += gear.armor[type]
|
||||
if(LAZYLEN(gear.accessories))
|
||||
for(var/obj/item/clothing/accessory/bling in gear.accessories)
|
||||
if(bling.body_parts_covered & def_zone.body_part)
|
||||
protection += bling.armor[type]
|
||||
protection += gear.armor[type]
|
||||
return protection
|
||||
|
||||
/mob/living/carbon/human/proc/getsoak_organ(var/obj/item/organ/external/def_zone, var/type)
|
||||
if(!type || !def_zone) return 0
|
||||
if(!type || !def_zone)
|
||||
return 0
|
||||
var/soaked = 0
|
||||
var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes)
|
||||
var/list/protective_gear = def_zone.get_covering_clothing()
|
||||
for(var/obj/item/clothing/gear in protective_gear)
|
||||
if(gear.body_parts_covered & def_zone.body_part)
|
||||
soaked += gear.armorsoak[type]
|
||||
if(LAZYLEN(gear.accessories))
|
||||
for(var/obj/item/clothing/accessory/bling in gear.accessories)
|
||||
if(bling.body_parts_covered & def_zone.body_part)
|
||||
soaked += bling.armorsoak[type]
|
||||
soaked += gear.armorsoak[type]
|
||||
return soaked
|
||||
|
||||
// Checked in borer code
|
||||
/mob/living/carbon/human/proc/check_head_coverage()
|
||||
|
||||
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform)
|
||||
for(var/bp in body_parts)
|
||||
if(!bp) continue
|
||||
if(bp && istype(bp ,/obj/item/clothing))
|
||||
var/obj/item/clothing/C = bp
|
||||
if(C.body_parts_covered & HEAD)
|
||||
return 1
|
||||
var/obj/item/organ/external/H = organs_by_name[BP_HEAD]
|
||||
var/list/body_parts = H.get_covering_clothing()
|
||||
if(LAZYLEN(body_parts))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
//Used to check if they can be fed food/drinks/pills
|
||||
/mob/living/carbon/human/proc/check_mouth_coverage()
|
||||
var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform)
|
||||
var/obj/item/organ/external/H = organs_by_name[BP_HEAD]
|
||||
var/list/protective_gear = H.get_covering_clothing()
|
||||
for(var/obj/item/gear in protective_gear)
|
||||
if(istype(gear) && (gear.body_parts_covered & FACE) && !(gear.item_flags & FLEXIBLEMATERIAL))
|
||||
return gear
|
||||
|
||||
@@ -1041,7 +1041,7 @@
|
||||
adjustHalLoss(-1)
|
||||
|
||||
if (drowsyness)
|
||||
drowsyness--
|
||||
drowsyness = max(0, drowsyness - 1)
|
||||
eye_blurry = max(2, eye_blurry)
|
||||
if (prob(5))
|
||||
sleeping += 1
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
metabolic_rate = 1.1
|
||||
gluttonous = 1
|
||||
num_alternate_languages = 3
|
||||
secondary_langs = list(LANGUAGE_SIIK, LANGUAGE_AKHANI)
|
||||
secondary_langs = list(LANGUAGE_SIIK, LANGUAGE_AKHANI, LANGUAGE_ALAI)
|
||||
name_language = LANGUAGE_SIIK
|
||||
species_language = LANGUAGE_SIIK
|
||||
health_hud_intensity = 2.5
|
||||
|
||||
+32
-2
@@ -3,7 +3,7 @@
|
||||
set category = "Abilities"
|
||||
|
||||
// Sanity is mostly handled in chimera_regenerate()
|
||||
|
||||
|
||||
var/confirm = alert(usr, "Are you sure you want to completely reconstruct your form? This process can take up to twenty minutes, depending on how hungry you are, and you will be unable to move.", "Confirm Regeneration", "Yes", "No")
|
||||
if(confirm == "Yes")
|
||||
chimera_regenerate()
|
||||
@@ -658,7 +658,7 @@
|
||||
|
||||
return ..(G.affecting)
|
||||
|
||||
//PAIs don't need a grab or anything
|
||||
//PAIs, borgs, and animals don't need a grab or anything
|
||||
/mob/living/silicon/pai/can_shred(var/mob/living/carbon/human/target)
|
||||
if(!target)
|
||||
var/list/choices = list()
|
||||
@@ -674,6 +674,36 @@
|
||||
|
||||
return ..(target)
|
||||
|
||||
/mob/living/silicon/robot/can_shred(var/mob/living/carbon/human/target)
|
||||
if(!target)
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/carbon/human/M in oviewers(1))
|
||||
choices += M
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src,"<span class='warning'>There's nobody nearby to use this on.</span>")
|
||||
|
||||
target = input(src,"Who do you wish to target?","Damage/Remove Prey's Organ") as null|anything in choices
|
||||
if(!istype(target))
|
||||
return FALSE
|
||||
|
||||
return ..(target)
|
||||
|
||||
/mob/living/simple_animal/can_shred(var/mob/living/carbon/human/target)
|
||||
if(!target)
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/carbon/human/M in oviewers(1))
|
||||
choices += M
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src,"<span class='warning'>There's nobody nearby to use this on.</span>")
|
||||
|
||||
target = input(src,"Who do you wish to target?","Damage/Remove Prey's Organ") as null|anything in choices
|
||||
if(!istype(target))
|
||||
return FALSE
|
||||
|
||||
return ..(target)
|
||||
|
||||
/mob/living/proc/shred_limb()
|
||||
set name = "Damage/Remove Prey's Organ"
|
||||
set desc = "Severely damages prey's organ. If the limb is already severely damaged, it will be torn off."
|
||||
|
||||
@@ -361,7 +361,7 @@
|
||||
min_age = 18
|
||||
icobase = 'icons/mob/human_races/r_vox_old.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_vox_old.dmi'
|
||||
inherent_verbs = list(/mob/living/proc/shred_limb)
|
||||
inherent_verbs = list(/mob/living/proc/shred_limb, /mob/living/proc/eat_trash)
|
||||
|
||||
datum/species/harpy
|
||||
name = SPECIES_RAPALA
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/datum/trait
|
||||
var/name = "Prototype Trait"
|
||||
var/name
|
||||
var/desc = "Contact a developer if you see this trait."
|
||||
|
||||
var/cost = 0 // 0 is neutral, negative cost means negative, positive cost means positive.
|
||||
|
||||
@@ -64,6 +64,7 @@ var/list/ai_verbs_default = list(
|
||||
var/datum/announcement/priority/announcement
|
||||
var/obj/machinery/ai_powersupply/psupply = null // Backwards reference to AI's powersupply object.
|
||||
var/hologram_follow = 1 //This is used for the AI eye, to determine if a holopad's hologram should follow it or not.
|
||||
var/is_dummy = 0 //Used to prevent dummy AIs from spawning with communicators.
|
||||
//NEWMALF VARIABLES
|
||||
var/malfunctioning = 0 // Master var that determines if AI is malfunctioning.
|
||||
var/datum/malf_hardware/hardware = null // Installed piece of hardware.
|
||||
@@ -111,15 +112,16 @@ var/list/ai_verbs_default = list(
|
||||
possibleNames -= pickedName
|
||||
pickedName = null
|
||||
|
||||
aiPDA = new/obj/item/device/pda/ai(src)
|
||||
if(!is_dummy)
|
||||
aiPDA = new/obj/item/device/pda/ai(src)
|
||||
SetName(pickedName)
|
||||
anchored = 1
|
||||
canmove = 0
|
||||
density = 1
|
||||
loc = loc
|
||||
|
||||
aiCommunicator = new /obj/item/device/communicator/integrated(src)
|
||||
|
||||
|
||||
if(!is_dummy)
|
||||
aiCommunicator = new /obj/item/device/communicator/integrated(src)
|
||||
|
||||
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
|
||||
|
||||
@@ -805,6 +807,9 @@ var/list/ai_verbs_default = list(
|
||||
return TRUE
|
||||
|
||||
//Special subtype kept around for global announcements
|
||||
/mob/living/silicon/ai/announcer/
|
||||
is_dummy = 1
|
||||
|
||||
/mob/living/silicon/ai/announcer/initialize()
|
||||
. = ..()
|
||||
mob_list -= src
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
if(module)
|
||||
var/obj/item/weapon/gripper/G = locate(/obj/item/weapon/gripper) in module
|
||||
if(G) G.drop_item()
|
||||
var/obj/item/device/dogborg/sleeper/S = locate(/obj/item/device/dogborg/sleeper) in module //VOREStation edit.
|
||||
if(S) S.go_out() //VOREStation edit.
|
||||
remove_robot_verbs()
|
||||
sql_report_cyborg_death(src)
|
||||
..(gibbed,"shudders violently for a moment, then becomes motionless, its eyes slowly darkening.")
|
||||
|
||||
@@ -114,6 +114,7 @@ var/list/mob_hat_cache = list()
|
||||
|
||||
verbs -= /mob/living/silicon/robot/verb/Namepick
|
||||
updateicon()
|
||||
updatename()
|
||||
|
||||
/mob/living/silicon/robot/drone/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/drone_camera(src)
|
||||
|
||||
@@ -93,8 +93,7 @@
|
||||
|
||||
radio.channels = module.channels
|
||||
verbs -= /mob/living/silicon/robot/drone/proc/release_ai_control_verb
|
||||
languages = initial(languages)
|
||||
speech_synthesizer_langs = initial(speech_synthesizer_langs)
|
||||
module.remove_languages(src) //Removes excess, adds 'default'.
|
||||
remove_language("Robot Talk")
|
||||
add_language("Robot Talk", 0)
|
||||
add_language("Drone Talk", 1)
|
||||
|
||||
@@ -172,6 +172,7 @@
|
||||
R.dogborg = TRUE
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
..()
|
||||
|
||||
/obj/item/weapon/robot_module/robot/knine/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
|
||||
@@ -244,6 +245,7 @@
|
||||
R.dogborg = TRUE
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
..()
|
||||
|
||||
/obj/item/weapon/robot_module/robot/ert
|
||||
@@ -291,6 +293,7 @@
|
||||
R.dogborg = TRUE
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
..()
|
||||
|
||||
/obj/item/weapon/robot_module/robot/scrubpup
|
||||
@@ -371,6 +374,7 @@
|
||||
R.dogborg = TRUE
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
..()
|
||||
|
||||
/obj/item/weapon/robot_module/robot/science
|
||||
@@ -416,6 +420,7 @@
|
||||
R.dogborg = TRUE
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
..()
|
||||
|
||||
/obj/item/weapon/robot_module/robot/engiedog
|
||||
@@ -539,6 +544,7 @@
|
||||
R.dogborg = TRUE
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
..()
|
||||
|
||||
/obj/item/weapon/robot_module/Reset(var/mob/living/silicon/robot/R)
|
||||
@@ -551,4 +557,5 @@
|
||||
R.default_pixel_x = initial(pixel_x)
|
||||
R.scrubbing = FALSE
|
||||
R.verbs -= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs -= /mob/living/proc/shred_limb
|
||||
..()
|
||||
@@ -39,6 +39,8 @@
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
||||
|
||||
showvoreprefs = 0 //VOREStation Edit - Hides mechanical vore prefs for mimics. You can't see their gaping maws when they're just sitting idle.
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/set_target()
|
||||
. = ..()
|
||||
if(.)
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
|
||||
if(!IsAdvancedToolUser())
|
||||
verbs |= /mob/living/simple_animal/proc/animal_nom
|
||||
verbs |= /mob/living/proc/shred_limb
|
||||
|
||||
if(LAZYLEN(vore_organs))
|
||||
return
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/mob/living/simple_animal/otie //Spawn this one only if you're looking for a bad time. Not friendly.
|
||||
name = "otie"
|
||||
desc = "The classic bioengineered longdog."
|
||||
tt_desc = "Canis otis"
|
||||
tt_desc = "Otus robustus"
|
||||
icon = 'icons/mob/vore64x32.dmi'
|
||||
icon_state = "otie"
|
||||
icon_living = "otie"
|
||||
@@ -64,6 +64,7 @@
|
||||
/mob/living/simple_animal/otie/feral //gets the pet2tame feature. starts out hostile tho so get gamblin'
|
||||
name = "mutated feral otie"
|
||||
desc = "The classic bioengineered longdog. No pets. Only bite. This one has mutated from too much time out on the surface of Virgo-3B."
|
||||
tt_desc = "Otus phoronis"
|
||||
icon_state = "siftusian"
|
||||
icon_living = "siftusian"
|
||||
icon_dead = "siftusian-dead"
|
||||
@@ -84,6 +85,36 @@
|
||||
glowyeyes = TRUE
|
||||
eyetype = "photie"
|
||||
|
||||
/mob/living/simple_animal/otie/red
|
||||
name = "feral red otie"
|
||||
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces."
|
||||
tt_desc = "Otus infernalis"
|
||||
icon_state = "hotie"
|
||||
icon_living = "hotie"
|
||||
icon_dead = "hotie-dead"
|
||||
icon_rest = "hotie_rest"
|
||||
faction = "cult"
|
||||
tame_chance = 20
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 25
|
||||
// Lazy way of making sure this otie survives outside.
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
min_tox = 0
|
||||
max_tox = 0
|
||||
min_co2 = 0
|
||||
max_co2 = 0
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
glowyeyes = TRUE
|
||||
eyetype = "hotie"
|
||||
|
||||
/mob/living/simple_animal/otie/red/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
name = "red otie"
|
||||
desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. This one seems rather peaceful though."
|
||||
faction = "neutral"
|
||||
tamed = 1
|
||||
|
||||
/mob/living/simple_animal/otie/friendly //gets the pet2tame feature and doesn't kill you right away
|
||||
name = "otie"
|
||||
desc = "The classic bioengineered longdog. This one might even tolerate you!"
|
||||
@@ -102,6 +133,7 @@
|
||||
/mob/living/simple_animal/otie/cotie/phoron //friendly phoron pup with collar
|
||||
name = "mutated otie"
|
||||
desc = "Looks like someone did manage to domesticate one of those wild phoron mutants. What a badass."
|
||||
tt_desc = "Otus phoronis"
|
||||
icon_state = "pcotie"
|
||||
icon_living = "pcotie"
|
||||
icon_rest = "pcotie_rest"
|
||||
@@ -139,6 +171,7 @@
|
||||
/mob/living/simple_animal/otie/security/phoron
|
||||
name = "mutated guard otie"
|
||||
desc = "An extra rare phoron resistant version of the VARMAcorp trained snowflake guard dogs."
|
||||
tt_desc = "Otus phoronis"
|
||||
icon_state = "sifguard"
|
||||
icon_living = "sifguard"
|
||||
icon_rest = "sifguard_rest"
|
||||
|
||||
@@ -49,5 +49,6 @@
|
||||
|
||||
//Final popup notice
|
||||
if (!pass)
|
||||
alert(src,"There were problems with spawning your character. Check your message log for details.","Error","OK")
|
||||
spawn()
|
||||
alert(src,"There were problems with spawning your character. Check your message log for details.","Error","OK")
|
||||
return pass
|
||||
|
||||
@@ -1257,6 +1257,24 @@
|
||||
name = "Tattoo (Campbell, L.Arm)"
|
||||
body_parts = list(BP_L_ARM)
|
||||
|
||||
rightleg
|
||||
name = "Tattoo (Campbell, R.Leg)"
|
||||
body_parts = list(BP_R_LEG)
|
||||
|
||||
leftleg
|
||||
name = "Tattoo (Campbell, L.Leg)"
|
||||
body_parts = list (BP_L_LEG)
|
||||
|
||||
tat_silverburgh
|
||||
name = "Tattoo (Silverburgh, R.Leg)"
|
||||
icon_state = "tat_silverburgh"
|
||||
body_parts = list (BP_R_LEG)
|
||||
|
||||
left
|
||||
name = "Tattoo (Silverburgh, L.Leg)"
|
||||
icon_state = "tat_silverburgh"
|
||||
body_parts = list (BP_L_LEG)
|
||||
|
||||
tat_tiger
|
||||
name = "Tattoo (Tiger Stripes, Body)"
|
||||
icon_state = "tat_tiger"
|
||||
|
||||
@@ -748,12 +748,42 @@
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otter_nose
|
||||
name = "Otter nose"
|
||||
icon_state = "otternose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otter_face
|
||||
name = "Otter face"
|
||||
icon_state = "otterface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
deer_face
|
||||
name = "Deer face"
|
||||
icon_state = "deerface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sharkface
|
||||
name = "Akula snout"
|
||||
icon_state = "sharkface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sheppy_face
|
||||
name = "Shepherd snout"
|
||||
icon_state = "shepface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sheppy_back
|
||||
name = "Shepherd back"
|
||||
icon_state = "shepback"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
zorren_belly_male
|
||||
name = "Zorren Male Torso"
|
||||
icon_state = "zorren_belly"
|
||||
@@ -830,6 +860,12 @@
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
chooves
|
||||
name = "Cloven hooves"
|
||||
icon_state = "chooves"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
alurane
|
||||
name = "Alurane Body"
|
||||
icon_state = "alurane"
|
||||
@@ -928,13 +964,13 @@
|
||||
icon_state = "teshi_sf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
|
||||
spirit_lights
|
||||
name = "Ward - Spirit FBP Lights"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_HEAD)
|
||||
|
||||
|
||||
spirit_lights_body
|
||||
name = "Ward - Spirit FBP Lights (body)"
|
||||
icon_state = "lights"
|
||||
@@ -946,13 +982,13 @@
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
|
||||
spirit_panels
|
||||
name = "Ward - Spirit FBP Panels"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
|
||||
spirit_panels_body
|
||||
name = "Ward - Spirit FBP Panels (body)"
|
||||
icon_state = "panels"
|
||||
|
||||
@@ -142,19 +142,20 @@
|
||||
if(!istype(above))
|
||||
above.ChangeTurf(/turf/simulated/open)
|
||||
|
||||
/obj/structure/stairs/Uncross(atom/movable/A)
|
||||
if(A.dir == dir && upperStep(A.loc))
|
||||
// This is hackish but whatever.
|
||||
var/turf/target = get_step(GetAbove(A), dir)
|
||||
var/turf/source = A.loc
|
||||
if(target.Enter(A, source))
|
||||
A.forceMove(target)
|
||||
if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
if(L.pulling)
|
||||
L.pulling.forceMove(target)
|
||||
return 0
|
||||
return 1
|
||||
/obj/structure/stairs/CheckExit(atom/movable/mover as mob|obj, turf/target as turf)
|
||||
if(get_dir(loc, target) == dir && upperStep(mover.loc))
|
||||
return FALSE
|
||||
. = ..()
|
||||
|
||||
/obj/structure/stairs/Bumped(atom/movable/A)
|
||||
// This is hackish but whatever.
|
||||
var/turf/target = get_step(GetAbove(A), dir)
|
||||
if(target.Enter(A, src)) // Pass src to be ignored to avoid infinate loop
|
||||
A.forceMove(target)
|
||||
if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
if(L.pulling)
|
||||
L.pulling.forceMove(target)
|
||||
|
||||
/obj/structure/stairs/proc/upperStep(var/turf/T)
|
||||
return (T == loc)
|
||||
|
||||
@@ -1345,3 +1345,18 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(6 to INFINITY)
|
||||
flavor_text += "a ton of [wound]\s"
|
||||
return english_list(flavor_text)
|
||||
|
||||
// Returns a list of the clothing (not glasses) that are covering this part
|
||||
/obj/item/organ/external/proc/get_covering_clothing()
|
||||
var/list/covering_clothing = list()
|
||||
if(owner)
|
||||
var/list/protective_gear = list(owner.head, owner.wear_mask, owner.wear_suit, owner.w_uniform, owner.gloves, owner.shoes)
|
||||
for(var/obj/item/clothing/gear in protective_gear)
|
||||
if(gear.body_parts_covered & src.body_part)
|
||||
covering_clothing |= gear
|
||||
if(LAZYLEN(gear.accessories))
|
||||
for(var/obj/item/clothing/accessory/bling in gear.accessories)
|
||||
if(bling.body_parts_covered & src.body_part)
|
||||
covering_clothing |= bling
|
||||
|
||||
return covering_clothing
|
||||
@@ -134,7 +134,7 @@ var/global/photo_count = 0
|
||||
var/icon_on = "camera"
|
||||
var/icon_off = "camera_off"
|
||||
var/size = 3
|
||||
var/picture_planes = list()
|
||||
var/list/picture_planes = list()
|
||||
|
||||
/obj/item/device/camera/verb/change_size()
|
||||
set name = "Set Photo Focus"
|
||||
|
||||
@@ -160,6 +160,7 @@ var/list/possible_cable_coil_colours = list(
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/wirecutters))
|
||||
var/obj/item/stack/cable_coil/CC
|
||||
if(d1 == UP || d2 == UP)
|
||||
to_chat(user, "<span class='warning'>You must cut this cable from above.</span>")
|
||||
return
|
||||
@@ -172,9 +173,12 @@ var/list/possible_cable_coil_colours = list(
|
||||
return
|
||||
|
||||
if(src.d1) // 0-X cables are 1 unit, X-X cables are 2 units long
|
||||
new/obj/item/stack/cable_coil(T, 2, color)
|
||||
CC = new/obj/item/stack/cable_coil(T, 2, color)
|
||||
else
|
||||
new/obj/item/stack/cable_coil(T, 1, color)
|
||||
CC = new/obj/item/stack/cable_coil(T, 1, color)
|
||||
|
||||
src.add_fingerprint(user)
|
||||
src.transfer_fingerprints_to(CC)
|
||||
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("<span class='warning'>[user] cuts the cable.</span>", 1)
|
||||
@@ -939,4 +943,25 @@ obj/structure/cable/proc/cableColor(var/colorC)
|
||||
if(get_dist(src, user) <= 1)
|
||||
msg += " It doesn't seem to have a beginning, or an end."
|
||||
|
||||
to_chat(user, msg)
|
||||
to_chat(user, msg)
|
||||
|
||||
/obj/item/stack/cable_coil/alien/attack_hand(mob/user as mob)
|
||||
if (user.get_inactive_hand() == src)
|
||||
var/N = input("How many units of wire do you want to take from [src]? You can only take up to [amount] at a time.", "Split stacks", 1) as num|null
|
||||
if(N && N <= amount)
|
||||
var/obj/item/stack/cable_coil/CC = new/obj/item/stack/cable_coil(user.loc)
|
||||
CC.amount = N
|
||||
CC.update_icon()
|
||||
to_chat(user,"<font color='blue'>You take [N] units of wire from the [src].</font>")
|
||||
if (CC)
|
||||
user.put_in_hands(CC)
|
||||
src.add_fingerprint(user)
|
||||
CC.add_fingerprint(user)
|
||||
spawn(0)
|
||||
if (src && usr.machine==src)
|
||||
src.interact(usr)
|
||||
else
|
||||
return
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -3,21 +3,20 @@
|
||||
icon = 'icons/obj/machines/power/fusion.dmi'
|
||||
icon_state = "core_control"
|
||||
light_color = COLOR_ORANGE
|
||||
|
||||
circuit = /obj/item/weapon/circuitboard/fusion_core_control
|
||||
var/id_tag
|
||||
var/scan_range = 25
|
||||
var/list/connected_devices = list()
|
||||
var/obj/machinery/power/fusion_core/cur_viewed_device
|
||||
|
||||
/obj/machinery/computer/fusion_core_control/attackby(var/obj/item/thing, var/mob/user)
|
||||
..()
|
||||
if(ismultitool(thing))
|
||||
var/new_ident = input("Enter a new ident tag.", "Core Control", id_tag) as null|text
|
||||
if(new_ident && user.Adjacent(src))
|
||||
id_tag = new_ident
|
||||
cur_viewed_device = null
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/fusion_core_control/attack_ai(mob/user)
|
||||
attack_hand(user)
|
||||
@@ -28,6 +27,11 @@
|
||||
|
||||
/obj/machinery/computer/fusion_core_control/interact(mob/user)
|
||||
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
user.unset_machine()
|
||||
user << browse(null, "window=fusion_control")
|
||||
return
|
||||
|
||||
if(!cur_viewed_device || !check_core_status(cur_viewed_device))
|
||||
cur_viewed_device = null
|
||||
|
||||
@@ -174,3 +178,19 @@
|
||||
if(C.idle_power_usage > C.avail())
|
||||
return
|
||||
. = 1
|
||||
|
||||
/obj/machinery/computer/fusion_core_control/update_icon()
|
||||
if(stat & (BROKEN))
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "broken"
|
||||
set_light(0)
|
||||
|
||||
if(stat & (NOPOWER))
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
set_light(0)
|
||||
|
||||
if(!stat & (BROKEN|NOPOWER))
|
||||
icon = initial(icon)
|
||||
icon_state = initial(icon_state)
|
||||
set_light(light_range_on, light_power_on)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics,
|
||||
/obj/machinery/air_sensor,
|
||||
/mob/observer/dead,
|
||||
/mob/observer,
|
||||
/obj/machinery/power/hydromagnetic_trap
|
||||
)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "fuel injection control computer"
|
||||
icon = 'icons/obj/machines/power/fusion.dmi'
|
||||
icon_state = "fuel"
|
||||
circuit = /obj/item/weapon/circuitboard/fusion_fuel_control
|
||||
|
||||
var/id_tag
|
||||
var/scan_range = 25
|
||||
@@ -94,9 +95,25 @@
|
||||
|
||||
|
||||
/obj/machinery/computer/fusion_fuel_control/attackby(var/obj/item/W, var/mob/user)
|
||||
..()
|
||||
if(ismultitool(W))
|
||||
var/new_ident = input("Enter a new ident tag.", "Fuel Control", id_tag) as null|text
|
||||
if(new_ident && user.Adjacent(src))
|
||||
id_tag = new_ident
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/fusion_fuel_control/update_icon()
|
||||
if(stat & (BROKEN))
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "broken"
|
||||
set_light(0)
|
||||
|
||||
if(stat & (NOPOWER))
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
set_light(0)
|
||||
|
||||
if(!stat & (BROKEN|NOPOWER))
|
||||
icon = initial(icon)
|
||||
icon_state = initial(icon_state)
|
||||
set_light(light_range_on, light_power_on)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
icon = 'icons/obj/machines/power/fusion.dmi'
|
||||
icon_state = "engine"
|
||||
light_color = COLOR_BLUE
|
||||
circuit = /obj/item/weapon/circuitboard/gyrotron_control
|
||||
|
||||
var/id_tag
|
||||
var/scan_range = 25
|
||||
@@ -16,6 +17,11 @@
|
||||
|
||||
/obj/machinery/computer/gyrotron_control/interact(var/mob/user)
|
||||
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
user.unset_machine()
|
||||
user << browse(null, "window=gyrotron_controller_[id_tag]")
|
||||
return
|
||||
|
||||
if(!id_tag)
|
||||
to_chat(user, "<span class='warning'>This console has not been assigned an ident tag. Please contact your system administrator or conduct a manual update with a standard multitool.</span>")
|
||||
return
|
||||
@@ -89,9 +95,25 @@
|
||||
return 0
|
||||
|
||||
/obj/machinery/computer/gyrotron_control/attackby(var/obj/item/W, var/mob/user)
|
||||
..()
|
||||
if(ismultitool(W))
|
||||
var/new_ident = input("Enter a new ident tag.", "Gyrotron Control", id_tag) as null|text
|
||||
if(new_ident && user.Adjacent(src))
|
||||
id_tag = new_ident
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/gyrotron_control/update_icon()
|
||||
if(stat & (BROKEN))
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "broken"
|
||||
set_light(0)
|
||||
|
||||
if(stat & (NOPOWER))
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
set_light(0)
|
||||
|
||||
if(!stat & (BROKEN|NOPOWER))
|
||||
icon = initial(icon)
|
||||
icon_state = initial(icon_state)
|
||||
set_light(light_range_on, light_power_on)
|
||||
|
||||
@@ -344,7 +344,7 @@
|
||||
//Phorochemistry DM: Allows chemicalresistant shocking -Radiantflash
|
||||
for(var/datum/reagent/phororeagent/R in M.reagents.reagent_list)
|
||||
if(R.id == "fulguracin")
|
||||
M << "\blue Your hairs stand up, but you resist the shock for the most part"
|
||||
M << "<span class='notice'>Your hairs stand up, but you resist the shock for the most part</span>"
|
||||
return 0 //no shock for you
|
||||
|
||||
//Checks again. If we are still here subject will be shocked, trigger standard 20 tick warning
|
||||
|
||||
@@ -325,6 +325,31 @@
|
||||
/obj/item/ammo_magazine/box/c9mm/empty
|
||||
initial_ammo = 0
|
||||
|
||||
/obj/item/ammo_magazine/m9mmR/saber
|
||||
desc = "A very high capacity double stack magazine made specially for the SABER SMG. Filled with 22 9mm bullets."
|
||||
icon_state = "S9mm-22"
|
||||
mag_type = MAGAZINE
|
||||
ammo_type = /obj/item/ammo_casing/a9mm
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1200)
|
||||
caliber = "9mm"
|
||||
max_ammo = 22
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_ILLEGAL = 1)
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/m9mmR/saber/ap
|
||||
desc = "A high capacity double stack magazine made specially for the SABER SMG. Filled with 22 9mm armor piercing bullets."
|
||||
icon_state = "S9mm-22"
|
||||
mag_type = MAGAZINE
|
||||
ammo_type = /obj/item/ammo_casing/a9mm/ap
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 2000)
|
||||
caliber = "9mm"
|
||||
max_ammo = 22
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_ILLEGAL = 1)
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/m9mmR/saber/empty
|
||||
initial_ammo = 0
|
||||
|
||||
///////// 10mm /////////
|
||||
|
||||
/obj/item/ammo_magazine/m10mm
|
||||
|
||||
@@ -58,8 +58,7 @@
|
||||
modifystate = "x01stun"
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="stun", fire_delay=8,projectile_type= /obj/item/projectile/energy/electrode/x01stunshot, modifystate="x01stun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 240),
|
||||
list(mode_name="laser", fire_delay=8,projectile_type=/obj/item/projectile/beam, modifystate="x01laser", fire_sound='sound/weapons/Laser.ogg', charge_cost = 480),
|
||||
list(mode_name="stun", fire_delay = 8, projectile_type= /obj/item/projectile/energy/electrode/x01stunshot, modifystate="x01stun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 240),
|
||||
list(mode_name="laser", fire_delay = 8, projectile_type=/obj/item/projectile/beam, modifystate="x01laser", fire_sound='sound/weapons/Laser.ogg', charge_cost = 480),
|
||||
list(mode_name="gauss", fire_delay=15, projectile_type=/obj/item/projectile/energy/gauss, modifystate="x01gauss", fire_sound='sound/weapons/gauss_shoot.ogg', charge_cost = 360)
|
||||
)
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
force = 5
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
charge_cost = 480
|
||||
projectile_type = /obj/item/projectile/ion/pistol // still packs a punch but no AoE
|
||||
projectile_type = /obj/item/projectile/ion/pistol
|
||||
|
||||
/obj/item/weapon/gun/energy/decloner
|
||||
name = "biological demolecularisor"
|
||||
|
||||
@@ -1,25 +1,40 @@
|
||||
/obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude //Except burstfire isn't fit for an rp server --Mark
|
||||
/obj/item/weapon/gun/projectile/automatic //This should never be spawned in, it is just here because of code necessities.
|
||||
name = "daka SMG"
|
||||
desc = "A small SMG. You really shouldn't be able to get this gun. Uses 9mm rounds."
|
||||
icon_state = "c05r" //Used because it's not used anywhere else
|
||||
load_method = SPEEDLOADER
|
||||
ammo_type = /obj/item/ammo_casing/a9mm
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
//Burst is the number of bullets fired; Fire delay is the time you have to wait to shoot the gun again, Move delay is the same but for moving after shooting. .
|
||||
//Burst accuracy is the accuracy of each bullet fired in the burst. Dispersion is how much the bullets will 'spread' away from where you aimed.
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
|
||||
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)))
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/saber //Fixed it
|
||||
name = "prototype SMG"
|
||||
desc = "A protoype lightweight, fast firing gun. Uses 9mm rounds."
|
||||
icon_state = "saber" //ugly
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "saber"//Still ugly
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
load_method = SPEEDLOADER //yup. until someone sprites a magazine for it.
|
||||
load_method = MAGAZINE //This should fix it
|
||||
max_shells = 22
|
||||
caliber = "9mm"
|
||||
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
|
||||
slot_flags = SLOT_BELT
|
||||
ammo_type = /obj/item/ammo_casing/a9mm
|
||||
magazine_type = /obj/item/ammo_magazine/m9mmR/saber
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m9mmR/saber, /obj/item/ammo_magazine/m9mmR/saber/ap)
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
multi_aim = 1
|
||||
burst_delay = 2
|
||||
|
||||
// one_handed_penalty = 15
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
|
||||
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0))
|
||||
// list(mode_name="short bursts", burst=5, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15,-30,-30), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2)),
|
||||
)
|
||||
// list(mode_name="short bursts", burst=5, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15,-30,-30), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2)),
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r
|
||||
name = "submachine gun"
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/obj/item/weapon/gun/projectile/revolvershotgun
|
||||
name = "Jackhammer"
|
||||
desc = "Uses 12g rounds."
|
||||
icon = 'icons/obj/gun_yw.dmi'
|
||||
icon_state = "revolvshot"
|
||||
item_state = null
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
caliber = "12g"
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_ILLEGAL = 2)
|
||||
slot_flags = SLOT_BACK|SLOT_BELT|SLOT_HOLSTER
|
||||
handle_casings = CYCLE_CASINGS
|
||||
load_method = MAGAZINE
|
||||
magazine_type = /obj/item/ammo_magazine/m12gdrumjack/beanbag
|
||||
allowed_magazines = list(/obj/item/ammo_magazine/m12gdrumjack)
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolvershotgun/update_icon()
|
||||
..()
|
||||
if(ammo_magazine)
|
||||
icon_state = "revolvshot"
|
||||
else
|
||||
icon_state = "revolvshot-empty"
|
||||
return
|
||||
|
||||
|
||||
/obj/item/ammo_magazine/m12gdrumjack
|
||||
name = "drum magazine (12 gauge slug)"
|
||||
desc = "A magazine for a revolver shotgun."
|
||||
icon = 'icons/obj/ammo_yw.dmi'
|
||||
icon_state = "c12g"
|
||||
mag_type = MAGAZINE
|
||||
caliber = "12g"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 13000) //did the math. now fixed the exploityness of this thing. Have fun!
|
||||
ammo_type = /obj/item/ammo_casing/a12g
|
||||
max_ammo = 4
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/m12gdrumjack/beanbag
|
||||
name = "drum magazine (12 gauge beanbag)"
|
||||
ammo_type = /obj/item/ammo_casing/a12g/beanbag
|
||||
|
||||
/obj/item/ammo_magazine/m12gdrumjack/pellet
|
||||
name = "drum magazine (12 gauge pellet)"
|
||||
ammo_type = /obj/item/ammo_casing/a12g/pellet
|
||||
|
||||
/obj/item/ammo_magazine/m12gdrumjack/flash
|
||||
name = "drum magazine (12 gauge flash)"
|
||||
ammo_type = /obj/item/ammo_casing/a12g/flash
|
||||
|
||||
/obj/item/ammo_magazine/m12gdrumjack/empty
|
||||
name = "drum magazine (12 gauge)"
|
||||
initial_ammo = 0
|
||||
@@ -865,7 +865,7 @@
|
||||
glass_name = "lime tea"
|
||||
glass_desc = "A tasty mixture of lime and tea. It's apparently good for you!"
|
||||
|
||||
cup_name = "cup of berry tea"
|
||||
cup_name = "cup of lime tea"
|
||||
cup_desc = "A tasty mixture of lime and tea. It's apparently good for you!"
|
||||
|
||||
/datum/reagent/drink/tea/orangetea
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
if(alien == IS_SLIME)
|
||||
chem_effective = 0.75
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(6 * removed * chem_effective, 0)
|
||||
M.heal_organ_damage(4 * removed * chem_effective, 0) //VOREStation Edit
|
||||
|
||||
/datum/reagent/bicaridine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
@@ -67,7 +67,7 @@
|
||||
chem_effective = 0.5
|
||||
M.adjustBruteLoss(2 * removed) //Mends burns, but has negative effects with a Promethean's skeletal structure.
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(0, 6 * removed * chem_effective)
|
||||
M.heal_organ_damage(0, 4 * removed * chem_effective) //VOREStation edit
|
||||
|
||||
/datum/reagent/dermaline
|
||||
name = "Dermaline"
|
||||
@@ -85,7 +85,7 @@
|
||||
if(alien == IS_SLIME)
|
||||
chem_effective = 0.75
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(0, 12 * removed * chem_effective)
|
||||
M.heal_organ_damage(0, 8 * removed * chem_effective) //VOREStation edit
|
||||
|
||||
/datum/reagent/dylovene
|
||||
name = "Dylovene"
|
||||
@@ -141,20 +141,21 @@
|
||||
color = "#0080FF"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
scannable = 1
|
||||
metabolism = REM * 0.25 //VOREStation Edit
|
||||
|
||||
/datum/reagent/dexalin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_VOX)
|
||||
M.adjustToxLoss(removed * 6)
|
||||
M.adjustToxLoss(removed * 24) //VOREStation Edit
|
||||
else if(alien == IS_SLIME && dose >= 15)
|
||||
M.add_chemical_effect(CE_PAINKILLER, 15)
|
||||
if(prob(15))
|
||||
to_chat(M, "<span class='notice'>You have a moment of clarity as you collapse.</span>")
|
||||
M.adjustBrainLoss(-5 * removed)
|
||||
M.adjustBrainLoss(-20 * removed) //VOREStation Edit
|
||||
M.Weaken(6)
|
||||
else if(alien != IS_DIONA)
|
||||
M.adjustOxyLoss(-15 * removed)
|
||||
M.adjustOxyLoss(-60 * removed) //VOREStation Edit
|
||||
|
||||
holder.remove_reagent("lexorin", 2 * removed)
|
||||
holder.remove_reagent("lexorin", 8 * removed) //VOREStation Edit
|
||||
|
||||
/datum/reagent/dexalinp
|
||||
name = "Dexalin Plus"
|
||||
@@ -399,7 +400,7 @@
|
||||
M.Weaken(5)
|
||||
if(dose >= 10 && M.paralysis < 40)
|
||||
M.AdjustParalysis(1) //Messing with the core with a simple chemical probably isn't the best idea.
|
||||
M.adjustBrainLoss(-30 * removed * chem_effective)
|
||||
M.adjustBrainLoss(-8 * removed * chem_effective) //VOREStation Edit
|
||||
M.add_chemical_effect(CE_PAINKILLER, 10 * chem_effective)
|
||||
|
||||
/datum/reagent/imidazoline
|
||||
|
||||
@@ -62,15 +62,17 @@
|
||||
/datum/reagent/vermicetol
|
||||
name = "Vermicetol"
|
||||
id = "vermicetol"
|
||||
description = "A potent chemical that treats burn damage at an exceptional rate and lasts a while."
|
||||
description = "A potent chemical that treats physical damage at an exceptional rate."
|
||||
taste_description = "sparkles"
|
||||
taste_mult = 3
|
||||
reagent_state = SOLID
|
||||
color = "#964e06"
|
||||
overdose = 10
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
|
||||
/datum/reagent/vermicetol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
var/chem_effective = 1
|
||||
if(alien == IS_SLIME)
|
||||
chem_effective = 0.75
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(0, 110 * removed) //Not as potent as Kelotane, but lasts LONG.
|
||||
M.heal_organ_damage(8 * removed * chem_effective, 0)
|
||||
|
||||
@@ -2253,4 +2253,4 @@
|
||||
id = "biomass"
|
||||
result = "biomass"
|
||||
required_reagents = list("protein" = 1, "sugar" = 1, "phoron" = 1)
|
||||
result_amount = 6 // Roughly 120u per phoron sheet //VOREStation Edit
|
||||
result_amount = 6 // Roughly 120u per phoron sheet //VOREStation Edit
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/kitsuneudon
|
||||
name = "kitsune udon"
|
||||
desc = "A purported favorite of kitsunes in ancient japanese myth: udon noodles, friend egg, and tofu."
|
||||
desc = "A purported favorite of kitsunes in ancient japanese myth: udon noodles, fried egg, and tofu."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "kitsuneudon"
|
||||
trash = /obj/item/trash/snack_bowl
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
if(H.a_intent != I_HELP)
|
||||
to_chat(user, "<span class='notice'>[H] is resisting your attempt to inject them with \the [src].</span>")
|
||||
to_chat(H, "<span class='danger'> [user] is trying to inject you with \the [src]!</span>")
|
||||
if(!do_after(user, 30))
|
||||
if(!do_after(user, 30, H))
|
||||
return
|
||||
|
||||
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)
|
||||
|
||||
@@ -333,8 +333,8 @@
|
||||
/obj/item/weapon/reagent_containers/syringe/inaprovaline/New()
|
||||
..()
|
||||
reagents.add_reagent("inaprovaline", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
//mode = SYRINGE_INJECT //VOREStation Edit - Starts capped
|
||||
//update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin
|
||||
name = "Syringe (anti-toxin)"
|
||||
@@ -343,8 +343,8 @@
|
||||
/obj/item/weapon/reagent_containers/syringe/antitoxin/New()
|
||||
..()
|
||||
reagents.add_reagent("anti_toxin", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
//mode = SYRINGE_INJECT //VOREStation Edit - Starts capped
|
||||
//update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/antiviral
|
||||
name = "Syringe (spaceacillin)"
|
||||
@@ -353,8 +353,8 @@
|
||||
/obj/item/weapon/reagent_containers/syringe/antiviral/New()
|
||||
..()
|
||||
reagents.add_reagent("spaceacillin", 15)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
//mode = SYRINGE_INJECT //VOREStation Edit - Starts capped
|
||||
//update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/drugs
|
||||
name = "Syringe (drugs)"
|
||||
@@ -365,8 +365,8 @@
|
||||
reagents.add_reagent("space_drugs", 5)
|
||||
reagents.add_reagent("mindbreaker", 5)
|
||||
reagents.add_reagent("cryptobiolin", 5)
|
||||
mode = SYRINGE_INJECT
|
||||
update_icon()
|
||||
//mode = SYRINGE_INJECT //VOREStation Edit - Starts capped
|
||||
//update_icon()
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/ld50_syringe/choral/New()
|
||||
..()
|
||||
|
||||
@@ -43,7 +43,11 @@
|
||||
|
||||
//Dirtiness should be very low if you're the first injectee. If you're spam-injecting 4 people in a row around you though,
|
||||
//This gives the last one a 30% chance of infection.
|
||||
if(prob(dirtiness+(targets.len-1)*10))
|
||||
var/infect_chance = dirtiness //Start with dirtiness
|
||||
if(infect_chance <= 10 && (hash in targets)) //Extra fast uses on target is free
|
||||
infect_chance = 0
|
||||
infect_chance += (targets.len-1)*10 //Extra 10% per extra target
|
||||
if(prob(infect_chance))
|
||||
log_and_message_admins("[loc] infected [target]'s [eo.name] with \the [src].")
|
||||
infect_limb(eo)
|
||||
|
||||
|
||||
@@ -47,9 +47,10 @@
|
||||
|
||||
/datum/design/item/weapon/smg
|
||||
id = "smg"
|
||||
desc = "An compact reliable SMG firing armor piercing ammo."
|
||||
req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 8000, "silver" = 2000, "diamond" = 1000)
|
||||
build_path = /obj/item/weapon/gun/projectile/automatic
|
||||
build_path = /obj/item/weapon/gun/projectile/automatic/saber
|
||||
sort_string = "TAABA"
|
||||
|
||||
/datum/design/item/weapon/ammo_9mm
|
||||
|
||||
@@ -92,13 +92,22 @@
|
||||
build_path = /obj/item/device/nif
|
||||
sort_string = "HABBC"
|
||||
|
||||
/datum/design/item/nifbio
|
||||
name = "bioadaptive NIF"
|
||||
id = "bioadapnif"
|
||||
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5, TECH_BIO = 5)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 15000, "uranium" = 10000, "diamond" = 10000)
|
||||
build_path = /obj/item/device/nif/bioadap
|
||||
sort_string = "HABBD" //Changed String from HABBE to HABBD
|
||||
//Addiing bioadaptive NIF to Protolathe
|
||||
|
||||
/datum/design/item/nifrepairtool
|
||||
name = "adv. NIF repair tool"
|
||||
id = "anrt"
|
||||
req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 200, "glass" = 3000, "uranium" = 2000, "diamond" = 2000)
|
||||
build_path = /obj/item/device/nifrepairer
|
||||
sort_string = "HABBD"
|
||||
sort_string = "HABBE" //Changed String from HABBD to HABBE
|
||||
|
||||
// Resleeving Circuitboards
|
||||
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
name = "grower pod"
|
||||
circuit = /obj/item/weapon/circuitboard/transhuman_clonepod
|
||||
|
||||
//A full version of the pod
|
||||
/obj/machinery/clonepod/transhuman/full/initialize()
|
||||
. = ..()
|
||||
for(var/i = 1 to container_limit)
|
||||
containers += new /obj/item/weapon/reagent_containers/glass/bottle/biomass(src)
|
||||
|
||||
/obj/machinery/clonepod/transhuman/growclone(var/datum/transhuman/body_record/current_project)
|
||||
//Manage machine-specific stuff.
|
||||
if(mess || attempting)
|
||||
|
||||
@@ -219,6 +219,13 @@
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/smallbear
|
||||
name = "small bear"
|
||||
desc = ""
|
||||
icon_state = "smallbear"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/squirrelhc
|
||||
name = "squirrel, colorable"
|
||||
desc = ""
|
||||
@@ -256,6 +263,28 @@
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "antlers_mark"
|
||||
|
||||
/datum/sprite_accessory/ears/smallantlers
|
||||
name = "small antlers"
|
||||
desc = ""
|
||||
icon_state = "smallantlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/smallantlers_e
|
||||
name = "small antlers with ears"
|
||||
desc = ""
|
||||
icon_state = "smallantlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "deer"
|
||||
|
||||
/datum/sprite_accessory/ears/deer
|
||||
name = "deer ears"
|
||||
desc = ""
|
||||
icon_state = "deer"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/cow
|
||||
name = "cow, horns"
|
||||
desc = ""
|
||||
@@ -275,6 +304,13 @@
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/caprahorns
|
||||
name = "caprine horns"
|
||||
desc = ""
|
||||
icon_state = "caprahorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/otie
|
||||
name = "otie, colorable"
|
||||
desc = ""
|
||||
@@ -304,6 +340,13 @@
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/drake
|
||||
name = "drake frills"
|
||||
desc = ""
|
||||
icon_state = "drake"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/vulp
|
||||
name = "vulpkanin, dual-color"
|
||||
desc = ""
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
if(isitem(A) && !did_an_item)
|
||||
var/obj/item/I = A
|
||||
if(mode_flags & DM_FLAG_ITEMWEAK)
|
||||
I.gurgle_contaminate(contents, cont_flavor)
|
||||
I.gurgle_contaminate(src, cont_flavor)
|
||||
items_preserved |= I
|
||||
to_update = TRUE
|
||||
else
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
/mob/living
|
||||
var/digestable = 1 // Can the mob be digested inside a belly?
|
||||
var/allowmobvore = 1 // Will simplemobs attempt to eat the mob?
|
||||
var/showvoreprefs = 1 // Determines if the mechanical vore preferences button will be displayed on the mob or not.
|
||||
var/obj/belly/vore_selected // Default to no vore capability.
|
||||
var/list/vore_organs = list() // List of vore containers inside a mob
|
||||
var/absorbed = 0 // If a mob is absorbed into another
|
||||
@@ -612,7 +613,8 @@
|
||||
|
||||
/mob/living/examine(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "<span class='deptradio'><a href='?src=\ref[src];vore_prefs=1'>\[Mechanical Vore Preferences\]</a></span>")
|
||||
if(showvoreprefs)
|
||||
to_chat(user, "<span class='deptradio'><a href='?src=\ref[src];vore_prefs=1'>\[Mechanical Vore Preferences\]</a></span>")
|
||||
|
||||
/mob/living/Topic(href, href_list) //Can't find any instances of Topic() being overridden by /mob/living in polaris' base code, even though /mob/living/carbon/human's Topic() has a ..() call
|
||||
if(href_list["vore_prefs"])
|
||||
|
||||
@@ -149,9 +149,14 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
return 0
|
||||
|
||||
//Write it out
|
||||
#ifdef RUST_G
|
||||
call(RUST_G, "file_write")(json_to_file, path)
|
||||
#else
|
||||
// Fall back to using old format if we are not using rust-g
|
||||
if(fexists(path))
|
||||
fdel(path) //Byond only supports APPENDING to files, not replacing.
|
||||
text2file(json_to_file,path)
|
||||
text2file(json_to_file, path)
|
||||
#endif
|
||||
if(!fexists(path))
|
||||
log_debug("Saving: [path] failed file write")
|
||||
return 0
|
||||
|
||||
@@ -100,10 +100,10 @@
|
||||
new /obj/item/clothing/suit/storage/fluff/modernfedcoat(src)
|
||||
new /obj/item/clothing/head/caphat/formal/fedcover(src)
|
||||
new /obj/item/weapon/card/id/centcom/station/fluff/joanbadge(src)
|
||||
new /obj/item/weapon/gun/energy/gun/fluff/dominator(src)
|
||||
// new /obj/item/weapon/gun/energy/gun/fluff/dominator(src)
|
||||
new /obj/item/clothing/suit/armor/det_suit(src)
|
||||
new /obj/item/clothing/accessory/permit/gun/fluff/joanrisu(src)
|
||||
new /obj/item/weapon/sword/fluff/joanaria(src)
|
||||
// new /obj/item/clothing/accessory/permit/gun/fluff/joanrisu(src)
|
||||
// new /obj/item/weapon/sword/fluff/joanaria(src)
|
||||
new /obj/item/weapon/flame/lighter/zippo/fluff/joan(src)
|
||||
new /obj/item/clothing/under/rank/internalaffairs/fluff/joan(src)
|
||||
new /obj/item/clothing/head/helmet/space/fluff/joan(src)
|
||||
@@ -121,13 +121,10 @@
|
||||
..()
|
||||
new /obj/item/clothing/accessory/holster/hip(src)
|
||||
new /obj/item/clothing/suit/storage/fluff/fedcoat(src)
|
||||
new /obj/item/weapon/gun/energy/gun/fluff/dominator(src)
|
||||
// new /obj/item/weapon/gun/energy/gun/fluff/dominator(src)
|
||||
new /obj/item/clothing/suit/armor/det_suit(src)
|
||||
new /obj/item/clothing/accessory/storage/black_vest(src)
|
||||
new /obj/item/weapon/material/knife/tacknife/combatknife/fluff/katarina(src)
|
||||
new /obj/item/weapon/material/knife/tacknife/combatknife/fluff/katarina(src)
|
||||
new /obj/item/weapon/material/knife/tacknife/combatknife/fluff/katarina(src)
|
||||
new /obj/item/weapon/material/knife/tacknife/combatknife/fluff/katarina(src)
|
||||
new /obj/item/clothing/under/rank/internalaffairs/fluff/joan(src)
|
||||
|
||||
//drakefrostpaw:Drake Frostpaw
|
||||
@@ -172,7 +169,7 @@
|
||||
can_hold = list(/obj/item/clothing/under/swimsuit/)
|
||||
has_items = list(/obj/item/clothing/under/swimsuit/fluff/penelope)
|
||||
|
||||
//Aerowing:Sebastian Aji
|
||||
// Aerowing:Sebastian Aji
|
||||
/obj/item/weapon/storage/box/fluff/sebastian_aji
|
||||
name = "Sebastian's Lumoco Arms P3 Box"
|
||||
has_items = list(
|
||||
@@ -181,18 +178,22 @@
|
||||
/obj/item/ammo_magazine/m9mm/compact/flash,
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/sebastian_aji)
|
||||
|
||||
/*
|
||||
/obj/item/weapon/storage/box/fluff/briana_moore
|
||||
name = "Briana's Derringer Box"
|
||||
has_items = list(
|
||||
/obj/item/weapon/gun/projectile/derringer/fluff/briana,
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/briana_moore)
|
||||
*/
|
||||
|
||||
/*
|
||||
//SilencedMP5A5:Serdykov Antoz
|
||||
/obj/item/weapon/storage/box/fluff/serdykov_antoz
|
||||
name = "Serdy's Weapon Box"
|
||||
has_items = list(
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/silencedmp5a5,
|
||||
/obj/item/weapon/gun/projectile/colt/fluff/serdy)
|
||||
*/
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram //Made a box because they have so many items that it'd spam the debug log.
|
||||
/obj/item/weapon/storage/box/fluff/kilano
|
||||
|
||||
@@ -1006,6 +1006,34 @@
|
||||
override = 1
|
||||
item_state = "tesh_cloak_saroth"
|
||||
|
||||
/obj/item/clothing/accessory/poncho/cloak/fluff/Jaree
|
||||
name = "plain cloak"
|
||||
desc = "A plain cloak to be worn for warmth or comfort. Looks cozy."
|
||||
icon = 'icons/vore/custom_clothes_yw.dmi'
|
||||
icon_state = "jaree_cloak"
|
||||
icon_override = 'icons/vore/custom_onmob_yw.dmi'
|
||||
item_state = "jaree_cloak"
|
||||
override = 1
|
||||
|
||||
/obj/item/clothing/head/ushanka/alt/fluff/Jaree
|
||||
name = "ushanka"
|
||||
desc = "Perfect for winter in Siberia, da?"
|
||||
icon_state = "ushanka2down"
|
||||
icon = 'icons/vore/custom_clothes_yw.dmi'
|
||||
icon_override = 'icons/vore/custom_onmob_yw.dmi'
|
||||
item_state = "ushanka2down"
|
||||
flags_inv = HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/ushanka/alt/fluff/Jaree/attack_self(mob/user as mob)
|
||||
if(src.icon_state == "ushanka2down")
|
||||
src.icon_state = "ushanka2up"
|
||||
src.item_state = "ushanka2up"
|
||||
user << "You raise the ear flaps on the ushanka."
|
||||
else
|
||||
src.icon_state = "ushanka2down"
|
||||
src.item_state = "ushanka2down"
|
||||
user << "You lower the ear flaps on the ushanka."
|
||||
|
||||
// ******
|
||||
// Benl8561
|
||||
// ******
|
||||
|
||||
@@ -541,6 +541,7 @@
|
||||
|
||||
/obj/item/projectile/beam/imperial
|
||||
name = "laser beam"
|
||||
fire_sound = 'sound/weapons/mandalorian.ogg'
|
||||
icon_state = "darkb"
|
||||
light_color = "#8837A3"
|
||||
muzzle_type = /obj/effect/projectile/darkmatter/muzzle
|
||||
|
||||
@@ -459,4 +459,12 @@
|
||||
icon_state = "modkit"
|
||||
|
||||
from_suit = /obj/item/clothing/head/helmet
|
||||
to_suit = /obj/item/clothing/head/helmet/fluff/skinner
|
||||
to_suit = /obj/item/clothing/head/helmet/fluff/skinner
|
||||
|
||||
// **************
|
||||
// DeepIndigo
|
||||
// **************
|
||||
|
||||
/obj/item/weapon/storage/bible/fluff/amina
|
||||
name = "New Space Pioneer's Bible"
|
||||
desc = "This one says it was printed in 2492. The name \"Eric Hayvers\" is written on the inside of the cover, crossed out. Under it is written \"Kouri, Amina, Marine Unit 14, Fifth Echelon. Service number NTN-5528928522372\""
|
||||
@@ -11,50 +11,57 @@
|
||||
name = "Sebastian Aji's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on April 17th, 2563."
|
||||
|
||||
// arokha:Aronai Kadigan
|
||||
|
||||
/* arokha:Aronai Kadigan
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/aronai_kadigan
|
||||
name = "Aronai Kadigan's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on February 16th, 2562."
|
||||
*/
|
||||
|
||||
// bwoincognito:Tasald Corlethian
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/tasald_corlethian
|
||||
name = "Tasald Ajax Corlethian's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on August 2nd, 2562."
|
||||
|
||||
// dhaeleena:Dhaeleena M'iar
|
||||
/* dhaeleena:Dhaeleena M'iar
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/dhaeleena_miar
|
||||
name = "Dhaeleena M'iar's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm that uses less-than-lethal munitions. It is issued by CentCom, so it is valid until it expires on March 1st, 2562."
|
||||
*/
|
||||
|
||||
// jertheace:Jeremiah 'Ace' Acacius
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/ace
|
||||
name = "Ace's Shotgun Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a firearm. It is issued by CentCom, so it is valid until it expires on October 1st, 2562."
|
||||
|
||||
// joanrisu:Joan Risu
|
||||
/* joanrisu:Joan Risu
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/joanrisu
|
||||
name = "Joan Risu's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on April 4th, 2562."
|
||||
*/
|
||||
|
||||
// luminescent_ring:Briana Moore
|
||||
/* luminescent_ring:Briana Moore
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/briana_moore
|
||||
name = "Briana Moore's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on April 24th, 2562."
|
||||
*/
|
||||
|
||||
// silenedmp5a5:Serdykov Antoz
|
||||
/* silenedmp5a5:Serdykov Antoz
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/silencedmp5a5
|
||||
name = "Serdykov Antoz's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm that uses less-than-lethal munitions. It is issued by CentCom, so it is valid until it expires on April 24th, 2562."
|
||||
*/
|
||||
|
||||
// pawoverlord:Sorrel Cavalet
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/sorrel_cavalet
|
||||
name = "Sorrel Cavalet's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on September 26th, 2562."
|
||||
|
||||
// hzdonut:Jesse Soemmer
|
||||
/* hzdonut:Jesse Soemmer
|
||||
/obj/item/clothing/accessory/permit/gun/fluff/JesseSoemmer
|
||||
name = "Jesse Soemmer's Sidearm Permit"
|
||||
desc = "A card indicating that the owner is allowed to carry a sidearm. It is issued by CentCom, so it is valid until it expires on March 4, 2563."
|
||||
*/
|
||||
|
||||
/* Legacy Permits
|
||||
// BEGIN - PROTOTYPE
|
||||
|
||||
@@ -162,6 +162,24 @@ ckey: dushka
|
||||
character_name: Saroth
|
||||
item_path: /obj/item/weapon/storage/box/fluff/saroth
|
||||
}
|
||||
|
||||
{
|
||||
ckey: dushka
|
||||
character_name: Jaree-Kur
|
||||
item_path: /obj/item/clothing/accessory/poncho/cloak/fluff/Jaree
|
||||
}
|
||||
|
||||
{
|
||||
ckey: dushka
|
||||
character_name: Jaree-Kur
|
||||
item_path: /obj/item/clothing/head/ushanka/alt/fluff/Jaree
|
||||
}
|
||||
|
||||
{
|
||||
ckey: deepindigo
|
||||
character_name: Amina Dae-Kouri
|
||||
item_path: /obj/item/weapon/storage/bible/fluff/amina
|
||||
}
|
||||
# ######## E CKEYS
|
||||
{
|
||||
ckey: esperkin
|
||||
|
||||
@@ -53,6 +53,20 @@
|
||||
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
<h2 class="date">21 June 2018</h2>
|
||||
<h3 class="author">Anewbe updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Added a biomass reagent, made from protein, sugar, and phoron.</li>
|
||||
<li class="tweak">Cloners and bioprinters now use the biomass reagent. Both can be refilled or have their capacity increased by replacing the bottles they spawn with.</li>
|
||||
<li class="experiment">Mapped in a bioprinter, for further testing.</li>
|
||||
<li class="rscadd">Adds the ability to make robolimb brands more or less vulnerable to brute or burn.</li>
|
||||
<li class="rscdel">Makes VeyMed limbs more vulnerable to brute and burn.</li>
|
||||
</ul>
|
||||
<h3 class="author">Mechoid updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Allow AIs to create and take control of mindless drones from fabricators.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">08 June 2018</h2>
|
||||
<h3 class="author">Anewbe updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
+11
-4145
File diff suppressed because it is too large
Load Diff
+1
-2
@@ -33,5 +33,4 @@ delete-after: True
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Adds the ability to make robolimb brands more or less vulnerable to brute or burn."
|
||||
- rscdel: "Makes VeyMed limbs more vulnerable to brute and burn."
|
||||
- bugfix: "Technomancer Apportation now properly checks for range and scepter, again."
|
||||
@@ -1,38 +0,0 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: Anewbe
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Added a biomass reagent, made from protein, sugar, and phoron."
|
||||
- tweak: "Cloners and bioprinters now use the biomass reagent. Both can be refilled or have their capacity increased by replacing the bottles they spawn with."
|
||||
- experiment: "Mapped in a bioprinter, for further testing."
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
author: Mechoid
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "Allow AIs to create and take control of mindless drones from fabricators."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user