Merge remote-tracking branch 'citadel/master' into combat_rework
This commit is contained in:
@@ -251,5 +251,41 @@ GLOBAL_LIST_INIT(bitfields, list(
|
||||
"COMBAT_FLAG_SOFT_STAMCRIT" = COMBAT_FLAG_SOFT_STAMCRIT,
|
||||
"COMBAT_FLAG_INTENTIONALLY_RESTING" = COMBAT_FLAG_INTENTIONALLY_RESTING,
|
||||
"COMBAT_FLAG_RESISTING_REST" = COMBAT_FLAG_RESISTING_REST
|
||||
),
|
||||
"shield_flags" = list(
|
||||
"SHIELD_TRANSPARENT" = SHIELD_TRANSPARENT,
|
||||
"SHIELD_CAN_BASH" = SHIELD_CAN_BASH,
|
||||
"SHIELD_BASH_WALL_KNOCKDOWN" = SHIELD_BASH_WALL_KNOCKDOWN,
|
||||
"SHIELD_BASH_ALWAYS_KNOCKDOWN" = SHIELD_BASH_ALWAYS_KNOCKDOWN,
|
||||
"SHIELD_BASH_WALL_DISARM" = SHIELD_BASH_WALL_DISARM,
|
||||
"SHIELD_BASH_ALWAYS_DISARM" = SHIELD_BASH_ALWAYS_DISARM,
|
||||
"SHIELD_BASH_GROUND_SLAM" = SHIELD_BASH_GROUND_SLAM,
|
||||
"SHIELD_BASH_GROUND_SLAM_DISARM" = SHIELD_BASH_GROUND_SLAM_DISARM
|
||||
),
|
||||
"storage_flags" = list(
|
||||
"STORAGE_LIMIT_MAX_ITEMS" = STORAGE_LIMIT_MAX_ITEMS,
|
||||
"STORAGE_LIMIT_MAX_W_CLASS" = STORAGE_LIMIT_MAX_W_CLASS,
|
||||
"STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS,
|
||||
"STORAGE_LIMIT_VOLUME" = STORAGE_LIMIT_VOLUME
|
||||
),
|
||||
"mutantrace_variation" = list(
|
||||
"STYLE_DIGITIGRADE" = STYLE_DIGITIGRADE,
|
||||
"STYLE_MUZZLE" = STYLE_MUZZLE,
|
||||
"STYLE_SNEK_TAURIC" = STYLE_SNEK_TAURIC,
|
||||
"STYLE_PAW_TAURIC" = STYLE_PAW_TAURIC,
|
||||
"STYLE_HOOF_TAURIC" = STYLE_HOOF_TAURIC,
|
||||
"STYLE_NO_ANTHRO_ICON" = STYLE_NO_ANTHRO_ICON,
|
||||
"USE_SNEK_CLIP_MASK" = USE_SNEK_CLIP_MASK,
|
||||
"USE_QUADRUPED_CLIP_MASK" = USE_QUADRUPED_CLIP_MASK
|
||||
),
|
||||
"vis_flags" = list(
|
||||
"VIS_INHERIT_ICON" = VIS_INHERIT_ICON,
|
||||
"VIS_INHERIT_ICON_STATE" = VIS_INHERIT_ICON_STATE,
|
||||
"VIS_INHERIT_DIR" = VIS_INHERIT_DIR,
|
||||
"VIS_INHERIT_LAYER" = VIS_INHERIT_LAYER,
|
||||
"VIS_INHERIT_PLANE" = VIS_INHERIT_PLANE,
|
||||
"VIS_INHERIT_ID" = VIS_INHERIT_ID,
|
||||
"VIS_UNDERLAY" = VIS_UNDERLAY,
|
||||
"VIS_HIDE" = VIS_HIDE
|
||||
)
|
||||
))
|
||||
|
||||
@@ -137,8 +137,8 @@ GLOBAL_LIST_INIT(jumpsuitlist, list(PREF_SUIT, PREF_SKIRT))
|
||||
#define UPLINK_PEN "Pen" //like a real spy!
|
||||
GLOBAL_LIST_INIT(uplink_spawn_loc_list, list(UPLINK_PDA, UPLINK_RADIO, UPLINK_PEN))
|
||||
|
||||
//Female Uniforms
|
||||
GLOBAL_LIST_EMPTY(female_clothing_icons)
|
||||
//List of cached alpha masked icons.
|
||||
GLOBAL_LIST_EMPTY(alpha_masked_worn_icons)
|
||||
|
||||
//radical shit
|
||||
GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF"))
|
||||
|
||||
@@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/clothing/head/that = 1,
|
||||
/obj/item/clothing/head/ushanka = 1,
|
||||
/obj/item/clothing/head/welding = 1,
|
||||
/obj/item/clothing/mask/gas = 15,
|
||||
/obj/effect/spawner/lootdrop/breathing_masks = 15,
|
||||
/obj/item/clothing/suit/hazardvest = 1,
|
||||
/obj/item/clothing/under/misc/vice_officer = 1,
|
||||
/obj/item/clothing/suit/hooded/flashsuit = 2,
|
||||
@@ -86,9 +86,8 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/screwdriver = 3,
|
||||
/obj/item/tank/internals/emergency_oxygen = 2,
|
||||
/obj/item/vending_refill/cola = 1,
|
||||
/obj/item/weldingtool = 3,
|
||||
/obj/item/wirecutters = 1,
|
||||
/obj/item/wrench = 4,
|
||||
/obj/effect/spawner/lootdrop/welder_tools = 3,
|
||||
/obj/effect/spawner/lootdrop/low_tools = 5,
|
||||
/obj/item/relic = 3,
|
||||
/obj/item/weaponcrafting/receiver = 2,
|
||||
/obj/item/clothing/head/cone = 2,
|
||||
@@ -116,5 +115,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/autosurgeon/penis = 1,
|
||||
/obj/item/autosurgeon/testicles = 1,
|
||||
/obj/item/storage/box/marshmallow = 2,
|
||||
/obj/item/clothing/gloves/tackler/offbrand = 1,
|
||||
"" = 3
|
||||
))
|
||||
|
||||
@@ -50,3 +50,8 @@ GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area)
|
||||
GLOBAL_LIST_EMPTY(all_abstract_markers)
|
||||
|
||||
GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms
|
||||
|
||||
///Away missions, VR, random z levels stuff.
|
||||
GLOBAL_LIST_EMPTY(random_zlevels_generated)
|
||||
GLOBAL_LIST_INIT(potential_away_levels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt"))
|
||||
GLOBAL_LIST_INIT(potential_vr_levels, generateMapList(filename = "[global.config.directory]/vr_config.txt"))
|
||||
|
||||
@@ -43,15 +43,26 @@ GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup)
|
||||
GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes.
|
||||
|
||||
/proc/update_config_movespeed_type_lookup(update_mobs = TRUE)
|
||||
var/list/mob_types = list()
|
||||
// NOTE: This is entirely based on the fact that byond typesof/subtypesof gets longer/deeper paths before shallower ones.
|
||||
// If that ever breaks this entire proc breaks.
|
||||
var/list/mob_types = typesof(/mob)
|
||||
var/list/entry_value = CONFIG_GET(keyed_list/multiplicative_movespeed)
|
||||
var/list/configured_types = list()
|
||||
for(var/path in entry_value)
|
||||
var/value = entry_value[path]
|
||||
if(!value)
|
||||
if(isnull(value))
|
||||
continue
|
||||
// associative list sets for elements that already exist preserve order
|
||||
mob_types[path] = value
|
||||
// now go back up through it to set everything, making absolute sure that base paths are overridden by child paths all the way down the path tree.
|
||||
for(var/i in length(mob_types) to 1 step -1)
|
||||
var/path = mob_types[i]
|
||||
if(isnull(mob_types[path]))
|
||||
continue
|
||||
// we're going from bottom to top so it should be safe to do this without further checks..
|
||||
for(var/subpath in typesof(path))
|
||||
mob_types[subpath] = value
|
||||
GLOB.mob_config_movespeed_type_lookup = mob_types
|
||||
configured_types[subpath] = mob_types[path]
|
||||
GLOB.mob_config_movespeed_type_lookup = configured_types
|
||||
if(update_mobs)
|
||||
update_mob_config_movespeeds()
|
||||
|
||||
|
||||
@@ -33,3 +33,5 @@ GLOBAL_VAR(bible_icon_state)
|
||||
GLOBAL_VAR(bible_item_state)
|
||||
GLOBAL_VAR(holy_weapon_type)
|
||||
GLOBAL_VAR(holy_armor_type)
|
||||
|
||||
GLOBAL_VAR_INIT(internal_tick_usage, 0.2 * world.tick_lag)
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
FUN ZONE OF ADMIN LISTINGS
|
||||
Try to keep this in sync with __DEFINES/traits.dm
|
||||
quirks have it's own panel so we don't need them here.
|
||||
*/
|
||||
|
||||
GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
/mob = list(
|
||||
"TRAIT_BLIND" = TRAIT_BLIND,
|
||||
"TRAIT_MUTE" = TRAIT_MUTE,
|
||||
"TRAIT_EMOTEMUTE " = TRAIT_EMOTEMUTE,
|
||||
"TRAIT_DEAF" = TRAIT_DEAF,
|
||||
"TRAIT_NEARSIGHT" = TRAIT_NEARSIGHT,
|
||||
"TRAIT_FAT" = TRAIT_FAT,
|
||||
"TRAIT_HUSK" = TRAIT_HUSK,
|
||||
"TRAIT_NOCLONE" = TRAIT_NOCLONE,
|
||||
"TRAIT_CLUMSY" = TRAIT_CLUMSY,
|
||||
"TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS,
|
||||
"TRAIT_DUMB" = TRAIT_DUMB,
|
||||
"TRAIT_MONKEYLIKE" = TRAIT_MONKEYLIKE,
|
||||
"TRAIT_PACIFISM" = TRAIT_PACIFISM,
|
||||
"TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN,
|
||||
"TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA,
|
||||
"TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH,
|
||||
"TRAIT_DISFIGURED" = TRAIT_DISFIGURED,
|
||||
"TRAIT_XENO_HOST" = TRAIT_XENO_HOST,
|
||||
"TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE,
|
||||
"TRAIT_TASED_RESISTANCE" = TRAIT_TASED_RESISTANCE,
|
||||
"TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE,
|
||||
"TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE,
|
||||
"TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
|
||||
"TRAIT_STABLEHEART" = TRAIT_STABLEHEART,
|
||||
"TRAIT_STABLELIVER" = TRAIT_STABLELIVER,
|
||||
"TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT,
|
||||
"TRAIT_RESISTHEATHANDS" = TRAIT_RESISTHEATHANDS,
|
||||
"TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD,
|
||||
"TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
|
||||
"TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
|
||||
"TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
|
||||
"TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
|
||||
"TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
|
||||
"TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER,
|
||||
"TRAIT_NOFIRE" = TRAIT_NOFIRE,
|
||||
"TRAIT_NOGUNS" = TRAIT_NOGUNS,
|
||||
"TRAIT_NOHUNGER" = TRAIT_NOHUNGER,
|
||||
"TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
|
||||
"TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT,
|
||||
"TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE,
|
||||
"TRAIT_EASYLIMBDISABLE" = TRAIT_EASYLIMBDISABLE,
|
||||
"TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER,
|
||||
"TRAIT_NOBREATH" = TRAIT_NOBREATH,
|
||||
"TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC,
|
||||
"TRAIT_HOLY" = TRAIT_HOLY,
|
||||
"TRAIT_DEPRESSION" = TRAIT_DEPRESSION,
|
||||
"TRAIT_JOLLY" = TRAIT_JOLLY,
|
||||
"TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE,
|
||||
"TRAIT_NOSLIPWATER" = TRAIT_NOSLIPWATER,
|
||||
"TRAIT_NOSLIPALL" = TRAIT_NOSLIPALL,
|
||||
"TRAIT_NODEATH" = TRAIT_NODEATH,
|
||||
"TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT,
|
||||
"TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT,
|
||||
"TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD,
|
||||
"TRAIT_HIJACKER" = TRAIT_HIJACKER,
|
||||
"TRAIT_DISSECTED" = TRAIT_DISSECTED,
|
||||
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
|
||||
"TRAIT_FEARLESS" = TRAIT_FEARLESS,
|
||||
"TRAIT_PARALYSIS_L_ARM" = TRAIT_PARALYSIS_L_ARM,
|
||||
"TRAIT_PARALYSIS_R_ARM" = TRAIT_PARALYSIS_R_ARM,
|
||||
"TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG,
|
||||
"TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG,
|
||||
"TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER,
|
||||
"TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
|
||||
"TRAIT_THERMAL_VISION" = TRAIT_THERMAL_VISION,
|
||||
"TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING,
|
||||
"TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING,
|
||||
"TRAIT_SURGEON" = TRAIT_SURGEON,
|
||||
"TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER,
|
||||
"TRAIT_MAGIC_CHOKE" = TRAIT_MAGIC_CHOKE,
|
||||
"TRAIT_SOOTHED_THROAT" = TRAIT_SOOTHED_THROAT,
|
||||
"TRAIT_LAW_ENFORCEMENT_METABOLISM" = TRAIT_LAW_ENFORCEMENT_METABOLISM,
|
||||
"TRAIT_UNINTELLIGIBLE_SPEECH" = TRAIT_UNINTELLIGIBLE_SPEECH,
|
||||
"TRAIT_UNSTABLE" = TRAIT_UNSTABLE,
|
||||
"TRAIT_COLDBLOODED" = TRAIT_COLDBLOODED,
|
||||
"TRAIT_NONATURALHEAL" = TRAIT_NONATURALHEAL,
|
||||
"TRAIT_NORUNNING" = TRAIT_NORUNNING,
|
||||
"TRAIT_NOMARROW" = TRAIT_NOMARROW,
|
||||
"TRAIT_NOPULSE" = TRAIT_NOPULSE,
|
||||
"TRAIT_EXEMPT_HEALTH_EVENTS" = TRAIT_EXEMPT_HEALTH_EVENTS,
|
||||
"TRAIT_NO_MIDROUND_ANTAG" = TRAIT_NO_MIDROUND_ANTAG,
|
||||
"TRAIT_PUGILIST" = TRAIT_PUGILIST,
|
||||
"TRAIT_KI_VAMPIRE" = TRAIT_KI_VAMPIRE,
|
||||
"TRAIT_PASSTABLE" = TRAIT_PASSTABLE,
|
||||
"TRAIT_GIANT" = TRAIT_GIANT,
|
||||
"TRAIT_DWARF" = TRAIT_DWARF,
|
||||
"TRAIT_COMBAT_MODE_LOCKED" = TRAIT_COMBAT_MODE_LOCKED,
|
||||
"TRAIT_SPRINT_LOCKED" = TRAIT_SPRINT_LOCKED,
|
||||
"TRAIT_AUTO_CATCH_ITEM" = TRAIT_AUTO_CATCH_ITEM,
|
||||
"TRAIT_FREESPRINT" = TRAIT_FREESPRINT,
|
||||
"TRAIT_NO_INTERNALS" = TRAIT_NO_INTERNALS,
|
||||
"TRAIT_NO_ALCOHOL" = TRAIT_NO_ALCOHOL,
|
||||
"TRAIT_MUTATION_STASIS" = TRAIT_MUTATION_STASIS,
|
||||
"TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER,
|
||||
"TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP,
|
||||
"TRAIT_SILENT_STEP" = TRAIT_SILENT_STEP,
|
||||
"TRAIT_VORACIOUS" = TRAIT_VORACIOUS,
|
||||
"TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE,
|
||||
"TRAIT_FREERUNNING" = TRAIT_FREERUNNING,
|
||||
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
|
||||
"TRAIT_POOR_AIM" = TRAIT_POOR_AIM,
|
||||
"TRAIT_PROSOPAGNOSIA" = TRAIT_PROSOPAGNOSIA,
|
||||
"TRAIT_DRUNK_HEALING" = TRAIT_DRUNK_HEALING,
|
||||
"TRAIT_TAGGER" = TRAIT_TAGGER,
|
||||
"TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
|
||||
"TRAIT_MUSICIAN" = TRAIT_MUSICIAN,
|
||||
"TRAIT_MASO" = TRAIT_MASO,
|
||||
"TRAIT_HIGH_BLOOD" = TRAIT_HIGH_BLOOD,
|
||||
"TRAIT_EMPATH" = TRAIT_EMPATH,
|
||||
"TRAIT_FRIENDLY" = TRAIT_FRIENDLY
|
||||
),
|
||||
/obj/item/bodypart = list(
|
||||
"TRAIT_PARALYSIS" = TRAIT_PARALYSIS
|
||||
),
|
||||
/obj/item = list(
|
||||
"TRAIT_NODROP" = TRAIT_NODROP,
|
||||
"TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT
|
||||
)
|
||||
))
|
||||
|
||||
|
||||
/// value -> trait name, generated on use from trait_by_type global
|
||||
GLOBAL_LIST(trait_name_map)
|
||||
|
||||
/proc/generate_trait_name_map()
|
||||
. = list()
|
||||
for(var/key in GLOB.traits_by_type)
|
||||
for(var/tname in GLOB.traits_by_type[key])
|
||||
var/val = GLOB.traits_by_type[key][tname]
|
||||
.[val] = tname
|
||||
Reference in New Issue
Block a user