diff --git a/code/__defines/mobs_ch.dm b/code/__defines/mobs_ch.dm new file mode 100644 index 0000000000..45114d7cbd --- /dev/null +++ b/code/__defines/mobs_ch.dm @@ -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 diff --git a/code/datums/mind_vr.dm b/code/datums/mind_vr.dm index d2ae478410..f6ba695438 100644 --- a/code/datums/mind_vr.dm +++ b/code/datums/mind_vr.dm @@ -4,6 +4,10 @@ var/directory_tag var/directory_erptag var/directory_ad + //CHOMPEdit additions + var/vantag_preference = VANTAG_NONE + var/directory_gendertag + var/directory_sexualitytag /mob/living/mind_initialize() . = ..() @@ -12,3 +16,7 @@ mind.directory_tag = client.prefs.directory_tag mind.directory_erptag = client.prefs.directory_erptag 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 diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index db61554bd1..53099410dc 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -132,15 +132,15 @@ qdel(src) /obj/effect/spider/eggcluster/small - spiders_min = 1 - spiders_max = 3 + spiders_min = 2 //CHOMP Edit + spiders_max = 6 //CHOMP Edit /obj/effect/spider/eggcluster/small/frost spider_type = /obj/effect/spider/spiderling/frost /obj/effect/spider/eggcluster/royal spiders_min = 2 - spiders_max = 5 + spiders_max = 6 //CHOMP Edit spider_type = /obj/effect/spider/spiderling/varied /obj/effect/spider/spiderling diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 88701319cd..30d032215f 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -88,8 +88,18 @@ /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) + //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) - 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) @@ -432,4 +442,4 @@ //Random colour tapes /obj/item/device/tape/random/New() - icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]" \ No newline at end of file + icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]" diff --git a/code/game/turfs/flooring/flooring_decals_ch.dm b/code/game/turfs/flooring/flooring_decals_ch.dm index 3d648ccb36..1021ae947b 100644 --- a/code/game/turfs/flooring/flooring_decals_ch.dm +++ b/code/game/turfs/flooring/flooring_decals_ch.dm @@ -10,4 +10,4 @@ icon_state = "wood_stairs2" /obj/effect/floor_decal/stairs/dark_stairs - icon_state = "dark_stairs" \ No newline at end of file + icon_state = "dark_stairs" diff --git a/code/game/turfs/flooring/flooring_decals_yw.dm b/code/game/turfs/flooring/flooring_decals_yw.dm index 75983e086f..2c948bb9b3 100644 --- a/code/game/turfs/flooring/flooring_decals_yw.dm +++ b/code/game/turfs/flooring/flooring_decals_yw.dm @@ -18,3 +18,4 @@ /obj/effect/floor_decal/snow/floor/pointy icon_state = "snowfloorpointy" + diff --git a/code/modules/client/verbs/character_directory.dm b/code/modules/client/verbs/character_directory.dm index ddea49806b..d4441af20b 100644 --- a/code/modules/client/verbs/character_directory.dm +++ b/code/modules/client/verbs/character_directory.dm @@ -34,9 +34,9 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) data["personalVisibility"] = user.mind.show_in_directory data["personalTag"] = user.mind.directory_tag || "Unset" data["personalErpTag"] = user.mind.directory_erptag || "Unset" - data["personalEventTag"] = vantag_choices_list[user.client.prefs.vantag_preference] //CHOMPEdit - data["personalGenderTag"] = user.client.prefs.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update - data["personalSexualityTag"] = user.client.prefs.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update + data["personalEventTag"] = vantag_choices_list[user.mind.vantag_preference] //CHOMPEdit + data["personalGenderTag"] = user.mind.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update + data["personalSexualityTag"] = user.mind.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update else if (user?.client?.prefs) data["personalVisibility"] = user.client.prefs.show_in_directory data["personalTag"] = user.client.prefs.directory_tag || "Unset" @@ -62,9 +62,9 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) var/species = null var/ooc_notes = null var/flavor_text = null - var/gendertag = C.prefs.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update - var/sexualitytag = C.prefs.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update - var/eventtag = vantag_choices_list[C.prefs.vantag_preference] //CHOMPEdit + var/gendertag = null // CHOMPStation Edit: Character Directory Update + var/sexualitytag = null // CHOMPStation Edit: Character Directory Update + var/eventtag = vantag_choices_list[VANTAG_NONE] //CHOMPEdit var/tag var/erptag var/character_ad @@ -72,10 +72,16 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) tag = C.mob.mind.directory_tag || "Unset" erptag = C.mob.mind.directory_erptag || "Unset" 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 tag = C.prefs.directory_tag || "Unset" erptag = C.prefs.directory_erptag || "Unset" 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 if(ishuman(C.mob)) @@ -176,19 +182,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) if(!new_tag) return 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 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) @@ -209,8 +202,17 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) if(isnull(new_ad)) return return set_for_mind_or_prefs(user, action, new_ad, can_set_prefs, can_set_mind) - //CHOMPEdit start - //CHOMPEdit begin + // 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 + 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") var/list/names_list = 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 if(!new_eventtag) return - usr?.client?.prefs?.vantag_preference = names_list[new_eventtag] - return TRUE - //CHOMPEdit end + return set_for_mind_or_prefs(user, action, names_list[new_eventtag], can_set_prefs, can_set_mind) + //CHOMPEdit end /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 @@ -253,3 +254,18 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) if (can_set_mind) user.mind.directory_ad = new_value 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 \ No newline at end of file diff --git a/code/modules/events/event_container_vr.dm b/code/modules/events/event_container_vr.dm index 6c1eea9d60..ecc47a09b1 100644 --- a/code/modules/events/event_container_vr.dm +++ b/code/modules/events/event_container_vr.dm @@ -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, "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, "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 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 @@ -94,6 +95,7 @@ // 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, "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, "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), @@ -116,12 +118,14 @@ available_events = list( 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, "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, "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, "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, "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, -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, "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)), ) add_disabled_events(list( @@ -129,7 +133,6 @@ //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, "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 diff --git a/code/modules/events/metroid_infestation.dm b/code/modules/events/metroid_infestation.dm index c23e14dd74..b0e74598b7 100644 --- a/code/modules/events/metroid_infestation.dm +++ b/code/modules/events/metroid_infestation.dm @@ -6,9 +6,12 @@ var/give_positions = 0 /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) - spawncount = rand(1 * severity, 2 * severity) + spawncount = rand(2 * severity, 4 * severity) 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. @@ -25,7 +28,15 @@ /datum/event/metroid_infestation/start() while((spawncount >= 1) && vents.len) 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 spawncount-- vents.Cut() diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index a5ca92b650..7d5d735903 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -6,8 +6,11 @@ /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) - 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 /datum/event/spider_infestation/announce() @@ -29,6 +32,6 @@ while((spawncount >= 1) && vents.len) 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 spawncount-- diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm index fb91b0cce7..de898f80a7 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm @@ -391,20 +391,23 @@ /datum/trait/negative/reduced_biocompat_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!" - cost = -1 + cost = -2 var_changes = list("chem_strength_heal" = 0.8) + can_take = ORGANICS /datum/trait/negative/reduced_biocompat 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!" cost = -4 var_changes = list("chem_strength_heal" = 0.6) + can_take = ORGANICS /datum/trait/negative/reduced_biocompat_extreme 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!" cost = -8 var_changes = list("chem_strength_heal" = 0.3) + can_take = ORGANICS // Rykkanote: Relocated these here as we're no longer a YW downstream. /datum/trait/negative/light_sensitivity diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm index e90b557d20..9103385489 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_ch.dm @@ -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 /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/shred_limb R.verbs |= /mob/living/silicon/robot/proc/rest_style - ..() \ No newline at end of file + ..() + +//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' \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index a8b2cb6194..a04907ae0d 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -72,8 +72,6 @@ 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["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["TraumaHound"] = /obj/item/weapon/robot_module/robot/medical/traumahound return 1 diff --git a/code/modules/mob/new_player/sprite_accessories_ear_ch.dm b/code/modules/mob/new_player/sprite_accessories_ear_ch.dm index 05533bcc76..0e37e8c9d5 100644 --- a/code/modules/mob/new_player/sprite_accessories_ear_ch.dm +++ b/code/modules/mob/new_player/sprite_accessories_ear_ch.dm @@ -14,6 +14,24 @@ do_colouration = 1 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 name = "VALE Model Ear Coloring" desc = "" diff --git a/code/modules/mob/new_player/sprite_accessories_extra_ch.dm b/code/modules/mob/new_player/sprite_accessories_extra_ch.dm index cb65a846f6..487f6d27aa 100644 --- a/code/modules/mob/new_player/sprite_accessories_extra_ch.dm +++ b/code/modules/mob/new_player/sprite_accessories_extra_ch.dm @@ -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 icon = 'icons/mob/human_races/markings_ch.dmi' @@ -149,65 +153,196 @@ color_blend_mode = ICON_MULTIPLY 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 - name = "Guilmon head" - icon_state = "guilmon_head" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_HEAD) + name = "Guilmon head" + icon_state = "guilmon_head" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) /datum/sprite_accessory/marking/ch/guilmonchest - name = "Guilmon Chest" - icon_state = "guilmon_chest" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_TORSO) + name = "Guilmon Chest" + icon_state = "guilmon_chest" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_TORSO) /datum/sprite_accessory/marking/ch/guilmonchestmarking - name = "Guilmon Chest Markings" - icon_state = "guilmon_marking" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_TORSO) + name = "Guilmon Chest Markings" + icon_state = "guilmon_marking" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_TORSO) /datum/sprite_accessory/marking/ch/guilmonarms - name = "Guilmon arms" - icon_state = "guilmon" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND) + name = "Guilmon arms" + icon_state = "guilmon" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_ARM,BP_L_ARM,BP_R_HAND,BP_L_HAND) /datum/sprite_accessory/marking/ch/guilmonRLeg - name = "Guilmon Right leg" - icon_state = "guilmon" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_R_LEG) + name = "Guilmon Right leg" + icon_state = "guilmon" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_LEG) /datum/sprite_accessory/marking/ch/guilmonLleg - name = "Guilmon Left leg" - icon_state = "guilmon" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_L_LEG) + name = "Guilmon Left leg" + icon_state = "guilmon" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_LEG) /datum/sprite_accessory/marking/ch/guilmondigiRleg1 - name = "Guilmon digigrade right leg 1" - icon_state = "guilmon_digitigrade_1" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_R_LEG) + name = "Guilmon digigrade right leg 1" + icon_state = "guilmon_digitigrade_1" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_LEG) /datum/sprite_accessory/marking/ch/guilmondigiLleg1 - name = "Guilmon digigrade left leg 1" - icon_state = "guilmon_digitigrade_1" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_L_LEG) + name = "Guilmon digigrade left leg 1" + icon_state = "guilmon_digitigrade_1" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_LEG) /datum/sprite_accessory/marking/ch/guilmondigiRleg2 - name = "Guilmon digigrade right leg 2" - icon_state = "guilmon_digitigrade_2" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_R_LEG) + name = "Guilmon digigrade right leg 2" + icon_state = "guilmon_digitigrade_2" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_R_LEG) /datum/sprite_accessory/marking/ch/guilmondigiLleg2 - name = "Guilmon digigrade left leg 2" - icon_state = "guilmon_digitigrade_2" - color_blend_mode = ICON_MULTIPLY - body_parts = list(BP_L_LEG) + name = "Guilmon digigrade left leg 2" + icon_state = "guilmon_digitigrade_2" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_LEG) /datum/sprite_accessory/tail/special/orca_tail name = "Orca Tail" @@ -332,6 +467,7 @@ //Digitigrade markings /datum/sprite_accessory/marking/digi icon = 'icons/mob/human_races/markings_digi_ch.dmi' + digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY /datum/sprite_accessory/marking/digi/fullleft name = "Digitigrade Full Left Leg(Only works with digitigrade legs)" diff --git a/code/modules/mob/new_player/sprite_accessories_tail_ch.dm b/code/modules/mob/new_player/sprite_accessories_tail_ch.dm index 8ffb4054c4..a1f1e1734b 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail_ch.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail_ch.dm @@ -22,6 +22,17 @@ icon = 'icons/mob/vore/tails_ch.dmi' icon_state = "zorgoia" 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 color_blend_mode = ICON_MULTIPLY @@ -144,17 +155,17 @@ extra_overlay = "bigringtail_markings" /datum/sprite_accessory/tail/longtail/desert_nightstalker - name = "Desert Nightstalker Tail (vwag)" - icon = 'icons/mob/vore/taurs_ch.dmi' - icon_state = "nightstalker_desert" - ani_state = "nightstalker_desert_w" - do_colouration = 0 // We're not coloring this, these are pre-colored - color_blend_mode = ICON_ADD + name = "Desert Nightstalker Tail (vwag)" + icon = 'icons/mob/vore/taurs_ch.dmi' + icon_state = "nightstalker_desert" + ani_state = "nightstalker_desert_w" + do_colouration = 0 // We're not coloring this, these are pre-colored + color_blend_mode = ICON_ADD /datum/sprite_accessory/tail/longtail/diamondback_nightstalker - name = "Diamondback Nightstalker Tail (dual-color, vwag)" - icon = 'icons/mob/vore/taurs_ch.dmi' - icon_state = "nightstalker_diamondback" - ani_state = "nightstalker_diamondback_w" - extra_overlay = "nightstalker_diamondback_markings" - extra_overlay_w = "nightstalker_diamondback_markings_w" \ No newline at end of file + name = "Diamondback Nightstalker Tail (dual-color, vwag)" + icon = 'icons/mob/vore/taurs_ch.dmi' + icon_state = "nightstalker_diamondback" + ani_state = "nightstalker_diamondback_w" + extra_overlay = "nightstalker_diamondback_markings" + extra_overlay_w = "nightstalker_diamondback_markings_w" diff --git a/code/modules/player_tips_vr/player_tips_controller_vr.dm b/code/modules/player_tips_vr/player_tips_controller_vr.dm index fc4ffbcf2b..72e756b886 100644 --- a/code/modules/player_tips_vr/player_tips_controller_vr.dm +++ b/code/modules/player_tips_vr/player_tips_controller_vr.dm @@ -30,6 +30,7 @@ Controlled by the player_tips subsystem under code/controllers/subsystems/player to_chat(M, SPAN_NOTICE("[tip]")) last_tip = tip + last_tip_time = world.time tip_delay = rand(min_tip_delay, max_tip_delay) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index c2fbbad018..9c9db605c7 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -261,6 +261,9 @@ var/alert_msg = " Integrity at [integrity]%" 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 return if(damage > emergency_point) @@ -450,6 +453,10 @@ candidate_alarm.causality.start() 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 return final_countdown = TRUE diff --git a/icons/mob/human_races/markings_ch.dmi b/icons/mob/human_races/markings_ch.dmi index 267bcb7bf9..f2600bce01 100644 Binary files a/icons/mob/human_races/markings_ch.dmi and b/icons/mob/human_races/markings_ch.dmi differ diff --git a/icons/mob/human_races/markings_digi_ch.dmi b/icons/mob/human_races/markings_digi_ch.dmi index dbe633fac4..39ccb6a945 100644 Binary files a/icons/mob/human_races/markings_digi_ch.dmi and b/icons/mob/human_races/markings_digi_ch.dmi differ diff --git a/icons/mob/vore/ears_ch.dmi b/icons/mob/vore/ears_ch.dmi index 08497fe609..ff8ff0b410 100644 Binary files a/icons/mob/vore/ears_ch.dmi and b/icons/mob/vore/ears_ch.dmi differ diff --git a/icons/mob/vore/tails_ch.dmi b/icons/mob/vore/tails_ch.dmi index 4d16a9e2dd..7cd1d55711 100644 Binary files a/icons/mob/vore/tails_ch.dmi and b/icons/mob/vore/tails_ch.dmi differ diff --git a/modular_chomp/code/game/objects/structures/desert_planet_structures.dm b/modular_chomp/code/game/objects/structures/desert_planet_structures.dm new file mode 100644 index 0000000000..8c7eafa62f --- /dev/null +++ b/modular_chomp/code/game/objects/structures/desert_planet_structures.dm @@ -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 diff --git a/modular_chomp/code/game/turfs/simulated/outdoors/desert_planet.dm b/modular_chomp/code/game/turfs/simulated/outdoors/desert_planet.dm index 58f1b1eea9..7b08e4eb6f 100644 --- a/modular_chomp/code/game/turfs/simulated/outdoors/desert_planet.dm +++ b/modular_chomp/code/game/turfs/simulated/outdoors/desert_planet.dm @@ -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 name = "sand" - desc = "Sandy, taste salty and gritty." - icon = 'modular_chomp/icons/turf/desert_planet.dmi' + desc = "Salty and gritty." + icon_state = "sand0" edge_blending_priority = 2 - turf_layers = list(/turf/simulated/floor/outdoors/rocks) - initial_flooring = /decl/flooring/sand - can_dig = false -*/ + initial_flooring = /decl/flooring/desert_planet/sand -/turf/simulated/floor/outdoors/desert_planet/sand - name = "sand" - desc = "Salty and gritty." - 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) +// 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. +/turf/simulated/floor/outdoors/desert_planet/sand/get_edge_icon_state() + return "sand" -/* Testing -/decl/flooring/outdoors/sand - name = "sand" - 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/desert_planet/sand/Initialize(mapload) + . = ..() + icon_state = "sand[rand(0,2)]" -/turf/simulated/floor/outdoors/sand/Initialize(mapload) - var/possiblesands = list( - "ironsand1" = 50, - "ironsand2" = 1, - "ironsand3" = 1, - "ironsand4" = 1, - "ironsand5" = 1, - "ironsand6" = 1, - "ironsand7" = 1, - "ironsand8" = 1, - "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, "You feel an overwhelming wave of warmth from entering \the [src]!") - AM.water_act(5) - ..() - - -*/ +/turf/simulated/floor/outdoors/desert_planet/sand/attackby(var/obj/item/W, var/mob/user) + if(istype(W, /obj/item/weapon/shovel)) + to_chat(user, "You begin to remove \the [src] with your [W].") + if(do_after(user, 4 SECONDS * W.toolspeed)) + to_chat(user, "\The [src] has been dug up, and now lies in a pile nearby.") + icon_state = "sand_dug" + new /obj/item/weapon/ore/glass (src) + else + to_chat(user, "You decide to not finish removing \the [src].") + else + ..() /turf/simulated/floor/outdoors/desert_planet/deep_sand name = "sand" - desc = "Salty and gritty." - icon = 'modular_chomp/icons/turf/desert_planet.dmi' - icon_state = "deep_sand" - edge_blending_priority = 2 - turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand) + desc = "Really gets everywhere." + icon_state = "deep_sand0" + edge_blending_priority = 1 + movement_cost = 3 + 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 name = "grass" desc = "Lively green grass, soft to walk on." - icon = 'modular_chomp/icons/turf/desert_planet.dmi' icon_state = "grass" - edge_blending_priority = 6 - turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand) + edge_blending_priority = 5 + initial_flooring = /decl/flooring/desert_planet/grass /turf/simulated/floor/outdoors/desert_planet/deep_grass name = "dense grass" 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" - edge_blending_priority = 7 - turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand) + edge_blending_priority = 6 + initial_flooring = /decl/flooring/desert_planet/deep_grass /turf/simulated/floor/outdoors/desert_planet/gravel name = "gravel" desc = "Mix of dirt and sand, it crumbles in your hand." - icon = 'modular_chomp/icons/turf/desert_planet.dmi' icon_state = "gravel" - edge_blending_priority = 5 - turf_layers = list(/turf/simulated/floor/outdoors/desert_planet/sand) + edge_blending_priority = 3 + initial_flooring = /decl/flooring/desert_planet/gravel /turf/simulated/floor/outdoors/desert_planet/mud name = "mud" desc = "Squishy damp dirt, smells muddy." - icon = 'modular_chomp/icons/turf/desert_planet.dmi' icon_state = "mud" 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, "You don't have the dexterity to do this!") + 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, "You start [P.drill_verb].") + + if(do_after(user,P.digspeed)) + + to_chat(user, "You finish [P.drill_verb] \the [src].") + 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 name = "water" desc = "Clear cool water, looks potable." - icon = 'modular_chomp/icons/turf/desert_planet.dmi' + icon = 'icons/turf/desert_planet.dmi' 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/simulated/floor/outdoors/desert_planet/deep_water name = "deep water" 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" - 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) + + //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. +*/ diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/vore/desert_planet_mobs.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/vore/desert_planet_mobs.dm new file mode 100644 index 0000000000..fb6f3a0e00 --- /dev/null +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/vore/desert_planet_mobs.dm @@ -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 diff --git a/modular_chomp/code/modules/organs/organ_icon.dm b/modular_chomp/code/modules/organs/organ_icon.dm index 339a45a4f6..6088084a06 100644 --- a/modular_chomp/code/modules/organs/organ_icon.dm +++ b/modular_chomp/code/modules/organs/organ_icon.dm @@ -4,10 +4,11 @@ // 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 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) - 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) - 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 @@ -57,13 +58,15 @@ if((!istype(src,/obj/item/organ/external/head) && !(force_icon && !robotic_digi)) || (model && owner && owner.synth_markings)) for(var/M in markings) var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"] - var/isdigitype = istype(mark_style,/datum/sprite_accessory/marking/digi) - if(!(digitigrade ^ isdigitype)) //Equivalent to XNOR; this code will only run if either both digitigrade and isdigitype are true, or if both are false. - var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit - 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"]]" + var/isdigitype = mark_style.digitigrade_acceptance + if(check_digi) + if (!(isdigitype & (digitigrade ? MARKING_DIGITIGRADE_ONLY : MARKING_NONDIGI_ONLY))) //checks flags based on which digitigrade type the limb is + continue + var/icon/mark_s = new/icon("icon" = digitigrade ? mark_style.digitigrade_icon : mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") + mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode) // VOREStation edit + 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) var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]" if(!limb_icon_cache[cache_key]) diff --git a/modular_chomp/code/modules/player_tips/player_tips_list.dm b/modular_chomp/code/modules/player_tips/player_tips_list.dm index 5cf9050953..7c5e437d51 100644 --- a/modular_chomp/code/modules/player_tips/player_tips_list.dm +++ b/modular_chomp/code/modules/player_tips/player_tips_list.dm @@ -21,7 +21,7 @@ When editing the list, please try and keep similar probabilities near each other switch(choice) 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( 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!", @@ -36,7 +36,7 @@ When editing the list, please try and keep similar probabilities near each other 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( 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. ", @@ -51,7 +51,7 @@ When editing the list, please try and keep similar probabilities near each other ) 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( 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.", @@ -64,7 +64,7 @@ When editing the list, please try and keep similar probabilities near each other ) 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( 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", diff --git a/modular_chomp/icons/mob/widerobot_exp_ch.dmi b/modular_chomp/icons/mob/widerobot_exp_ch.dmi new file mode 100644 index 0000000000..ff8d161032 Binary files /dev/null and b/modular_chomp/icons/mob/widerobot_exp_ch.dmi differ diff --git a/modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi b/modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi new file mode 100644 index 0000000000..2aa297b86c Binary files /dev/null and b/modular_chomp/icons/obj/desert_planet/desert_planet_160x160.dmi differ diff --git a/modular_chomp/icons/obj/desert_planet/desert_plants.dmi b/modular_chomp/icons/obj/desert_planet/desert_plants.dmi new file mode 100644 index 0000000000..3eb6d1c042 Binary files /dev/null and b/modular_chomp/icons/obj/desert_planet/desert_plants.dmi differ diff --git a/modular_chomp/icons/obj/desert_planet/desert_props_64x64.dmi b/modular_chomp/icons/obj/desert_planet/desert_props_64x64.dmi new file mode 100644 index 0000000000..766e457d24 Binary files /dev/null and b/modular_chomp/icons/obj/desert_planet/desert_props_64x64.dmi differ diff --git a/modular_chomp/icons/obj/desert_planet/desert_rocks.dmi b/modular_chomp/icons/obj/desert_planet/desert_rocks.dmi new file mode 100644 index 0000000000..3da476f9dd Binary files /dev/null and b/modular_chomp/icons/obj/desert_planet/desert_rocks.dmi differ diff --git a/modular_chomp/icons/turf/desert_planet.dmi b/modular_chomp/icons/turf/desert_planet.dmi deleted file mode 100644 index c9b6d3a7b5..0000000000 Binary files a/modular_chomp/icons/turf/desert_planet.dmi and /dev/null differ diff --git a/modular_chomp/icons/turf/desert_tiles.dmi b/modular_chomp/icons/turf/desert_tiles.dmi new file mode 100644 index 0000000000..5a4d197acc Binary files /dev/null and b/modular_chomp/icons/turf/desert_tiles.dmi differ diff --git a/modular_chomp/icons/turf/outdoors_edge.dmi b/modular_chomp/icons/turf/outdoors_edge.dmi index c9b6d3a7b5..f94dbd8ee0 100644 Binary files a/modular_chomp/icons/turf/outdoors_edge.dmi and b/modular_chomp/icons/turf/outdoors_edge.dmi differ diff --git a/tgui/packages/tgui/interfaces/CharacterDirectory.js b/tgui/packages/tgui/interfaces/CharacterDirectory.js index 8e37c78b37..0749816aa7 100644 --- a/tgui/packages/tgui/interfaces/CharacterDirectory.js +++ b/tgui/packages/tgui/interfaces/CharacterDirectory.js @@ -38,7 +38,7 @@ export const CharacterDirectory = (props, context) => { {(overlay && ) || (
@@ -52,7 +52,6 @@ export const CharacterDirectory = (props, context) => { /> }> -