From 6898c542efac8aafa0d837877a1973f25f684c1a Mon Sep 17 00:00:00 2001 From: datlo Date: Tue, 5 Feb 2019 01:43:09 +0000 Subject: [PATCH] Implement golem coloring, minor tweaks --- .../ghost_role_spawners/golems.dm | 1 + .../mob/living/carbon/human/species/golem.dm | 50 +++++++++--------- .../mob/living/carbon/human/update_icons.dm | 5 ++ icons/mob/human_races/golems/r_golem.dmi | Bin 6410 -> 0 bytes .../{golems/oldgolem.dmi => r_golem.dmi} | Bin 5 files changed, 31 insertions(+), 25 deletions(-) delete mode 100644 icons/mob/human_races/golems/r_golem.dmi rename icons/mob/human_races/{golems/oldgolem.dmi => r_golem.dmi} (100%) diff --git a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm index 2fb72161a2a..3fe97cded4e 100644 --- a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm +++ b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm @@ -19,6 +19,7 @@ /obj/item/stack/sheet/metal = /datum/species/golem, /obj/item/stack/sheet/glass = /datum/species/golem/glass, /obj/item/stack/sheet/plasteel = /datum/species/golem/plasteel, + /obj/item/stack/ore/glass = /datum/species/golem/sand, /obj/item/stack/sheet/mineral/sandstone = /datum/species/golem/sand, /obj/item/stack/sheet/mineral/plasma = /datum/species/golem/plasma, /obj/item/stack/sheet/mineral/diamond = /datum/species/golem/diamond, diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 3dfc01f0e27..fa6ae40b0cb 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -2,11 +2,10 @@ name = "Golem" name_plural = "Golems" - icobase = 'icons/mob/human_races/golems/r_golem.dmi' - deform = 'icons/mob/human_races/golems/r_golem.dmi' + icobase = 'icons/mob/human_races/r_golem.dmi' + deform = 'icons/mob/human_races/r_golem.dmi' species_traits = list(NO_BREATHE, NO_BLOOD, RADIMMUNE, VIRUSIMMUNE, NOGUNS) - bodyflags = HAS_SKIN_COLOR brute_mod = 0.45 //55% damage reduction burn_mod = 0.45 tox_mod = 0.45 @@ -50,9 +49,9 @@ "is crumbling into dust!", "is smashing their body apart!") - var/golem_colour = "aaa" + var/golem_colour = rgb(170, 170, 170) var/info_text = "As an Iron Golem, you don't have any special traits." - var/random_eligible = TRUE //If false, the golem subtype can't be made through golem mutation toxin + var/random_eligible = TRUE var/prefix = "Iron" var/list/special_names = list("Tarkus") var/human_surname_chance = 3 @@ -120,7 +119,7 @@ "adamantine_resonator" = /obj/item/organ/internal/adamantine_resonator, "vocal_cords" = /obj/item/organ/internal/vocal_cords/adamantine ) - golem_colour = "4ed" + golem_colour = rgb(68, 238, 221) info_text = "As an Adamantine Golem, you possess special vocal cords allowing you to \"resonate\" messages to all golems." prefix = "Adamantine" special_names = null @@ -129,7 +128,7 @@ /datum/species/golem/plasma name = "Plasma Golem" skinned_type = /obj/item/stack/ore/plasma - golem_colour = "a3d" + golem_colour = rgb(170, 51, 221) //Can burn and takes damage from heat heat_level_1 = 360 heat_level_2 = 400 @@ -188,7 +187,7 @@ //Harder to hurt /datum/species/golem/diamond name = "Diamond Golem" - golem_colour = "0ff" + golem_colour = rgb(0, 255, 255) brute_mod = 0.3 //70% damage reduction up from 55% burn_mod = 0.3 tox_mod = 0.3 @@ -200,7 +199,7 @@ //Faster but softer and less armoured /datum/species/golem/gold name = "Gold Golem" - golem_colour = "cc0" + golem_colour = rgb(204, 204, 0) slowdown = 2 brute_mod = 0.75 //25% damage reduction down from 55% burn_mod = 0.75 @@ -213,7 +212,7 @@ //Heavier, thus higher chance of stunning when punching /datum/species/golem/silver name = "Silver Golem" - golem_colour = "cc0" + golem_colour = rgb(221, 221, 221) punchstunthreshold = 9 //60% chance, from 40% skinned_type = /obj/item/stack/ore/silver info_text = "As a Silver Golem, your attacks have a higher chance of stunning." @@ -223,7 +222,7 @@ //Harder to stun, deals more damage, but it's even slower /datum/species/golem/plasteel name = "Plasteel Golem" - golem_colour = "bbb" + golem_colour = rgb(187, 187, 187) stun_mod = 0.4 punchdamagelow = 12 punchdamagehigh = 21 @@ -243,7 +242,7 @@ //Add ashstorm resistance if we ever port lavaland /datum/species/golem/titanium name = "Titanium Golem" - golem_colour = "fff" + golem_colour = rgb(255, 255, 255) skinned_type = /obj/item/stack/ore/titanium info_text = "As a Titanium Golem, you are resistant to burn damage." burn_mod = 0.3 @@ -254,7 +253,7 @@ //Add ashstorm and lava resistance if we ever port lavaland /datum/species/golem/plastitanium name = "Plastitanium Golem" - golem_colour = "888" + golem_colour = rgb(136, 136, 136) skinned_type = /obj/item/stack/ore/titanium info_text = "As a Plastitanium Golem, you are very resistant to burn damage." burn_mod = 0.15 @@ -264,7 +263,7 @@ //Fast and regenerates... but can only speak like an abductor /datum/species/golem/alloy name = "Alien Alloy Golem" - golem_colour = "333" + golem_colour = rgb(51, 51, 51) skinned_type = /obj/item/stack/sheet/mineral/abductor language = "Golem Mindlink" default_language = "Golem Mindlink" @@ -293,7 +292,7 @@ //Regenerates like dionas, less resistant /datum/species/golem/wood name = "Wood Golem" - golem_colour = "9E704B" + golem_colour = rgb(158, 112, 75) skinned_type = /obj/item/stack/sheet/wood //Can burn and take damage from heat brute_mod = 0.7 //30% damage reduction down from 55% @@ -336,7 +335,7 @@ //Radioactive /datum/species/golem/uranium name = "Uranium Golem" - golem_colour = "7f0" + golem_colour = rgb(119, 255, 0) skinned_type = /obj/item/stack/ore/uranium info_text = "As an Uranium Golem, you emit radiation. It won't harm fellow golems, but organic lifeforms will be affected." prefix = "Uranium" @@ -355,7 +354,7 @@ name = "Plastic Golem" prefix = "Plastic" special_names = null - golem_colour = "fff" + golem_colour = rgb(255, 255, 255) skinned_type = /obj/item/stack/sheet/plastic info_text = "As a Plastic Golem, you are capable of ventcrawling if you're naked." @@ -370,7 +369,7 @@ //Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death. /datum/species/golem/sand name = "Sand Golem" - golem_colour = "ffdc8f" + golem_colour = rgb(255, 220, 143) skinned_type = /obj/item/stack/ore/glass //this is sand brute_mod = 0.25 burn_mod = 3 @@ -402,7 +401,7 @@ //Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death. /datum/species/golem/glass name = "Glass Golem" - golem_colour = "5a96b4aa" //transparent body + golem_colour = rgb(90, 150, 180) skinned_type = /obj/item/shard brute_mod = 3 //very fragile burn_mod = 0.25 @@ -447,7 +446,7 @@ //Teleports when hit or when it wants to /datum/species/golem/bluespace name = "Bluespace Golem" - golem_colour = "33f" + golem_colour = rgb(51, 51, 255) skinned_type = /obj/item/stack/ore/bluespace_crystal info_text = "As a Bluespace Golem, you are spatially unstable: You will teleport when hit, and you can teleport manually at a long distance." prefix = "Bluespace" @@ -571,8 +570,7 @@ //honk /datum/species/golem/bananium name = "Bananium Golem" - golem_colour = "ff0" - //say_mod = "honks" + golem_colour = rgb(255, 255, 0) punchdamagelow = 0 punchdamagehigh = 0 punchstunthreshold = 1 //Harmless and can't stun @@ -598,7 +596,8 @@ H.equip_to_slot_or_del(new /obj/item/bikehorn(H), slot_l_store) /datum/species/golem/bananium/get_random_name() - var/golem_name = pick(GLOB.clown_names) + var/clown_name = pick(GLOB.clown_names) + var/golem_name = "[prefix] [clown_name]" return golem_name /datum/species/golem/bananium/spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) @@ -654,13 +653,14 @@ name = "Tranquillite Golem" prefix = "Tranquillite" special_names = null - golem_colour = "fff" + golem_colour = rgb(255, 255, 255) skinned_type = /obj/item/stack/ore/tranquillite info_text = "As a Tranquillite Golem, you are capable of creating invisible walls, and can regenerate by drinking your bottle of Nothing." unarmed_type = /datum/unarmed_attack/golem/tranquillite /datum/species/golem/tranquillite/get_random_name() - var/golem_name = pick(GLOB.mime_names) + var/mime_name = pick(GLOB.mime_names) + var/golem_name = "[prefix] [mime_name]" return golem_name /datum/species/golem/tranquillite/on_species_gain(mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 1d7dc2869eb..ff93cd54b80 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -222,6 +222,10 @@ var/global/list/damage_icon_parts = list() base_icon.Blend(temp, ICON_OVERLAY) if(!skeleton) + if(isgolem(src)) + var/datum/species/golem/G = src.dna.species + if(G.golem_colour) + base_icon.ColorTone(G.golem_colour) if(husk) base_icon.ColorTone(husk_color_mod) else if(hulk) @@ -239,6 +243,7 @@ var/global/list/damage_icon_parts = list() var/mutable_appearance/new_base = mutable_appearance(base_icon, layer = -LIMBS_LAYER) human_icon_cache[icon_key] = new_base standing += new_base + //END CACHED ICON GENERATION. overlays_standing[LIMBS_LAYER] = standing diff --git a/icons/mob/human_races/golems/r_golem.dmi b/icons/mob/human_races/golems/r_golem.dmi deleted file mode 100644 index 4ff5ed710008aa61ab66428fc28274c0518c94de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6410 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