Added donksoft gun and size gun upgrades for borgs

This commit is contained in:
Foopwo
2022-05-14 19:41:26 -07:00
parent ae859fc2ba
commit 88df7b3993
5 changed files with 109 additions and 0 deletions
+9
View File
@@ -35,6 +35,15 @@
containertype = /obj/structure/closet/crate/allico
containername = "foam weapon crate"
/datum/supply_pack/recreation/donksoftborg
name = "Donk-Soft Cyborg Blaster Crate"
contains = list(
/obj/item/borg/upgrade/toygun = 2,
)
cost = 35
containertype = /obj/structure/closet/crate/allico
containername = "foam weapon crate"
/datum/supply_pack/recreation/donksoftvend
name = "Donk-Soft Vendor Crate"
contains = list()
@@ -31,6 +31,30 @@
R.verbs += /mob/living/proc/set_size
return 1
//Robot size gun
/obj/item/borg/upgrade/sizegun
name = "robot mounted size gun"
desc = "A size gun adapted for installation in cyborgs, allows them to turn people pocket-sized among other uses. What could go wrong?"
icon_state = "cyborg_upgrade2"
item_state = "cyborg_upgrade"
require_module = 1
/obj/item/borg/upgrade/sizegun/action(var/mob/living/silicon/robot/R)
if(..()) return 0
var/obj/item/weapon/gun/energy/sizegun/mounted/T = locate() in R.module
if(!T)
T = locate() in R.module.contents
if(!T)
T = locate() in R.module.modules
if(!T)
R.module.modules += new/obj/item/weapon/gun/energy/sizegun/mounted(R.module)
return 1
if(T)
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 0
/obj/item/borg/upgrade/bellysizeupgrade
name = "robohound capacity expansion module"
desc = "Used to double a robohound's belly capacity. This only affects total volume, and won't allow support of more than one patient in case of sleeper bellies. Can only be applied once."
@@ -152,6 +176,30 @@
if(!T)
R.module.modules += new/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg(R.module)
return 1
if(T)
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 0
//cyborg foam dart gun
/obj/item/borg/upgrade/toygun
name = "Donk-Soft Cyborg Blaster module" //Cyborg Blaster is capitalized because it's the brand name
desc = "A foam dart gun designed for mounting into cyborgs. It's Donk or Don't! DISCLAIMER: Donk-Soft bears no responsibility for incidents relating to cyborgs becoming too accustomed to shooting at crew. Installation of the Donk-Soft Cyborg Blaster must be performed only by a licensed roboticist."
icon_state = "cyborg_upgrade5"
item_state = "cyborg_upgrade"
require_module = 1
/obj/item/borg/upgrade/toygun/action(var/mob/living/silicon/robot/R)
if(..()) return 0
var/obj/item/weapon/gun/projectile/cyborgtoy/T = locate() in R.module
if(!T)
T = locate() in R.module.contents
if(!T)
T = locate() in R.module.modules
if(!T)
R.module.modules += new/obj/item/weapon/gun/projectile/cyborgtoy(R.module)
return 1
if(T)
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
+45
View File
@@ -199,7 +199,52 @@
icon_state = initial(icon_state)
else
icon_state = "[initial(icon_state)]-e"
/*
* Cyborg
*/
/obj/item/weapon/gun/projectile/cyborgtoy
name = "\improper Donk-Soft Cyborg Blaster"
desc = "Donk-Soft Cyborg Blaster! It's Donk or Don't! Adult supervision required. Use to toggle between battle and cleanup mode."
icon = 'icons/obj/gun_toy.dmi'
icon_state = "smg"
caliber = "foam"
load_method = SINGLE_CASING
max_shells = 15
var/cleanup = 0
ammo_type = /obj/item/ammo_casing/afoam_dart
projectile_type = /obj/item/projectile/bullet/foam_dart
recoil = null
handle_casings = null
/obj/item/weapon/gun/projectile/cyborgtoy/attack_self(var/mob/user)
cleanup = !cleanup
to_chat(user, "The [src] is now on [cleanup ? "cleanup" : "battle"] mode.")
/obj/item/weapon/gun/projectile/cyborgtoy/afterattack(atom/A, mob/living/user, adjacent, params)
if(cleanup)
if(!adjacent)
return 0
collectammo(A, user)
return 0
..()
/obj/item/weapon/gun/projectile/cyborgtoy/proc/collectammo(atom/A, user)
if(loaded.len >= max_shells)
to_chat(user, "The [src] is at max capacity.")
return
var/T = get_turf(A)
var/success = 0
for(var/obj/item/ammo_casing/afoam_dart/D in T)
if(loaded.len >= max_shells)
break
D.loc = src
loaded.Insert(1, D)
success = 1
if(success)
playsound(src, 'sound/machines/hiss.ogg', 50, 0)
to_chat(user, "The [src] vacuums in the darts!")
else
to_chat(user, "No Donk-Soft brand foam darts detected. Aborting.")
/*
* Laser Tag
*/
@@ -7,6 +7,13 @@
materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/borg/upgrade/sizeshift
/datum/design/item/prosfab/robot_upgrade/sizegun
name = "Size Gun Module"
id = "borg_sizegun_module"
req_tech = list(TECH_COMBAT = 3, TECH_BLUESPACE = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list(MAT_STEEL = 6000, MAT_GLASS = 4000)
build_path = /obj/item/borg/upgrade/sizegun
/datum/design/item/prosfab/robot_upgrade/bellysizeupgrade
name = "Robohound Capacity Expansion Module"
id = "borg_hound_capacity_module"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB