From 26dce1db7b566c6657923710a4e608b2fb5c2ab9 Mon Sep 17 00:00:00 2001 From: Casey Date: Thu, 7 Jul 2022 20:17:47 -0400 Subject: [PATCH] Mouse Ray --- code/game/objects/random/misc_vr.dm | 1 + code/game/objects/structures/trash_pile_vr.dm | 6 +- code/modules/mob/living/life.dm | 2 + code/modules/mob/living/living.dm | 37 +- code/modules/organs/organ_external.dm | 12 +- code/modules/vore/mouseray.dm | 456 ++++++++++++++++++ icons/mob/items/lefthand_guns_vr.dmi | Bin 12683 -> 13110 bytes icons/mob/items/righthand_guns_vr.dmi | Bin 12968 -> 13582 bytes icons/obj/mouseray.dmi | Bin 0 -> 1367 bytes maps/groundbase/gb-z1.dmm | 1 + maps/stellar_delight/stellar_delight2.dmm | 1 + maps/tether/tether-03-surface3.dmm | 1 + vorestation.dme | 1 + 13 files changed, 513 insertions(+), 5 deletions(-) create mode 100644 code/modules/vore/mouseray.dm create mode 100644 icons/obj/mouseray.dmi diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm index 21ca60771a..3f2644348d 100644 --- a/code/game/objects/random/misc_vr.dm +++ b/code/game/objects/random/misc_vr.dm @@ -114,6 +114,7 @@ prob(30);/obj/item/weapon/aliencoin/gold, prob(20);/obj/item/weapon/aliencoin/phoron, prob(5);/obj/item/capture_crystal, + prob(5);/obj/random/mouseray, prob(5);/obj/item/device/perfect_tele, prob(5);/obj/item/weapon/bluespace_harpoon, prob(1);/obj/item/device/paicard, diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index 4de01de0b4..f1ee401884 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() @@ -269,7 +270,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/mob/living/life.dm b/code/modules/mob/living/life.dm index 1182dcf34b..6356bfb7b3 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -72,6 +72,8 @@ handle_vision() + handle_tf_holder() //VOREStation Addition + /mob/living/proc/handle_breathing() return diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index bf23a03e68..e0f7d9a14b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -32,6 +32,28 @@ nest = null if(buckled) buckled.unbuckle_mob(src, TRUE) + //VOREStation Addition Start + if(tf_mob_holder && tf_mob_holder.loc == src) + tf_mob_holder.ckey = ckey + if(isbelly(loc)) + tf_mob_holder.loc = loc + tf_mob_holder.forceMove(loc) + else + var/turf/get_dat_turf = get_turf(src) + tf_mob_holder.loc = get_dat_turf + tf_mob_holder.forceMove(get_dat_turf) + QDEL_LIST_NULL(tf_mob_holder.vore_organs) + tf_mob_holder.vore_organs = list() + for(var/obj/belly/B as anything in vore_organs) + B.loc = tf_mob_holder + B.forceMove(tf_mob_holder) + B.owner = tf_mob_holder + tf_mob_holder.vore_organs |= B + vore_organs -= B + + if(tf_mob_holder) + tf_mob_holder = null + //VOREStation Addition End qdel(selected_image) QDEL_NULL(vorePanel) //VOREStation Add @@ -39,7 +61,6 @@ temp_language_sources = null //VOREStation Add temp_languages = null //VOREStation Add - if(LAZYLEN(organs)) organs_by_name.Cut() while(organs.len) @@ -179,6 +200,13 @@ if(!isnull(M.incoming_healing_percent)) amount *= M.incoming_healing_percent + //VOREStation Additon Start + if(tf_mob_holder && tf_mob_holder.loc == src) + var/dmgmultiplier = tf_mob_holder.maxHealth / maxHealth + dmgmultiplier *= amount + tf_mob_holder.adjustBruteLoss(dmgmultiplier) + //VOREStation Additon End + bruteloss = min(max(bruteloss + amount, 0),(getMaxHealth()*2)) updatehealth() @@ -252,7 +280,12 @@ for(var/datum/modifier/M in modifiers) if(!isnull(M.incoming_healing_percent)) amount *= M.incoming_healing_percent - + //VOREStation Additon Start + if(tf_mob_holder && tf_mob_holder.loc == src) + var/dmgmultiplier = tf_mob_holder.maxHealth / maxHealth + dmgmultiplier *= amount + tf_mob_holder.adjustFireLoss(dmgmultiplier) + //VOREStation Additon End fireloss = min(max(fireloss + amount, 0),(getMaxHealth()*2)) updatehealth() diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 94ff5ac52e..c4f52b6a1b 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -379,7 +379,7 @@ droplimb(0, DROPLIMB_EDGE) else if(spread_dam && owner && parent && (brute_overflow || burn_overflow) && (brute_overflow >= 5 || burn_overflow >= 5) && !permutation) //No infinite damage loops. var/brute_third = brute_overflow * 0.33 - var/burn_third = burn_overflow * 0.33 + var/burn_third = burn_overflow * 0.33 if(children && children.len) var/brute_on_children = brute_third / children.len var/burn_on_children = burn_third / children.len @@ -1064,6 +1064,7 @@ Note that amputating the affected organ does in fact remove the infection from t if((status & ORGAN_BROKEN) || cannot_break) return +<<<<<<< HEAD if(owner) //CHOMPEdit Begin owner.custom_pain(pick(\ @@ -1073,7 +1074,16 @@ Note that amputating the affected organ does in fact remove the infection from t //CHOMPEdit End jostle_bone() if(organ_can_feel_pain() && !isbelly(owner.loc)) +======= + if(owner) //VOREStation Edit Start + if(organ_can_feel_pain() && !isbelly(owner.loc) && !isliving(owner.loc)) + owner.visible_message(\ + "You hear a loud cracking sound coming from \the [owner].",\ + "Something feels like it shattered in your [name]!",\ + "You hear a sickening crack.") +>>>>>>> 9b7e3a34f6... Merge pull request #13294 from Very-Soft/mouseray owner.emote("scream") + jostle_bone() //VOREStation Edit End playsound(src, "fracture", 10, 1, -2) status |= ORGAN_BROKEN diff --git a/code/modules/vore/mouseray.dm b/code/modules/vore/mouseray.dm new file mode 100644 index 0000000000..4941a0c167 --- /dev/null +++ b/code/modules/vore/mouseray.dm @@ -0,0 +1,456 @@ +/obj/item/weapon/gun/energy/mouseray + name = "mouse ray" + desc = "A mysterious looking ray gun..." + icon = 'icons/obj/mouseray.dmi' + icon_state = "mouseray" + item_state = "mouseray" + item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi') + fire_sound = 'sound/weapons/wave.ogg' + charge_cost = 240 + projectile_type = /obj/item/projectile/beam/mouselaser + origin_tech = list(TECH_BLUESPACE = 4) + battery_lock = 1 + firemodes = list() + var/tf_type = /mob/living/simple_mob/animal/passive/mouse //This type is what kind of mob it will try to turn people into! + var/cooldown = 0 //automatically set when used + var/cooldown_time = 15 SECONDS //the amount of time between shots + var/tf_admin_pref_override = FALSE //Overrides pref checks + var/tf_allow_select = FALSE //Toggles if the gun is able to pick between things in the 'tf_possible_types' variable + var/tf_possible_types = list( //The different types of mob the gun can pick between + "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 + ) + +/obj/item/weapon/gun/energy/mouseray/attack_self(mob/user) + . = ..() + if(tf_allow_select) + pick_type() + +/obj/item/weapon/gun/energy/mouseray/proc/pick_type() + var/choice = tgui_input_list(usr, "Select a type to turn things into.", "[src.name]", tf_possible_types) + if(!choice) + return + tf_type = tf_possible_types[choice] + to_chat(usr, "You selected [choice].") + +/obj/item/weapon/gun/energy/mouseray/Fire(atom/target, mob/living/user, clickparams, pointblank, reflex) + if(world.time < cooldown) + to_chat(usr, "\The [src] isn't ready yet.") + return + . = ..() + +/obj/item/weapon/gun/energy/mouseray/Fire_userless(atom/target) + if(world.time < cooldown) + return + . = ..() + +/obj/item/weapon/gun/energy/mouseray/consume_next_projectile() + . = ..() + var/obj/item/projectile/beam/mouselaser/G = . + cooldown = world.time + cooldown_time + if(tf_type) + G.tf_type = tf_type + if(tf_admin_pref_override) + G.tf_admin_pref_override = tf_admin_pref_override + +/obj/item/weapon/gun/energy/mouseray/update_icon() + if(charge_meter) + var/ratio = power_supply.charge / power_supply.maxcharge + + //make sure that rounding down will not give us the empty state even if we have charge for a shot left. + if(power_supply.charge < charge_cost) + ratio = 0 + else + ratio = max(round(ratio, 0.25) * 100, 25) + + icon_state = "[initial(icon_state)][ratio]" + +/obj/item/projectile/beam/mouselaser + name = "metamorphosis beam" + icon_state = "xray" + nodamage = 1 + damage = 0 + range = 7 + check_armour = "laser" + can_miss = FALSE + var/tf_type = /mob/living/simple_mob/animal/passive/mouse + var/tf_admin_pref_override = FALSE + + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/mouselaser/on_hit(var/atom/target) + var/mob/living/M = target + if(!istype(M)) + return + if(target != firer) //If you shot yourself, you probably want to be TFed so don't bother with prefs. + if(!M.allow_spontaneous_tf && !tf_admin_pref_override) + return + if(M.tf_mob_holder) + var/mob/living/ourmob = M.tf_mob_holder + if(ourmob.ai_holder) + var/datum/ai_holder/our_AI = ourmob.ai_holder + our_AI.set_stance(STANCE_IDLE) + M.tf_mob_holder = null + ourmob.ckey = M.ckey + var/turf/get_dat_turf = get_turf(target) + ourmob.loc = get_dat_turf + ourmob.forceMove(get_dat_turf) + ourmob.vore_selected = M.vore_selected + M.vore_selected = null + for(var/obj/belly/B as anything in M.vore_organs) + B.loc = ourmob + B.forceMove(ourmob) + B.owner = ourmob + M.vore_organs -= B + ourmob.vore_organs += B + + ourmob.Life(1) + if(ishuman(M)) + for(var/obj/item/W in M) + if(istype(W, /obj/item/weapon/implant/backup) || istype(W, /obj/item/device/nif)) + continue + M.drop_from_inventory(W) + + qdel(target) + return + else + if(M.stat == DEAD) //We can let it undo the TF, because the person will be dead, but otherwise things get weird. + return + var/mob/living/new_mob = spawn_mob(M) + new_mob.faction = M.faction + + if(new_mob && isliving(new_mob)) + for(var/obj/belly/B as anything in new_mob.vore_organs) + new_mob.vore_organs -= B + qdel(B) + new_mob.vore_organs = list() + new_mob.name = M.name + new_mob.real_name = M.real_name + for(var/lang in M.languages) + new_mob.languages |= lang + M.copy_vore_prefs_to_mob(new_mob) + new_mob.vore_selected = M.vore_selected + new_mob.allow_spontaneous_tf = TRUE + + for(var/obj/belly/B as anything in M.vore_organs) + B.loc = new_mob + B.forceMove(new_mob) + B.owner = new_mob + M.vore_organs -= B + new_mob.vore_organs += B + + new_mob.ckey = M.ckey + if(M.ai_holder && new_mob.ai_holder) + var/datum/ai_holder/old_AI = M.ai_holder + old_AI.set_stance(STANCE_SLEEP) + var/datum/ai_holder/new_AI = new_mob.ai_holder + new_AI.hostile = old_AI.hostile + new_AI.retaliate = old_AI.retaliate + M.loc = new_mob + M.forceMove(new_mob) + new_mob.tf_mob_holder = M + +/obj/item/projectile/beam/mouselaser/proc/spawn_mob(var/mob/living/target) + if(!ispath(tf_type)) + return + var/new_mob = new tf_type(get_turf(target)) + return new_mob + +/mob/living + var/mob/living/tf_mob_holder = null + +/mob/living/proc/handle_tf_holder() + if(!tf_mob_holder) + return + if(stat != tf_mob_holder.stat) + if(stat == DEAD) + tf_mob_holder.death(FALSE, null) + if(tf_mob_holder.stat == DEAD) + death() + +/mob/living/proc/copy_vore_prefs_to_mob(var/mob/living/new_mob) + //For primarily copying vore preference settings from a carbon mob to a simplemob + //It can be used for other things, but be advised, if you're using it to put a simplemob into a carbon mob, you're gonna be overriding a bunch of prefs + new_mob.ooc_notes = ooc_notes + new_mob.digestable = digestable + new_mob.devourable = devourable + new_mob.absorbable = absorbable + new_mob.feeding = feeding + new_mob.can_be_drop_prey = can_be_drop_prey + new_mob.can_be_drop_pred = can_be_drop_pred + new_mob.allow_inbelly_spawning = allow_inbelly_spawning + new_mob.digest_leave_remains = digest_leave_remains + new_mob.allowmobvore = allowmobvore + new_mob.permit_healbelly = permit_healbelly + new_mob.noisy = noisy + new_mob.drop_vore = drop_vore + new_mob.stumble_vore = stumble_vore + new_mob.slip_vore = slip_vore + new_mob.resizable = resizable + new_mob.show_vore_fx = show_vore_fx + new_mob.step_mechanics_pref = step_mechanics_pref + new_mob.pickup_pref = pickup_pref + new_mob.vore_taste = vore_taste + new_mob.vore_smell = vore_smell + new_mob.nutrition_message_visible = nutrition_message_visible + new_mob.allow_spontaneous_tf = allow_spontaneous_tf + +/////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" + desc = "The Type Gamma Medical Recombobulation ray! A mysterious looking ray gun! It works to change people who have had their form significantly altered back into their original forms!" + + icon_state = "medray" + item_state = "mouseray" + charge_meter = FALSE + charge_cost = 0 + tf_type = null + projectile_type = /obj/item/projectile/beam/mouselaser/reversion + +/obj/item/weapon/gun/energy/mouseray/medical/consume_next_projectile() + . = ..() + var/obj/item/projectile/beam/mouselaser/reversion/G = . + cooldown = world.time + cooldown_time + if(tf_admin_pref_override) + G.tf_admin_pref_override = tf_admin_pref_override + + +/obj/item/projectile/beam/mouselaser/reversion + name = "recombobulation beam" + tf_admin_pref_override = FALSE + +/obj/item/projectile/beam/mouselaser/reversion/on_hit(var/atom/target) + var/mob/living/M = target + if(!istype(M)) + return + if(target != firer) //If you shot yourself, you probably want to be TFed so don't bother with prefs. + if(!M.allow_spontaneous_tf && !tf_admin_pref_override) + firer.visible_message("\The [src] buzzes impolitely.") + return + if(M.tf_mob_holder) + var/mob/living/ourmob = M.tf_mob_holder + if(ourmob.ai_holder) + var/datum/ai_holder/our_AI = ourmob.ai_holder + our_AI.set_stance(STANCE_IDLE) + M.tf_mob_holder = null + ourmob.ckey = M.ckey + var/turf/get_dat_turf = get_turf(target) + ourmob.loc = get_dat_turf + ourmob.forceMove(get_dat_turf) + ourmob.vore_selected = M.vore_selected + M.vore_selected = null + for(var/obj/belly/B as anything in M.vore_organs) + B.loc = ourmob + B.forceMove(ourmob) + B.owner = ourmob + M.vore_organs -= B + ourmob.vore_organs += B + + ourmob.Life(1) + + if(ishuman(M)) + for(var/obj/item/W in M) + if(istype(W, /obj/item/weapon/implant/backup) || istype(W, /obj/item/device/nif)) + continue + M.drop_from_inventory(W) + + qdel(target) + firer.visible_message("\The [shot_from] boops pleasantly.") + 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/icons/mob/items/lefthand_guns_vr.dmi b/icons/mob/items/lefthand_guns_vr.dmi index f2c51e21b92e0287508ec480df942800d210c215..20261bbbe16c906dbc5601b6e78387b15ad7a4ff 100644 GIT binary patch literal 13110 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 Ch*~cI diff --git a/icons/mob/items/righthand_guns_vr.dmi b/icons/mob/items/righthand_guns_vr.dmi index 7e899b2b99027d950517159881b4a4458bbee178..f39b901489e729f0d4105e2ec0b4f05a13f6afcf 100644 GIT binary patch literal 13582 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 LMd^Y^250Ayrj zX8-_v004;q03RP8LI41vp`n9=gRZWw03$O1Gf4nniNL_XMMXs&9UWX;Tq7eRCnqPX z01CLcxVE;o9CE<5wY9vwypD^JTvuZ|G(@Nzz$G0o{{Rprm;dte@>{Y0@bK^eh5x*{ z!FqFp-zEP~MOx=u|1l;$+5rEXo156!*cTEV9~dWfb#(w_z@z}c7#J8F79%VoIK=?w zqobq$R$%~6l>kgNKE z001;8tQ52$x3c>nX`MLr)7)Dc9TP;;pb+x^{TY(>}+|)3q zl!NtPy^g$Dg}{N_ssL=N)&1svv#EDfSv^24@N#2-%!z^$NCOp^*eE!W!y6r$W64%a z@1O$Jz8@XAIta6F=l|_{&_sW4n$DKpuE1#8`TscHH!RCS1qW^`V4OuyPE5PMPualX zRt5Gc7{=+TVI`B6p&#qmEB(xk!4-CYZ+G8f$}|V)mSbk0#z+QN{k@n<4bUyCecnEY z!$=j}^!JnZ8rV744x@5RBoWyx*J!}<^Q_f{JkOmlHpm%@=gTo#J^|KzM8&D{& Z_ziSH1A1{~agYE2002ovPDHLkV1gQ0avuNy literal 0 HcmV?d00001 diff --git a/maps/groundbase/gb-z1.dmm b/maps/groundbase/gb-z1.dmm index 8a44ae02c3..e8d98c0e4c 100644 --- a/maps/groundbase/gb-z1.dmm +++ b/maps/groundbase/gb-z1.dmm @@ -18736,6 +18736,7 @@ lel 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 73422b6915..fceb40e341 100644 --- a/maps/stellar_delight/stellar_delight2.dmm +++ b/maps/stellar_delight/stellar_delight2.dmm @@ -11064,6 +11064,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 d624ce5e1a..4afa20b0dd 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -588,6 +588,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" = ( diff --git a/vorestation.dme b/vorestation.dme index e5d66de0b2..2a05b60aed 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4281,6 +4281,7 @@ #include "code\modules\virus2\isolator.dm" #include "code\modules\virus2\items_devices.dm" #include "code\modules\vore\hook-defs_vr.dm" +#include "code\modules\vore\mouseray.dm" #include "code\modules\vore\trycatch_vr.dm" #include "code\modules\vore\appearance\preferences_vr.dm" #include "code\modules\vore\appearance\sprite_accessories_taur_yw.dm"