diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm index 21ca60771a5..f1d4b404daa 100644 --- a/code/game/objects/random/misc_vr.dm +++ b/code/game/objects/random/misc_vr.dm @@ -130,7 +130,8 @@ prob(1);/obj/fiftyspawner/diamond, prob(5);/obj/fiftyspawner/phoron, prob(1);/obj/item/capture_crystal/random, - prob(1);/obj/random/unidentified_medicine + prob(1);/obj/random/unidentified_medicine, + prob(1);/obj/random/mouseray ) /obj/random/mainttoyloot/nofail spawn_nothing_percentage = 0 diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index 6c8e2b8ccfd..2c6499fd939 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -25,7 +25,8 @@ /obj/item/weapon/gun/projectile/pirate, /obj/item/clothing/accessory/permit/gun, /obj/item/weapon/gun/projectile/dartgun, - /obj/item/clothing/gloves/black/bloodletter + /obj/item/clothing/gloves/black/bloodletter, + /obj/item/weapon/gun/energy/mouseray/metamorphosis ) var/global/list/allocated_gamma = list() @@ -261,7 +262,8 @@ prob(1);/obj/item/weapon/storage/secure/briefcase/trashmoney, prob(1);/obj/item/device/survivalcapsule/popcabin, prob(1);/obj/item/weapon/reagent_containers/syringe/steroid, - prob(1);/obj/item/capture_crystal) + prob(1);/obj/item/capture_crystal, + prob(1);/obj/item/weapon/gun/energy/mouseray) var/obj/item/I = new path() return I diff --git a/code/modules/vore/mouseray.dm b/code/modules/vore/mouseray.dm index 83ea5e247ae..4941a0c1675 100644 --- a/code/modules/vore/mouseray.dm +++ b/code/modules/vore/mouseray.dm @@ -22,105 +22,6 @@ "dust jumper" = /mob/living/simple_mob/vore/alienanimals/dustjumper ) -/obj/item/weapon/gun/energy/mouseray/admin - name = "experimental metamorphosis ray" - tf_admin_pref_override = TRUE - cooldown_time = 5 SECONDS - tf_allow_select = TRUE - charge_meter = FALSE - charge_cost = 0 - icon_state = "adminray" - -/obj/item/weapon/gun/energy/mouseray/metamorphosis - name = "metamorphosis ray" - tf_allow_select = TRUE - tf_possible_types = list( - "mouse" = /mob/living/simple_mob/animal/passive/mouse, - "rat" = /mob/living/simple_mob/animal/passive/mouse/rat, - "dust jumper" = /mob/living/simple_mob/vore/alienanimals/dustjumper, - "woof" = /mob/living/simple_mob/vore/woof, - "corgi" = /mob/living/simple_mob/animal/passive/dog/corgi, - "cat" = /mob/living/simple_mob/animal/passive/cat, - "chicken" = /mob/living/simple_mob/animal/passive/chicken, - "cow" = /mob/living/simple_mob/animal/passive/cow, - "lizard" = /mob/living/simple_mob/animal/passive/lizard, - "hare" = /mob/living/simple_mob/vore/rabbit, - "fox" = /mob/living/simple_mob/animal/passive/fox, - "fennec" = /mob/living/simple_mob/vore/fennec, - "cute fennec" = /mob/living/simple_mob/animal/passive/fennec, - "red panda" = /mob/living/simple_mob/vore/redpanda, - "opossum" = /mob/living/simple_mob/animal/passive/opossum, - "horse" = /mob/living/simple_mob/vore/horse, - "goose" = /mob/living/simple_mob/animal/space/goose, - "sheep" = /mob/living/simple_mob/vore/sheep - ) - -/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced - name = "advanced metamorphosis ray" - tf_possible_types = list( - "mouse" = /mob/living/simple_mob/animal/passive/mouse, - "rat" = /mob/living/simple_mob/animal/passive/mouse/rat, - "dust jumper" = /mob/living/simple_mob/vore/alienanimals/dustjumper, - "woof" = /mob/living/simple_mob/vore/woof, - "corgi" = /mob/living/simple_mob/animal/passive/dog/corgi, - "cat" = /mob/living/simple_mob/animal/passive/cat, - "chicken" = /mob/living/simple_mob/animal/passive/chicken, - "cow" = /mob/living/simple_mob/animal/passive/cow, - "lizard" = /mob/living/simple_mob/animal/passive/lizard, - "rabbit" = /mob/living/simple_mob/vore/rabbit, - "fox" = /mob/living/simple_mob/animal/passive/fox, - "fennec" = /mob/living/simple_mob/vore/fennec, - "cute fennec" = /mob/living/simple_mob/animal/passive/fennec, - "fennix" = /mob/living/simple_mob/vore/fennix, - "red panda" = /mob/living/simple_mob/vore/redpanda, - "opossum" = /mob/living/simple_mob/animal/passive/opossum, - "horse" = /mob/living/simple_mob/vore/horse, - "goose" = /mob/living/simple_mob/animal/space/goose, - "sheep" = /mob/living/simple_mob/vore/sheep, - "space bumblebee" = /mob/living/simple_mob/vore/bee, - "space bear" = /mob/living/simple_mob/animal/space/bear, - "voracious lizard" = /mob/living/simple_mob/vore/aggressive/dino, - "giant frog" = /mob/living/simple_mob/vore/aggressive/frog, - "jelly blob" = /mob/living/simple_mob/animal/space/jelly, - "wolf" = /mob/living/simple_mob/animal/wolf, - "direwolf" = /mob/living/simple_mob/animal/wolf/direwolf, - "great wolf" = /mob/living/simple_mob/vore/greatwolf, - "sect queen" = /mob/living/simple_mob/vore/sect_queen, - "sect drone" = /mob/living/simple_mob/vore/sect_drone, - "panther" = /mob/living/simple_mob/vore/aggressive/panther, - "giant snake" = /mob/living/simple_mob/vore/aggressive/giant_snake, - "deathclaw" = /mob/living/simple_mob/vore/aggressive/deathclaw, - "otie" = /mob/living/simple_mob/otie, - "mutated otie" =/mob/living/simple_mob/otie/feral, - "red otie" = /mob/living/simple_mob/otie/red, - "defanged xenomorph" = /mob/living/simple_mob/vore/xeno_defanged, - "catslug" = /mob/living/simple_mob/vore/alienanimals/catslug, - "teppi" = /mob/living/simple_mob/vore/alienanimals/teppi, - "monkey" = /mob/living/carbon/human/monkey, - "wolpin" = /mob/living/carbon/human/wolpin, - "sparra" = /mob/living/carbon/human/sparram, - "saru" = /mob/living/carbon/human/sergallingm, - "sobaka" = /mob/living/carbon/human/sharkm, - "farwa" = /mob/living/carbon/human/farwa, - "neaera" = /mob/living/carbon/human/neaera, - "stok" = /mob/living/carbon/human/stok, - "weretiger" = /mob/living/simple_mob/vore/weretiger, - "dragon" = /mob/living/simple_mob/vore/bigdragon/friendly, - "leopardmander" = /mob/living/simple_mob/vore/leopardmander - ) - -/obj/item/weapon/gun/energy/mouseray/woof - name = "woof ray" - tf_type = /mob/living/simple_mob/vore/woof - -/obj/item/weapon/gun/energy/mouseray/corgi - name = "corgi ray" - tf_type = /mob/living/simple_mob/animal/passive/dog/corgi - -/obj/item/weapon/gun/energy/mouseray/cat - name = "cat ray" - tf_type = /mob/living/simple_mob/animal/passive/cat - /obj/item/weapon/gun/energy/mouseray/attack_self(mob/user) . = ..() if(tf_allow_select) @@ -297,18 +198,7 @@ new_mob.nutrition_message_visible = nutrition_message_visible new_mob.allow_spontaneous_tf = allow_spontaneous_tf -/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced/random - name = "unstable metamorphosis ray" - tf_allow_select = FALSE - -/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced/random/Fire(atom/target, mob/living/user, clickparams, pointblank, reflex) - if(world.time < cooldown) - to_chat(usr, "\The [src] isn't ready yet.") - return - var/choice = pick(tf_possible_types) - tf_type = tf_possible_types[choice] - . = ..() - +/////SUBTYPES///// /obj/item/weapon/gun/energy/mouseray/medical //This just changes people back, it can't TF people into anything without shenanigans name = "recombobulation ray" @@ -373,3 +263,194 @@ return else firer.visible_message("\The [shot_from] buzzes impolitely.") + +/obj/item/weapon/gun/energy/mouseray/admin //NEVER GIVE THIS TO ANYONE + name = "experimental metamorphosis ray" + tf_admin_pref_override = TRUE + cooldown_time = 5 SECONDS + tf_allow_select = TRUE + charge_meter = FALSE + charge_cost = 0 + icon_state = "adminray" + +/obj/item/weapon/gun/energy/mouseray/metamorphosis + name = "metamorphosis ray" + tf_allow_select = TRUE + tf_possible_types = list( + "mouse" = /mob/living/simple_mob/animal/passive/mouse, + "rat" = /mob/living/simple_mob/animal/passive/mouse/rat, + "dust jumper" = /mob/living/simple_mob/vore/alienanimals/dustjumper, + "woof" = /mob/living/simple_mob/vore/woof, + "corgi" = /mob/living/simple_mob/animal/passive/dog/corgi, + "cat" = /mob/living/simple_mob/animal/passive/cat, + "chicken" = /mob/living/simple_mob/animal/passive/chicken, + "cow" = /mob/living/simple_mob/animal/passive/cow, + "lizard" = /mob/living/simple_mob/animal/passive/lizard, + "rabbit" = /mob/living/simple_mob/vore/rabbit, + "fox" = /mob/living/simple_mob/animal/passive/fox, + "fennec" = /mob/living/simple_mob/vore/fennec, + "cute fennec" = /mob/living/simple_mob/animal/passive/fennec, + "fennix" = /mob/living/simple_mob/vore/fennix, + "red panda" = /mob/living/simple_mob/vore/redpanda, + "opossum" = /mob/living/simple_mob/animal/passive/opossum, + "horse" = /mob/living/simple_mob/vore/horse, + "goose" = /mob/living/simple_mob/animal/space/goose, + "sheep" = /mob/living/simple_mob/vore/sheep + ) + +/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced + name = "advanced metamorphosis ray" + tf_possible_types = list( + "mouse" = /mob/living/simple_mob/animal/passive/mouse, + "rat" = /mob/living/simple_mob/animal/passive/mouse/rat, + "giant rat" = /mob/living/simple_mob/vore/aggressive/rat, + "dust jumper" = /mob/living/simple_mob/vore/alienanimals/dustjumper, + "woof" = /mob/living/simple_mob/vore/woof, + "corgi" = /mob/living/simple_mob/animal/passive/dog/corgi, + "cat" = /mob/living/simple_mob/animal/passive/cat, + "chicken" = /mob/living/simple_mob/animal/passive/chicken, + "cow" = /mob/living/simple_mob/animal/passive/cow, + "lizard" = /mob/living/simple_mob/animal/passive/lizard, + "rabbit" = /mob/living/simple_mob/vore/rabbit, + "fox" = /mob/living/simple_mob/animal/passive/fox, + "fennec" = /mob/living/simple_mob/vore/fennec, + "cute fennec" = /mob/living/simple_mob/animal/passive/fennec, + "fennix" = /mob/living/simple_mob/vore/fennix, + "red panda" = /mob/living/simple_mob/vore/redpanda, + "opossum" = /mob/living/simple_mob/animal/passive/opossum, + "horse" = /mob/living/simple_mob/vore/horse, + "goose" = /mob/living/simple_mob/animal/space/goose, + "sheep" = /mob/living/simple_mob/vore/sheep, + "space bumblebee" = /mob/living/simple_mob/vore/bee, + "space bear" = /mob/living/simple_mob/animal/space/bear, + "voracious lizard" = /mob/living/simple_mob/vore/aggressive/dino, + "giant frog" = /mob/living/simple_mob/vore/aggressive/frog, + "jelly blob" = /mob/living/simple_mob/animal/space/jelly, + "wolf" = /mob/living/simple_mob/animal/wolf, + "direwolf" = /mob/living/simple_mob/animal/wolf/direwolf, + "great wolf" = /mob/living/simple_mob/vore/greatwolf, + "sect queen" = /mob/living/simple_mob/vore/sect_queen, + "sect drone" = /mob/living/simple_mob/vore/sect_drone, + "panther" = /mob/living/simple_mob/vore/aggressive/panther, + "giant snake" = /mob/living/simple_mob/vore/aggressive/giant_snake, + "deathclaw" = /mob/living/simple_mob/vore/aggressive/deathclaw, + "otie" = /mob/living/simple_mob/otie, + "mutated otie" =/mob/living/simple_mob/otie/feral, + "red otie" = /mob/living/simple_mob/otie/red, + "defanged xenomorph" = /mob/living/simple_mob/vore/xeno_defanged, + "catslug" = /mob/living/simple_mob/vore/alienanimals/catslug, + "teppi" = /mob/living/simple_mob/vore/alienanimals/teppi, + "monkey" = /mob/living/carbon/human/monkey, + "wolpin" = /mob/living/carbon/human/wolpin, + "sparra" = /mob/living/carbon/human/sparram, + "saru" = /mob/living/carbon/human/sergallingm, + "sobaka" = /mob/living/carbon/human/sharkm, + "farwa" = /mob/living/carbon/human/farwa, + "neaera" = /mob/living/carbon/human/neaera, + "stok" = /mob/living/carbon/human/stok, + "weretiger" = /mob/living/simple_mob/vore/weretiger, + "dragon" = /mob/living/simple_mob/vore/bigdragon/friendly, + "leopardmander" = /mob/living/simple_mob/vore/leopardmander + ) + +/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced/random + name = "unstable metamorphosis ray" + tf_allow_select = FALSE + +/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced/random/Fire(atom/target, mob/living/user, clickparams, pointblank, reflex) + if(world.time < cooldown) + to_chat(usr, "\The [src] isn't ready yet.") + return + var/choice = pick(tf_possible_types) + tf_type = tf_possible_types[choice] + . = ..() + +/obj/item/weapon/gun/energy/mouseray/woof + name = "woof ray" + tf_type = /mob/living/simple_mob/vore/woof + +/obj/item/weapon/gun/energy/mouseray/corgi + name = "corgi ray" + tf_type = /mob/living/simple_mob/animal/passive/dog/corgi + +/obj/item/weapon/gun/energy/mouseray/cat + name = "cat ray" + tf_type = /mob/living/simple_mob/animal/passive/cat + +/obj/item/weapon/gun/energy/mouseray/chicken + name = "chicken ray" + tf_type = /mob/living/simple_mob/animal/passive/chicken + +/obj/item/weapon/gun/energy/mouseray/lizard + name = "lizard ray" + tf_type = /mob/living/simple_mob/animal/passive/lizard + +/obj/item/weapon/gun/energy/mouseray/rabbit + name = "rabbit ray" + tf_type = /mob/living/simple_mob/vore/rabbit + +/obj/item/weapon/gun/energy/mouseray/fennec + name = "fennec ray" + tf_type = /mob/living/simple_mob/animal/passive/fennec + +/obj/item/weapon/gun/energy/mouseray/monkey + name = "monkey ray" + tf_type = /mob/living/carbon/human/monkey + +/obj/item/weapon/gun/energy/mouseray/wolpin + name = "wolpin ray" + tf_type = /mob/living/carbon/human/wolpin + +/obj/item/weapon/gun/energy/mouseray/otie + name = "otie ray" + tf_type = /mob/living/simple_mob/otie + +/obj/item/weapon/gun/energy/mouseray/direwolf + name = "dire wolf ray" + tf_type = /mob/living/simple_mob/animal/wolf/direwolf + +/obj/item/weapon/gun/energy/mouseray/giantrat + name = "giant rat ray" + tf_type = /mob/living/simple_mob/vore/aggressive/rat + +/obj/item/weapon/gun/energy/mouseray/redpanda + name = "red panda ray" + tf_type = /mob/living/simple_mob/vore/redpanda + +/obj/item/weapon/gun/energy/mouseray/catslug + name = "catslug ray" + tf_type = /mob/living/simple_mob/vore/alienanimals/catslug + +/obj/item/weapon/gun/energy/mouseray/teppi + name = "teppi ray" + tf_type = /mob/living/simple_mob/vore/alienanimals/teppi + + +/////RANDOM SPAWNER///// + +/obj/random/mouseray + name = "random ray" + icon = 'icons/mob/randomlandmarks.dmi' + icon_state = "fanc_trejur" + spawn_nothing_percentage = 0 + +/obj/random/mainttoyloot/item_to_spawn() + return pick(prob(300);/obj/item/weapon/gun/energy/mouseray, + prob(50);/obj/item/weapon/gun/energy/mouseray/corgi, + prob(50);/obj/item/weapon/gun/energy/mouseray/woof, + prob(50);/obj/item/weapon/gun/energy/mouseray/cat, + prob(50);/obj/item/weapon/gun/energy/mouseray/chicken, + prob(50);/obj/item/weapon/gun/energy/mouseray/lizard, + prob(50);/obj/item/weapon/gun/energy/mouseray/rabbit, + prob(50);/obj/item/weapon/gun/energy/mouseray/fennec, + prob(5);/obj/item/weapon/gun/energy/mouseray/monkey, + prob(5);/obj/item/weapon/gun/energy/mouseray/wolpin, + prob(5);/obj/item/weapon/gun/energy/mouseray/otie, + prob(5);/obj/item/weapon/gun/energy/mouseray/direwolf, + prob(5);/obj/item/weapon/gun/energy/mouseray/giantrat, + prob(50);/obj/item/weapon/gun/energy/mouseray/redpanda, + prob(5);/obj/item/weapon/gun/energy/mouseray/catslug, + prob(5);/obj/item/weapon/gun/energy/mouseray/teppi, + prob(1);/obj/item/weapon/gun/energy/mouseray/metamorphosis, + prob(1);/obj/item/weapon/gun/energy/mouseray/metamorphosis/advanced/random + ) diff --git a/maps/groundbase/gb-z1.dmm b/maps/groundbase/gb-z1.dmm index 19f2cd1b293..960cc37b912 100644 --- a/maps/groundbase/gb-z1.dmm +++ b/maps/groundbase/gb-z1.dmm @@ -18676,6 +18676,7 @@ departmentType = 2; pixel_y = 30 }, +/obj/item/weapon/gun/energy/mouseray/medical, /turf/simulated/floor/tiled/white, /area/groundbase/medical/equipment) "To" = ( diff --git a/maps/stellar_delight/stellar_delight2.dmm b/maps/stellar_delight/stellar_delight2.dmm index c8773fbcd83..e54c49f0b21 100644 --- a/maps/stellar_delight/stellar_delight2.dmm +++ b/maps/stellar_delight/stellar_delight2.dmm @@ -11229,6 +11229,7 @@ /obj/machinery/light{ dir = 4 }, +/obj/item/weapon/gun/energy/mouseray/medical, /turf/simulated/floor/tiled/eris/white/bluecorner, /area/medical/cmostore) "yW" = ( diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index c741c9af1f6..de80625f423 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -557,6 +557,7 @@ /obj/machinery/status_display{ pixel_x = -32 }, +/obj/item/weapon/gun/energy/mouseray/medical, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/storage) "aaT" = (