diff --git a/code/modules/vore/fluffstuff/custom_guns_vr.dm b/code/modules/vore/fluffstuff/custom_guns_vr.dm index 3288f3671fc..b42c15cc8cf 100644 --- a/code/modules/vore/fluffstuff/custom_guns_vr.dm +++ b/code/modules/vore/fluffstuff/custom_guns_vr.dm @@ -236,70 +236,6 @@ item_state = (ammo_magazine)? "arifle" : "arifle-empty" if(!ignore_inhands) update_held_icon() -//Currently, the only problem I have now is that this weapon's item_state isn't working. -/* // This has never worked and probably never will work. Why do we even have this? -/obj/item/weapon/gun/projectile/automatic/fluff/crestrose - name = "Crescent Rose" - desc = "Can you match my resolve? If so then you will succeed. I believe that the human spirit is indomitable. Keep Moving Forward. Uses 7.62mm rounds." - icon = 'icons/vore/custom_guns_vr.dmi' - icon_state = "crestrose_fold" - - icon_override = 'icons/vore/custom_guns_vr.dmi' - item_state = "crestrose_fold_mob" - - item_icons = null - - w_class = ITEMSIZE_LARGE - origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 4) - slot_flags = null - fire_sound = 'sound/weapons/Gunshot_light.ogg' - load_method = MAGAZINE - force = 3 - recoil = 2 - var/on = 0 - auto_eject = 1 - auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' - hitsound = null - caliber = "s762" - magazine_type = /obj/item/ammo_magazine/m762 - allowed_magazines = list(/obj/item/ammo_magazine/m762) - -/obj/item/weapon/gun/projectile/automatic/fluff/crestrose/attack_self(mob/user as mob) - on = !on - if(on) - user.visible_message("With a press of a button, [user]'s gun turns into a deadly scythe.",\ - "You extend The Rose's thorns.",\ - "You hear an ominous click.") - icon = 'icons/vore/custom_guns_vr.dmi' - icon_state = "crestrose" - icon_override = 'icons/vore/custom_guns_vr.dmi' - item_state = "crestrose_mob" - w_class = ITEMSIZE_LARGE - force = 15//Obscenely robust - attack_verb = list("slashed", "cut", "drives") - hitsound = 'sound/weapons/bladeslice.ogg' - else - user.visible_message("\The [user] folds the weapon back up into a gun.",\ - "You fold up the weapon.",\ - "You hear a click.") - icon = 'icons/vore/custom_guns_vr.dmi' - icon_state = "crestrose_fold" - icon_override = 'icons/vore/custom_guns_vr.dmi' - item_state = "crestrose_fold_mob" - w_class = ITEMSIZE_NORMAL - force = 3//Not so obscenely robust - attack_verb = list("hit", "melee'd") - hitsound = null - update_icon() - - -/obj/item/weapon/gun/projectile/automatic/fluff/crestrose/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") - if(default_parry_check(user, attacker, damage_source) && prob(50)) - user.visible_message("\The [user] parries [attack_text] with \the [src]!") - playsound(user.loc, 'sound/weapons/punchmiss.ogg', 50, 1) - return 1 - return 0*/ - //-----------------------Tranq Gun---------------------------------- /obj/item/weapon/gun/projectile/dartgun/tranq name = "tranquilizer gun" diff --git a/code/modules/vore/fluffstuff/guns/crestrose.dm b/code/modules/vore/fluffstuff/guns/crestrose.dm new file mode 100644 index 00000000000..a486afca54b --- /dev/null +++ b/code/modules/vore/fluffstuff/guns/crestrose.dm @@ -0,0 +1,40 @@ +/obj/item/weapon/gun/projectile/automatic/fluff/crestrose + name = "Crescent Rose" + desc = "Can you match my resolve? If so then you will succeed. I believe that the human spirit is indomitable. Keep Moving Forward. Uses 7.62mm rounds." + icon = 'icons/vore/custom_guns_vr.dmi' + icon_state = "crestrose_fold" + + icon_override = 'icons/vore/custom_guns_vr.dmi' + item_state = "laser" //placeholder + + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 4) + slot_flags = null + fire_sound = 'sound/weapons/Gunshot_light.ogg' + load_method = MAGAZINE + force = 3 + recoil = 2 + auto_eject = 1 + auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' + hitsound = null + caliber = "s762" + magazine_type = /obj/item/ammo_magazine/m762 + allowed_magazines = list(/obj/item/ammo_magazine/m762) + + firemodes = list( + list(mode_name="fold", icon_state="crestrose_fold",item_state = "laser",force=3), + list(mode_name="scythe", icon_state="crestrose",item_state = "crestrose",force=15), + ) + +/obj/item/weapon/gun/projectile/automatic/fluff/crestrose/switch_firemodes(mob/user) + if(..()) + update_icon() + update_held_icon() + + +/obj/item/weapon/gun/projectile/automatic/fluff/crestrose/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") + if(default_parry_check(user, attacker, damage_source) && prob(50)) + user.visible_message("\The [user] parries [attack_text] with \the [src]!") + playsound(user.loc, 'sound/weapons/punchmiss.ogg', 50, 1) + return 1 + return 0 \ No newline at end of file diff --git a/code/modules/vore/fluffstuff/guns/dominator.dm b/code/modules/vore/fluffstuff/guns/dominator.dm index b5c0acadcb0..25ca2610f35 100644 --- a/code/modules/vore/fluffstuff/guns/dominator.dm +++ b/code/modules/vore/fluffstuff/guns/dominator.dm @@ -1,7 +1,7 @@ // -------------- Dominator ------------- /obj/item/weapon/gun/energy/gun/fluff/dominator name = "\improper MWPSB Dominator" - desc = "A MWPSB's Dominator from the Federation. Like the basic Energy Gun, this gun has two settings. It is used by the United Federation Public Safety Bureau's Criminal Investigation Division." + desc = "A MWPSB's Dominator from the Federation. Like the basic Energy Gun, this gun has two settings. It is used by the United Federation Public Safety Bureau's Criminal Investigation Division. The weapon can only be fired by the owner and is alert-level locked." icon = 'icons/vore/custom_guns_vr.dmi' icon_state = "dominatorstun100" @@ -22,6 +22,25 @@ list(mode_name="lethal", charge_cost=480,projectile_type=/obj/item/projectile/beam/dominator, modifystate="dominatorkill", fire_sound='sound/weapons/gauss_shoot.ogg'), ) + var/emagged = FALSE + + +/obj/item/weapon/gun/energy/gun/fluff/dominator/special_check(mob/user) + if(!emagged && mode_name == "lethal" && get_security_level() == "green") + to_chat(user,"The trigger refuses to depress while on the lethal setting under security level green!") + return FALSE + + return ..() + +/obj/item/weapon/gun/energy/gun/fluff/dominator/emag_act(var/remaining_charges,var/mob/user) + ..() + if(!emagged) + emagged = TRUE + to_chat(user,"You disable the alert level locking mechanism on \the [src]!") + + return TRUE + + // Dominator Ammo /obj/item/projectile/beam/dominator name = "dominator lethal beam" diff --git a/code/modules/vore/fluffstuff/guns/gunsword.dm b/code/modules/vore/fluffstuff/guns/gunsword.dm new file mode 100644 index 00000000000..63be249006c --- /dev/null +++ b/code/modules/vore/fluffstuff/guns/gunsword.dm @@ -0,0 +1,127 @@ +/obj/item/weapon/gun/energy/gun/fluff/gunsword + name = "Sword Buster" + desc = "A gun custom built using the science behind a Golden Empire pistol." + + icon = 'icons/vore/custom_guns_vr.dmi' + icon_state = "gbuster100" + + icon_override = 'icons/vore/custom_guns_vr.dmi' + item_state = null + item_icons = null + + w_class = ITEMSIZE_NORMAL + origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 4) + slot_flags = null + projectile_type = /obj/item/projectile/beam/stun + fire_sound = 'sound/weapons/gauss_shoot.ogg' + charge_meter = 1 + + cell_type = /obj/item/weapon/cell/device/weapon/gunsword + + modifystate = "gbuster" + + firemodes = list( + list(mode_name="stun", charge_cost=240,projectile_type=/obj/item/projectile/beam/stun, modifystate="gbuster", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", charge_cost=480,projectile_type=/obj/item/projectile/beam, modifystate="gbuster", fire_sound='sound/weapons/gauss_shoot.ogg'), + ) + + + +// -----------------gunsword battery-------------------------- +/obj/item/weapon/cell/device/weapon/gunsword + name = "Buster Cell" + desc = "The Buster Cell. It doubles as a sword when activated outside the gun housing." + icon = 'icons/vore/custom_guns_vr.dmi' + icon_state = "gsaberoff" + icon_override = 'icons/vore/custom_guns_vr.dmi' + item_state = "gsaberoff" + maxcharge = 2400 + charge_amount = 20 + force = 3 + throwforce = 5 + throw_speed = 1 + throw_range = 5 + w_class = ITEMSIZE_SMALL + origin_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 5) + + var/active = 0 + var/active_force = 30 + var/active_throwforce = 20 + var/active_w_class = ITEMSIZE_LARGE + var/active_embed_chance = 0 //In the off chance one of these is supposed to embed, you can just tweak this var + sharp = 0 + edge = 0 + armor_penetration = 50 + flags = NOBLOODY + var/lrange = 2 + var/lpower = 2 + var/lcolor = "#800080" + + +/obj/item/weapon/cell/device/weapon/gunsword/proc/activate(mob/living/user) + if(active) + return + icon_state = "gsaber" + item_state = "gsaber" + active = 1 + embed_chance = active_embed_chance + force = active_force + throwforce = active_throwforce + sharp = 1 + edge = 1 + w_class = active_w_class + playsound(user, 'sound/weapons/saberon.ogg', 50, 1) + set_light(lrange, lpower, lcolor) + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + + + +/obj/item/weapon/cell/device/weapon/gunsword/proc/deactivate(mob/living/user) + if(!active) + return + playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) + icon_state = "gsaberoff" + item_state = "gsaberoff" + active = 0 + embed_chance = initial(embed_chance) + force = initial(force) + throwforce = initial(throwforce) + sharp = initial(sharp) + edge = initial(edge) + w_class = initial(w_class) + set_light(0,0) + attack_verb = list() + + +/obj/item/weapon/cell/device/weapon/gunsword/attack_self(mob/living/user as mob) + var/datum/gender/TU = gender_datums[user.get_visible_gender()] + if (active) + if ((CLUMSY in user.mutations) && prob(50)) + user.visible_message("\The [user] accidentally cuts [TU.himself] with \the [src].",\ + "You accidentally cut yourself with \the [src].") + user.take_organ_damage(5,5) + deactivate(user) + update_icon() + update_held_icon() + else + activate(user) + update_icon() + update_held_icon() + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + + add_fingerprint(user) + return + +/obj/item/weapon/cell/device/weapon/gunsword/suicide_act(mob/user) + var/datum/gender/TU = gender_datums[user.get_visible_gender()] + if(active) + user.visible_message(pick("\The [user] is slitting [TU.his] stomach open with \the [src]! It looks like [TU.he] [TU.is] trying to commit seppuku.",\ + "\The [user] is falling on \the [src]! It looks like [TU.he] [TU.is] trying to commit suicide.")) + return (BRUTELOSS|FIRELOSS) + +/obj/item/weapon/cell/device/weapon/gunsword/update_icon() + overlays.Cut() \ No newline at end of file diff --git a/icons/vore/custom_guns_vr.dmi b/icons/vore/custom_guns_vr.dmi index 5acc1473fbf..dfd79ab451e 100644 Binary files a/icons/vore/custom_guns_vr.dmi and b/icons/vore/custom_guns_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index ff9301cae68..d096cff7798 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2718,7 +2718,9 @@ #include "code\modules\vore\fluffstuff\custom_mecha_vr.dm" #include "code\modules\vore\fluffstuff\custom_permits_vr.dm" #include "code\modules\vore\fluffstuff\guns\bsharpoon.dm" +#include "code\modules\vore\fluffstuff\guns\crestrose.dm" #include "code\modules\vore\fluffstuff\guns\dominator.dm" +#include "code\modules\vore\fluffstuff\guns\gunsword.dm" #include "code\modules\vore\fluffstuff\guns\nsfw.dm" #include "code\modules\vore\fluffstuff\guns\protector.dm" #include "code\modules\vore\fluffstuff\guns\pummeler.dm"