diff --git a/code/datums/trading/ai.dm b/code/datums/trading/ai.dm index 5b5bdc57f99..fbbaaa9c5ee 100644 --- a/code/datums/trading/ai.dm +++ b/code/datums/trading/ai.dm @@ -179,6 +179,5 @@ /obj/item/reagent_containers/glass/bottle/stoxin = TRADER_THIS_TYPE, /obj/item/reagent_containers/glass/bottle/polysomnine = TRADER_THIS_TYPE, /obj/item/reagent_containers/glass/bottle/antitoxin = TRADER_THIS_TYPE, - /obj/item/device/handheld_medical = TRADER_THIS_TYPE, - /obj/item/stack/medical/advanced/bruise_pack/spaceklot = TRADER_THIS_TYPE - ) \ No newline at end of file + /obj/item/device/handheld_medical = TRADER_THIS_TYPE + ) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index ecd1c6cf0f3..edcb3b0b33b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -248,14 +248,14 @@ BREATH ANALYZER var/is_bandaged = org.is_bandaged() var/is_salved = org.is_salved() if(is_bandaged && is_salved) - var/icon/B = icon('icons/obj/stacks/medical.dmi', "bandaged") - var/icon/S = icon('icons/obj/stacks/medical.dmi', "salved") + var/icon/B = icon('icons/obj/item/stacks/medical.dmi', "bandaged") + var/icon/S = icon('icons/obj/item/stacks/medical.dmi', "salved") limb_result = "[limb_result] \[[icon2html(B, user)] | [icon2html(S, user)]\]" else if(is_bandaged) - var/icon/B = icon('icons/obj/stacks/medical.dmi', "bandaged") + var/icon/B = icon('icons/obj/item/stacks/medical.dmi', "bandaged") limb_result = "[limb_result] \[[icon2html(B, user)]\]" else if(is_salved) - var/icon/S = icon('icons/obj/stacks/medical.dmi', "salved") + var/icon/S = icon('icons/obj/item/stacks/medical.dmi', "salved") limb_result = "[limb_result] \[[icon2html(S, user)]\]" dat += limb_result else diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 3da36be519f..8ae22ed1647 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -4,13 +4,11 @@ Contains: - Ointment - Advanced Trauma Kit - Advanced Burn Kit -- Space Klot - */ /obj/item/stack/medical name = "medical pack" singular_name = "medical pack" - icon = 'icons/obj/stacks/medical.dmi' + icon = 'icons/obj/item/stacks/medical.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_medical.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_medical.dmi', @@ -24,16 +22,20 @@ Contains: throw_range = 20 var/heal_brute = 0 var/heal_burn = 0 + var/automatic_charge_overlays = FALSE //Do we handle overlays with base update_icon()? | Stolen from TG egun code + var/charge_sections = 5 // How many indicator blips are there? + var/charge_x_offset = 2 //The spacing between each charge indicator. Should be 2 to leave a 1px gap between each blip. var/apply_sounds + var/applied_sounds /obj/item/stack/medical/attack(mob/living/M as mob, mob/user as mob) if (!istype(M) || istype(M, /mob/living/silicon) || istype(M, /mob/living/simple_animal/spiderbot)) - to_chat(user, "\The [src] cannot be applied to [M]!") + to_chat(user, SPAN_WARNING("\The [src] cannot be applied to [M]!")) return 1 if ( ! (istype(user, /mob/living/carbon/human) || \ istype(user, /mob/living/silicon)) ) - to_chat(user, "You don't have the dexterity to do this!") + to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!")) return 1 if (istype(M, /mob/living/carbon/human)) @@ -42,55 +44,77 @@ Contains: if(affecting.name == BP_HEAD) if(H.head && istype(H.head,/obj/item/clothing/head/helmet/space)) - to_chat(user, "You can't apply [src] through [H.head]!") + to_chat(user, SPAN_WARNING("You can't apply [src] through [H.head]!")) return 1 else if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space)) - to_chat(user, "You can't apply [src] through [H.wear_suit]!") + to_chat(user, SPAN_WARNING("You can't apply [src] through [H.wear_suit]!")) return 1 if(affecting.status & ORGAN_LIFELIKE) if(!(affecting.brute_dam || affecting.burn_dam)) - to_chat(user, " [M] seems healthy, there are no wounds to treat! ") + to_chat(user, SPAN_NOTICE("[M] seems healthy, there are no wounds to treat! ")) return 1 user.visible_message( \ - " [user] starts applying \the [src] to [M].", \ - " You start applying \the [src] to [M]." \ + SPAN_NOTICE("[user] starts applying \the [src] to [M]."), \ + SPAN_NOTICE("You start applying \the [src] to [M].")\ ) if (do_mob(user, M, 30)) user.visible_message( \ - " [M] has been applied with [src] by [user].", \ - " You apply \the [src] to [M]." \ + SPAN_NOTICE("[M] has been applied with [src] by [user]."), \ + SPAN_NOTICE("You apply \the [src] to [M].")\ ) use(1) return 1 if(affecting.status & ORGAN_ASSISTED) - to_chat(user, "This isn't useful at all on a robotic limb.") + to_chat(user, SPAN_WARNING("This isn't useful at all on a robotic limb.")) return 1 H.UpdateDamageIcon() else if (!M.getBruteLoss() && !M.getFireLoss()) - to_chat(user, " [M] seems healthy, there are no wounds to treat! ") + to_chat(user, SPAN_NOTICE("[M] seems healthy, there are no wounds to treat! ")) return 1 user.visible_message( \ - " [user] starts applying \the [src] to [M].", \ - " You start applying \the [src] to [M]." \ + SPAN_NOTICE("[user] starts applying \the [src] to [M]."), \ + SPAN_NOTICE("You start applying \the [src] to [M].")\ ) if (do_mob(user, M, 30)) M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2)) user.visible_message( \ - " [M] has been applied with [src] by [user].", \ - " You apply \the [src] to [M]." \ + SPAN_NOTICE("[M] has been applied with [src] by [user]."), \ + SPAN_NOTICE("You apply \the [src] to [M].")\ ) use(1) M.updatehealth() +/obj/item/stack/medical/use() + . = ..() + if(applied_sounds) + playsound(src, applied_sounds, 25) + +/obj/item/stack/medical/update_icon() + if(QDELETED(src)) //Checks if the item has been deleted + return //If it has, do nothing + ..() + if(!automatic_charge_overlays) //Checks if the item has this feature enabled + return //If it does not, do nothing + var/ratio = CEILING(clamp(amount / max_amount, 0, 1) * charge_sections, 1) + cut_overlays() + var/iconState = "[icon_state]_charge" + if(!amount) //Checks if there are still charges left in the item + return //If it does not, do nothing, as the overlays have been cut before this already. + else + var/mutable_appearance/charge_overlay = mutable_appearance(icon, iconState) + for(var/i = ratio, i >= 1, i--) + charge_overlay.pixel_x = charge_x_offset * (i - 1) + add_overlay(charge_overlay) + // Bruise Pack. /obj/item/stack/medical/bruise_pack name = "roll of gauze" @@ -100,7 +124,7 @@ Contains: origin_tech = list(TECH_BIO = 1) heal_brute = 4 icon_has_variants = TRUE - apply_sounds = list('sound/items/rip1.ogg','sound/items/rip2.ogg') + apply_sounds = /singleton/sound_category/rip_sound drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' @@ -122,12 +146,12 @@ Contains: if(affecting.open == 0) if(affecting.is_bandaged()) - to_chat(user, "The wounds on [M]'s [affecting.name] have already been bandaged.") + to_chat(user, SPAN_WARNING("The wounds on [M]'s [affecting.name] have already been bandaged.")) return 1 else user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ - "You start treating [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] starts treating [M]'s [affecting.name]."), \ + SPAN_NOTICE("You start treating [M]'s [affecting.name].")) var/used = 0 for (var/datum/wound/W in affecting.wounds) if(W.bandaged) @@ -135,27 +159,27 @@ Contains: if(used == amount) break if(!do_mob(user, M, W.damage/5)) - to_chat(user, "You must stand still to bandage wounds.") + to_chat(user, SPAN_NOTICE("You must stand still to bandage wounds.")) break if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] bandages \a [W.desc] on [M]'s [affecting.name].", \ - "You bandage \a [W.desc] on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] bandages \a [W.desc] on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You bandage \a [W.desc] on [M]'s [affecting.name].")) //H.add_side_effect("Itch") else if (W.damage_type == BRUISE) - user.visible_message("\The [user] places a bruise patch over \a [W.desc] on [M]'s [affecting.name].", \ - "You place a bruise patch over \a [W.desc] on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] places a bruise patch over \a [W.desc] on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You place a bruise patch over \a [W.desc] on [M]'s [affecting.name].")) else - user.visible_message("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name].", \ - "You place a bandaid over \a [W.desc] on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You place a bandaid over \a [W.desc] on [M]'s [affecting.name].")) W.bandage() - playsound(src, pick(apply_sounds), 25) + playsound(src, apply_sounds, 25) used++ affecting.update_damages() if(used == amount) if(affecting.is_bandaged()) - to_chat(user, "\The [src] is used up.") + to_chat(user, SPAN_WARNING("\The [src] is used up.")) else - to_chat(user, "\The [src] is used up, but there are more wounds to treat on \the [affecting.name].") + to_chat(user, SPAN_WARNING("\The [src] is used up, but there are more wounds to treat on \the [affecting.name].")) use(used) H.update_bandages(TRUE) else @@ -163,7 +187,7 @@ Contains: if (do_surgery(H,user,src)) return else - to_chat(user, "The [affecting.name] is cut open, you'll need more than a bandage!") + to_chat(user, SPAN_NOTICE("The [affecting.name] is cut open, you'll need more than a bandage!")) // Ointment. /obj/item/stack/medical/ointment @@ -175,7 +199,7 @@ Contains: heal_burn = 4 origin_tech = list(TECH_BIO = 1) icon_has_variants = TRUE - apply_sounds = list('sound/items/ointment.ogg') + apply_sounds = /singleton/sound_category/ointment_sound drop_sound = 'sound/items/drop/herb.ogg' pickup_sound = 'sound/items/pickup/herb.ogg' @@ -197,18 +221,18 @@ Contains: if(affecting.open == 0) if(affecting.is_salved()) - to_chat(user, "The wounds on [M]'s [affecting.name] have already been salved.") + to_chat(user, SPAN_WARNING("The wounds on [M]'s [affecting.name] have already been salved.")) return 1 else user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ - "You start salving the wounds on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] starts salving wounds on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You start salving the wounds on [M]'s [affecting.name].")) playsound(src, pick(apply_sounds), 25) if(!do_mob(user, M, 10)) - to_chat(user, "You must stand still to salve wounds.") + to_chat(user, SPAN_NOTICE("You must stand still to salve wounds.")) return 1 - user.visible_message("[user] salved wounds on [M]'s [affecting.name].", \ - "You salved wounds on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("[user] salved wounds on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You salved wounds on [M]'s [affecting.name].")) use(1) affecting.salve() else @@ -216,7 +240,7 @@ Contains: if (do_surgery(H,user,src)) return else - to_chat(user, "The [affecting.name] is cut open, you'll need more than a bandage!") + to_chat(user, SPAN_NOTICE("The [affecting.name] is cut open, you'll need more than a bandage!")) // Advanced Trauma Kit. /obj/item/stack/medical/advanced/bruise_pack @@ -226,7 +250,9 @@ Contains: icon_state = "traumakit" heal_brute = 8 origin_tech = list(TECH_BIO = 1) - apply_sounds = list('sound/items/rip1.ogg','sound/items/rip2.ogg','sound/items/tape.ogg') + apply_sounds = /singleton/sound_category/rip_sound + applied_sounds = 'sound/items/advkit.ogg' + automatic_charge_overlays = TRUE /obj/item/stack/medical/advanced/bruise_pack/full/Initialize() . = ..() @@ -246,12 +272,12 @@ Contains: if(affecting.open == 0) if(affecting.is_bandaged() && affecting.is_disinfected()) - to_chat(user, "The wounds on [M]'s [affecting.name] have already been treated.") + to_chat(user, SPAN_WARNING("The wounds on [M]'s [affecting.name] have already been treated.")) return 1 else user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ - "You start treating [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] starts treating [M]'s [affecting.name]."), \ + SPAN_NOTICE("You start treating [M]'s [affecting.name].")) var/used = 0 for (var/datum/wound/W in affecting.wounds) if (W.bandaged && W.disinfected) @@ -259,18 +285,18 @@ Contains: if(used == amount) break if(!do_mob(user, M, W.damage/5)) - to_chat(user, "You must stand still to bandage wounds.") + to_chat(user, SPAN_NOTICE("You must stand still to bandage wounds.")) break if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.", \ - "You clean and seal \a [W.desc] on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue."), \ + SPAN_NOTICE("You clean and seal \a [W.desc] on [M]'s [affecting.name].")) //H.add_side_effect("Itch") else if (W.damage_type == BRUISE) - user.visible_message("\The [user] places a medical patch over \a [W.desc] on [M]'s [affecting.name].", \ - "You place a medical patch over \a [W.desc] on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] places a medical patch over \a [W.desc] on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You place a medical patch over \a [W.desc] on [M]'s [affecting.name].")) else - user.visible_message("\The [user] smears some bioglue over \a [W.desc] on [M]'s [affecting.name].", \ - "You smear some bioglue over \a [W.desc] on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] smears some bioglue over \a [W.desc] on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You smear some bioglue over \a [W.desc] on [M]'s [affecting.name].")) playsound(src, pick(apply_sounds), 25) W.bandage() W.disinfect() @@ -279,9 +305,9 @@ Contains: affecting.update_damages() if(used == amount) if(affecting.is_bandaged()) - to_chat(user, "\The [src] is used up.") + to_chat(user, SPAN_WARNING("\The [src] is used up.")) else - to_chat(user, "\The [src] is used up, but there are more wounds to treat on \the [affecting.name].") + to_chat(user, SPAN_WARNING("\The [src] is used up, but there are more wounds to treat on \the [affecting.name].")) use(used) H.update_bandages(TRUE) else @@ -289,7 +315,7 @@ Contains: if (do_surgery(H,user,src)) return else - to_chat(user, "The [affecting.name] is cut open, you'll need more than a bandage!") + to_chat(user, SPAN_NOTICE("The [affecting.name] is cut open, you'll need more than a bandage!")) // Advanced Burn Kit. /obj/item/stack/medical/advanced/ointment @@ -299,7 +325,9 @@ Contains: icon_state = "burnkit" heal_burn = 8 origin_tech = list(TECH_BIO = 1) - apply_sounds = list('sound/items/ointment.ogg') + apply_sounds = /singleton/sound_category/ointment_sound + applied_sounds = 'sound/items/advkit.ogg' + automatic_charge_overlays = TRUE /obj/item/stack/medical/advanced/ointment/full/Initialize() . = ..() @@ -316,18 +344,18 @@ Contains: if(affecting.open == 0) if(affecting.is_salved()) - to_chat(user, "The wounds on [M]'s [affecting.name] have already been salved.") + to_chat(user, SPAN_WARNING("The wounds on [M]'s [affecting.name] have already been salved.")) return 1 else user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - user.visible_message("\The [user] starts salving wounds on [M]'s [affecting.name].", \ - "You start salving the wounds on [M]'s [affecting.name]." ) + user.visible_message(SPAN_NOTICE("\The [user] starts salving wounds on [M]'s [affecting.name]."), \ + SPAN_NOTICE("You start salving the wounds on [M]'s [affecting.name].")) playsound(src, pick(apply_sounds), 25) if(!do_mob(user, M, 10)) - to_chat(user, "You must stand still to salve wounds.") + to_chat(user, SPAN_NOTICE("You must stand still to salve wounds.")) return 1 - user.visible_message( "[user] covers wounds on [M]'s [affecting.name] with regenerative membrane.", \ - "You cover wounds on [M]'s [affecting.name] with regenerative membrane." ) + user.visible_message(SPAN_NOTICE("[user] covers wounds on [M]'s [affecting.name] with regenerative membrane."), \ + SPAN_NOTICE("You cover wounds on [M]'s [affecting.name] with regenerative membrane.")) affecting.heal_damage(0,heal_burn) use(1) affecting.salve() @@ -336,60 +364,7 @@ Contains: if (do_surgery(H,user,src)) return else - to_chat(user, "The [affecting.name] is cut open, you'll need more than a bandage!") - -// Space Klot. This stops bleeding and has a small chance to stop some internal bleeding, but it will be locked behind a tech tree + does not disinfect like a normal bruise pack. -/obj/item/stack/medical/advanced/bruise_pack/spaceklot - name = "space klot" - singular_name = "space klot" - desc = "A powder that, when poured on an open wound, quickly stops the bleeding. Combine with bandages for the best effect." - icon_state = "powderbag" - heal_brute = 15 - origin_tech = list(TECH_BIO = 4) - var/open = 0 - var/used = 0 - -/obj/item/stack/medical/advanced/bruise_pack/spaceklot/full/Initialize() - . = ..() - amount = max_amount - update_icon() - -/obj/item/stack/medical/advanced/bruise_pack/spaceklot/attack(mob/living/carbon/M as mob, mob/user as mob) - if(..()) - return 1 - if(used) - return - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting) - - if(affecting.open == 0) - if(affecting.is_bandaged()) - to_chat(user, "The wounds on [M]'s [affecting.name] have already been treated.") - return 1 - else - user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) - user.visible_message("\The [user] starts treating [M]'s [affecting.name].", \ - "You start treating [M]'s [affecting.name]." ) - if(!do_after(user, 100, act_target = M)) - return - for (var/datum/wound/W in affecting.wounds) - if (W.bandaged) - continue - if(used == amount) - break - if(!do_mob(user, M, W.damage/5)) - to_chat(user, "You must stand still to bandage wounds.") - break - if (W.current_stage <= W.max_bleeding_stage) - user.visible_message("\The [user] pours the powder \a [W.desc] on [M]'s [affecting.name].", \ - "You pour the powder \a [W.desc] on [M]'s [affecting.name]." ) - - W.bandage() - W.heal_damage(heal_brute, 0) - used = 1 - affecting.update_damages() - + to_chat(user, SPAN_NOTICE("The [affecting.name] is cut open, you'll need more than a bandage!")) /obj/item/stack/medical/splint name = "medical splints" @@ -419,32 +394,31 @@ Contains: var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting) var/limb = affecting.name if(!(affecting.limb_name in splintable_organs)) - to_chat(user, "You can't apply a splint there!") + to_chat(user, SPAN_DANGER("You can't apply a splint there!")) return if(affecting.status & ORGAN_SPLINTED) - to_chat(user, "[M]'s [limb] is already splinted!") + to_chat(user, SPAN_DANGER("[M]'s [limb] is already splinted!")) return if (M != user) - user.visible_message("[user] starts to apply \the [src] to [M]'s [limb].", "You start to apply \the [src] to [M]'s [limb].", "You hear something being wrapped.") + user.visible_message(SPAN_DANGER("[user] starts to apply \the [src] to [M]'s [limb]."), SPAN_DANGER("You start to apply \the [src] to [M]'s [limb]."), SPAN_DANGER("You hear something being wrapped.")) else if((!user.hand && affecting.limb_name == BP_R_ARM) || (user.hand && affecting.limb_name == BP_L_ARM)) - to_chat(user, "You can't apply a splint to the arm you're using!") + to_chat(user, SPAN_DANGER("You can't apply a splint to the arm you're using!")) return - user.visible_message("[user] starts to apply \the [src] to their [limb].", "You start to apply \the [src] to your [limb].", "You hear something being wrapped.") + user.visible_message(SPAN_DANGER("[user] starts to apply \the [src] to their [limb]."), SPAN_DANGER("You start to apply \the [src] to your [limb]."), SPAN_DANGER("You hear something being wrapped.")) if(do_after(user, 50)) if (M != user) - user.visible_message("[user] finishes applying \the [src] to [M]'s [limb].", "You finish applying \the [src] to [M]'s [limb].", "You hear something being wrapped.") + user.visible_message(SPAN_DANGER("[user] finishes applying \the [src] to [M]'s [limb]."), SPAN_DANGER("You finish applying \the [src] to [M]'s [limb]."), SPAN_DANGER("You hear something being wrapped.")) else if(prob(25)) - user.visible_message("[user] successfully applies \the [src] to their [limb].", "You successfully apply \the [src] to your [limb].", "You hear something being wrapped.") + user.visible_message(SPAN_DANGER("[user] successfully applies \the [src] to their [limb]."), SPAN_DANGER("You successfully apply \the [src] to your [limb]."), SPAN_DANGER("You hear something being wrapped.")) else - user.visible_message("[user] fumbles \the [src].", "You fumble \the [src].", "You hear something being wrapped.") + user.visible_message(SPAN_DANGER("[user] fumbles \the [src]."), SPAN_DANGER("You fumble \the [src]."), SPAN_DANGER("You hear something being wrapped.")) return affecting.status |= ORGAN_SPLINTED use(1) return - /obj/item/stack/medical/splint/makeshift name = "makeshift splints" singular_name = "makeshift splint" diff --git a/code/game/objects/items/stacks/nanopaste.dm b/code/game/objects/items/stacks/nanopaste.dm index 9398d299f2a..72f31e1d38d 100644 --- a/code/game/objects/items/stacks/nanopaste.dm +++ b/code/game/objects/items/stacks/nanopaste.dm @@ -2,7 +2,7 @@ name = "nanopaste" singular_name = "nanite swarm" desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery." - icon = 'icons/obj/stacks/nanopaste.dmi' + icon = 'icons/obj/item/stacks/nanopaste.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_nanopaste.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_nanopaste.dmi', @@ -38,10 +38,10 @@ R.adjustFireLoss(-15) R.updatehealth() use(1) - user.visible_message("\The [user] applied some [src] at [R]'s damaged areas.",\ - "You apply some [src] at [R]'s damaged areas.") + user.visible_message(SPAN_NOTICE("\The [user] applied some [src] at [R]'s damaged areas."),\ + SPAN_NOTICE("You apply some [src] at [R]'s damaged areas.")) else - to_chat(user, "All [R]'s systems are nominal.") + to_chat(user, SPAN_NOTICE("All [R]'s systems are nominal.")) else if(ishuman(M)) //Repairing robolimbs var/mob/living/carbon/human/H = M @@ -53,27 +53,27 @@ if(S.limb_name == BP_HEAD) if(H.head && istype(H.head,/obj/item/clothing/head/helmet/space)) - to_chat(user, "You can't apply [src] through [H.head]!") + to_chat(user, SPAN_WARNING("You can't apply [src] through [H.head]!")) return else if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space)) - to_chat(user, "You can't apply [src] through [H.wear_suit]!") + to_chat(user, SPAN_WARNING("You can't apply [src] through [H.wear_suit]!")) return if(do_mob(user, M, 7)) S.heal_damage(15, 15, robo_repair = 1) H.updatehealth() use(1) - user.visible_message("\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " \the [user]"] [S.name] with \the [src].",\ - "You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.name].") + user.visible_message(SPAN_NOTICE("\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " \the [user]"] [S.name] with \the [src]."),\ + SPAN_NOTICE("You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.name].")) else - to_chat(user, "Nothing to fix here.") + to_chat(user, SPAN_NOTICE("Nothing to fix here.")) else if (can_operate(H)) if (do_surgery(H,user,src)) return else - to_chat(user, "Nothing to fix in here.") + to_chat(user, SPAN_NOTICE("Nothing to fix in here.")) /obj/item/stack/nanopaste/surge @@ -91,15 +91,15 @@ return 0 if(used) - to_chat(user, "[src] has depleted it's nanites.") + to_chat(user, SPAN_WARNING("[src] has depleted it's nanites.")) return 0 if (isipc(M)) var/obj/item/organ/internal/surge/s = M.internal_organs_by_name["surge"] if(isnull(s)) user.visible_message( - "[user] is trying to apply [src] to [(M == user) ? ("itself") : (M)]!", - "You start applying [src] to [(M == user) ? ("yourself") : (M)]!" + SPAN_NOTICE("[user] is trying to apply [src] to [(M == user) ? ("itself") : (M)]!"), + SPAN_NOTICE("You start applying [src] to [(M == user) ? ("yourself") : (M)]!") ) if (!do_mob(user, M, 2)) @@ -109,18 +109,18 @@ M.internal_organs += s M.internal_organs_by_name["surge"] = s user.visible_message( - "[user] applies some nanite paste to [(M == user) ? ("itself") : (M)]!", - "You apply [src] to [(M == user) ? ("youself") : (M)]." + SPAN_NOTICE("[user] applies some nanite paste to [(M == user) ? ("itself") : (M)]!"), + SPAN_NOTICE("You apply [src] to [(M == user) ? ("youself") : (M)].") ) - to_chat(M, "You can feel nanites inside you creating something new. An internal OS voice states \"Warning: surge prevention module has been installed, it has [s.surge_left] preventions left!\"") + to_chat(M, SPAN_NOTICE("You can feel nanites inside you creating something new. An internal OS voice states \"Warning: surge prevention module has been installed, it has [s.surge_left] preventions left!\"")) amount = 0 used = TRUE return 1 else if(!s.surge_left) user.visible_message( - "[user] is trying to apply [src] to [(M == user) ? ("itself") : (M)]!", - "You start applying [src] to [(M == user) ? ("yourself") : (M)]!" + SPAN_NOTICE("[user] is trying to apply [src] to [(M == user) ? ("itself") : (M)]!"), + SPAN_NOTICE("You start applying [src] to [(M == user) ? ("yourself") : (M)]!") ) if (!do_mob(user, M, 2)) @@ -131,16 +131,16 @@ s.icon_state = "surge_ipc" user.visible_message( - "[user] applies some nanite paste to [(M == user) ? ("itself") : (M)]!", - "You apply [src] to [(M == user) ? ("yourself") : (M)]." + SPAN_NOTICE("[user] applies some nanite paste to [(M == user) ? ("itself") : (M)]!"), + SPAN_NOTICE("You apply [src] to [(M == user) ? ("yourself") : (M)].") ) - to_chat(M, "You can feel nanites inside you regenerating your surge prevention module. An internal OS voice states \"Warning: surge prevention module repaired, it has [s.surge_left] preventions left!\"") + to_chat(M, SPAN_NOTICE("You can feel nanites inside you regenerating your surge prevention module. An internal OS voice states \"Warning: surge prevention module repaired, it has [s.surge_left] preventions left!\"")) amount = 0 used = TRUE return 1 - to_chat(user, "[(M == user) ? ("You already have") : ("[M] already has")] fully functional surge prevention module installed.") + to_chat(user, SPAN_WARNING("[(M == user) ? ("You already have") : ("[M] already has")] fully functional surge prevention module installed.")) return 0 else - to_chat(user, "[src]'s nanites refuse to work on [(M == user) ? ("you") : (M)].") - return 0 \ No newline at end of file + to_chat(user, SPAN_WARNING("[src]'s nanites refuse to work on [(M == user) ? ("you") : (M)].")) + return 0 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 8b5d31d1a58..90ee927cb1b 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -35,6 +35,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list( attack_verb = list("hit", "bludgeoned", "whacked") lock_picking_level = 3 stacktype = /obj/item/stack/rods + icon_has_variants = TRUE /obj/item/stack/rods/full/Initialize() . = ..() @@ -52,17 +53,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list( /obj/item/stack/rods/New(var/loc, var/amount=null) ..() - recipes = rod_recipes - update_icon() - -/obj/item/stack/rods/update_icon() - var/amount = get_amount() - if((amount <= 5) && (amount > 0)) - icon_state = "rods-[amount]" - else - icon_state = "rods" - check_maptext(SMALL_FONTS(7, amount)) /obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob) ..() @@ -161,4 +152,4 @@ var/global/list/datum/stack_recipe/rod_recipes = list( SPAN_NOTICE("You assemble a liquidbag barricade.")) SB.set_dir(user.dir) SB.add_fingerprint(user) - use(build_stack) \ No newline at end of file + use(build_stack) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 6eaf0e5daf3..c0e4af3ccd1 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -118,7 +118,7 @@ name = "wired glass tile" singular_name = "wired glass floor tile" desc = "A glass tile, which is wired, somehow." - icon = 'icons/obj/stacks/tiles.dmi' + icon = 'icons/obj/item/stacks/tiles.dmi' icon_state = "glass_wire" created_window = null default_type = "wired glass" diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index d859a7a9bf4..e01a3331f6e 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -23,7 +23,7 @@ var/list/charge_costs = null var/list/datum/matter_synth/synths = null var/icon_has_variants = FALSE - icon = 'icons/obj/stacks/materials.dmi' + icon = 'icons/obj/item/stacks/materials.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_materials.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_materials.dmi', diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index a85a6e66954..18913d6812b 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -15,7 +15,7 @@ w_class = ITEMSIZE_NORMAL max_amount = 60 recyclable = TRUE - icon = 'icons/obj/stacks/tiles.dmi' + icon = 'icons/obj/item/stacks/tiles.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_tiles.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_tiles.dmi', @@ -80,7 +80,7 @@ /obj/item/stack/tile/wood/coloured/birch name = "birch wood floor tile" - color = WOOD_COLOR_BIRCH + color = WOOD_COLOR_BIRCH build_type = /obj/item/stack/tile/wood/coloured/birch /obj/item/stack/tile/wood/coloured/mahogany diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index 8963f521320..17ad87e9be0 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -2,7 +2,7 @@ name = "wrapping paper" desc = "You can use this to wrap items in." desc_info = "To wrap something into a gift, click on the wrapping paper that's not in your hands with the object you wish to wrap." - icon = 'icons/obj/stacks/wrap.dmi' + icon = 'icons/obj/item/stacks/wrap.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_wrap.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_wrap.dmi', @@ -92,7 +92,7 @@ /obj/item/stack/packageWrap name = "package wrapper" - icon = 'icons/obj/stacks/wrap.dmi' + icon = 'icons/obj/item/stacks/wrap.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_wrap.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_wrap.dmi', @@ -206,7 +206,7 @@ /obj/item/c_tube name = "cardboard tube" desc = "A tube of cardboard." - icon = 'icons/obj/stacks/wrap.dmi' + icon = 'icons/obj/item/stacks/wrap.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/stacks/lefthand_wrap.dmi', slot_r_hand_str = 'icons/mob/items/stacks/righthand_wrap.dmi', diff --git a/code/game/objects/items/weapons/storage/mre.dm b/code/game/objects/items/weapons/storage/mre.dm index 11576b888ea..a43ec7f5b12 100644 --- a/code/game/objects/items/weapons/storage/mre.dm +++ b/code/game/objects/items/weapons/storage/mre.dm @@ -14,7 +14,7 @@ MRE Stuff drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' use_sound = 'sound/items/storage/wrapper.ogg' - open_sound = 'sound/items/rip1.ogg' + open_sound = /singleton/sound_category/rip_sound open_message = "You tear open the bag, breaking the vacuum seal." var/main_meal = /obj/item/storage/box/fancy/mrebag var/meal_desc = "This one is menu 1, meat pizza." @@ -223,7 +223,7 @@ MRE Stuff name = "dessert" desc = "A vacuum-sealed bag containing a MRE's dessert." icon_state = "pouch_small" - open_sound = 'sound/items/rip1.ogg' + open_sound = /singleton/sound_category/rip_sound open_message = "You tear open the bag, breaking the vacuum seal." starts_with = list(/obj/random/mre/dessert = 1) diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 8b81729f852..89ee1affa5c 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -32,7 +32,7 @@ if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.has_eyes() || H.glasses || (H.head && (H.head.body_parts_covered & FACE))) return - playsound(src, 'sound/items/tape.ogg',25) + playsound(src, /singleton/sound_category/rip_sound, 25) user.visible_message("\The [user] has taped up \the [H]'s eyes!") H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/blindfold/tape(H), slot_glasses) H.update_inv_glasses() @@ -51,7 +51,7 @@ to_chat(user, "Remove their [H.head] first.") return - playsound(src, 'sound/items/tape.ogg',25) + playsound(src, /singleton/sound_category/rip_sound, 25) user.visible_message("\The [user] begins taping up \the [H]'s mouth!") if(!do_after(user, 30)) @@ -61,13 +61,13 @@ if(!H || !src || !H.organs_by_name[BP_HEAD] || !H.check_has_mouth() || H.wear_mask || (H.head && (H.head.body_parts_covered & FACE))) return - playsound(src, 'sound/items/tape.ogg',25) + playsound(src, /singleton/sound_category/rip_sound,25) user.visible_message("\The [user] has taped up \the [H]'s mouth!") H.equip_to_slot_or_del(new /obj/item/clothing/mask/muzzle/tape(H), slot_wear_mask) H.update_inv_wear_mask() else if(target_zone == BP_R_HAND || target_zone == BP_L_HAND) - playsound(src, 'sound/items/tape.ogg',25) + playsound(src, /singleton/sound_category/rip_sound,25) var/obj/item/handcuffs/cable/tape/T = new(user) if(!T.place_handcuffs(H, user)) user.unEquip(T) @@ -140,7 +140,7 @@ return // reduce papers around corners issue. user.drop_from_inventory(src,source_turf) - playsound(src, 'sound/items/tape.ogg',25) + playsound(src, /singleton/sound_category/rip_sound,25) if(params) var/list/mouse_control = mouse_safe_xy(params) diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 2e1f09326c9..0bc3bc4a683 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -140,7 +140,7 @@ /obj/random/medical name = "Random Medicine" desc = "This is a random medical item." - icon = 'icons/obj/stacks/medical.dmi' + icon = 'icons/obj/item/stacks/medical.dmi' icon_state = "brutepack" spawn_nothing_percentage = 25 problist = list( diff --git a/code/game/sound.dm b/code/game/sound.dm index ac631ae3462..9693452f89b 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -924,3 +924,18 @@ 'sound/machines/sm/accent/delam/32.ogg', 'sound/machines/sm/accent/delam/33.ogg' ) + +/singleton/sound_category/rip_sound + sounds = list( + 'sound/items/rip1.ogg', + 'sound/items/rip2.ogg', + 'sound/items/rip3.ogg', + 'sound/items/rip4.ogg' + ) + +/singleton/sound_category/ointment_sound + sounds = list( + 'sound/items/ointment1.ogg', + 'sound/items/ointment2.ogg', + 'sound/items/ointment3.ogg' + ) diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index c2f2c1b69cc..107933d5306 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -135,6 +135,7 @@ name = "diamond" icon_state = "sheet-diamond" default_type = MATERIAL_DIAMOND + icon_has_variants = TRUE /obj/item/stack/material/diamond/full/Initialize() . = ..() @@ -145,6 +146,7 @@ name = "uranium" icon_state = "sheet-uranium" default_type = MATERIAL_URANIUM + icon_has_variants = TRUE /obj/item/stack/material/uranium/full/Initialize() . = ..() @@ -221,7 +223,7 @@ //Extremely valuable to Research. /obj/item/stack/material/mhydrogen name = "metallic hydrogen" - icon_state = "sheet-mythril" + icon_state = "sheet-metalhydrogen" default_type = MATERIAL_HYDROGEN_METALLIC /obj/item/stack/material/mhydrogen/full/Initialize() @@ -306,6 +308,7 @@ name = "wooden plank" icon_state = "sheet-wood" default_type = MATERIAL_WOOD + icon_has_variants = TRUE /obj/item/stack/material/wood/full/Initialize() . = ..() @@ -340,7 +343,7 @@ update_icon() /obj/item/stack/material/wood/coloured/bamboo - color = WOOD_COLOR_PALE2 + icon_state = "sheet-bamboo" /obj/item/stack/material/wood/coloured/bamboo/Initialize() . = ..() @@ -419,6 +422,7 @@ name = "cardboard" icon_state = "sheet-card" default_type = MATERIAL_CARDBOARD + icon_has_variants = TRUE /obj/item/stack/material/cardboard/full/Initialize() . = ..() @@ -455,7 +459,7 @@ /obj/item/stack/material/glass/wired name = "wired glass" - icon = 'icons/obj/stacks/tiles.dmi' + icon = 'icons/obj/item/stacks/tiles.dmi' icon_state = "glass_wire" default_type = MATERIAL_GLASS_WIRED @@ -479,7 +483,7 @@ name = "borosilicate glass" desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures" singular_name = "borosilicate glass sheet" - icon_state = "sheet-phoronglass" + icon_state = "sheet-pglass" item_state = "sheet-pglass" default_type = MATERIAL_GLASS_PHORON @@ -492,7 +496,7 @@ name = "reinforced borosilicate glass" desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures. It is reinforced with few rods." singular_name = "reinforced borosilicate glass sheet" - icon_state = "sheet-phoronrglass" + icon_state = "sheet-prglass" item_state = "sheet-prglass" default_type = MATERIAL_GLASS_REINFORCED_PHORON @@ -532,4 +536,4 @@ /obj/item/stack/material/graphite/full/Initialize() . = ..() amount = max_amount - update_icon() \ No newline at end of file + update_icon() diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index d1988611aad..a480d0a810e 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -1,7 +1,7 @@ /obj/item/ore name = "rock" - icon = 'icons/obj/mining.dmi' - icon_state = "ore1" + icon = 'icons/obj/item/ore.dmi' + icon_state = "ore" randpixel = 8 w_class = ITEMSIZE_SMALL throwforce = 10 @@ -32,7 +32,7 @@ /obj/item/ore/coal name = "raw carbon" - icon_state = "ore_coal" + icon_state = "slag" origin_tech = list(TECH_MATERIAL = 1) material = ORE_COAL @@ -95,11 +95,6 @@ icon_state = "slag" material = null -/obj/item/ore/Initialize() - . = ..() - if((randpixel_xy()) && icon_state == "ore1") - icon_state = "ore[pick(1,2,3)]" - /obj/item/ore/attackby(obj/item/W, mob/user) if(istype(W,/obj/item/device/core_sampler)) var/obj/item/device/core_sampler/C = W diff --git a/html/changelogs/wezzy_newmats.yml b/html/changelogs/wezzy_newmats.yml new file mode 100644 index 00000000000..ded1da52ebb --- /dev/null +++ b/html/changelogs/wezzy_newmats.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Wowzewow(Wezzy) + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - imageadd: "Adds new material and medical stack sprites." + - soundadd: "Adjusts application sounds for medical stacks." diff --git a/icons/obj/item/ore.dmi b/icons/obj/item/ore.dmi new file mode 100644 index 00000000000..3e45d4c1335 Binary files /dev/null and b/icons/obj/item/ore.dmi differ diff --git a/icons/obj/item/stacks/materials.dmi b/icons/obj/item/stacks/materials.dmi new file mode 100644 index 00000000000..657dbd752db Binary files /dev/null and b/icons/obj/item/stacks/materials.dmi differ diff --git a/icons/obj/item/stacks/medical.dmi b/icons/obj/item/stacks/medical.dmi new file mode 100644 index 00000000000..c4059dd6e2f Binary files /dev/null and b/icons/obj/item/stacks/medical.dmi differ diff --git a/icons/obj/item/stacks/nanopaste.dmi b/icons/obj/item/stacks/nanopaste.dmi new file mode 100644 index 00000000000..1ed5a8c6a9f Binary files /dev/null and b/icons/obj/item/stacks/nanopaste.dmi differ diff --git a/icons/obj/stacks/tiles.dmi b/icons/obj/item/stacks/tiles.dmi similarity index 100% rename from icons/obj/stacks/tiles.dmi rename to icons/obj/item/stacks/tiles.dmi diff --git a/icons/obj/stacks/wrap.dmi b/icons/obj/item/stacks/wrap.dmi similarity index 100% rename from icons/obj/stacks/wrap.dmi rename to icons/obj/item/stacks/wrap.dmi diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 2b4976a44b3..5a39b4ce7bd 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/stacks/materials.dmi b/icons/obj/stacks/materials.dmi deleted file mode 100644 index e0483c435f7..00000000000 Binary files a/icons/obj/stacks/materials.dmi and /dev/null differ diff --git a/icons/obj/stacks/medical.dmi b/icons/obj/stacks/medical.dmi deleted file mode 100644 index fcfc7c7d6ef..00000000000 Binary files a/icons/obj/stacks/medical.dmi and /dev/null differ diff --git a/icons/obj/stacks/nanopaste.dmi b/icons/obj/stacks/nanopaste.dmi deleted file mode 100644 index f41264e3a2b..00000000000 Binary files a/icons/obj/stacks/nanopaste.dmi and /dev/null differ diff --git a/sound/items/advkit.ogg b/sound/items/advkit.ogg new file mode 100644 index 00000000000..80e204dcbf9 Binary files /dev/null and b/sound/items/advkit.ogg differ diff --git a/sound/items/ointment1.ogg b/sound/items/ointment1.ogg new file mode 100644 index 00000000000..0d8f049de1f Binary files /dev/null and b/sound/items/ointment1.ogg differ diff --git a/sound/items/ointment2.ogg b/sound/items/ointment2.ogg new file mode 100644 index 00000000000..66517f4dcc4 Binary files /dev/null and b/sound/items/ointment2.ogg differ diff --git a/sound/items/ointment3.ogg b/sound/items/ointment3.ogg new file mode 100644 index 00000000000..c5d9e90cc07 Binary files /dev/null and b/sound/items/ointment3.ogg differ diff --git a/sound/items/rip3.ogg b/sound/items/rip3.ogg new file mode 100644 index 00000000000..82d93582923 Binary files /dev/null and b/sound/items/rip3.ogg differ diff --git a/sound/items/rip4.ogg b/sound/items/rip4.ogg new file mode 100644 index 00000000000..32c594b688d Binary files /dev/null and b/sound/items/rip4.ogg differ diff --git a/sound/items/tape.ogg b/sound/items/tape.ogg deleted file mode 100644 index 7a7047e3246..00000000000 Binary files a/sound/items/tape.ogg and /dev/null differ