From 2f6a1f28305fc592dc707c798e846ce464f1cfc5 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 6 Jul 2015 04:36:58 +0930 Subject: [PATCH 1/3] Added hats for drones. --- code/modules/clothing/clothing.dm | 11 +++ code/modules/mob/living/life.dm | 3 +- .../mob/living/silicon/robot/drone/drone.dm | 69 ++++++++++++++++--- .../silicon/robot/drone/drone_abilities.dm | 10 ++- .../silicon/robot/drone/drone_manufacturer.dm | 12 +--- html/changelogs/Zuhayr-dronehats.yml | 4 ++ 6 files changed, 86 insertions(+), 23 deletions(-) create mode 100644 html/changelogs/Zuhayr-dronehats.yml diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6f2515b55d..18a434eb23 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -275,6 +275,17 @@ BLIND // can't see anything update_icon(user) user.update_action_buttons() +/obj/item/clothing/head/attack_ai(var/mob/user) + if(Adjacent(user) && istype(user, /mob/living/silicon/robot/drone)) + var/mob/living/silicon/robot/drone/D = user + if(!D.hat) + D.wear_hat(src) + D << "You crawl under \the [src]." + else + D << "You are already wearing \the [D.hat]." + return + return ..() + /obj/item/clothing/head/update_icon(var/mob/user) overlays.Cut() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index d7f475ec5b..c2f0075bfa 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -125,7 +125,8 @@ //this handles hud updates. Calls update_vision() and handle_hud_icons() /mob/living/handle_regular_hud_updates() - if(!client) return 0 + if(!client) + return 0 ..() handle_vision() diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 04e3728c6a..0639d9d11a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -1,3 +1,5 @@ +var/list/drone_hat_cache = list() + /mob/living/silicon/robot/drone name = "drone" real_name = "drone" @@ -29,9 +31,26 @@ var/module_type = /obj/item/weapon/robot_module/drone var/can_pull_size = 2 var/can_pull_mobs + var/obj/item/hat + var/hat_x_offset = 0 + var/hat_y_offset = -13 holder_type = /obj/item/weapon/holder/drone +/mob/living/silicon/robot/drone/Destroy() + if(hat) + hat.loc = get_turf(src) + ..() + +/mob/living/silicon/robot/drone/construction + icon_state = "constructiondrone" + law_type = /datum/ai_laws/construction_drone + module_type = /obj/item/weapon/robot_module/drone/construction + can_pull_size = 5 + can_pull_mobs = 1 + hat_x_offset = 1 + hat_y_offset = -12 + /mob/living/silicon/robot/drone/New() ..() @@ -83,16 +102,51 @@ else overlays -= "eyes" + if(hat) + // Copied from human inventory. + // Let the drones wear hats. + var/t_state = hat.icon_state + if(hat.item_state_slots && hat.item_state_slots[slot_head_str]) + t_state = hat.item_state_slots[slot_head_str] + else if(hat.item_state) + t_state = hat.item_state + if(!drone_hat_cache["[t_state]-[icon_state]"]) // Not ideal as there's no guarantee all hat icon_states + var/t_icon = INV_HEAD_DEF_ICON // are unique across multiple dmis, but whatever. + if(hat.icon_override) + t_icon = hat.icon_override + else if(hat.item_icons && (slot_head_str in hat.item_icons)) + t_icon = hat.item_icons[slot_head_str] + var/image/I = image(icon = t_icon, icon_state = t_state) + I.pixel_x = hat_x_offset + I.pixel_y = hat_y_offset + drone_hat_cache[t_state] = I + overlays |= drone_hat_cache[t_state] + /mob/living/silicon/robot/drone/choose_icon() return /mob/living/silicon/robot/drone/pick_module() return -//Drones cannot be upgraded with borg modules so we need to catch some items before they get used in ..(). -/mob/living/silicon/robot/drone/attackby(obj/item/weapon/W as obj, mob/user as mob) +/mob/living/silicon/robot/drone/proc/wear_hat(var/obj/item/new_hat) + if(hat) + return + hat = new_hat + new_hat.loc = src + updateicon() - if(istype(W, /obj/item/borg/upgrade/)) +//Drones cannot be upgraded with borg modules so we need to catch some items before they get used in ..(). +/mob/living/silicon/robot/drone/attackby(var/obj/item/weapon/W, var/mob/user) + + if(user.a_intent == "help" && istype(W, /obj/item/clothing/head)) + if(hat) + user << "\The [src] is already wearing \the [hat]." + return + user.unEquip(W) + wear_hat(W) + user.visible_message("\The [user] puts \the [W] on \the [src].") + return + else if(istype(W, /obj/item/borg/upgrade/)) user << "\The [src] is not compatible with \the [W]." return @@ -135,7 +189,7 @@ return ..() - + /mob/living/silicon/robot/drone/emag_act(var/remaining_charges, var/mob/user) if(!client || stat == 2) user << "There's not much point subverting this heap of junk." @@ -279,13 +333,6 @@ /mob/living/silicon/robot/drone/remove_robot_verbs() src.verbs -= silicon_subsystems -/mob/living/silicon/robot/drone/construction - icon_state = "constructiondrone" - law_type = /datum/ai_laws/construction_drone - module_type = /obj/item/weapon/robot_module/drone/construction - can_pull_size = 5 - can_pull_mobs = 1 - /mob/living/silicon/robot/drone/construction/welcome_drone() src << "You are a construction drone, an autonomous engineering and fabrication system.." src << "You are assigned to a Sol Central construction project. The name is irrelevant. Your task is to complete construction and subsystem integration as soon as possible." diff --git a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm index 0eaf1c8779..e5aa936a08 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_abilities.dm @@ -10,13 +10,13 @@ mail_destination = "" return - src << "\blue You configure your internal beacon, tagging yourself for delivery to '[new_tag]'." + src << "You configure your internal beacon, tagging yourself for delivery to '[new_tag]'." mail_destination = new_tag //Auto flush if we use this verb inside a disposal chute. var/obj/machinery/disposal/D = src.loc if(istype(D)) - src << "\blue \The [D] acknowledges your signal." + src << "\The [D] acknowledges your signal." D.flush_count = D.flush_every_ticks return @@ -27,5 +27,11 @@ if(H.a_intent == "help") get_scooped(H) return + else if(H.a_intent == "grab" && hat && !(H.l_hand && H.r_hand)) + hat.loc = get_turf(src) + H.put_in_hands(hat) + H.visible_message("\The [H] removes \the [src]'s [hat].") + hat = null + updateicon() else return ..() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index a292ead1b1..171fc29933 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -78,7 +78,8 @@ flick("h_lathe_leave",src) time_last_drone = world.time - var/mob/living/silicon/robot/drone/new_drone = new drone_type(get_turf(src)) + if(player.mob && player.mob.mind) player.mob.mind.reset() + var/mob/living/silicon/robot/drone/new_drone = PoolOrNew(drone_type, get_turf(src)) new_drone.transfer_personality(player) new_drone.master_fabricator = src @@ -90,7 +91,6 @@ set name = "Join As Drone" set desc = "If there is a powered, enabled fabricator in the game world with a prepared chassis, join as a maintenance drone." - if(ticker.current_state < GAME_STATE_PLAYING) src << "The game hasn't started yet!" return @@ -108,17 +108,11 @@ if(jobban_isbanned(src,"Cyborg")) usr << "You are banned from playing synthetics and cannot spawn as a drone." return - + if(!MayRespawn(1)) return var/deathtime = world.time - src.timeofdeath - if(istype(src,/mob/dead/observer)) - var/mob/dead/observer/G = src - if(G.has_enabled_antagHUD == 1 && config.antag_hud_restricted) - usr << "Upon using the antagHUD you forfeighted the ability to join the round." - return - var/deathtimeminutes = round(deathtime / 600) var/pluralcheck = "minute" if(deathtimeminutes == 0) diff --git a/html/changelogs/Zuhayr-dronehats.yml b/html/changelogs/Zuhayr-dronehats.yml new file mode 100644 index 0000000000..06dc80786d --- /dev/null +++ b/html/changelogs/Zuhayr-dronehats.yml @@ -0,0 +1,4 @@ +author: Zuhayr +delete-after: True +changes: + - rscadd: "Click a hat on a drone with help intent to equip it. Drag the drone onto yourself with grab intent to remove it." From ab49ac0d6d8e9c38d943dd224263e47a9014939f Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 7 Jul 2015 01:28:13 +0930 Subject: [PATCH 2/3] Adds hats to dionaea. --- code/modules/clothing/clothing.dm | 38 +++++++++++++--- .../mob/living/carbon/alien/diona/diona.dm | 8 ++++ .../carbon/alien/diona/diona_attacks.dm | 17 +++++++ .../living/carbon/alien/diona/update_icons.dm | 4 ++ .../mob/living/silicon/robot/drone/drone.dm | 42 +++++++++--------- icons/mob/alien.dmi | Bin 93707 -> 93700 bytes 6 files changed, 81 insertions(+), 28 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 18a434eb23..d323270592 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -276,15 +276,39 @@ BLIND // can't see anything user.update_action_buttons() /obj/item/clothing/head/attack_ai(var/mob/user) - if(Adjacent(user) && istype(user, /mob/living/silicon/robot/drone)) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/attack_generic(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/proc/mob_wear_hat(var/mob/user) + if(!Adjacent(user)) + return 0 + var/success + if(istype(user, /mob/living/silicon/robot/drone)) var/mob/living/silicon/robot/drone/D = user - if(!D.hat) - D.wear_hat(src) - D << "You crawl under \the [src]." + if(D.hat) + success = 2 else - D << "You are already wearing \the [D.hat]." - return - return ..() + D.wear_hat(src) + success = 1 + else if(istype(user, /mob/living/carbon/alien/diona)) + var/mob/living/carbon/alien/diona/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + + if(!success) + return 0 + else if(success == 2) + user << "You are already wearing a hat." + else if(success == 1) + user << "You crawl under \the [src]." + return 1 /obj/item/clothing/head/update_icon(var/mob/user) diff --git a/code/modules/mob/living/carbon/alien/diona/diona.dm b/code/modules/mob/living/carbon/alien/diona/diona.dm index 86dc101eda..95f01a6dff 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona.dm @@ -9,6 +9,7 @@ universal_understand = 1 universal_speak = 0 // Dionaea do not need to speak to people other than other dionaea. holder_type = /obj/item/weapon/holder/diona + var/obj/item/hat /mob/living/carbon/alien/diona/New() @@ -32,3 +33,10 @@ /mob/living/carbon/alien/diona/put_in_hands(var/obj/item/W) // No hands. W.loc = get_turf(src) return 1 + +/mob/living/carbon/alien/diona/proc/wear_hat(var/obj/item/new_hat) + if(hat) + return + hat = new_hat + new_hat.loc = src + update_icons() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm index 956171abf7..45d1f6fe46 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm @@ -6,5 +6,22 @@ return get_scooped(H) return + else if(H.a_intent == "grab" && hat && !(H.l_hand && H.r_hand)) + hat.loc = get_turf(src) + H.put_in_hands(hat) + H.visible_message("\The [H] removes \the [src]'s [hat].") + hat = null + update_icons() else return ..() + +/mob/living/carbon/alien/diona/attackby(var/obj/item/weapon/W, var/mob/user) + if(user.a_intent == "help" && istype(W, /obj/item/clothing/head)) + if(hat) + user << "\The [src] is already wearing \the [hat]." + return + user.unEquip(W) + wear_hat(W) + user.visible_message("\The [user] puts \the [W] on \the [src].") + return + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/update_icons.dm b/code/modules/mob/living/carbon/alien/diona/update_icons.dm index b39972cdad..1d694cf624 100644 --- a/code/modules/mob/living/carbon/alien/diona/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/diona/update_icons.dm @@ -6,3 +6,7 @@ icon_state = "[initial(icon_state)]_sleep" else icon_state = "[initial(icon_state)]" + + overlays.Cut() + if(hat) + overlays |= get_hat_icon(hat, 0, -8) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 0639d9d11a..37c40d7161 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -1,4 +1,22 @@ -var/list/drone_hat_cache = list() +var/list/mob_hat_cache = list() +/proc/get_hat_icon(var/obj/item/hat, var/offset_x = 0, var/offset_y = 0) + var/t_state = hat.icon_state + if(hat.item_state_slots && hat.item_state_slots[slot_head_str]) + t_state = hat.item_state_slots[slot_head_str] + else if(hat.item_state) + t_state = hat.item_state + var/key = "[t_state]_[offset_x]_[offset_y]" + if(!mob_hat_cache[key]) // Not ideal as there's no guarantee all hat icon_states + var/t_icon = INV_HEAD_DEF_ICON // are unique across multiple dmis, but whatever. + if(hat.icon_override) + t_icon = hat.icon_override + else if(hat.item_icons && (slot_head_str in hat.item_icons)) + t_icon = hat.item_icons[slot_head_str] + var/image/I = image(icon = t_icon, icon_state = t_state) + I.pixel_x = offset_x + I.pixel_y = offset_y + mob_hat_cache[key] = I + return mob_hat_cache[key] /mob/living/silicon/robot/drone name = "drone" @@ -101,26 +119,8 @@ var/list/drone_hat_cache = list() overlays += "eyes-[icon_state]" else overlays -= "eyes" - - if(hat) - // Copied from human inventory. - // Let the drones wear hats. - var/t_state = hat.icon_state - if(hat.item_state_slots && hat.item_state_slots[slot_head_str]) - t_state = hat.item_state_slots[slot_head_str] - else if(hat.item_state) - t_state = hat.item_state - if(!drone_hat_cache["[t_state]-[icon_state]"]) // Not ideal as there's no guarantee all hat icon_states - var/t_icon = INV_HEAD_DEF_ICON // are unique across multiple dmis, but whatever. - if(hat.icon_override) - t_icon = hat.icon_override - else if(hat.item_icons && (slot_head_str in hat.item_icons)) - t_icon = hat.item_icons[slot_head_str] - var/image/I = image(icon = t_icon, icon_state = t_state) - I.pixel_x = hat_x_offset - I.pixel_y = hat_y_offset - drone_hat_cache[t_state] = I - overlays |= drone_hat_cache[t_state] + if(hat) // Let the drones wear hats. + overlays |= get_hat_icon(hat, hat_x_offset, hat_y_offset) /mob/living/silicon/robot/drone/choose_icon() return diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 362dcc96ea2bebf77a429c074b3902538df88c9b..171abcf1c013685bf89eb21f9cd1ef1e8f2ee7f7 100644 GIT binary patch delta 29531 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 a1j|srTVUR|8EFXo-Mg!%@cH(W=l=_8U8o2E delta 29538 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 From 4674333143254699c3220959964bd81b7028153e Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 7 Jul 2015 02:01:25 +0930 Subject: [PATCH 3/3] Minor holder refactor. --- code/modules/mob/holder.dm | 103 ++++++------------ .../carbon/human/species/station/monkey.dm | 8 -- code/modules/mob/living/silicon/pai/pai.dm | 3 +- .../living/simple_animal/friendly/mouse.dm | 10 -- 4 files changed, 36 insertions(+), 88 deletions(-) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 26cbefc482..862602bd5c 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -5,10 +5,12 @@ icon = 'icons/obj/objects.dmi' slot_flags = SLOT_HEAD sprite_sheets = list("Vox" = 'icons/mob/species/vox/head.dmi') + origin_tech = null item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_holder.dmi', slot_r_hand_str = 'icons/mob/items/righthand_holder.dmi', ) + pixel_y = 8 /obj/item/weapon/holder/New() ..() @@ -31,6 +33,38 @@ qdel(src) +/obj/item/weapon/holder/proc/sync(var/mob/living/M) + dir = 2 + overlays.Cut() + icon = M.icon + icon_state = M.icon_state + color = M.color + name = M.name + desc = M.desc + overlays |= M.overlays + var/mob/living/carbon/human/H = loc + if(istype(H)) + if(H.l_hand == src) + H.update_inv_l_hand() + else if(H.r_hand == src) + H.update_inv_r_hand() + else + H.regenerate_icons() + +//Mob specific holders. +/obj/item/weapon/holder/diona + origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 5) + slot_flags = SLOT_HEAD | SLOT_OCLOTHING + +/obj/item/weapon/holder/drone + origin_tech = list(TECH_MAGNET = 3, TECH_ENGINERING = 5) + +/obj/item/weapon/holder/mouse + w_class = 1 + +/obj/item/weapon/holder/borer + origin_tech = list(TECH_BIO = 6) + /obj/item/weapon/holder/attackby(obj/item/weapon/W as obj, mob/user as mob) for(var/mob/M in src.contents) M.attackby(W,user) @@ -50,72 +84,5 @@ grabber << "You scoop up [src]." src << "[grabber] scoops you up." grabber.status_flags |= PASSEMOTES + H.sync(src) return H - -//Mob specific holders. - -/obj/item/weapon/holder/diona - name = "diona nymph" - desc = "It's a tiny plant critter." - icon_state = "nymph" - origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 5) - slot_flags = SLOT_HEAD | SLOT_OCLOTHING - -/obj/item/weapon/holder/drone - name = "maintenance drone" - desc = "It's a small maintenance robot." - icon_state = "drone" - origin_tech = list(TECH_MAGNET = 3, TECH_ENGINERING = 5) - -/obj/item/weapon/holder/cat - name = "cat" - desc = "It's a cat. Meow." - icon_state = "cat" - origin_tech = null - -/obj/item/weapon/holder/mouse - name = "mouse" - desc = "It's a small rodent." - icon_state = "mouse_gray" - origin_tech = null - w_class = 1 - -/obj/item/weapon/holder/mouse/gray - icon_state = "mouse_gray" - -/obj/item/weapon/holder/mouse/white - icon_state = "mouse_white" - -/obj/item/weapon/holder/mouse/brown - icon_state = "mouse_brown" - -/obj/item/weapon/holder/borer - name = "cortical borer" - desc = "It's a slimy brain slug. Gross." - icon_state = "borer" - origin_tech = list(TECH_BIO = 6) - -/obj/item/weapon/holder/monkey - name = "monkey" - desc = "It's a monkey. Ook." - icon_state = "monkey" - -/obj/item/weapon/holder/monkey/farwa - name = "farwa" - desc = "It's a farwa." - icon_state = "farwa" - -/obj/item/weapon/holder/monkey/stok - name = "stok" - desc = "It's a stok. stok." - icon_state = "stok" - -/obj/item/weapon/holder/monkey/neaera - name = "neaera" - desc = "It's a neaera." - icon_state = "neara" - -/obj/item/weapon/holder/pai - name = "pAI" - desc = "It's a little robot." - icon_state = "pai" diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index db6c69b409..6ae24db2f6 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -37,7 +37,6 @@ bump_flag = MONKEY swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN - var/holder_type = /obj/item/weapon/holder/monkey /datum/species/monkey/handle_npc(var/mob/living/carbon/human/H) if(H.stat != CONSCIOUS) @@ -47,10 +46,6 @@ if(prob(1)) H.emote(pick("scratch","jump","roll","tail")) -/datum/species/monkey/handle_post_spawn(var/mob/living/carbon/human/H) - ..() - H.holder_type = holder_type - /datum/species/monkey/get_random_name() return "[lowertext(name)] ([rand(100,999)])" @@ -66,7 +61,6 @@ flesh_color = "#AFA59E" base_color = "#333333" tail = "farwatail" - holder_type = /obj/item/weapon/holder/monkey/farwa /datum/species/monkey/skrell name = "Neara" @@ -81,7 +75,6 @@ blood_color = "#1D2CBF" reagent_tag = IS_SKRELL tail = null - holder_type = /obj/item/weapon/holder/monkey/neaera /datum/species/monkey/unathi name = "Stok" @@ -96,4 +89,3 @@ flesh_color = "#34AF10" base_color = "#066000" reagent_tag = IS_UNATHI - holder_type = /obj/item/weapon/holder/monkey/stok diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index ad06c58d6e..4641c7d2de 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -6,7 +6,6 @@ emote_type = 2 // pAIs emotes are heard, not seen, so they can be seen through a container (eg. person) small = 1 pass_flags = 1 - holder_type = /obj/item/weapon/holder/pai var/network = "SS13" var/obj/machinery/camera/current = null @@ -430,4 +429,4 @@ get_scooped(H) return else - return ..() + return ..() diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 70f7282b8e..e0ffc718ff 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -63,13 +63,6 @@ if(!body_color) body_color = pick( list("brown","gray","white") ) - switch(body_color) - if("brown") - holder_type = /obj/item/weapon/holder/mouse/brown - if("gray") - holder_type = /obj/item/weapon/holder/mouse/gray - if("white") - holder_type = /obj/item/weapon/holder/mouse/white icon_state = "mouse_[body_color]" icon_living = "mouse_[body_color]" icon_dead = "mouse_[body_color]_dead" @@ -125,17 +118,14 @@ /mob/living/simple_animal/mouse/white body_color = "white" icon_state = "mouse_white" - holder_type = /obj/item/weapon/holder/mouse/white /mob/living/simple_animal/mouse/gray body_color = "gray" icon_state = "mouse_gray" - holder_type = /obj/item/weapon/holder/mouse/gray /mob/living/simple_animal/mouse/brown body_color = "brown" icon_state = "mouse_brown" - holder_type = /obj/item/weapon/holder/mouse/brown //TOM IS ALIVE! SQUEEEEEEEE~K :) /mob/living/simple_animal/mouse/brown/Tom