diff --git a/code/modules/vore/fluffstuff/custom_guns_vr.dm b/code/modules/vore/fluffstuff/custom_guns_vr.dm index 3288f3671f..b42c15cc8c 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 0000000000..a486afca54 --- /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 b5c0acadcb..25ca2610f3 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 0000000000..a4a39e3028 --- /dev/null +++ b/code/modules/vore/fluffstuff/guns/gunsword.dm @@ -0,0 +1,135 @@ +/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" + var/active_state = "gsaber" + + +/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() + + if(charge < 0.01) + return + else if(charge/maxcharge >=0.995) + overlays = null + else + overlays = null \ No newline at end of file diff --git a/icons/vore/custom_guns_vr.dmi b/icons/vore/custom_guns_vr.dmi index 5acc1473fb..dfd79ab451 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 0f1f8fd84a..8b21735057 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2701,7 +2701,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"