diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 93c625b238..8221deeadb 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -74460,9 +74460,6 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) -"sKV" = ( -/turf/open/space/basic, -/area/command/heads_quarters/captain) "sLs" = ( /obj/effect/decal/cleanable/cobweb, /obj/machinery/field/generator, @@ -122066,7 +122063,7 @@ oRp oRp aaa aai -sKV +aaa aaa aaa aaa @@ -130637,7 +130634,7 @@ aaf aaf aaa aaa -sKV +aaa aaa aaa aaa diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index a1b7a74384..d1fff25dae 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -89,6 +89,7 @@ //Generic living #define ui_living_pull "EAST-1:28,CENTER-2:15" #define ui_living_health "EAST-1:28,CENTER:15" +#define ui_living_healthdoll "EAST-1:28,CENTER-1:15" //Monkeys #define ui_monkey_head "CENTER-5:13,SOUTH:5" diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 34fd90f4f0..b27abad841 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -637,6 +637,11 @@ name = "health doll" screen_loc = ui_healthdoll +/obj/screen/healthdoll/living + icon_state = "fullhealth0" + screen_loc = ui_living_healthdoll + var/filtered = FALSE //so we don't repeatedly create the mask of the mob every update + /obj/screen/mood name = "mood" icon_state = "mood5" diff --git a/code/_onclick/hud/simple_animal.dm b/code/_onclick/hud/simple_animal.dm new file mode 100644 index 0000000000..ef46c0d66e --- /dev/null +++ b/code/_onclick/hud/simple_animal.dm @@ -0,0 +1,15 @@ +/datum/hud/living/simple_animal + ui_style = 'icons/mob/screen_gen.dmi' +/datum/hud/living/simple_animal/New(mob/living/owner) + ..() + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon() + pull_icon.screen_loc = ui_living_pull + pull_icon.hud = src + static_inventory += pull_icon + + //mob health doll! assumes whatever sprite the mob is + healthdoll = new /obj/screen/healthdoll/living() + healthdoll.hud = src + infodisplay += healthdoll diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index ba3d8106ef..b92b659183 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -164,14 +164,12 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/proc/remove_blacklisted_quirks() var/mob/living/L = owner.current if(istype(L)) - var/list/my_quirks = L.client?.prefs.all_quirks.Copy() - SSquirks.filter_quirks(my_quirks,blacklisted_quirks) for(var/q in L.roundstart_quirks) var/datum/quirk/Q = q - if(!(SSquirks.quirk_name_by_path(Q.type) in my_quirks)) + if(Q.type in blacklisted_quirks) if(initial(Q.antag_removal_text)) to_chat(L, "[initial(Q.antag_removal_text)]") - L.remove_quirk(Q.type) + qdel(Q) //Returns the team antagonist belongs to if any. /datum/antagonist/proc/get_team() diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index a558abbfe8..39c8c2df07 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -67,6 +67,7 @@ H.dna.species.punchdamagehigh -= enhancement H.dna.species.punchdamagelow -= enhancement H.dna.species.punchwoundbonus -= wound_enhancement + H.dna?.species?.attack_sound_override = null if(!silent) to_chat(user, "With [src] off of your arms, you feel less ready to punch things.") @@ -223,6 +224,46 @@ parry_cooldown = 0 parry_failed_clickcd_duration = 0 +/obj/item/clothing/gloves/fingerless/pugilist/mauler + name = "mauler gauntlets" + desc = "Plastitanium gauntlets coated in a thick nano-weave carbon material and implanted with nanite injectors that boost the wielder's strength six-fold." + icon_state = "mauler_gauntlets" + item_state = "mauler_gauntlets" + transfer_prints = FALSE + body_parts_covered = ARMS|HANDS + cold_protection = ARMS|HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + armor = list("melee" = 30, "bullet" = 30, "laser" = 10, "energy" = 10, "bomb" = 55, "bio" = 15, "rad" = 15, "fire" = 80, "acid" = 50) + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 80 + enhancement = 12 // same as the changeling gauntlets but without changeling utility + wound_enhancement = 12 + silent = TRUE + inherited_trait = TRAIT_CHUNKYFINGERS // your fingers are fat because the gloves are + secondary_trait = TRAIT_MAULER // commit table slam + +/obj/item/clothing/gloves/fingerless/pugilist/mauler/equipped(mob/user, slot) + . = ..() + if(slot == SLOT_GLOVES) + use_mauls(user, TRUE) + wornonce = TRUE + +/obj/item/clothing/gloves/fingerless/pugilist/mauler/dropped(mob/user) + . = ..() + if(wornonce) + use_mauls(user, FALSE) + wornonce = FALSE + +/obj/item/clothing/gloves/fingerless/pugilist/mauler/proc/use_mauls(mob/user, maul) + if(maul) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.dna?.species?.attack_sound_override = 'sound/weapons/mauler_punch.ogg' + if(silent) + to_chat(H, "You feel prickles around your wrists as [src] cling to them - strength courses through your veins!") + /obj/item/clothing/gloves/botanic_leather name = "botanist's leather gloves" desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." @@ -253,7 +294,6 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50) strip_mod = 1.5 - /obj/item/clothing/gloves/bracer name = "bone bracers" desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index 8fb735e10a..b8fab56159 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -162,12 +162,19 @@ icon = 'modular_citadel/icons/mob/mam_ears.dmi' /datum/sprite_accessory/ears/human/rabbit - name = "Rabbit" + name = "Rabbit (Lop-eared)" icon_state = "rabbit" color_src = MATRIXED matrixed_sections = MATRIX_RED_GREEN icon = 'modular_citadel/icons/mob/mam_ears.dmi' +/datum/sprite_accessory/ears/human/rabbitalt + name = "Rabbit (Straight-eared)" + icon_state = "rabbitalt" + color_src = MATRIXED + matrixed_sections = MATRIX_ALL + icon = 'modular_citadel/icons/mob/mam_ears.dmi' + /datum/sprite_accessory/ears/human/pede name = "Scolipede" icon_state = "pede" @@ -296,7 +303,7 @@ /datum/sprite_accessory/ears/mam_ears/deer name = "Deer" icon_state = "deer" - color_src = MUTCOLORS3 + matrixed_sections = MATRIX_RED_GREEN /datum/sprite_accessory/ears/mam_ears/eevee name = "Eevee" @@ -359,10 +366,15 @@ matrixed_sections = MATRIX_RED_GREEN /datum/sprite_accessory/ears/mam_ears/rabbit - name = "Rabbit" + name = "Rabbit (Lop-eared)" icon_state = "rabbit" matrixed_sections = MATRIX_RED_GREEN +/datum/sprite_accessory/ears/mam_ears/rabbitalt + name = "Rabbit (Straight-eared)" + icon_state = "rabbitalt" + matrixed_sections = MATRIX_ALL + /datum/sprite_accessory/ears/mam_ears/pede name = "Scolipede" icon_state = "pede" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index a4bd0afdcb..88dda923a0 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -17,6 +17,10 @@ name = "Adhara" icon_state = "hair_adhara" +/datum/sprite_accessory/hair/africanpigtails + name = "African Pig Tails" + icon_state = "hair_africanpigtails" + /datum/sprite_accessory/hair/afro name = "Afro" icon_state = "hair_afro" @@ -25,10 +29,26 @@ name = "Afro 2" icon_state = "hair_afro2" +/datum/sprite_accessory/hair/afro2alt + name = "Afro 2 (Alt)" + icon_state = "hair_afro2alt" + /datum/sprite_accessory/hair/afro_large name = "Afro (Large)" icon_state = "hair_bigafro" +/datum/sprite_accessory/hair/afropuffdouble + name = "Afropuff (Double)" + icon_state = "hair_afropuffdouble" + +/datum/sprite_accessory/hair/afropuffleft + name = "Afropuff (Left)" + icon_state = "hair_afropuffleft" + +/datum/sprite_accessory/hair/afropuffright + name = "Afropuff (Right)" + icon_state = "hair_afropuffright" + /datum/sprite_accessory/hair/antenna name = "Ahoge" icon_state = "hair_antenna" @@ -41,10 +61,18 @@ name = "Anita" icon_state = "hair_anita" +/datum/sprite_accessory/hair/astolfo + name = "Astolfo" + icon_state = "hair_astolfo" + /datum/sprite_accessory/hair/balding name = "Balding Hair" icon_state = "hair_e" +/datum/sprite_accessory/hair/baum + name = "Baum" + icon_state = "hair_baum" + /datum/sprite_accessory/hair/bedhead name = "Bedhead" icon_state = "hair_bedhead" @@ -85,6 +113,14 @@ name = "Belle" icon_state = "hair_belle" +/datum/sprite_accessory/hair/bluntbangs + name = "Bluntbangs" + icon_state = "hair_bluntbangs" + +/datum/sprite_accessory/hair/bluntbangsalt + name = "Bluntbangs (Alt)" + icon_state = "hair_bluntbangsalt" + /datum/sprite_accessory/hair/bob name = "Bob Hair" icon_state = "hair_bob" @@ -109,6 +145,10 @@ name = "Bobcut (Alt)" icon_state = "hair_bobcutalt" +/datum/sprite_accessory/hair/bobcutalt2 + name = "Bobcut (Alt) 2" + icon_state = "hair_bobcutalt2" + /datum/sprite_accessory/hair/boddicker name = "Boddicker" icon_state = "hair_boddicker" @@ -205,6 +245,14 @@ name = "CIA" icon_state = "hair_cia" +/datum/sprite_accessory/hair/combedback + name = "Combed Back" + icon_state = "hair_combedback" + +/datum/sprite_accessory/hair/combedbob + name = "Combed Bob" + icon_state = "hair_combedbob" + /datum/sprite_accessory/hair/combover name = "Combover" icon_state = "hair_combover" @@ -233,6 +281,14 @@ name = "Cornrow Tail" icon_state = "hair_cornrowtail" +/datum/sprite_accessory/hair/cotton + name = "Cotton" + icon_state = "hair_cotton" + +/datum/sprite_accessory/hair/cottonalt + name = "Cotton (Alt)" + icon_state = "hair_cottonalt" + /datum/sprite_accessory/hair/country name = "Country" icon_state = "hair_country" @@ -261,6 +317,10 @@ name = "Devil Lock" icon_state = "hair_devillock" +/datum/sprite_accessory/hair/diagonalbangs + name = "Diagonal Bangs" + icon_state = "hair_diagonalbangs" + /datum/sprite_accessory/hair/dreadlocks name = "Dreadlocks" icon_state = "hair_dreads" @@ -337,10 +397,22 @@ name = "Fluffy" icon_state = "hair_fluffy" +/datum/sprite_accessory/hair/fortuneteller + name = "Fortune Teller" + icon_state = "hair_fortuneteller" + /datum/sprite_accessory/hair/fringetail name = "Fringe Tail" icon_state = "hair_fringetail" +/datum/sprite_accessory/hair/froofy + name = "Froofy" + icon_state = "hair_froofy" + +/datum/sprite_accessory/hair/geisha + name = "Geisha" + icon_state = "hair_geisha" + /datum/sprite_accessory/hair/gelled name = "Gelled Back" icon_state = "hair_gelled" @@ -349,6 +421,26 @@ name = "Gentle" icon_state = "hair_gentle" +/datum/sprite_accessory/hair/glammetal + name = "Glam Metal" + icon_state = "hair_glammetal" + +/datum/sprite_accessory/hair/gloomy + name = "Gloomy" + icon_state = "hair_gloomy" + +/datum/sprite_accessory/hair/gloomylong + name = "Gloomy (Long)" + icon_state = "hair_gloomylong" + +/datum/sprite_accessory/hair/hajime + name = "Hajime" + icon_state = "hair_hajime" + +/datum/sprite_accessory/hair/hajimealt + name = "Hajime (Alt)" + icon_state = "hair_hajimealt" + /datum/sprite_accessory/hair/halfbang name = "Half-banged Hair" icon_state = "hair_halfbang" @@ -365,6 +457,10 @@ name = "Half-shaved Hair" icon_state = "hair_halfshaved" +/datum/sprite_accessory/hair/harold + name = "Harold" + icon_state = "hair_harold" + /datum/sprite_accessory/hair/hedgehog name = "Hedgehog Hair" icon_state = "hair_hedgehog" @@ -393,6 +489,10 @@ name = "Hitop" icon_state = "hair_hitop" +/datum/sprite_accessory/hair/inari + name = "Inari" + icon_state = "hair_inari" + /datum/sprite_accessory/hair/inkling name = "Inkling" icon_state = "hair_inkling" @@ -421,14 +521,18 @@ name = "Keanu" icon_state = "hair_keanu" -/datum/sprite_accessory/hair/kusangi - name = "Kusanagi" - icon_state = "hair_kusanagi" +/datum/sprite_accessory/hair/kisaragi + name = "Kisaragi" + icon_state = "hair_kisaragi" /datum/sprite_accessory/hair/kleeia name = "Kleeia" icon_state = "hair_kleeia" +/datum/sprite_accessory/hair/kusangi + name = "Kusanagi" + icon_state = "hair_kusanagi" + /datum/sprite_accessory/hair/long name = "Long Hair 1" icon_state = "hair_long" @@ -449,6 +553,10 @@ name = "Long Over Eye" icon_state = "hair_longovereye" +/datum/sprite_accessory/hair/long_over_eyealt + name = "Long Over Eye (Alt)" + icon_state = "hair_longovereyealt" + /datum/sprite_accessory/hair/longbangs name = "Long Bangs" icon_state = "hair_lbangs" @@ -489,10 +597,6 @@ name = "Mohawk" icon_state = "hair_d" -/datum/sprite_accessory/hair/newyou - name = "New You" - icon_state = "hair_newyou" - /datum/sprite_accessory/hair/reversemohawk name = "Mohawk (Reverse)" icon_state = "hair_reversemohawk" @@ -509,6 +613,10 @@ name = "Mulder" icon_state = "hair_mulder" +/datum/sprite_accessory/hair/newyou + name = "New You" + icon_state = "hair_newyou" + /datum/sprite_accessory/hair/nia name = "Nia" icon_state = "hair_nia" @@ -579,10 +687,18 @@ name = "Pompadour (Big)" icon_state = "hair_bigpompadour" +/datum/sprite_accessory/hair/bigpompadouralt + name = "Pompadour (Big) (Alt)" + icon_state = "hair_bigpompadouralt" + /datum/sprite_accessory/hair/ponytail1 name = "Ponytail" icon_state = "hair_ponytail" +/datum/sprite_accessory/hair/ponytail1alt + name = "Ponytail (Alt)" + icon_state = "hair_ponytailalt" + /datum/sprite_accessory/hair/ponytail2 name = "Ponytail 2" icon_state = "hair_ponytail2" @@ -591,14 +707,26 @@ name = "Ponytail 3" icon_state = "hair_ponytail3" +/datum/sprite_accessory/hair/ponytail3alt + name = "Ponytail 3 (Alt)" + icon_state = "hair_ponytail3alt" + /datum/sprite_accessory/hair/ponytail4 name = "Ponytail 4" icon_state = "hair_ponytail4" +/datum/sprite_accessory/hair/ponytail4alt + name = "Ponytail 4 (Alt)" + icon_state = "hair_ponytail4alt" + /datum/sprite_accessory/hair/ponytail5 name = "Ponytail 5" icon_state = "hair_ponytail5" +/datum/sprite_accessory/hair/ponytail6 + name = "Ponytail 6" + icon_state = "hair_ponytail6" + /datum/sprite_accessory/hair/highponytail name = "Ponytail (High)" icon_state = "hair_highponytail" @@ -623,6 +751,10 @@ name = "Ponytail (Side) 4" icon_state = "hair_sidetail4" +/datum/sprite_accessory/hair/sidetail5 + name = "Ponytail (Side) 5" + icon_state = "hair_sidetail5" + /datum/sprite_accessory/hair/sharptail name = "Ponytail (Sharp)" icon_state = "hair_sharptail" @@ -639,10 +771,18 @@ name = "Poofy 2" icon_state = "hair_poofy2" +/datum/sprite_accessory/hair/quadcurls + name = "Quad Curls" + icon_state = "hair_quadcurls" + /datum/sprite_accessory/hair/quiff name = "Quiff" icon_state = "hair_quiff" +/datum/sprite_accessory/hair/rockstar + name = "Rockstar" + icon_state = "hair_rockstar" + /datum/sprite_accessory/hair/ronin name = "Ronin" icon_state = "hair_ronin" @@ -759,6 +899,10 @@ name = "Slightly Long Hair" icon_state = "hair_protagonist" +/datum/sprite_accessory/hair/slightlymessy + name = "Slightly Messy Hair" + icon_state = "hair_slightlymessy" + /datum/sprite_accessory/hair/spiky name = "Spiky" icon_state = "hair_spikey" @@ -771,6 +915,26 @@ name = "Spiky 3" icon_state = "hair_spiky2" +/datum/sprite_accessory/hair/slimedroplet + name = "Slime Droplet" + icon_state = "hair_slimedroplet" + +/datum/sprite_accessory/hair/slimedropletalt + name = "Slime Droplet (Alt)" + icon_state = "hair_slimedropletalt" + +/datum/sprite_accessory/hair/slimespikes + name = "Slime Spikes" + icon_state = "hair_slimespikes" + +/datum/sprite_accessory/hair/slimetendrils + name = "Slime Tendrils" + icon_state = "hair_slimetendrils" + +/datum/sprite_accessory/hair/slimetendrilsalt + name = "Slime Tendrils (Alt)" + icon_state = "hair_slimetendrilsalt" + /datum/sprite_accessory/hair/supernova name = "Supernova" icon_state = "hair_supernova" @@ -851,6 +1015,10 @@ name = "Very Long Hair 2" icon_state = "hair_longest" +/datum/sprite_accessory/hair/longestalt + name = "Very Long Hair 2 (Alt)" + icon_state = "hair_longestalt" + /datum/sprite_accessory/hair/longest2 name = "Very Long Over Eye" icon_state = "hair_longest2" @@ -886,3 +1054,7 @@ /datum/sprite_accessory/hair/ziegler name = "Ziegler" icon_state = "hair_ziegler" + +/datum/sprite_accessory/hair/zone + name = "Zone" + icon_state = "hair_zone" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 1aa3749589..3f456a9b43 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -149,6 +149,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /// var/sound/attack_sound = 'sound/weapons/punch1.ogg' var/sound/miss_sound = 'sound/weapons/punchmiss.ogg' + var/attack_sound_override = null var/list/mob/living/ignored_by = list() // list of mobs that will ignore this species //Breathing! @@ -569,12 +570,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/remove_blacklisted_quirks(mob/living/carbon/C) var/mob/living/L = C.mind?.current if(istype(L)) - var/list/my_quirks = L.client?.prefs.all_quirks.Copy() - SSquirks.filter_quirks(my_quirks, blacklisted_quirks) for(var/q in L.roundstart_quirks) var/datum/quirk/Q = q - if(!(SSquirks.quirk_name_by_path(Q.type) in my_quirks)) - L.remove_quirk(Q.type) + if(Q.type in blacklisted_quirks) + qdel(Q) removed_quirks += Q.type // restore any quirks that we removed @@ -1615,7 +1614,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/armor_block = target.run_armor_check(affecting, "melee") - playsound(target.loc, user.dna.species.attack_sound, 25, 1, -1) + playsound(target.loc, user.dna.species.attack_sound_override || attack_sound, 25, 1, -1) target.visible_message("[user] [atk_verb]ed [target]!", \ "[user] [atk_verb]ed you!", null, COMBAT_MESSAGE_RANGE, null, \ user, "You [atk_verb]ed [target]!") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6aaa2cca87..ae716efc71 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -542,8 +542,48 @@ update_stat() med_hud_set_health() med_hud_set_status() + update_health_hud() -//proc used to ressuscitate a mob +/mob/living/update_health_hud() + var/severity = 0 + var/healthpercent = (health/maxHealth) * 100 + if(hud_used?.healthdoll) //to really put you in the boots of a simplemob + var/obj/screen/healthdoll/living/livingdoll = hud_used.healthdoll + switch(healthpercent) + if(100 to INFINITY) + livingdoll.icon_state = "living0" + if(80 to 100) + livingdoll.icon_state = "living1" + severity = 1 + if(60 to 80) + livingdoll.icon_state = "living2" + severity = 2 + if(40 to 60) + livingdoll.icon_state = "living3" + severity = 3 + if(20 to 40) + livingdoll.icon_state = "living4" + severity = 4 + if(1 to 20) + livingdoll.icon_state = "living5" + severity = 5 + else + livingdoll.icon_state = "living6" + severity = 6 + if(!livingdoll.filtered) + livingdoll.filtered = TRUE + var/icon/mob_mask = icon(icon, icon_state) + if(mob_mask.Height() > world.icon_size || mob_mask.Width() > world.icon_size) + var/health_doll_icon_state = health_doll_icon ? health_doll_icon : "megasprite" + mob_mask = icon('icons/mob/screen_gen.dmi', health_doll_icon_state) //swap to something generic if they have no special doll + UNLINT(livingdoll.filters += filter(type="alpha", icon = mob_mask)) + livingdoll.filters += filter(type="drop_shadow", size = -1) + if(severity > 0) + overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity) + else + clear_fullscreen("brute") + +//Proc used to resuscitate a mob, for full_heal see fully_heal() /mob/living/proc/revive(full_heal = FALSE, admin_revive = FALSE) SEND_SIGNAL(src, COMSIG_LIVING_REVIVE, full_heal, admin_revive) if(full_heal) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 386f1174e1..f5919f389c 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -94,6 +94,7 @@ var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob. var/bubble_icon = "default" //what icon the mob uses for speechbubbles + var/health_doll_icon //if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi var/last_bumped = 0 var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666) diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index c0a4822b6d..57ddbe6290 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -149,6 +149,7 @@ icon_state = "alienq" icon_living = "alienq" icon_dead = "alienq_dead" + health_doll_icon = "alienq" bubble_icon = "alienroyal" move_to_delay = 4 maxHealth = 400 diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 51a646f668..8388d6501a 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -73,6 +73,7 @@ icon_living = "megacarp" icon_dead = "megacarp_dead" icon_gib = "megacarp_gib" + health_doll_icon = "megacarp" regen_amount = 6 maxHealth = 30 diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index ec0b7acd07..67cecd3832 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -9,6 +9,7 @@ icon_state = "crawling" icon_living = "crawling" icon_dead = "dead" + health_doll_icon = "crawling" mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 80 maxHealth = 220 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 61f1fe0c9d..a60c5504e6 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -28,6 +28,7 @@ Difficulty: Medium icon_state = "miner" icon_living = "miner" icon = 'icons/mob/broadMobs.dmi' + health_doll_icon = "miner" mob_biotypes = MOB_ORGANIC|MOB_HUMANOID light_color = "#E4C7C5" movement_type = GROUND diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 5305813ebf..b80e6cc72f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -33,6 +33,7 @@ Difficulty: Hard icon_state = "bubblegum" icon_living = "bubblegum" icon_dead = "" + health_doll_icon = "bubblegum" friendly_verb_continuous = "stares down" friendly_verb_simple = "stare down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 787c15a5b4..5751512b19 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -32,6 +32,7 @@ Difficulty: Very Hard icon_state = "eva" icon_living = "eva" icon_dead = "dragon_dead" + health_doll_icon = "eva" friendly_verb_continuous = "stares down" friendly_verb_simple = "stare down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 6c1e9eef6e..a3d51744b9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -48,6 +48,7 @@ Difficulty: Medium icon_state = "dragon" icon_living = "dragon" icon_dead = "dragon_dead" + health_doll_icon = "dragon" friendly_verb_continuous = "stares down" friendly_verb_simple = "stare down" speak_emote = list("roars") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 32300dea18..14b71b3bac 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -44,6 +44,7 @@ Difficulty: Normal attack_sound = 'sound/weapons/sonic_jackhammer.ogg' icon_state = "hierophant" icon_living = "hierophant" + health_doll_icon = "hierophant" friendly_verb_continuous = "stares down" friendly_verb_simple = "stare down" icon = 'icons/mob/lavaland/hierophant_new.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 07c1957da2..15bfe2b7f7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -26,6 +26,7 @@ SHITCODE AHEAD. BE ADVISED. Also comment extravaganza spacewalk = TRUE icon_state = "mega_legion" icon_living = "mega_legion" + health_doll_icon = "mega_legion" desc = "One of many." icon = 'icons/mob/lavaland/96x96megafauna.dmi' attack_verb_continuous = "chomps" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index bda898ef17..f2ece50af2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -75,6 +75,7 @@ icon_living = "watcher" icon_aggro = "watcher" icon_dead = "watcher_dead" + health_doll_icon = "watcher" pixel_x = -10 throw_message = "bounces harmlessly off of" melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index ef51dc572f..5ee249c767 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -25,6 +25,7 @@ icon_aggro = "broodmother" icon_dead = "egg_sac" icon_gib = "syndicate_gib" + health_doll_icon = "broodmother" maxHealth = 800 health = 800 melee_damage_lower = 30 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 032bc2d60d..4425bce532 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -24,6 +24,7 @@ icon_aggro = "herald" icon_dead = "herald_dying" icon_gib = "syndicate_gib" + health_doll_icon = "herald" maxHealth = 800 health = 800 melee_damage_lower = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 6c13bb903e..dca508cfeb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -24,6 +24,7 @@ icon_aggro = "legionnaire" icon_dead = "legionnaire_dead" icon_gib = "syndicate_gib" + health_doll_icon = "legionnaire" maxHealth = 800 health = 800 melee_damage_lower = 30 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index e3a5d5f762..50b15933a9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -24,6 +24,7 @@ icon_aggro = "pandora" icon_dead = "pandora_dead" icon_gib = "syndicate_gib" + health_doll_icon = "pandora" maxHealth = 800 health = 800 melee_damage_lower = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 446fe80c7d..7db91b50ad 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -253,6 +253,7 @@ icon_state = "legion" icon_living = "legion" icon_dead = "legion" + health_doll_icon = "legion" health = 450 maxHealth = 450 melee_damage_lower = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index 96418686d3..5750d1ecb9 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -6,6 +6,7 @@ icon_living = "clown" icon_dead = "clown_dead" icon_gib = "clown_gib" + health_doll_icon = "clown" //if >32x32, it will use this generic. for all the huge clown mobs that subtype from this mob_biotypes = MOB_ORGANIC|MOB_HUMANOID turns_per_move = 5 response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 46a5a8ec68..0e106caf46 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -6,6 +6,7 @@ icon_living = "pine_1" icon_dead = "pine_1" icon_gib = "pine_1" + health_doll_icon = "pine_1" gender = NEUTER speak_chance = 0 turns_per_move = 5 @@ -72,5 +73,6 @@ icon_living = "festivus_pole" icon_dead = "festivus_pole" icon_gib = "festivus_pole" + health_doll_icon = "festivus_pole" loot = list(/obj/item/stack/rods) speak_emote = list("polls") diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index bce1a01c8a..f10b184a45 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -8,6 +8,7 @@ icon_aggro = "Fugu0" icon_dead = "Fugu_dead" icon_gib = "syndicate_gib" + health_doll_icon = "Fugu0" mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON move_to_delay = 5 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 5fa6a0c22d..e46c57f245 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -7,6 +7,7 @@ ///How much blud it has for bloodsucking blood_volume = 550 rad_flags = RAD_NO_CONTAMINATE + hud_type = /datum/hud/living/simple_animal status_flags = CANPUSH diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index 9b17162532..cf33c893ad 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -38,7 +38,7 @@ specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." item = /obj/item/storage/box/syndie_kit/contract_kit cost = 20 - player_minimum = 30 + player_minimum = 25 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) restricted = TRUE diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index a8ca068ad2..948d17d168 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -228,6 +228,15 @@ surplus = 50 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/dangerous/maulergauntlets + name = "Mauler Gauntlets" + desc = "Mauler gauntlets are a pair of high-tech plastitanium gauntlets fused with illegal nanite auto-injectors designed \ + to grant the wearer sextuple the strength of an average human being. Wearing these, you will punch harder, inflict more injuries \ + with your fists, and be able to slam people through tables with immense force. \ + Unfortunately, due to the size of the gloves you will be unable to wield firearms with them equipped." + item = /obj/item/clothing/gloves/fingerless/pugilist/mauler + cost = 8 + /datum/uplink_item/dangerous/powerfist name = "Power Fist" desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ diff --git a/html/changelog.html b/html/changelog.html index c41322865b..c597ac0073 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,36 @@ -->
+

26 May 2021

+

bunny232 updated:

+ + +

24 May 2021

+

zeroisthebiggay updated:

+ + +

23 May 2021

+

Putnam3145 updated:

+ +

WanderingFox95 updated:

+ +

keronshb updated:

+ +

21 May 2021

Putnam3145 updated:

- -

25 March 2021

-

zeroisthebiggay updated:

- - -

24 March 2021

-

BlueWildrose updated:

- -

Hatterhat updated:

- -

ItzGabby updated:

- -

LetterN updated:

- -

YakumoChen updated:

- -

qweq12yt updated:

- -

zeroisthebiggay updated:

- - -

23 March 2021

-

LetterN updated:

- - -

21 March 2021

-

Arturlang updated:

- -

GrayRachnid updated:

- -

Hatterhat updated:

- -

LetterN updated:

- -

Putnam3145 updated:

- -

The-Sun-In-Splendour updated:

- -

dzahlus updated:

- -

timothyteakettle updated:

- - -

20 March 2021

-

Hatterhat updated:

-
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 135e6db518..5855b178ce 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29332,3 +29332,23 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-05-21: Putnam3145: - bugfix: Fixed activity being attached to minds instead of mobs on antag attach. +2021-05-23: + Putnam3145: + - bugfix: Antag and species no longer remove all traits if one has a blacklisted + trait + WanderingFox95: + - imageadd: Replaced the antlers showing up when you select deer ears with actual + deer ears. Literally why was that even a thing before? + - imageadd: Straight rabbit ears are now a thing. + keronshb: + - balance: 30 > 25 pop req for contractor kit + - code_imp: adds a special hud for simple mobs. + - imageadd: a lot of >32x32 mobs now have icons for their health dolls +2021-05-24: + zeroisthebiggay: + - rscadd: 'New traitor item: the Mauler Gauntlets! Punch hard, punch good! Eight + telecrystals, buy today!' + - rscadd: hairs from Airborne Snitch +2021-05-26: + bunny232: + - bugfix: Removed two random 'captain's office' tiles from space on meta station diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 406b0fe62a..5155f06134 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/hair.dmi b/icons/mob/hair.dmi index 7322b2cfaf..55c79b9740 100644 Binary files a/icons/mob/hair.dmi and b/icons/mob/hair.dmi differ diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 95aaf330ce..4377a0d7c6 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 629b989520..25cde38df9 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 0c59c3e711..39ed9d6ec8 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -550,7 +550,7 @@ ckeywhitelist = list("sneka") /datum/gear/donator/smaiden - name = "Shrine Maiden" - slot = SLOT_WEAR_SUIT - path = /obj/item/clothing/suit/smaiden + name = "shrine maiden outfit" + slot = SLOT_W_UNIFORM + path = /obj/item/clothing/under/smaiden ckeywhitelist = list("ultimarifox") diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 89734106cf..b7d04e0780 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -602,8 +602,8 @@ mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "mmask" -/obj/item/clothing/suit/smaiden - name = "shrine maiden" +/obj/item/clothing/under/smaiden + name = "shrine maiden outfit" desc = "Seems questionably tight for religious purposes." icon_state = "smaiden" item_state = "smaiden" diff --git a/modular_citadel/icons/mob/mam_ears.dmi b/modular_citadel/icons/mob/mam_ears.dmi index a8209f25c5..e615b7f7ee 100644 Binary files a/modular_citadel/icons/mob/mam_ears.dmi and b/modular_citadel/icons/mob/mam_ears.dmi differ diff --git a/sound/weapons/mauler_punch.ogg b/sound/weapons/mauler_punch.ogg new file mode 100644 index 0000000000..3e610ea238 Binary files /dev/null and b/sound/weapons/mauler_punch.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 2e5bd87e51..e516733757 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -272,6 +272,7 @@ #include "code\_onclick\hud\revenanthud.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\simple_animal.dm" #include "code\_onclick\hud\swarmer.dm" #include "code\_onclick\hud\screen_objects\clickdelay.dm" #include "code\_onclick\hud\screen_objects\sprint.dm"