Merge branch 'master' into shep-dev-looping-alarms
3
code/__defines/mobs_ch.dm
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#define MARKING_NONDIGI_ONLY (1 << 0)
|
||||||
|
#define MARKING_DIGITIGRADE_ONLY (1 << 1)
|
||||||
|
#define MARKING_ALL_LEGS MARKING_NONDIGI_ONLY|MARKING_DIGITIGRADE_ONLY
|
||||||
@@ -4,6 +4,10 @@
|
|||||||
var/directory_tag
|
var/directory_tag
|
||||||
var/directory_erptag
|
var/directory_erptag
|
||||||
var/directory_ad
|
var/directory_ad
|
||||||
|
//CHOMPEdit additions
|
||||||
|
var/vantag_preference = VANTAG_NONE
|
||||||
|
var/directory_gendertag
|
||||||
|
var/directory_sexualitytag
|
||||||
|
|
||||||
/mob/living/mind_initialize()
|
/mob/living/mind_initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -12,3 +16,7 @@
|
|||||||
mind.directory_tag = client.prefs.directory_tag
|
mind.directory_tag = client.prefs.directory_tag
|
||||||
mind.directory_erptag = client.prefs.directory_erptag
|
mind.directory_erptag = client.prefs.directory_erptag
|
||||||
mind.directory_ad = client.prefs.directory_ad
|
mind.directory_ad = client.prefs.directory_ad
|
||||||
|
//CHOMPEdit additions
|
||||||
|
mind.vantag_preference = client.prefs.vantag_preference
|
||||||
|
mind.directory_gendertag = client.prefs.directory_gendertag
|
||||||
|
mind.directory_sexualitytag = client.prefs.directory_sexualitytag
|
||||||
|
|||||||
@@ -132,15 +132,15 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/effect/spider/eggcluster/small
|
/obj/effect/spider/eggcluster/small
|
||||||
spiders_min = 1
|
spiders_min = 2 //CHOMP Edit
|
||||||
spiders_max = 3
|
spiders_max = 6 //CHOMP Edit
|
||||||
|
|
||||||
/obj/effect/spider/eggcluster/small/frost
|
/obj/effect/spider/eggcluster/small/frost
|
||||||
spider_type = /obj/effect/spider/spiderling/frost
|
spider_type = /obj/effect/spider/spiderling/frost
|
||||||
|
|
||||||
/obj/effect/spider/eggcluster/royal
|
/obj/effect/spider/eggcluster/royal
|
||||||
spiders_min = 2
|
spiders_min = 2
|
||||||
spiders_max = 5
|
spiders_max = 6 //CHOMP Edit
|
||||||
spider_type = /obj/effect/spider/spiderling/varied
|
spider_type = /obj/effect/spider/spiderling/varied
|
||||||
|
|
||||||
/obj/effect/spider/spiderling
|
/obj/effect/spider/spiderling
|
||||||
|
|||||||
@@ -88,8 +88,18 @@
|
|||||||
|
|
||||||
/obj/item/device/taperecorder/hear_talk(mob/M, list/message_pieces, verb)
|
/obj/item/device/taperecorder/hear_talk(mob/M, list/message_pieces, verb)
|
||||||
var/msg = multilingual_to_message(message_pieces, requires_machine_understands = TRUE, with_capitalization = TRUE)
|
var/msg = multilingual_to_message(message_pieces, requires_machine_understands = TRUE, with_capitalization = TRUE)
|
||||||
|
//START OF CHOMPEDIT
|
||||||
|
var/voice = "Unknown"
|
||||||
|
if (M.type == /mob/living/carbon/human)
|
||||||
|
{
|
||||||
|
var/mob/living/carbon/human/H = M
|
||||||
|
voice = H.voice
|
||||||
|
}
|
||||||
|
else
|
||||||
|
voice = M.name
|
||||||
|
//END OF CHOMPEDIT
|
||||||
if(mytape && recording)
|
if(mytape && recording)
|
||||||
mytape.record_speech("[M.name] [verb], \"[msg]\"")
|
mytape.record_speech("[voice] [verb], \"[msg]\"") //CHOMP Edit
|
||||||
|
|
||||||
|
|
||||||
/obj/item/device/taperecorder/see_emote(mob/M as mob, text, var/emote_type)
|
/obj/item/device/taperecorder/see_emote(mob/M as mob, text, var/emote_type)
|
||||||
@@ -432,4 +442,4 @@
|
|||||||
|
|
||||||
//Random colour tapes
|
//Random colour tapes
|
||||||
/obj/item/device/tape/random/New()
|
/obj/item/device/tape/random/New()
|
||||||
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
|
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
|
||||||
|
|||||||
@@ -10,4 +10,4 @@
|
|||||||
icon_state = "wood_stairs2"
|
icon_state = "wood_stairs2"
|
||||||
|
|
||||||
/obj/effect/floor_decal/stairs/dark_stairs
|
/obj/effect/floor_decal/stairs/dark_stairs
|
||||||
icon_state = "dark_stairs"
|
icon_state = "dark_stairs"
|
||||||
|
|||||||
@@ -18,3 +18,4 @@
|
|||||||
|
|
||||||
/obj/effect/floor_decal/snow/floor/pointy
|
/obj/effect/floor_decal/snow/floor/pointy
|
||||||
icon_state = "snowfloorpointy"
|
icon_state = "snowfloorpointy"
|
||||||
|
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
data["personalVisibility"] = user.mind.show_in_directory
|
data["personalVisibility"] = user.mind.show_in_directory
|
||||||
data["personalTag"] = user.mind.directory_tag || "Unset"
|
data["personalTag"] = user.mind.directory_tag || "Unset"
|
||||||
data["personalErpTag"] = user.mind.directory_erptag || "Unset"
|
data["personalErpTag"] = user.mind.directory_erptag || "Unset"
|
||||||
data["personalEventTag"] = vantag_choices_list[user.client.prefs.vantag_preference] //CHOMPEdit
|
data["personalEventTag"] = vantag_choices_list[user.mind.vantag_preference] //CHOMPEdit
|
||||||
data["personalGenderTag"] = user.client.prefs.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update
|
data["personalGenderTag"] = user.mind.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update
|
||||||
data["personalSexualityTag"] = user.client.prefs.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update
|
data["personalSexualityTag"] = user.mind.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update
|
||||||
else if (user?.client?.prefs)
|
else if (user?.client?.prefs)
|
||||||
data["personalVisibility"] = user.client.prefs.show_in_directory
|
data["personalVisibility"] = user.client.prefs.show_in_directory
|
||||||
data["personalTag"] = user.client.prefs.directory_tag || "Unset"
|
data["personalTag"] = user.client.prefs.directory_tag || "Unset"
|
||||||
@@ -62,9 +62,9 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
var/species = null
|
var/species = null
|
||||||
var/ooc_notes = null
|
var/ooc_notes = null
|
||||||
var/flavor_text = null
|
var/flavor_text = null
|
||||||
var/gendertag = C.prefs.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update
|
var/gendertag = null // CHOMPStation Edit: Character Directory Update
|
||||||
var/sexualitytag = C.prefs.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update
|
var/sexualitytag = null // CHOMPStation Edit: Character Directory Update
|
||||||
var/eventtag = vantag_choices_list[C.prefs.vantag_preference] //CHOMPEdit
|
var/eventtag = vantag_choices_list[VANTAG_NONE] //CHOMPEdit
|
||||||
var/tag
|
var/tag
|
||||||
var/erptag
|
var/erptag
|
||||||
var/character_ad
|
var/character_ad
|
||||||
@@ -72,10 +72,16 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
tag = C.mob.mind.directory_tag || "Unset"
|
tag = C.mob.mind.directory_tag || "Unset"
|
||||||
erptag = C.mob.mind.directory_erptag || "Unset"
|
erptag = C.mob.mind.directory_erptag || "Unset"
|
||||||
character_ad = C.mob.mind.directory_ad
|
character_ad = C.mob.mind.directory_ad
|
||||||
|
gendertag = C.mob.mind.directory_gendertag || "Unset"
|
||||||
|
sexualitytag = C.mob.mind.directory_sexualitytag || "Unset"
|
||||||
|
eventtag = vantag_choices_list[C.mob.mind.vantag_preference]
|
||||||
else
|
else
|
||||||
tag = C.prefs.directory_tag || "Unset"
|
tag = C.prefs.directory_tag || "Unset"
|
||||||
erptag = C.prefs.directory_erptag || "Unset"
|
erptag = C.prefs.directory_erptag || "Unset"
|
||||||
character_ad = C.prefs.directory_ad
|
character_ad = C.prefs.directory_ad
|
||||||
|
gendertag = C.prefs.directory_gendertag || "Unset"
|
||||||
|
sexualitytag = C.prefs.directory_sexualitytag || "Unset"
|
||||||
|
eventtag = vantag_choices_list[C.prefs.vantag_preference]
|
||||||
|
|
||||||
//CHOMPEdit Start
|
//CHOMPEdit Start
|
||||||
if(ishuman(C.mob))
|
if(ishuman(C.mob))
|
||||||
@@ -176,19 +182,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
if(!new_tag)
|
if(!new_tag)
|
||||||
return
|
return
|
||||||
return set_for_mind_or_prefs(user, action, new_tag, can_set_prefs, can_set_mind)
|
return set_for_mind_or_prefs(user, action, new_tag, can_set_prefs, can_set_mind)
|
||||||
// CHOMPStation Edit Start: Directory Update
|
|
||||||
if("setGenderTag")
|
|
||||||
var/list/new_gendertag = tgui_input_list(usr, "Pick a new Gender tag for the character directory. This is YOUR gender, not what you prefer.", "Character Gender Tag", GLOB.char_directory_gendertags)
|
|
||||||
if(!new_gendertag)
|
|
||||||
return
|
|
||||||
usr?.client?.prefs?.directory_gendertag = new_gendertag
|
|
||||||
return TRUE
|
|
||||||
if("setSexualityTag")
|
|
||||||
var/list/new_sexualitytag = tgui_input_list(usr, "Pick a new Sexuality/Orientation tag for the character directory", "Character Sexuality/Orientation Tag", GLOB.char_directory_sexualitytags)
|
|
||||||
if(!new_sexualitytag)
|
|
||||||
return
|
|
||||||
usr?.client?.prefs?.directory_sexualitytag = new_sexualitytag
|
|
||||||
return TRUE
|
|
||||||
// CHOMPStation Edit End: Directory Update
|
// CHOMPStation Edit End: Directory Update
|
||||||
if("setErpTag")
|
if("setErpTag")
|
||||||
var/list/new_erptag = tgui_input_list(usr, "Pick a new ERP tag for the character directory", "Character ERP Tag", GLOB.char_directory_erptags)
|
var/list/new_erptag = tgui_input_list(usr, "Pick a new ERP tag for the character directory", "Character ERP Tag", GLOB.char_directory_erptags)
|
||||||
@@ -209,8 +202,17 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
if(isnull(new_ad))
|
if(isnull(new_ad))
|
||||||
return
|
return
|
||||||
return set_for_mind_or_prefs(user, action, new_ad, can_set_prefs, can_set_mind)
|
return set_for_mind_or_prefs(user, action, new_ad, can_set_prefs, can_set_mind)
|
||||||
//CHOMPEdit start
|
// CHOMPStation Edit Start: Directory Update
|
||||||
//CHOMPEdit begin
|
if("setGenderTag")
|
||||||
|
var/list/new_gendertag = tgui_input_list(usr, "Pick a new Gender tag for the character directory. This is YOUR gender, not what you prefer.", "Character Gender Tag", GLOB.char_directory_gendertags)
|
||||||
|
if(!new_gendertag)
|
||||||
|
return
|
||||||
|
return set_for_mind_or_prefs(user, action, new_gendertag, can_set_prefs, can_set_mind)
|
||||||
|
if("setSexualityTag")
|
||||||
|
var/list/new_sexualitytag = tgui_input_list(usr, "Pick a new Sexuality/Orientation tag for the character directory", "Character Sexuality/Orientation Tag", GLOB.char_directory_sexualitytags)
|
||||||
|
if(!new_sexualitytag)
|
||||||
|
return
|
||||||
|
return set_for_mind_or_prefs(user, action, new_sexualitytag, can_set_prefs, can_set_mind)
|
||||||
if("setEventTag")
|
if("setEventTag")
|
||||||
var/list/names_list = list()
|
var/list/names_list = list()
|
||||||
for(var/C in vantag_choices_list)
|
for(var/C in vantag_choices_list)
|
||||||
@@ -218,9 +220,8 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
var/list/new_eventtag = input(usr, "Pick your preference for event involvement", "Event Preference Tag", usr?.client?.prefs?.vantag_preference) as null|anything in names_list
|
var/list/new_eventtag = input(usr, "Pick your preference for event involvement", "Event Preference Tag", usr?.client?.prefs?.vantag_preference) as null|anything in names_list
|
||||||
if(!new_eventtag)
|
if(!new_eventtag)
|
||||||
return
|
return
|
||||||
usr?.client?.prefs?.vantag_preference = names_list[new_eventtag]
|
return set_for_mind_or_prefs(user, action, names_list[new_eventtag], can_set_prefs, can_set_mind)
|
||||||
return TRUE
|
//CHOMPEdit end
|
||||||
//CHOMPEdit end
|
|
||||||
|
|
||||||
/datum/character_directory/proc/set_for_mind_or_prefs(mob/user, action, new_value, can_set_prefs, can_set_mind)
|
/datum/character_directory/proc/set_for_mind_or_prefs(mob/user, action, new_value, can_set_prefs, can_set_mind)
|
||||||
can_set_prefs &&= !!user.client.prefs
|
can_set_prefs &&= !!user.client.prefs
|
||||||
@@ -253,3 +254,18 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
if (can_set_mind)
|
if (can_set_mind)
|
||||||
user.mind.directory_ad = new_value
|
user.mind.directory_ad = new_value
|
||||||
return TRUE
|
return TRUE
|
||||||
|
if ("setEventTag")
|
||||||
|
if (can_set_prefs)
|
||||||
|
user.client.prefs.vantag_preference = new_value
|
||||||
|
if (can_set_mind)
|
||||||
|
user.mind.vantag_preference = new_value
|
||||||
|
if ("setGenderTag")
|
||||||
|
if (can_set_prefs)
|
||||||
|
user.client.prefs.directory_gendertag = new_value
|
||||||
|
if (can_set_mind)
|
||||||
|
user.mind.directory_gendertag = new_value
|
||||||
|
if ("setSexualityTag")
|
||||||
|
if (can_set_prefs)
|
||||||
|
user.client.prefs.directory_sexualitytag = new_value
|
||||||
|
if (can_set_mind)
|
||||||
|
user.mind.directory_sexualitytag = new_value
|
||||||
@@ -46,6 +46,7 @@
|
|||||||
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
|
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Shipping Error", /datum/event/shipping_error , 30, list(ASSIGNMENT_ANY = 2), 0),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
|
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Trivial News", /datum/event/trivial_news, 400),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),
|
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lore News", /datum/event/lore_news, 400),
|
||||||
|
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1, min_jobs = list(ASSIGNMENT_CARGO = 1)),
|
||||||
// Spawns mice, lizards, or dud spiderlings
|
// Spawns mice, lizards, or dud spiderlings
|
||||||
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_JANITOR = 100), 1),
|
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_JANITOR = 100), 1),
|
||||||
// Rot only weakens walls, not destroy them
|
// Rot only weakens walls, not destroy them
|
||||||
@@ -94,6 +95,7 @@
|
|||||||
// Radiation, but only in space.
|
// Radiation, but only in space.
|
||||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 20, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 20), 1),
|
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 20, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 20), 1),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, -20, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_HOS = 20, ASSIGNMENT_WARDEN = 20), 0, min_jobs = list(ASSIGNMENT_SECURITY = 1)),
|
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, -20, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_HOS = 20, ASSIGNMENT_WARDEN = 20), 0, min_jobs = list(ASSIGNMENT_SECURITY = 1)),
|
||||||
|
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 100), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 1)),
|
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 100), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 1)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100), 1, min_jobs = list(ASSIGNMENT_SCIENTIST = 1), min_jobs = list(ASSIGNMENT_SCIENTIST = 1, ASSIGNMENT_SECURITY =1)),
|
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100), 1, min_jobs = list(ASSIGNMENT_SCIENTIST = 1), min_jobs = list(ASSIGNMENT_SCIENTIST = 1, ASSIGNMENT_SECURITY =1)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
|
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
|
||||||
@@ -116,12 +118,14 @@
|
|||||||
available_events = list(
|
available_events = list(
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 900),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 900),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 5, list(ASSIGNMENT_ENGINEER = 35), 1),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 5, list(ASSIGNMENT_ENGINEER = 35), 1),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, -100, list(ASSIGNMENT_SECURITY = 40, ASSIGNMENT_HOS = 10, ASSIGNMENT_WARDEN = 10, ASSIGNMENT_ENGINEER = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, -100, list(ASSIGNMENT_SECURITY = 40, ASSIGNMENT_HOS = 10, ASSIGNMENT_WARDEN = 10, ASSIGNMENT_ENGINEER = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 1)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, -110, list(ASSIGNMENT_SECURITY = 50, ASSIGNMENT_HOS = 10, ASSIGNMENT_WARDEN = 10), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, -110, list(ASSIGNMENT_SECURITY = 50, ASSIGNMENT_HOS = 10, ASSIGNMENT_WARDEN = 10), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, -110, list(ASSIGNMENT_ENGINEER = 50), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 3)),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, -90, list(ASSIGNMENT_ENGINEER = 50, ASSIGNMENT_MEDICAL = 10, ASSIGNMENT_ANY = 1), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Metroid Infestation", /datum/event/metroid_infestation, -105, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_SCIENCE = 20, ASSIGNMENT_HOS = 15, ASSIGNMENT_WARDEN = 15), 1 , min_jobs = list(ASSIGNMENT_SECURITY = 3, ASSIGNMENT_SCIENCE = 1)),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Metroid Infestation", /datum/event/metroid_infestation, -100, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_SCIENCE = 20, ASSIGNMENT_HOS = 15, ASSIGNMENT_WARDEN = 15, ASSIGNMENT_ANY = 2), 1 , min_jobs = list(ASSIGNMENT_SECURITY = 2, ASSIGNMENT_SCIENCE = 1)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 15), 1),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 15), 1),
|
||||||
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Spider Infestation", /datum/event/spider_infestation, -60, list(ASSIGNMENT_SECURITY = 20, ASSIGNMENT_HOS = 10, ASSIGNMENT_WARDEN = 10, ASSIGNMENT_ANY = 3), 0),
|
||||||
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1, min_jobs = list(ASSIGNMENT_CARGO = 1)),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Viral Infection", /datum/event/viral_infection, -50, list(ASSIGNMENT_MEDICAL = 25), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 2)),
|
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Viral Infection", /datum/event/viral_infection, -50, list(ASSIGNMENT_MEDICAL = 25), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 2)),
|
||||||
)
|
)
|
||||||
add_disabled_events(list(
|
add_disabled_events(list(
|
||||||
@@ -129,7 +133,6 @@
|
|||||||
//Needs Xenobio containment breach fixed
|
//Needs Xenobio containment breach fixed
|
||||||
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Xenobiology Breach", /datum/event/prison_break/xenobiology, -10, list(ASSIGNMENT_SCIENCE = 30, ASSIGNMENT_ENGINEER = 20), 1),
|
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Xenobiology Breach", /datum/event/prison_break/xenobiology, -10, list(ASSIGNMENT_SCIENCE = 30, ASSIGNMENT_ENGINEER = 20), 1),
|
||||||
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
|
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
|
||||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1, min_jobs = list(ASSIGNMENT_CARGO = 1)),
|
|
||||||
))
|
))
|
||||||
|
|
||||||
#undef ASSIGNMENT_ANY
|
#undef ASSIGNMENT_ANY
|
||||||
|
|||||||
@@ -6,9 +6,12 @@
|
|||||||
var/give_positions = 0
|
var/give_positions = 0
|
||||||
|
|
||||||
/datum/event/metroid_infestation/setup()
|
/datum/event/metroid_infestation/setup()
|
||||||
|
if(prob(50)) //50% chance of the event to even occur if procced
|
||||||
|
kill()
|
||||||
|
return
|
||||||
announceWhen = rand(announceWhen, announceWhen + 60)
|
announceWhen = rand(announceWhen, announceWhen + 60)
|
||||||
|
|
||||||
spawncount = rand(1 * severity, 2 * severity)
|
spawncount = rand(2 * severity, 4 * severity)
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
|
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
|
||||||
//CHOMPEdit: Added a couple areas to the exclusion. Also made this actually work.
|
//CHOMPEdit: Added a couple areas to the exclusion. Also made this actually work.
|
||||||
@@ -25,7 +28,15 @@
|
|||||||
/datum/event/metroid_infestation/start()
|
/datum/event/metroid_infestation/start()
|
||||||
while((spawncount >= 1) && vents.len)
|
while((spawncount >= 1) && vents.len)
|
||||||
var/obj/vent = pick(vents)
|
var/obj/vent = pick(vents)
|
||||||
new /mob/living/simple_mob/metroid/juvenile/baby(get_turf(vent))
|
var/spawn_metroids = pickweight(list(
|
||||||
|
/mob/living/simple_mob/metroid/juvenile/baby = 60,
|
||||||
|
/mob/living/simple_mob/metroid/juvenile/super = 30,
|
||||||
|
/mob/living/simple_mob/metroid/juvenile/alpha = 10,
|
||||||
|
/mob/living/simple_mob/metroid/juvenile/gamma = 3,
|
||||||
|
/mob/living/simple_mob/metroid/juvenile/zeta = 2,
|
||||||
|
/mob/living/simple_mob/metroid/juvenile/omega = 1,
|
||||||
|
))
|
||||||
|
new spawn_metroids(get_turf(vent))
|
||||||
vents -= vent
|
vents -= vent
|
||||||
spawncount--
|
spawncount--
|
||||||
vents.Cut()
|
vents.Cut()
|
||||||
|
|||||||
@@ -6,8 +6,11 @@
|
|||||||
|
|
||||||
|
|
||||||
/datum/event/spider_infestation/setup()
|
/datum/event/spider_infestation/setup()
|
||||||
|
if(prob(75) && severity == 3) //CHOMP Add 75% chance of the event to even occur if chosen and is major severity
|
||||||
|
kill()
|
||||||
|
return
|
||||||
announceWhen = rand(announceWhen, announceWhen + 60)
|
announceWhen = rand(announceWhen, announceWhen + 60)
|
||||||
spawncount = rand(6 * severity, 12 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: Tripled amount spawned
|
spawncount = rand(6 * severity, 14 * severity) //spiderlings only have a 50% chance to grow big and strong //CHOMP Edit: old: 2/4 new: 6/14
|
||||||
sent_spiders_to_station = 0
|
sent_spiders_to_station = 0
|
||||||
|
|
||||||
/datum/event/spider_infestation/announce()
|
/datum/event/spider_infestation/announce()
|
||||||
@@ -29,6 +32,6 @@
|
|||||||
|
|
||||||
while((spawncount >= 1) && vents.len)
|
while((spawncount >= 1) && vents.len)
|
||||||
var/obj/vent = pick(vents)
|
var/obj/vent = pick(vents)
|
||||||
new /obj/effect/spider/spiderling/virgo(vent.loc) //VOREStation Edit - No nurses
|
new /obj/effect/spider/spiderling(vent.loc) //VOREStation Edit - No nurses //Oh my JESUS CHRIST, this slipped past me. Literally no nurses. Well guess what, nurses are back.
|
||||||
vents -= vent
|
vents -= vent
|
||||||
spawncount--
|
spawncount--
|
||||||
|
|||||||
@@ -391,20 +391,23 @@
|
|||||||
/datum/trait/negative/reduced_biocompat_minor
|
/datum/trait/negative/reduced_biocompat_minor
|
||||||
name = "Reduced Biocompatibility, Minor"
|
name = "Reduced Biocompatibility, Minor"
|
||||||
desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 80% as effective on you!"
|
desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 80% as effective on you!"
|
||||||
cost = -1
|
cost = -2
|
||||||
var_changes = list("chem_strength_heal" = 0.8)
|
var_changes = list("chem_strength_heal" = 0.8)
|
||||||
|
can_take = ORGANICS
|
||||||
|
|
||||||
/datum/trait/negative/reduced_biocompat
|
/datum/trait/negative/reduced_biocompat
|
||||||
name = "Reduced Biocompatibility"
|
name = "Reduced Biocompatibility"
|
||||||
desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 60% as effective on you!"
|
desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 60% as effective on you!"
|
||||||
cost = -4
|
cost = -4
|
||||||
var_changes = list("chem_strength_heal" = 0.6)
|
var_changes = list("chem_strength_heal" = 0.6)
|
||||||
|
can_take = ORGANICS
|
||||||
|
|
||||||
/datum/trait/negative/reduced_biocompat_extreme
|
/datum/trait/negative/reduced_biocompat_extreme
|
||||||
name = "Reduced Biocompatibility, Major"
|
name = "Reduced Biocompatibility, Major"
|
||||||
desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 30% as effective on you!"
|
desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 30% as effective on you!"
|
||||||
cost = -8
|
cost = -8
|
||||||
var_changes = list("chem_strength_heal" = 0.3)
|
var_changes = list("chem_strength_heal" = 0.3)
|
||||||
|
can_take = ORGANICS
|
||||||
|
|
||||||
// Rykkanote: Relocated these here as we're no longer a YW downstream.
|
// Rykkanote: Relocated these here as we're no longer a YW downstream.
|
||||||
/datum/trait/negative/light_sensitivity
|
/datum/trait/negative/light_sensitivity
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
|
//Lets make this shit more sane-shark
|
||||||
|
/hook/startup/proc/robot_modules_ch()
|
||||||
|
//define OUR modules
|
||||||
|
robot_modules["ExploreHound"] = /obj/item/weapon/robot_module/robot/exploration //Array define
|
||||||
|
robot_module_types += "ExploreHound" //Add to global
|
||||||
|
robot_modules["Honk-Hound"] = /obj/item/weapon/robot_module/robot/clerical/honkborg
|
||||||
|
robot_modules["UnityHound"] = /obj/item/weapon/robot_module/robot/chound
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//TFF 5/1/20 - Add Ore Scanner for mining drones
|
//TFF 5/1/20 - Add Ore Scanner for mining drones
|
||||||
/obj/item/weapon/robot_module/drone/mining/New()
|
/obj/item/weapon/robot_module/drone/mining/New()
|
||||||
..()
|
..()
|
||||||
@@ -93,4 +103,71 @@
|
|||||||
R.verbs |= /mob/living/proc/toggle_rider_reins
|
R.verbs |= /mob/living/proc/toggle_rider_reins
|
||||||
R.verbs |= /mob/living/proc/shred_limb
|
R.verbs |= /mob/living/proc/shred_limb
|
||||||
R.verbs |= /mob/living/silicon/robot/proc/rest_style
|
R.verbs |= /mob/living/silicon/robot/proc/rest_style
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
//Explo doggos
|
||||||
|
/obj/item/weapon/robot_module/robot/exploration
|
||||||
|
name = "ExploreHound"
|
||||||
|
channels = list("Exploration" = 1)
|
||||||
|
languages = list(
|
||||||
|
LANGUAGE_SOL_COMMON = 1,
|
||||||
|
LANGUAGE_UNATHI = 1,
|
||||||
|
LANGUAGE_SIIK = 1,
|
||||||
|
LANGUAGE_AKHANI = 1,
|
||||||
|
LANGUAGE_SKRELLIAN = 1,
|
||||||
|
LANGUAGE_SKRELLIANFAR = 0,
|
||||||
|
LANGUAGE_ROOTLOCAL = 0,
|
||||||
|
LANGUAGE_TRADEBAND = 1,
|
||||||
|
LANGUAGE_GUTTER = 0,
|
||||||
|
LANGUAGE_SCHECHI = 1,
|
||||||
|
LANGUAGE_EAL = 1,
|
||||||
|
LANGUAGE_TERMINUS = 1,
|
||||||
|
LANGUAGE_SIGN = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
/obj/item/weapon/robot_module/robot/exploration
|
||||||
|
sprites = list(
|
||||||
|
"ExploreHound" = "exploration",
|
||||||
|
)
|
||||||
|
can_be_pushed = 0
|
||||||
|
/obj/item/weapon/robot_module/robot/exploration/New(var/mob/living/silicon/robot/R)
|
||||||
|
src.modules += new /obj/item/weapon/dogborg/jaws/small(src)
|
||||||
|
src.modules += new /obj/item/device/dogborg/boop_module(src)
|
||||||
|
src.modules += new /obj/item/device/dogborg/sleeper/K9/exploration(src)
|
||||||
|
src.modules += new /obj/item/weapon/gun/energy/locked/phasegun/unlocked/mounted/cyborg(src)
|
||||||
|
src.modules += new /obj/item/device/cataloguer(src)
|
||||||
|
src.modules += new /obj/item/roller_holder(src)
|
||||||
|
src.modules += new /obj/item/weapon/gun/energy/taser/mounted/cyborg/flare(src)
|
||||||
|
|
||||||
|
src.emag = new /obj/item/weapon/dogborg/pounce(src)
|
||||||
|
|
||||||
|
R.can_buckle = 1
|
||||||
|
R.icon = 'modular_chomp/icons/mob/widerobot_exp_ch.dmi'
|
||||||
|
R.wideborg_dept = R.icon
|
||||||
|
R.hands.icon = 'icons/mob/screen1_robot_vr.dmi'
|
||||||
|
R.ui_style_vr = TRUE
|
||||||
|
R.pixel_x = -16
|
||||||
|
R.old_x = -16
|
||||||
|
R.default_pixel_x = -16
|
||||||
|
R.dogborg = TRUE
|
||||||
|
R.vore_capacity = 1
|
||||||
|
R.vore_capacity_ex = list("stomach" = 1)
|
||||||
|
R.wideborg = TRUE
|
||||||
|
..()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/device/dogborg/sleeper/K9/exploration //The K9 portabrig
|
||||||
|
name = "Store-Belly"
|
||||||
|
desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person."
|
||||||
|
icon_state = "sleeperb"
|
||||||
|
injection_chems = null
|
||||||
|
medsensor = FALSE
|
||||||
|
recycles = TRUE
|
||||||
|
max_item_count = 4
|
||||||
|
|
||||||
|
/obj/item/weapon/gun/energy/taser/mounted/cyborg/flare
|
||||||
|
name = "flare gun"
|
||||||
|
desc = "A flare-gun"
|
||||||
|
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||||
|
fire_sound = 'sound/weapons/tablehit1.ogg'
|
||||||
@@ -72,8 +72,6 @@
|
|||||||
robot_modules["Service-Hound"] = /obj/item/weapon/robot_module/robot/clerical/butler/brodog
|
robot_modules["Service-Hound"] = /obj/item/weapon/robot_module/robot/clerical/butler/brodog
|
||||||
robot_modules["BoozeHound"] = /obj/item/weapon/robot_module/robot/clerical/butler/booze
|
robot_modules["BoozeHound"] = /obj/item/weapon/robot_module/robot/clerical/butler/booze
|
||||||
robot_modules["KMine"] = /obj/item/weapon/robot_module/robot/miner/kmine
|
robot_modules["KMine"] = /obj/item/weapon/robot_module/robot/miner/kmine
|
||||||
robot_modules["UnityHound"] = /obj/item/weapon/robot_module/robot/chound //CHOMP Addition Unity
|
|
||||||
robot_modules["Honk-Hound"] = /obj/item/weapon/robot_module/robot/clerical/honkborg //CHOMP Addition Honk
|
|
||||||
robot_modules["Stray"] = /obj/item/weapon/robot_module/robot/stray
|
robot_modules["Stray"] = /obj/item/weapon/robot_module/robot/stray
|
||||||
robot_modules["TraumaHound"] = /obj/item/weapon/robot_module/robot/medical/traumahound
|
robot_modules["TraumaHound"] = /obj/item/weapon/robot_module/robot/medical/traumahound
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -14,6 +14,24 @@
|
|||||||
do_colouration = 1
|
do_colouration = 1
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
|
||||||
|
/datum/sprite_accessory/ears/protogen
|
||||||
|
name = "Protogen"
|
||||||
|
desc = ""
|
||||||
|
icon = 'icons/mob/vore/ears_ch.dmi'
|
||||||
|
icon_state = "protogen"
|
||||||
|
extra_overlay = "protogen_fluff"
|
||||||
|
do_colouration = 1
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
|
||||||
|
/datum/sprite_accessory/ears/miqote
|
||||||
|
name = "Miqo'te"
|
||||||
|
desc = ""
|
||||||
|
icon = 'icons/mob/vore/ears_ch.dmi'
|
||||||
|
icon_state = "miqote"
|
||||||
|
extra_overlay = "miqote_inner"
|
||||||
|
do_colouration = 1
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
|
||||||
/datum/sprite_accessory/ears/vale
|
/datum/sprite_accessory/ears/vale
|
||||||
name = "VALE Model Ear Coloring"
|
name = "VALE Model Ear Coloring"
|
||||||
desc = ""
|
desc = ""
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
/datum/sprite_accessory/marking
|
||||||
|
var/digitigrade_acceptance = MARKING_NONDIGI_ONLY
|
||||||
|
var/digitigrade_icon = 'icons/mob/human_races/markings_digi_ch.dmi'
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch
|
/datum/sprite_accessory/marking/ch
|
||||||
icon = 'icons/mob/human_races/markings_ch.dmi'
|
icon = 'icons/mob/human_races/markings_ch.dmi'
|
||||||
|
|
||||||
@@ -149,65 +153,196 @@
|
|||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_HEAD)
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/protogen_snout
|
||||||
|
name = "Protogen Snout"
|
||||||
|
icon_state = "protogen_snout"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/hshark_snout
|
||||||
|
name = "HShark Snout"
|
||||||
|
icon_state = "hshark_snout"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/hshark_head
|
||||||
|
name = "HShark Head"
|
||||||
|
icon_state = "hshark"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/ram_horns
|
||||||
|
name = "Ram Horns"
|
||||||
|
icon_state = "ram_horns"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/neckfluff
|
||||||
|
name = "Neck Fluff"
|
||||||
|
icon_state = "neckfluff"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/husky_chest
|
||||||
|
name = "Husky Chest"
|
||||||
|
icon_state = "husky"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_TORSO, BP_GROIN)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/fox_head
|
||||||
|
name = "Fox Head"
|
||||||
|
icon_state = "fox"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/fox_chest
|
||||||
|
name = "Fox Chest"
|
||||||
|
icon_state = "fox"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_TORSO, BP_GROIN)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/fox_hsocks
|
||||||
|
name = "Fox Hand Socks"
|
||||||
|
icon_state = "fox"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/fox_lsocks
|
||||||
|
name = "Fox Leg Socks"
|
||||||
|
icon_state = "fox"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
|
||||||
|
digitigrade_acceptance = MARKING_ALL_LEGS
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/tiger_head
|
||||||
|
name = "Tiger Head"
|
||||||
|
icon_state = "tiger"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/tiger_chest
|
||||||
|
name = "Tiger Chest"
|
||||||
|
icon_state = "tiger"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_TORSO, BP_GROIN)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/tiger_arms
|
||||||
|
name = "Tiger Arms"
|
||||||
|
icon_state = "tiger"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/tiger_legs
|
||||||
|
name = "Tiger Legs"
|
||||||
|
icon_state = "tiger"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
|
||||||
|
digitigrade_acceptance = MARKING_ALL_LEGS
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/gradient_arms
|
||||||
|
name = "Gradient Arms"
|
||||||
|
icon_state = "gradient"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_ARM, BP_R_HAND, BP_L_ARM, BP_L_HAND)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/gradient_legs
|
||||||
|
name = "Gradient Legs"
|
||||||
|
icon_state = "gradient"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
|
||||||
|
digitigrade_acceptance = MARKING_ALL_LEGS
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/hawk_talons
|
||||||
|
name = "Hawk Talons (Legs)"
|
||||||
|
icon_state = "hawktalon"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_LEG,BP_R_FOOT,BP_L_LEG,BP_L_FOOT)
|
||||||
|
digitigrade_acceptance = MARKING_ALL_LEGS
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/deer_hooves
|
||||||
|
name = "Deer Hooves"
|
||||||
|
icon_state = "deerhoof"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_R_FOOT, BP_L_FOOT)
|
||||||
|
digitigrade_acceptance = MARKING_ALL_LEGS
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/frills_simple
|
||||||
|
name = "Frills (Simple)"
|
||||||
|
icon_state = "frills_simple"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/frills_short
|
||||||
|
name = "Frills (Short)"
|
||||||
|
icon_state = "frills_short"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
|
/datum/sprite_accessory/marking/ch/frills_aquatic
|
||||||
|
name = "Frills (Aquatic)"
|
||||||
|
icon_state = "frills_aqua"
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmonhead
|
/datum/sprite_accessory/marking/ch/guilmonhead
|
||||||
name = "Guilmon head"
|
name = "Guilmon head"
|
||||||
icon_state = "guilmon_head"
|
icon_state = "guilmon_head"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_HEAD)
|
body_parts = list(BP_HEAD)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmonchest
|
/datum/sprite_accessory/marking/ch/guilmonchest
|
||||||
name = "Guilmon Chest"
|
name = "Guilmon Chest"
|
||||||
icon_state = "guilmon_chest"
|
icon_state = "guilmon_chest"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_TORSO)
|
body_parts = list(BP_TORSO)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmonchestmarking
|
/datum/sprite_accessory/marking/ch/guilmonchestmarking
|
||||||
name = "Guilmon Chest Markings"
|
name = "Guilmon Chest Markings"
|
||||||
icon_state = "guilmon_marking"
|
icon_state = "guilmon_marking"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_TORSO)
|
body_parts = list(BP_TORSO)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmonarms
|
/datum/sprite_accessory/marking/ch/guilmonarms
|
||||||
name = "Guilmon arms"
|
name = "Guilmon arms"
|
||||||
icon_state = "guilmon"
|
icon_state = "guilmon"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND)
|
body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmonRLeg
|
/datum/sprite_accessory/marking/ch/guilmonRLeg
|
||||||
name = "Guilmon Right leg"
|
name = "Guilmon Right leg"
|
||||||
icon_state = "guilmon"
|
icon_state = "guilmon"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_R_LEG)
|
body_parts = list(BP_R_LEG)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmonLleg
|
/datum/sprite_accessory/marking/ch/guilmonLleg
|
||||||
name = "Guilmon Left leg"
|
name = "Guilmon Left leg"
|
||||||
icon_state = "guilmon"
|
icon_state = "guilmon"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_L_LEG)
|
body_parts = list(BP_L_LEG)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmondigiRleg1
|
/datum/sprite_accessory/marking/ch/guilmondigiRleg1
|
||||||
name = "Guilmon digigrade right leg 1"
|
name = "Guilmon digigrade right leg 1"
|
||||||
icon_state = "guilmon_digitigrade_1"
|
icon_state = "guilmon_digitigrade_1"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_R_LEG)
|
body_parts = list(BP_R_LEG)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmondigiLleg1
|
/datum/sprite_accessory/marking/ch/guilmondigiLleg1
|
||||||
name = "Guilmon digigrade left leg 1"
|
name = "Guilmon digigrade left leg 1"
|
||||||
icon_state = "guilmon_digitigrade_1"
|
icon_state = "guilmon_digitigrade_1"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_L_LEG)
|
body_parts = list(BP_L_LEG)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmondigiRleg2
|
/datum/sprite_accessory/marking/ch/guilmondigiRleg2
|
||||||
name = "Guilmon digigrade right leg 2"
|
name = "Guilmon digigrade right leg 2"
|
||||||
icon_state = "guilmon_digitigrade_2"
|
icon_state = "guilmon_digitigrade_2"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_R_LEG)
|
body_parts = list(BP_R_LEG)
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/ch/guilmondigiLleg2
|
/datum/sprite_accessory/marking/ch/guilmondigiLleg2
|
||||||
name = "Guilmon digigrade left leg 2"
|
name = "Guilmon digigrade left leg 2"
|
||||||
icon_state = "guilmon_digitigrade_2"
|
icon_state = "guilmon_digitigrade_2"
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
body_parts = list(BP_L_LEG)
|
body_parts = list(BP_L_LEG)
|
||||||
|
|
||||||
/datum/sprite_accessory/tail/special/orca_tail
|
/datum/sprite_accessory/tail/special/orca_tail
|
||||||
name = "Orca Tail"
|
name = "Orca Tail"
|
||||||
@@ -332,6 +467,7 @@
|
|||||||
//Digitigrade markings
|
//Digitigrade markings
|
||||||
/datum/sprite_accessory/marking/digi
|
/datum/sprite_accessory/marking/digi
|
||||||
icon = 'icons/mob/human_races/markings_digi_ch.dmi'
|
icon = 'icons/mob/human_races/markings_digi_ch.dmi'
|
||||||
|
digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY
|
||||||
|
|
||||||
/datum/sprite_accessory/marking/digi/fullleft
|
/datum/sprite_accessory/marking/digi/fullleft
|
||||||
name = "Digitigrade Full Left Leg(Only works with digitigrade legs)"
|
name = "Digitigrade Full Left Leg(Only works with digitigrade legs)"
|
||||||
|
|||||||
@@ -22,6 +22,17 @@
|
|||||||
icon = 'icons/mob/vore/tails_ch.dmi'
|
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||||
icon_state = "zorgoia"
|
icon_state = "zorgoia"
|
||||||
extra_overlay = "zorgoia_fluff"
|
extra_overlay = "zorgoia_fluff"
|
||||||
|
extra_overlay2 = "zorgoia_fluff_top"
|
||||||
|
do_colouration = 1
|
||||||
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
|
||||||
|
/datum/sprite_accessory/tail/leopard
|
||||||
|
name = "Leopard tail, dual-color (vwag)"
|
||||||
|
icon = 'icons/mob/vore/tails_ch.dmi'
|
||||||
|
icon_state = "leopard"
|
||||||
|
ani_state = "leopard_w"
|
||||||
|
extra_overlay = "leopard_spots"
|
||||||
|
extra_overlay_w = "leopard_spots_w"
|
||||||
do_colouration = 1
|
do_colouration = 1
|
||||||
color_blend_mode = ICON_MULTIPLY
|
color_blend_mode = ICON_MULTIPLY
|
||||||
|
|
||||||
@@ -144,17 +155,17 @@
|
|||||||
extra_overlay = "bigringtail_markings"
|
extra_overlay = "bigringtail_markings"
|
||||||
|
|
||||||
/datum/sprite_accessory/tail/longtail/desert_nightstalker
|
/datum/sprite_accessory/tail/longtail/desert_nightstalker
|
||||||
name = "Desert Nightstalker Tail (vwag)"
|
name = "Desert Nightstalker Tail (vwag)"
|
||||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||||
icon_state = "nightstalker_desert"
|
icon_state = "nightstalker_desert"
|
||||||
ani_state = "nightstalker_desert_w"
|
ani_state = "nightstalker_desert_w"
|
||||||
do_colouration = 0 // We're not coloring this, these are pre-colored
|
do_colouration = 0 // We're not coloring this, these are pre-colored
|
||||||
color_blend_mode = ICON_ADD
|
color_blend_mode = ICON_ADD
|
||||||
|
|
||||||
/datum/sprite_accessory/tail/longtail/diamondback_nightstalker
|
/datum/sprite_accessory/tail/longtail/diamondback_nightstalker
|
||||||
name = "Diamondback Nightstalker Tail (dual-color, vwag)"
|
name = "Diamondback Nightstalker Tail (dual-color, vwag)"
|
||||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||||
icon_state = "nightstalker_diamondback"
|
icon_state = "nightstalker_diamondback"
|
||||||
ani_state = "nightstalker_diamondback_w"
|
ani_state = "nightstalker_diamondback_w"
|
||||||
extra_overlay = "nightstalker_diamondback_markings"
|
extra_overlay = "nightstalker_diamondback_markings"
|
||||||
extra_overlay_w = "nightstalker_diamondback_markings_w"
|
extra_overlay_w = "nightstalker_diamondback_markings_w"
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ Controlled by the player_tips subsystem under code/controllers/subsystems/player
|
|||||||
to_chat(M, SPAN_NOTICE("[tip]"))
|
to_chat(M, SPAN_NOTICE("[tip]"))
|
||||||
|
|
||||||
last_tip = tip
|
last_tip = tip
|
||||||
|
last_tip_time = world.time
|
||||||
tip_delay = rand(min_tip_delay, max_tip_delay)
|
tip_delay = rand(min_tip_delay, max_tip_delay)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -261,6 +261,9 @@
|
|||||||
var/alert_msg = " Integrity at [integrity]%"
|
var/alert_msg = " Integrity at [integrity]%"
|
||||||
var/message_sound = 'sound/ambience/matteralarm.ogg'
|
var/message_sound = 'sound/ambience/matteralarm.ogg'
|
||||||
|
|
||||||
|
if(!(src.z in using_map.station_levels)) // CHOMPEdit: SM Global Warn Fix; Is our location the same as the station? If no, then we're not going to warn.
|
||||||
|
return // CHOMPEdit: SM Global Warn Fix; No need to announce if we're outside the station's Z, at a POI, etc.
|
||||||
|
|
||||||
if(final_countdown) // Chompers additon
|
if(final_countdown) // Chompers additon
|
||||||
return
|
return
|
||||||
if(damage > emergency_point)
|
if(damage > emergency_point)
|
||||||
@@ -450,6 +453,10 @@
|
|||||||
candidate_alarm.causality.start()
|
candidate_alarm.causality.start()
|
||||||
causalitywarn = 1
|
causalitywarn = 1
|
||||||
|
|
||||||
|
if(!(src.z in using_map.station_levels)) // CHOMPEdit: SM Global Warn Fix; Is our location the same as the station? If no, then we're not going to use a stabilization field.
|
||||||
|
explode() // CHOMPEdit: SM Global Warn Fix; Just exploding, because we're not on the station's Z. No safety countdown.
|
||||||
|
return // CHOMPEdit: SM Global Warn Fix; Stops the code here.
|
||||||
|
|
||||||
if(final_countdown) // We're already doing it go away
|
if(final_countdown) // We're already doing it go away
|
||||||
return
|
return
|
||||||
final_countdown = TRUE
|
final_countdown = TRUE
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 8.0 KiB |
@@ -0,0 +1,299 @@
|
|||||||
|
// Props
|
||||||
|
/obj/structure/prop/desert_rock
|
||||||
|
icon = 'modular_chomp/icons/obj/desert_planet/desert_rocks.dmi'
|
||||||
|
desc = "Sandy and smooth from erosion."
|
||||||
|
density = TRUE
|
||||||
|
anchored = TRUE
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/rock
|
||||||
|
name = "desert rock"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/rock/attack_hand(mob/living/user)
|
||||||
|
if(user.is_incorporeal())
|
||||||
|
return
|
||||||
|
to_chat(user, "You push on the [src].")
|
||||||
|
var/movedir = user.dir
|
||||||
|
if(do_after(user, 3 SECONDS, src))
|
||||||
|
step(src, movedir)
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/rock/New()
|
||||||
|
..()
|
||||||
|
icon_state = "desert_rock[rand(0,6)]"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/pebble
|
||||||
|
name = "sandy pebble"
|
||||||
|
density = FALSE
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/pebble/Crossed(atom/movable/AM as mob|obj)
|
||||||
|
if(AM.is_incorporeal())
|
||||||
|
return
|
||||||
|
if(istype(AM, /mob/living))
|
||||||
|
var/mob/living/M = AM
|
||||||
|
if(M.m_intent == "run" && prob(5))
|
||||||
|
M.Weaken(2)
|
||||||
|
to_chat(M, "You trip over the [src]!")
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/pebble/New()
|
||||||
|
..()
|
||||||
|
icon_state = "desert_pebble[rand(0,6)]"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/anthill
|
||||||
|
name = "ant hill"
|
||||||
|
desc = "See how many ants you can spot."
|
||||||
|
icon = 'modular_chomp/icons/obj/desert_planet/desert_plants.dmi'
|
||||||
|
icon_state = "anthill0"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_rock/anthill/New()
|
||||||
|
..()
|
||||||
|
icon_state = "anthill[rand(0,2)]"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64
|
||||||
|
name = "large rock"
|
||||||
|
desc = "Sandy and smooth from erosion."
|
||||||
|
icon = 'modular_chomp/icons/obj/desert_planet/desert_props_64x64.dmi'
|
||||||
|
density = TRUE
|
||||||
|
anchored = TRUE
|
||||||
|
can_buckle = FALSE
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lrock
|
||||||
|
icon_state = "lrock"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lrock1
|
||||||
|
icon_state = "lrock1"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lrock2
|
||||||
|
icon_state = "lrock2"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lrock3
|
||||||
|
icon_state = "lrock3"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lrock4
|
||||||
|
icon_state = "lrock4"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lribs
|
||||||
|
name = "ribs"
|
||||||
|
desc = "Bleached white by baking sunlight."
|
||||||
|
icon_state = "lribs"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lribs1
|
||||||
|
name = "ribs"
|
||||||
|
desc = "Bleached white by baking sunlight."
|
||||||
|
icon_state = "lribs1"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lskull
|
||||||
|
name = "skull"
|
||||||
|
desc = "Bleached white by baking sunlight."
|
||||||
|
icon_state = "lskull"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/lbone
|
||||||
|
name = "bone"
|
||||||
|
desc = "Bleached white by baking sunlight."
|
||||||
|
icon_state = "lbone"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/palmuria
|
||||||
|
name = "palm"
|
||||||
|
desc = "Stout and bushy."
|
||||||
|
icon_state = "palmuria"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet64x64/palmuria1
|
||||||
|
name = "palm"
|
||||||
|
desc = "Stout and bushy."
|
||||||
|
icon_state = "palmuria1"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160
|
||||||
|
name = "desert large boulder"
|
||||||
|
desc = "Sandy and smooth from erosion."
|
||||||
|
icon = 'modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi'
|
||||||
|
density = TRUE
|
||||||
|
anchored = TRUE
|
||||||
|
can_buckle = FALSE
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/largeboulder
|
||||||
|
icon_state = "large_boulder"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/tallboulder
|
||||||
|
icon_state = "tall_boulder"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/boulder
|
||||||
|
icon_state = "boulder"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/lcactus
|
||||||
|
name = "cactus"
|
||||||
|
desc = "Large and prickly."
|
||||||
|
icon_state = "lcactus"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/lcactus1
|
||||||
|
name = "cactus"
|
||||||
|
desc = "Large and prickly."
|
||||||
|
icon_state = "lcactus1"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/lcactus2
|
||||||
|
name = "cactus"
|
||||||
|
desc = "Large and prickly."
|
||||||
|
icon_state = "lcactus2"
|
||||||
|
|
||||||
|
/obj/structure/prop/desert_planet160x160/lcactus3
|
||||||
|
name = "cactus"
|
||||||
|
desc = "Large and prickly."
|
||||||
|
icon_state = "lcactus3"
|
||||||
|
|
||||||
|
// Flora
|
||||||
|
/obj/structure/flora/desert_planet
|
||||||
|
name = "desert plant"
|
||||||
|
desc = "Probably a succulent."
|
||||||
|
icon = 'modular_chomp/icons/obj/desert_planet/desert_plants.dmi'
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/potted_plant
|
||||||
|
name = "potted plant"
|
||||||
|
desc = "Colloquially known as a pot plant."
|
||||||
|
icon_state = "potplant0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/potted_plant/New()
|
||||||
|
..()
|
||||||
|
icon_state = "potplant[rand(0,2)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/thicket
|
||||||
|
name = "thicket"
|
||||||
|
desc = "Weedy growths."
|
||||||
|
icon_state = "thicket0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/thicket/New()
|
||||||
|
..()
|
||||||
|
icon_state = "thicket[rand(0,6)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/shrub
|
||||||
|
name = "shrub"
|
||||||
|
desc = "Dense and weedy."
|
||||||
|
icon_state = "shrub0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/shrub/New()
|
||||||
|
..()
|
||||||
|
icon_state = "shrub[rand(0,5)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/bush
|
||||||
|
name = "bush"
|
||||||
|
desc = "Denser and weedier."
|
||||||
|
icon_state = "bush0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/bush/New()
|
||||||
|
..()
|
||||||
|
icon_state = "bush[rand(0,5)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/barrelcacti
|
||||||
|
name = "barrel cacti"
|
||||||
|
desc = "Small, adorable, and begging for a hug."
|
||||||
|
icon_state = "barrelcacti0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/barrelcacti/New()
|
||||||
|
..()
|
||||||
|
icon_state = "barrelcacti[rand(0,3)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/palmy
|
||||||
|
name = "yucca bush"
|
||||||
|
desc = "Probably not actually a yucca."
|
||||||
|
icon_state = "palmy0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/palmy/New()
|
||||||
|
..()
|
||||||
|
icon_state = "palmy[rand(0,2)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/shrubber
|
||||||
|
name = "thorny bush"
|
||||||
|
desc = "Makes for great fur accessories."
|
||||||
|
icon_state = "shrubber0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/shrubber/New()
|
||||||
|
..()
|
||||||
|
icon_state = "shrubber[rand(0,2)]"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/lbarrelcacti
|
||||||
|
name = "barrel cactus"
|
||||||
|
desc = "Absolutely begging for pets."
|
||||||
|
icon_state = "lbarrelcacti0"
|
||||||
|
|
||||||
|
/obj/structure/flora/desert_planet/lbarrelcacti/New()
|
||||||
|
..()
|
||||||
|
icon_state = "lbarrelcacti[rand(0,2)]"
|
||||||
|
|
||||||
|
// Trees
|
||||||
|
/obj/structure/flora/tree/desert_planet
|
||||||
|
name = "palm tree"
|
||||||
|
desc = "Tall palm tree, makes for a good shade."
|
||||||
|
icon = 'modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi'
|
||||||
|
density = FALSE
|
||||||
|
anchored = TRUE
|
||||||
|
can_buckle = FALSE
|
||||||
|
product = /obj/item/stack/material/log
|
||||||
|
product_amount = 50
|
||||||
|
health = 2000
|
||||||
|
max_health = 2000
|
||||||
|
//var/fruit
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/palmtreeb
|
||||||
|
icon_state = "palmtreeb"
|
||||||
|
base_state = "palmr" // Necessary for stumps to work.
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/palmtreeb1
|
||||||
|
icon_state = "palmtreeb1"
|
||||||
|
base_state = "palml"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/palmtree
|
||||||
|
icon_state = "palmtree"
|
||||||
|
base_state = "palmr"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/palmtree1
|
||||||
|
icon_state = "palmtree1"
|
||||||
|
base_state = "palml"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/mpalmtreeb
|
||||||
|
icon_state = "mpalmtreeb"
|
||||||
|
base_state = "palmr"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/mpalmtreeb1
|
||||||
|
icon_state = "mpalmtreeb1"
|
||||||
|
base_state = "palml"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/mpalmtree
|
||||||
|
icon_state = "mpalmtree"
|
||||||
|
base_state = "palml"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/mpalmtree1
|
||||||
|
icon_state = "mpalmtree1"
|
||||||
|
base_state = "palmr"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/spalmtree
|
||||||
|
icon_state = "spalmtree"
|
||||||
|
base_state = "palmls"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/spalmtree1
|
||||||
|
icon_state = "spalmtree1"
|
||||||
|
base_state = "palmrs"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/spalmtree3
|
||||||
|
icon_state = "spalmtree3"
|
||||||
|
base_state = "palmls"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/spalmtree4
|
||||||
|
icon_state = "spalmtree4"
|
||||||
|
base_state = "palmrs"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/desert_tree
|
||||||
|
name = "barren tree"
|
||||||
|
desc = "Completely barren."
|
||||||
|
icon_state = "desert_tree"
|
||||||
|
base_state = "desert"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/desert_tree1
|
||||||
|
name = "gnarled tree"
|
||||||
|
desc = "Twisted but living."
|
||||||
|
icon_state = "desert_tree1"
|
||||||
|
base_state = "desert"
|
||||||
|
|
||||||
|
/obj/structure/flora/tree/desert_planet/desert_tree3
|
||||||
|
name = "hardy tree"
|
||||||
|
desc = "Thriving despite the conditions."
|
||||||
|
icon_state = "desert_tree3"
|
||||||
|
base_state = "desert"
|
||||||
|
product_amount = 100
|
||||||
|
health = 4000
|
||||||
|
max_health = 4000
|
||||||
@@ -1,136 +1,257 @@
|
|||||||
/* Testing
|
// Parent turf.
|
||||||
|
/turf/simulated/floor/outdoors/desert_planet
|
||||||
|
name = "sand"
|
||||||
|
desc = "Salty and gritty."
|
||||||
|
icon = 'modular_chomp/icons/turf/desert_tiles.dmi'
|
||||||
|
icon_edge = 'modular_chomp/icons/turf/outdoors_edge.dmi'
|
||||||
|
can_dig = FALSE
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/sand
|
/turf/simulated/floor/outdoors/desert_planet/sand
|
||||||
name = "sand"
|
name = "sand"
|
||||||
desc = "Sandy, taste salty and gritty."
|
desc = "Salty and gritty."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
icon_state = "sand0"
|
||||||
edge_blending_priority = 2
|
edge_blending_priority = 2
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/rocks)
|
initial_flooring = /decl/flooring/desert_planet/sand
|
||||||
initial_flooring = /decl/flooring/sand
|
|
||||||
can_dig = false
|
|
||||||
*/
|
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/sand
|
// Necessary to get the edges to generate correctly since we use a random-ish icon_state. Inelegant to hard code, but this is a one-off case.
|
||||||
name = "sand"
|
/turf/simulated/floor/outdoors/desert_planet/sand/get_edge_icon_state()
|
||||||
desc = "Salty and gritty."
|
return "sand"
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
|
||||||
icon_state = "sand"
|
|
||||||
edge_blending_priority = 3
|
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
|
||||||
|
|
||||||
/* Testing
|
/turf/simulated/floor/outdoors/desert_planet/sand/Initialize(mapload)
|
||||||
/decl/flooring/outdoors/sand
|
. = ..()
|
||||||
name = "sand"
|
icon_state = "sand[rand(0,2)]"
|
||||||
desc = "Salty and gritty."
|
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
|
||||||
icon_base = "sand"
|
|
||||||
footstep_sounds = list("human" = list(
|
|
||||||
'sound/effects/footstep/asteroid1.ogg',
|
|
||||||
'sound/effects/footstep/asteroid2.ogg',
|
|
||||||
'sound/effects/footstep/asteroid3.ogg',
|
|
||||||
'sound/effects/footstep/asteroid4.ogg',
|
|
||||||
'sound/effects/footstep/asteroid5.ogg',
|
|
||||||
'sound/effects/footstep/MedDirt1.ogg',
|
|
||||||
'sound/effects/footstep/MedDirt2.ogg',
|
|
||||||
'sound/effects/footstep/MedDirt3.ogg',
|
|
||||||
'sound/effects/footstep/MedDirt4.ogg'))
|
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/sand/Initialize(mapload)
|
/turf/simulated/floor/outdoors/desert_planet/sand/attackby(var/obj/item/W, var/mob/user)
|
||||||
var/possiblesands = list(
|
if(istype(W, /obj/item/weapon/shovel))
|
||||||
"ironsand1" = 50,
|
to_chat(user, "<span class='notice'>You begin to remove \the [src] with your [W].</span>")
|
||||||
"ironsand2" = 1,
|
if(do_after(user, 4 SECONDS * W.toolspeed))
|
||||||
"ironsand3" = 1,
|
to_chat(user, "<span class='notice'>\The [src] has been dug up, and now lies in a pile nearby.</span>")
|
||||||
"ironsand4" = 1,
|
icon_state = "sand_dug"
|
||||||
"ironsand5" = 1,
|
new /obj/item/weapon/ore/glass (src)
|
||||||
"ironsand6" = 1,
|
else
|
||||||
"ironsand7" = 1,
|
to_chat(user, "<span class='notice'>You decide to not finish removing \the [src].</span>")
|
||||||
"ironsand8" = 1,
|
else
|
||||||
"ironsand9" = 1,
|
..()
|
||||||
"ironsand10" = 1,
|
|
||||||
"ironsand11" = 1,
|
|
||||||
"ironsand12" = 1,
|
|
||||||
"ironsand13" = 1,
|
|
||||||
"ironsand14" = 1,
|
|
||||||
"ironsand15" = 1
|
|
||||||
|
|
||||||
)
|
|
||||||
flooring_override = pickweight(possiblesands)
|
|
||||||
return ..()
|
|
||||||
|
|
||||||
/turf/simulated/floor/water/hotspring
|
|
||||||
name = "Hotsprings"
|
|
||||||
desc = "A natural hotspring connecting to an aquifer. It seems the facility was built ontop of it."
|
|
||||||
edge_blending_priority = -2
|
|
||||||
movement_cost = 8
|
|
||||||
depth = 2
|
|
||||||
water_state = "water_shallow"
|
|
||||||
outdoors = FALSE
|
|
||||||
|
|
||||||
/turf/simulated/floor/water/hotspring/Entered(atom/movable/AM, atom/oldloc)
|
|
||||||
if(istype(AM, /mob/living))
|
|
||||||
var/mob/living/L = AM
|
|
||||||
L.update_water()
|
|
||||||
if(L.check_submerged() <= 0)
|
|
||||||
return
|
|
||||||
if(!istype(oldloc, /turf/simulated/floor/water/hotspring))
|
|
||||||
to_chat(L, "<span class='warning'>You feel an overwhelming wave of warmth from entering \the [src]!</span>")
|
|
||||||
AM.water_act(5)
|
|
||||||
..()
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/deep_sand
|
/turf/simulated/floor/outdoors/desert_planet/deep_sand
|
||||||
name = "sand"
|
name = "sand"
|
||||||
desc = "Salty and gritty."
|
desc = "Really gets everywhere."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
icon_state = "deep_sand0"
|
||||||
icon_state = "deep_sand"
|
edge_blending_priority = 1
|
||||||
edge_blending_priority = 2
|
movement_cost = 3
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
initial_flooring = /decl/flooring/desert_planet/deep_sand
|
||||||
|
|
||||||
|
/turf/simulated/floor/outdoors/desert_planet/deep_sand/Initialize(mapload)
|
||||||
|
. = ..()
|
||||||
|
icon_state = "deep_sand[rand(0,2)]"
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/grass
|
/turf/simulated/floor/outdoors/desert_planet/grass
|
||||||
name = "grass"
|
name = "grass"
|
||||||
desc = "Lively green grass, soft to walk on."
|
desc = "Lively green grass, soft to walk on."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
|
||||||
icon_state = "grass"
|
icon_state = "grass"
|
||||||
edge_blending_priority = 6
|
edge_blending_priority = 5
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
initial_flooring = /decl/flooring/desert_planet/grass
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/deep_grass
|
/turf/simulated/floor/outdoors/desert_planet/deep_grass
|
||||||
name = "dense grass"
|
name = "dense grass"
|
||||||
desc = "Dense patch of grass, seems like a soft spot to lay on."
|
desc = "Dense patch of grass, seems like a soft spot to lay on."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
|
||||||
icon_state = "deep_grass"
|
icon_state = "deep_grass"
|
||||||
edge_blending_priority = 7
|
edge_blending_priority = 6
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
initial_flooring = /decl/flooring/desert_planet/deep_grass
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/gravel
|
/turf/simulated/floor/outdoors/desert_planet/gravel
|
||||||
name = "gravel"
|
name = "gravel"
|
||||||
desc = "Mix of dirt and sand, it crumbles in your hand."
|
desc = "Mix of dirt and sand, it crumbles in your hand."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
|
||||||
icon_state = "gravel"
|
icon_state = "gravel"
|
||||||
edge_blending_priority = 5
|
edge_blending_priority = 3
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
initial_flooring = /decl/flooring/desert_planet/gravel
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/mud
|
/turf/simulated/floor/outdoors/desert_planet/mud
|
||||||
name = "mud"
|
name = "mud"
|
||||||
desc = "Squishy damp dirt, smells muddy."
|
desc = "Squishy damp dirt, smells muddy."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
|
||||||
icon_state = "mud"
|
icon_state = "mud"
|
||||||
edge_blending_priority = 4
|
edge_blending_priority = 4
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
initial_flooring = /decl/flooring/desert_planet/mud
|
||||||
|
|
||||||
|
// At last we've come full circle, a floor which is actually a wall.
|
||||||
|
/turf/simulated/floor/outdoors/desert_planet/stonewall
|
||||||
|
name = "sandstone"
|
||||||
|
desc = "Rough sandstone."
|
||||||
|
icon_state = "stonewall"
|
||||||
|
density = TRUE
|
||||||
|
opacity = TRUE
|
||||||
|
edge_blending_priority = 7
|
||||||
|
initial_flooring = /decl/flooring/desert_planet/stonewall
|
||||||
|
turf_layers = list(/turf/simulated/floor/outdoors/rocks)
|
||||||
|
var/last_act = 0
|
||||||
|
|
||||||
|
// Stolen from mineral turf code.
|
||||||
|
/turf/simulated/floor/outdoors/desert_planet/stonewall/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
|
if(!user.IsAdvancedToolUser())
|
||||||
|
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
if(istype(W, /obj/item/weapon/pickaxe))
|
||||||
|
if(!istype(user.loc, /turf))
|
||||||
|
return
|
||||||
|
|
||||||
|
var/obj/item/weapon/pickaxe/P = W
|
||||||
|
if(last_act + P.digspeed > world.time)//prevents message spam
|
||||||
|
return
|
||||||
|
last_act = world.time
|
||||||
|
|
||||||
|
playsound(user, P.drill_sound, 20, 1)
|
||||||
|
to_chat(user, "<span class='notice'>You start [P.drill_verb].</span>")
|
||||||
|
|
||||||
|
if(do_after(user,P.digspeed))
|
||||||
|
|
||||||
|
to_chat(user, "<span class='notice'>You finish [P.drill_verb] \the [src].</span>")
|
||||||
|
new /obj/item/stack/material/sandstone(src)
|
||||||
|
density = FALSE
|
||||||
|
opacity = FALSE
|
||||||
|
demote() // Converts the turf to the next layer in turf_layers.
|
||||||
|
..()
|
||||||
|
|
||||||
|
/turf/simulated/floor/outdoors/desert_planet/sandrock
|
||||||
|
name = "sandstone tiles"
|
||||||
|
desc = "Tightly joined in a mesmerizing lattice."
|
||||||
|
icon_state = "sandrock"
|
||||||
|
density = TRUE
|
||||||
|
opacity = TRUE
|
||||||
|
initial_flooring = /decl/flooring/desert_planet/sandrock
|
||||||
|
|
||||||
|
// Declarations (for initial_flooring)
|
||||||
|
/decl/flooring/desert_planet // Yeah don't use this one, it's a parent just for setting icon.
|
||||||
|
name = "desert stuff"
|
||||||
|
desc = "If you see this, this turf is using the wrong decl."
|
||||||
|
icon = 'modular_chomp/icons/turf/desert_tiles.dmi'
|
||||||
|
icon_base = null
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/sand
|
||||||
|
name = "sand"
|
||||||
|
desc = "Salty and gritty."
|
||||||
|
icon_base = "sand"
|
||||||
|
has_base_range = 2
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/deep_sand
|
||||||
|
name = "sand"
|
||||||
|
desc = "Really gets everywhere."
|
||||||
|
icon_base = "deep_sand"
|
||||||
|
has_base_range = 2
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/grass
|
||||||
|
name = "grass"
|
||||||
|
desc = "Lively green grass, soft to walk on."
|
||||||
|
icon_base = "grass"
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/deep_grass
|
||||||
|
name = "dense grass"
|
||||||
|
desc = "Dense patch of grass, seems like a soft spot to lay on."
|
||||||
|
icon_base = "deep_grass"
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/gravel
|
||||||
|
name = "gravel"
|
||||||
|
desc = "Mix of dirt and sand, it crumbles in your hand."
|
||||||
|
icon_base = "gravel"
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/mud
|
||||||
|
name = "mud"
|
||||||
|
desc = "Squishy damp dirt, smells muddy."
|
||||||
|
icon_base = "mud"
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/stonewall
|
||||||
|
name = "sandstone"
|
||||||
|
desc = "Rough sandstone."
|
||||||
|
icon_base = "stonewall"
|
||||||
|
|
||||||
|
/decl/flooring/desert_planet/sandrock
|
||||||
|
name = "sandstone tiles"
|
||||||
|
desc = "Tightly joined in a mesmerizing lattice."
|
||||||
|
icon_base = "sandrock"
|
||||||
|
flags = TURF_HAS_EDGES | TURF_HAS_CORNERS
|
||||||
|
|
||||||
|
/*
|
||||||
|
/obj/effect/floor_decal/desert_planet/floor/sand0_edge
|
||||||
|
name = "sand0_edge"
|
||||||
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
|
icon_state = "sand0_edge"
|
||||||
|
|
||||||
|
/obj/effect/floor_decal/desert_planet/floor/gravel_edge
|
||||||
|
name = "gravel_edge"
|
||||||
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
|
icon_state = "gravel_edge"
|
||||||
|
|
||||||
|
/obj/effect/floor_decal/desert_planet/floor/mud_edge
|
||||||
|
name = "mud_edge"
|
||||||
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
|
icon_state = "mud_edge"
|
||||||
|
|
||||||
|
/obj/effect/floor_decal/desert_planet/floor/grass_edge
|
||||||
|
name = "grass_edge"
|
||||||
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
|
icon_state = "grass_edge"
|
||||||
|
|
||||||
|
/obj/effect/floor_decal/desert_planet/floor/deep_grass_edge
|
||||||
|
name = "deep_grass_edge"
|
||||||
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
|
icon_state = "deep_grass_edge"
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* #No idea how water tiles work
|
||||||
/turf/simulated/floor/outdoors/desert_planet/water
|
/turf/simulated/floor/outdoors/desert_planet/water
|
||||||
name = "water"
|
name = "water"
|
||||||
desc = "Clear cool water, looks potable."
|
desc = "Clear cool water, looks potable."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
icon_state = "water"
|
icon_state = "water"
|
||||||
edge_blending_priority = 8
|
var/water_state = "water_shallow"
|
||||||
|
var/under_state = "sand"
|
||||||
|
can_be_plated = FALSE
|
||||||
|
outdoors = OUTDOORS_YES
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
layer = WATER_FLOOR_LAYER
|
||||||
|
can_dirty = FALSE // It's water
|
||||||
|
var/depth = 1 // Higher numbers indicates deeper water.
|
||||||
|
var/reagent_type = "water"
|
||||||
|
edge_blending_priority = 2
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
||||||
|
|
||||||
/turf/simulated/floor/outdoors/desert_planet/deep_water
|
/turf/simulated/floor/outdoors/desert_planet/deep_water
|
||||||
name = "deep water"
|
name = "deep water"
|
||||||
desc = "deep enough you can't see the bottom of it."
|
desc = "deep enough you can't see the bottom of it."
|
||||||
icon = 'modular_chomp/icons/turf/desert_planet.dmi'
|
icon = 'icons/turf/desert_planet.dmi'
|
||||||
icon_state = "deep_water"
|
icon_state = "deep_water"
|
||||||
edge_blending_priority = 9
|
var/water_state = "water_shallow"
|
||||||
|
var/under_state = "sand"
|
||||||
|
can_be_plated = FALSE
|
||||||
|
outdoors = OUTDOORS_YES
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
layer = WATER_FLOOR_LAYER
|
||||||
|
can_dirty = FALSE // It's water
|
||||||
|
var/depth = 2 // Higher numbers indicates deeper water.
|
||||||
|
var/reagent_type = "water"
|
||||||
|
edge_blending_priority = 4
|
||||||
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand)
|
||||||
|
|
||||||
|
//I want this for the water tiles
|
||||||
|
/turf/simulated/floor/water
|
||||||
|
name = "shallow water"
|
||||||
|
desc = "A body of water. It seems shallow enough to walk through, if needed."
|
||||||
|
icon = 'icons/turf/outdoors.dmi'
|
||||||
|
icon_state = "seashallow" // So it shows up in the map editor as water.
|
||||||
|
var/water_state = "water_shallow"
|
||||||
|
var/under_state = "rock"
|
||||||
|
edge_blending_priority = -1
|
||||||
|
movement_cost = 4
|
||||||
|
can_be_plated = FALSE
|
||||||
|
outdoors = OUTDOORS_YES
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
|
layer = WATER_FLOOR_LAYER
|
||||||
|
|
||||||
|
can_dirty = FALSE // It's water
|
||||||
|
|
||||||
|
var/depth = 1 // Higher numbers indicates deeper water.
|
||||||
|
|
||||||
|
var/reagent_type = "water"
|
||||||
|
// var/datum/looping_sound/water/soundloop CHOMPEdit: Removing soundloop for now.
|
||||||
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/mob/living/simple_mob/animal/passive/dog/stray
|
||||||
|
name = "dog"
|
||||||
|
desc = "The most standard dog you have ever seen, it even smells like one."
|
||||||
|
tt_desc = "Canis lupus familiaris"
|
||||||
|
//faction = "mexico" //They are from Mexico. //Amusing but this prompts aggression from crew-aligned mobs.
|
||||||
|
|
||||||
|
icon = 'modular_chomp/icons/turf/desert_tiles.dmi'
|
||||||
|
icon_state = "dog"
|
||||||
|
item_state = "dog"
|
||||||
|
icon_living = "dog"
|
||||||
|
icon_rest = "dog"
|
||||||
|
icon_dead = "dog"
|
||||||
|
|
||||||
|
health = 50
|
||||||
|
maxHealth = 50
|
||||||
|
|
||||||
|
mob_size = MOB_SMALL
|
||||||
|
pass_flags = PASSTABLE
|
||||||
|
can_pull_size = ITEMSIZE_TINY
|
||||||
|
can_pull_mobs = MOB_PULL_NONE
|
||||||
|
layer = MOB_LAYER
|
||||||
|
density = 1
|
||||||
|
movement_cooldown = 0.75 //roughly a bit faster than a person
|
||||||
|
|
||||||
|
response_help = "pets"
|
||||||
|
response_disarm = "rolls aside"
|
||||||
|
response_harm = "stomps"
|
||||||
|
|
||||||
|
melee_damage_lower = 5
|
||||||
|
melee_damage_upper = 7
|
||||||
|
attacktext = list("nips", "bumps", "scratches")
|
||||||
|
|
||||||
|
vore_taste = "wet dog"
|
||||||
|
|
||||||
|
min_oxy = 16 //Require atleast 16kPA oxygen
|
||||||
|
minbodytemp = 223 //Below -50 Degrees Celcius
|
||||||
|
maxbodytemp = 523 //Above 80 Degrees Celcius
|
||||||
|
heat_damage_per_tick = 3
|
||||||
|
cold_damage_per_tick = 3
|
||||||
|
|
||||||
|
meat_amount = 7
|
||||||
|
holder_type = /obj/item/weapon/holder/armadillo
|
||||||
|
ai_holder_type = /datum/ai_holder/simple_mob/armadillo
|
||||||
|
|
||||||
|
speak_emote = list("rumbles", "chirr?", "churr")
|
||||||
|
|
||||||
|
say_list_type = /datum/say_list/armadillo
|
||||||
@@ -4,10 +4,11 @@
|
|||||||
// preferentially take digitigrade value from owner if available, THEN DNA.
|
// preferentially take digitigrade value from owner if available, THEN DNA.
|
||||||
// this allows limbs to be set properly when being printed in the bioprinter without an owner
|
// this allows limbs to be set properly when being printed in the bioprinter without an owner
|
||||||
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
|
// this also allows the preview mannequin to update properly because customisation topic calls don't call a DNA check
|
||||||
|
var/check_digi = istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot)
|
||||||
if(owner)
|
if(owner)
|
||||||
digitigrade = owner.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
|
digitigrade = check_digi && owner.digitigrade
|
||||||
else if(dna)
|
else if(dna)
|
||||||
digitigrade = dna.digitigrade && (istype(src,/obj/item/organ/external/leg) || istype(src,/obj/item/organ/external/foot))
|
digitigrade = check_digi && dna.digitigrade
|
||||||
|
|
||||||
var/robotic_digi = prosthetic_digi && digitigrade //could make it so the prosthetic digi var is more of a "does this limb have a custom digitigrade sprite for its robospriting" but this is fine for now
|
var/robotic_digi = prosthetic_digi && digitigrade //could make it so the prosthetic digi var is more of a "does this limb have a custom digitigrade sprite for its robospriting" but this is fine for now
|
||||||
|
|
||||||
@@ -57,13 +58,15 @@
|
|||||||
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !robotic_digi)) || (model && owner && owner.synth_markings))
|
if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !robotic_digi)) || (model && owner && owner.synth_markings))
|
||||||
for(var/M in markings)
|
for(var/M in markings)
|
||||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||||
var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi)
|
var/isdigitype = mark_style.digitigrade_acceptance
|
||||||
if(!(digitigrade ^ isdigitype)) //Equivalent to XNOR; this code will only run if either both digitigrade and isdigitype are true, or if both are false.
|
if(check_digi)
|
||||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
if (!(isdigitype & (digitigrade ? MARKING_DIGITIGRADE_ONLY : MARKING_NONDIGI_ONLY))) //checks flags based on which digitigrade type the limb is
|
||||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
continue
|
||||||
add_overlay(mark_s) //So when it's not on your body, it has icons
|
var/icon/mark_s = new/icon("icon" = digitigrade ? mark_style.digitigrade_icon : mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit
|
||||||
icon_cache_key += "[M][markings[M]["color"]]"
|
add_overlay(mark_s) //So when it's not on your body, it has icons
|
||||||
|
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||||
|
icon_cache_key += "[M][markings[M]["color"]]"
|
||||||
if(body_hair && islist(h_col) && h_col.len >= 3)
|
if(body_hair && islist(h_col) && h_col.len >= 3)
|
||||||
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
|
||||||
if(!limb_icon_cache[cache_key])
|
if(!limb_icon_cache[cache_key])
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ When editing the list, please try and keep similar probabilities near each other
|
|||||||
|
|
||||||
switch(choice)
|
switch(choice)
|
||||||
if("general")
|
if("general")
|
||||||
var/info = "The following is a general tip to playing on CHOMPStation! \n"
|
var/info = "The following is a general tip to playing on CHOMPStation! You can disable them using the periodic tips toggle in the Global tab of character setup! \n"
|
||||||
return pick(
|
return pick(
|
||||||
prob(60); "[info] Got a question about gameplay, roleplay or the setting? Press F1 to Mentorhelp!",
|
prob(60); "[info] Got a question about gameplay, roleplay or the setting? Press F1 to Mentorhelp!",
|
||||||
prob(60); "[info] We have a wiki that is actively updated! Please check it out at https://wiki.chompstation13.net/index.php/Chomp_Station_Wiki for help!",
|
prob(60); "[info] We have a wiki that is actively updated! Please check it out at https://wiki.chompstation13.net/index.php/Chomp_Station_Wiki for help!",
|
||||||
@@ -36,7 +36,7 @@ When editing the list, please try and keep similar probabilities near each other
|
|||||||
|
|
||||||
|
|
||||||
if("gameplay")
|
if("gameplay")
|
||||||
var/info = "The following is a gameplay-focused tip to playing on CHOMPStation \n"
|
var/info = "The following is a gameplay-focused tip to playing on CHOMPStation! You can disable them using the periodic tips toggle in the Global tab of character setup! \n"
|
||||||
return pick(
|
return pick(
|
||||||
prob(50); "[info] To talk to your fellow coworkers, use ';'! You may append it by an exclamation mark, like ';!' to perform an audiable emote. ",
|
prob(50); "[info] To talk to your fellow coworkers, use ';'! You may append it by an exclamation mark, like ';!' to perform an audiable emote. ",
|
||||||
prob(50); "[info] Lost on the map? You can find In-Character help by speaking on the Common Radio. You can do this by pressing F3 and typing ' ; ' before your message. Your fellow co-workers will likely help. If OOC help is preferred, press F1 for mentorhelp. ",
|
prob(50); "[info] Lost on the map? You can find In-Character help by speaking on the Common Radio. You can do this by pressing F3 and typing ' ; ' before your message. Your fellow co-workers will likely help. If OOC help is preferred, press F1 for mentorhelp. ",
|
||||||
@@ -51,7 +51,7 @@ When editing the list, please try and keep similar probabilities near each other
|
|||||||
)
|
)
|
||||||
|
|
||||||
if("roleplay")
|
if("roleplay")
|
||||||
var/info = "The following is a roleplay-focused tip to playing on CHOMPStation \n"
|
var/info = "The following is a roleplay-focused tip to playing on CHOMPStation! You can disable them using the periodic tips toggle in the Global tab of character setup! \n"
|
||||||
return pick(
|
return pick(
|
||||||
prob(50); "[info] Having difficulty finding scenes? The number one tip that people should take for finding scenes is to be active! Generally speaking, people are more likely to interact with you if you are moving about and doing things. Don't be afraid to talk to people, you're less likely to be approached if you're sat alone at a table silently. People that are looking for scenes generally like to see how you type and RP before they'll start working towards a scene with you.",
|
prob(50); "[info] Having difficulty finding scenes? The number one tip that people should take for finding scenes is to be active! Generally speaking, people are more likely to interact with you if you are moving about and doing things. Don't be afraid to talk to people, you're less likely to be approached if you're sat alone at a table silently. People that are looking for scenes generally like to see how you type and RP before they'll start working towards a scene with you.",
|
||||||
prob(50); "[info] Please avoid a character that knows everything. Having only a small set of jobs you are capable of doing can help flesh out your character! It's OK for things to break and fail if nobody is around to fix it - you do not need to do others' jobs.",
|
prob(50); "[info] Please avoid a character that knows everything. Having only a small set of jobs you are capable of doing can help flesh out your character! It's OK for things to break and fail if nobody is around to fix it - you do not need to do others' jobs.",
|
||||||
@@ -64,7 +64,7 @@ When editing the list, please try and keep similar probabilities near each other
|
|||||||
)
|
)
|
||||||
|
|
||||||
if("lore")
|
if("lore")
|
||||||
var/info = "The following is tip for understanding the lore of CHOMPStation \n"
|
var/info = "The following is tip for understanding the lore of CHOMPStation! You can disable them using the periodic tips toggle in the Global tab of character setup! \n"
|
||||||
return pick(
|
return pick(
|
||||||
prob(25); "[info] Our lore is somewhat in line with other servers. But not Virgo's. They wrote themselves out of the timeline, lol. The year is 2564 (current year+541).",
|
prob(25); "[info] Our lore is somewhat in line with other servers. But not Virgo's. They wrote themselves out of the timeline, lol. The year is 2564 (current year+541).",
|
||||||
prob(75); "[info] You can find a short summary of our setting that everyone should know at https://wiki.chompstation13.net/index.php/Lore",
|
prob(75); "[info] You can find a short summary of our setting that everyone should know at https://wiki.chompstation13.net/index.php/Lore",
|
||||||
|
|||||||
BIN
modular_chomp/icons/mob/widerobot_exp_ch.dmi
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
modular_chomp/icons/obj/desert_planet/desert_plants.dmi
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
modular_chomp/icons/obj/desert_planet/desert_props_64x64.dmi
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
modular_chomp/icons/obj/desert_planet/desert_rocks.dmi
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 29 KiB |
BIN
modular_chomp/icons/turf/desert_tiles.dmi
Normal file
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 18 KiB |
@@ -38,7 +38,7 @@ export const CharacterDirectory = (props, context) => {
|
|||||||
{(overlay && <ViewCharacter />) || (
|
{(overlay && <ViewCharacter />) || (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Section
|
<Section
|
||||||
title="Controls"
|
title="Settings and Preferences"
|
||||||
buttons={
|
buttons={
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Box color="label" inline>
|
<Box color="label" inline>
|
||||||
@@ -52,7 +52,6 @@ export const CharacterDirectory = (props, context) => {
|
|||||||
/>
|
/>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
}>
|
}>
|
||||||
<Section title="Settings and Preferences">
|
|
||||||
<LabeledList>
|
<LabeledList>
|
||||||
<LabeledList.Item label="Visibility">
|
<LabeledList.Item label="Visibility">
|
||||||
<Button
|
<Button
|
||||||
@@ -69,10 +68,18 @@ export const CharacterDirectory = (props, context) => {
|
|||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Gender">
|
<LabeledList.Item label="Gender">
|
||||||
<Button fluid content={personalGenderTag} onClick={() => act('setGenderTag')} />
|
<Button
|
||||||
|
fluid
|
||||||
|
content={personalGenderTag}
|
||||||
|
onClick={() => act('setTag', { overwrite_prefs: overwritePrefs })}
|
||||||
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Sexuality">
|
<LabeledList.Item label="Sexuality">
|
||||||
<Button fluid content={personalSexualityTag} onClick={() => act('setSexualityTag')} />
|
<Button
|
||||||
|
fluid
|
||||||
|
content={personalSexualityTag}
|
||||||
|
onClick={() => act('setTag', { overwrite_prefs: overwritePrefs })}
|
||||||
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="ERP Tag">
|
<LabeledList.Item label="ERP Tag">
|
||||||
<Button
|
<Button
|
||||||
@@ -82,7 +89,11 @@ export const CharacterDirectory = (props, context) => {
|
|||||||
/>
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Event Pref">
|
<LabeledList.Item label="Event Pref">
|
||||||
<Button fluid content={personalEventTag} onClick={() => act('setEventTag')} />
|
<Button
|
||||||
|
fluid
|
||||||
|
content={personalEventTag}
|
||||||
|
onClick={() => act('setTag', { overwrite_prefs: overwritePrefs })}
|
||||||
|
/>
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
<LabeledList.Item label="Advertisement">
|
<LabeledList.Item label="Advertisement">
|
||||||
<Button fluid content="Edit Ad" onClick={() => act('editAd', { overwrite_prefs: overwritePrefs })} />
|
<Button fluid content="Edit Ad" onClick={() => act('editAd', { overwrite_prefs: overwritePrefs })} />
|
||||||
|
|||||||
@@ -71,6 +71,7 @@
|
|||||||
#include "code\__defines\misc_ch.dm"
|
#include "code\__defines\misc_ch.dm"
|
||||||
#include "code\__defines\misc_vr.dm"
|
#include "code\__defines\misc_vr.dm"
|
||||||
#include "code\__defines\mobs.dm"
|
#include "code\__defines\mobs.dm"
|
||||||
|
#include "code\__defines\mobs_ch.dm"
|
||||||
#include "code\__defines\mobs_vr.dm"
|
#include "code\__defines\mobs_vr.dm"
|
||||||
#include "code\__defines\mobs_yw.dm"
|
#include "code\__defines\mobs_yw.dm"
|
||||||
#include "code\__defines\nifsoft.dm"
|
#include "code\__defines\nifsoft.dm"
|
||||||
@@ -4526,6 +4527,7 @@
|
|||||||
#include "modular_chomp\code\game\machinery\airconditioner_ch.dm"
|
#include "modular_chomp\code\game\machinery\airconditioner_ch.dm"
|
||||||
#include "modular_chomp\code\game\machinery\autolathe_armory.dm"
|
#include "modular_chomp\code\game\machinery\autolathe_armory.dm"
|
||||||
#include "modular_chomp\code\game\objects\items\clockwork\ratvarian_spear.dm"
|
#include "modular_chomp\code\game\objects\items\clockwork\ratvarian_spear.dm"
|
||||||
|
#include "modular_chomp\code\game\objects\structures\desert_planet_structures.dm"
|
||||||
#include "modular_chomp\code\game\objects\structures\loot_pile.dm"
|
#include "modular_chomp\code\game\objects\structures\loot_pile.dm"
|
||||||
#include "modular_chomp\code\game\objects\structures\watercloset_ch.dm"
|
#include "modular_chomp\code\game\objects\structures\watercloset_ch.dm"
|
||||||
#include "modular_chomp\code\game\objects\structures\crate_lockers\largecrate.dm"
|
#include "modular_chomp\code\game\objects\structures\crate_lockers\largecrate.dm"
|
||||||
@@ -4591,6 +4593,7 @@
|
|||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\gygax.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\occult\constructs\juggernaut.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\bigdragon.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\bigdragon.dm"
|
||||||
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\desert_planet_mobs.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\greatwolf.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\greatwolf.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\swoopie.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\swoopie.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\vore.dm"
|
#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\vore\vore.dm"
|
||||||
|
|||||||