diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 0c12ed765a..6dcc8861f6 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -39,7 +39,9 @@ /obj/item/stack/tile/fakespace/loaded = 2, /obj/item/toy/toy_xeno = 2, /obj/item/weapon/storage/box/actionfigure = 1, - /obj/item/weapon/restraints/handcuffs/fake = 2) + /obj/item/weapon/restraints/handcuffs/fake = 2, + /obj/item/weapon/gun/energy/megabuster = 2, + /obj/item/weapon/gun/energy/megabuster/proto = 2) /obj/machinery/computer/arcade/New() ..() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 1c8272d967..5fee0317e4 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1101,6 +1101,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1,/obj/item/clothing/neck/necklace/dope=3,/obj/item/clothing/suit/jacket/letterman_nanotrasen=1) refill_canister = /obj/item/weapon/vending_refill/clothing + /obj/machinery/vending/kink name = "KinkMate" desc = "A vending machine for all your unmentionable desires." @@ -1112,6 +1113,57 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C premium = list() refill_canister = /obj/item/weapon/vending_refill/kink +/obj/machinery/vending/nazivend + name = "Nazivend" + desc = "A vending machine containing Nazi German supplies. A label reads: \"Remember the gorrilions lost.\"" + icon_state = "nazi" + vend_reply = "SIEG HEIL!" + product_slogans = "Das Vierte Reich wird zuruckkehren!;ENTFERNEN JUDEN!;Billiger als die Juden jemals geben!;Rader auf dem adminbus geht rund und rund.;Warten Sie, warum wir wieder hassen Juden?- *BZZT*" + products = list( + /obj/item/clothing/head/stalhelm = 20, + /obj/item/clothing/head/panzer = 20, + /obj/item/clothing/suit/soldiercoat = 20, + /obj/item/clothing/under/soldieruniform = 20, + /obj/item/clothing/shoes/jackboots = 20 + ) + contraband = list( + /obj/item/clothing/head/naziofficer = 10, + /obj/item/clothing/suit/officercoat = 10, + /obj/item/clothing/under/officeruniform = 10, + /obj/item/clothing/suit/space/hardsuit/nazi = 3, + /obj/item/weapon/gun/energy/plasma/MP40k = 4 + ) + premium = list() + + refill_canister = /obj/item/weapon/vending_refill/nazi + +/obj/machinery/vending/sovietvend + name = "KomradeVendtink" + desc = "Rodina-mat' zovyot!" + icon_state = "soviet" + vend_reply = "The fascist and capitalist svin'ya shall fall, komrade!" + product_slogans = "Quality worth waiting in line for!; Get Hammer and Sickled!; Sosvietsky soyuz above all!; With capitalist pigsky, you would have paid a fortunetink! ; Craftink in Motherland herself!" + products = list( + /obj/item/clothing/under/soviet = 20, + /obj/item/clothing/head/ushanka = 20, + /obj/item/clothing/shoes/jackboots = 20, + /obj/item/clothing/head/squatter_hat = 20, + /obj/item/clothing/under/squatter_outfit = 20, + /obj/item/clothing/under/russobluecamooutfit = 20, + /obj/item/clothing/head/russobluecamohat = 20 + ) + contraband = list( + /obj/item/clothing/under/syndicate/tacticool = 4, + /obj/item/clothing/mask/balaclava = 4, + /obj/item/clothing/suit/russofurcoat = 4, + /obj/item/clothing/head/russofurhat = 4, + /obj/item/clothing/suit/space/hardsuit/soviet = 3, + /obj/item/weapon/gun/energy/laser/LaserAK = 4 + ) + premium = list() + + refill_canister = /obj/item/weapon/vending_refill/soviet + #undef STANDARD_CHARGE #undef CONTRABAND_CHARGE diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index 2f995b9c12..94042daf85 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -76,4 +76,16 @@ machine_name = "KinkMate" icon_state = "refill_kink" charges = list(6, 4, 0)// of 30 standard, 0 contraband, 15 premium - init_charges = list(6, 4, 0) \ No newline at end of file + init_charges = list(6, 4, 0) + +/obj/item/weapon/vending_refill/nazi + machine_name = "nazivend" + icon_state = "refill_nazi" + charges = list(33, 13, 0) + init_charges = list(33, 13, 0) + +/obj/item/weapon/vending_refill/soviet + machine_name = "sovietvend" + icon_state = "refill_soviet" + charges = list(47, 7, 0) + init_charges = list(47, 7, 0) \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index d1a2de00e7..56f85336ed 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -222,3 +222,31 @@ /obj/item/ammo_casing/energy/plasma/adv projectile_type = /obj/item/projectile/plasma/adv + +/obj/item/ammo_casing/energy/plasmagun + projectile_type = /obj/item/projectile/energy/plasmabolt + e_cost = 50 + fire_sound = 'sound/weapons/elecfire.ogg' + +/obj/item/ammo_casing/energy/plasmagun/rifle + projectile_type = /obj/item/projectile/energy/plasmabolt/rifle + e_cost = 150 + +/obj/item/ammo_casing/energy/plasmagun/light + projectile_type = /obj/item/projectile/energy/plasmabolt/light + e_cost = 50 + +/obj/item/ammo_casing/energy/plasmagun/MP40k + projectile_type = /obj/item/projectile/energy/plasmabolt/MP40k + e_cost = 75 + +/obj/item/ammo_casing/energy/megabuster + projectile_type = /obj/item/projectile/energy/megabuster + fire_sound = 'sound/weapons/megabuster.ogg' + e_cost = 5 + +/obj/item/ammo_casing/energy/buster + e_cost = 25 + projectile_type = /obj/item/projectile/energy/buster + fire_sound = 'sound/weapons/mmlbuster.ogg' + diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index f7337e4ee1..d9f30f221a 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -406,3 +406,5 @@ ..() icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]" return + + diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 6e7ab124ec..aaed35c85f 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -134,3 +134,25 @@ pin = /obj/item/device/firing_pin/tag/red ammo_x_offset = 2 selfcharge = 1 + + + +/obj/item/weapon/gun/energy/laser/rifle + name = "laser rifle" + desc = "A laser rifle issued to high ranking members of a certain shadow corporation." + icon_state = "xcomlasergun" + item_state = null + icon = 'icons/obj/guns/VGguns.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/lasergun) + ammo_x_offset = 4 + +/obj/item/weapon/gun/energy/laser/LaserAK + name = "Laser AK470" + desc = "A laser AK. Death solves all problems -- No man, no problem." + icon_state = "LaserAK" + item_state = null + icon = 'icons/obj/guns/VGguns.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/laser) + ammo_x_offset = 4 + + diff --git a/code/modules/projectiles/guns/energy/megabuster.dm b/code/modules/projectiles/guns/energy/megabuster.dm new file mode 100644 index 0000000000..7bd678c871 --- /dev/null +++ b/code/modules/projectiles/guns/energy/megabuster.dm @@ -0,0 +1,25 @@ +/obj/item/weapon/gun/energy/megabuster + name = "Mega-buster" + desc = "An arm-mounted buster toy!" + icon_state = "megabuster" + item_state = "megabuster" + w_class = WEIGHT_CLASS_SMALL + ammo_type = list(/obj/item/ammo_casing/energy/megabuster) + clumsy_check = 0 + needs_permit = 0 + selfcharge = 1 + icon = 'icons/obj/guns/VGguns.dmi' +/obj/item/weapon/gun/energy/megabuster/proto + name = "Proto-buster" + icon_state = "protobuster" + item_state = "protobuster" + +/obj/item/weapon/gun/energy/mmlbuster + name = "Buster Cannon" + desc = "An antique arm-mounted buster cannon." + icon = 'icons/obj/guns/VGguns.dmi' + icon_state = "mmlbuster" + item_state = "mmlbuster" + w_class = WEIGHT_CLASS_SMALL + ammo_type = list(/obj/item/ammo_casing/energy/buster) + ammo_x_offset = 2 \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/plasma.dm b/code/modules/projectiles/guns/energy/plasma.dm new file mode 100644 index 0000000000..bd7e0a65a8 --- /dev/null +++ b/code/modules/projectiles/guns/energy/plasma.dm @@ -0,0 +1,40 @@ +/obj/item/weapon/gun/energy/plasma //Not intended to be used, use its children instead. + name = "plasma gun" + desc = "A high-power plasma gun. You shouldn't ever see this." + icon_state = "xray" + w_class = WEIGHT_CLASS_NORMAL + ammo_type = list(/obj/item/ammo_casing/energy/plasmagun) + ammo_x_offset = 2 + shaded_charge = 1 + + +/obj/item/weapon/gun/energy/plasma/rifle + name = "plasma cannon" + desc = "A state of the art cannon utilizing plasma in a uranium-235 lined core to output hi-power, radiating bolts of energy." + icon_state = "alienrifle" + item_state = null + icon = 'icons/obj/guns/VGguns.dmi' + w_class = WEIGHT_CLASS_BULKY + ammo_type = list(/obj/item/ammo_casing/energy/plasmagun/rifle) + ammo_x_offset = 4 + + + +/obj/item/weapon/gun/energy/plasma/light + name = "plasma rifle" + desc = "A state of the art rifle utilizing plasma in a uranium-235 lined core to output radiating bolts of energy." + icon_state = "lightalienrifle" + item_state = null + icon = 'icons/obj/guns/VGguns.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/plasmagun/light) + ammo_x_offset = 2 + + +/obj/item/weapon/gun/energy/plasma/MP40k + name = "Plasma MP40k" + desc = "A plasma MP40k. Ich liebe den geruch von plasma am morgen." + icon_state = "PlasMP" + item_state = null + icon = 'icons/obj/guns/VGguns.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/plasmagun/MP40k) + ammo_x_offset = 3 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index e39a24e8ce..4fe1abeb70 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -188,3 +188,5 @@ /obj/item/projectile/energy/tesla_revolver/Destroy() qdel(chain) return ..() + + diff --git a/code/modules/projectiles/projectile/megabuster.dm b/code/modules/projectiles/projectile/megabuster.dm new file mode 100644 index 0000000000..01671aefe5 --- /dev/null +++ b/code/modules/projectiles/projectile/megabuster.dm @@ -0,0 +1,15 @@ +/obj/item/projectile/energy/buster + name = "buster shot" + icon_state = "buster" + nodamage = 0 + damage = 20 + damage_type = BURN + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + icon = 'icons/obj/VGprojectile.dmi' + +/obj/item/projectile/energy/megabuster + name = "buster pellet" + icon_state = "megabuster" + nodamage = 1 + icon = 'icons/obj/VGprojectile.dmi' diff --git a/code/modules/projectiles/projectile/plasma.dm b/code/modules/projectiles/projectile/plasma.dm new file mode 100644 index 0000000000..4ea970c2e9 --- /dev/null +++ b/code/modules/projectiles/projectile/plasma.dm @@ -0,0 +1,28 @@ +obj/item/projectile/energy/plasmabolt + icon = 'icons/obj/VGProjectile.dmi' + name = "plasma bolt" + icon_state = "plasma" + weaken = 0 + flag = "energy" + damage_type = BURN + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + +/obj/item/projectile/energy/plasmabolt/light + damage = 35 + icon_state = "plasma2" + irradiate = 20 + weaken = 3 + +/obj/item/projectile/energy/plasmabolt/rifle + damage = 50 + icon_state = "plasma3" + irradiate = 35 + weaken = 5 + +/obj/item/projectile/energy/plasmabolt/MP40k + damage = 35 + eyeblur = 4 + irradiate = 25 + weaken = 4 + icon_state = "plasma3" \ No newline at end of file diff --git a/icons/mob/inhands/guns_lefthand.dmi b/icons/mob/inhands/guns_lefthand.dmi index fdb1fd88a0..417e97f770 100644 Binary files a/icons/mob/inhands/guns_lefthand.dmi and b/icons/mob/inhands/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi index edae1d5ba6..b65da989b3 100644 Binary files a/icons/mob/inhands/guns_righthand.dmi and b/icons/mob/inhands/guns_righthand.dmi differ diff --git a/icons/obj/VGProjectile.dmi b/icons/obj/VGProjectile.dmi new file mode 100644 index 0000000000..010d2fc739 Binary files /dev/null and b/icons/obj/VGProjectile.dmi differ diff --git a/icons/obj/guns/VGguns.dmi b/icons/obj/guns/VGguns.dmi new file mode 100644 index 0000000000..3bf6522d80 Binary files /dev/null and b/icons/obj/guns/VGguns.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 962dc31b45..46c78de11f 100644 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/sound/weapons/elecfire.ogg b/sound/weapons/elecfire.ogg new file mode 100644 index 0000000000..753712b674 Binary files /dev/null and b/sound/weapons/elecfire.ogg differ diff --git a/sound/weapons/megabuster.ogg b/sound/weapons/megabuster.ogg new file mode 100644 index 0000000000..554ce2a00c Binary files /dev/null and b/sound/weapons/megabuster.ogg differ diff --git a/sound/weapons/mmlbuster.ogg b/sound/weapons/mmlbuster.ogg new file mode 100644 index 0000000000..d9640fab84 Binary files /dev/null and b/sound/weapons/mmlbuster.ogg differ diff --git a/tgstation.dme b/tgstation.dme index cd8d852262..04edff35d8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1848,6 +1848,8 @@ #include "code\modules\projectiles\guns\energy\energy_gun.dm" #include "code\modules\projectiles\guns\energy\kinetic_accelerator.dm" #include "code\modules\projectiles\guns\energy\laser.dm" +#include "code\modules\projectiles\guns\energy\megabuster.dm" +#include "code\modules\projectiles\guns\energy\plasma.dm" #include "code\modules\projectiles\guns\energy\pulse.dm" #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" @@ -1857,6 +1859,8 @@ #include "code\modules\projectiles\projectile\bullets.dm" #include "code\modules\projectiles\projectile\energy.dm" #include "code\modules\projectiles\projectile\magic.dm" +#include "code\modules\projectiles\projectile\megabuster.dm" +#include "code\modules\projectiles\projectile\plasma.dm" #include "code\modules\projectiles\projectile\reusable.dm" #include "code\modules\projectiles\projectile\special.dm" #include "code\modules\reagents\chem_splash.dm"