From 439aafc7f731ad3f1d9bd497158ffb3ed89b58dd Mon Sep 17 00:00:00 2001 From: Ren Erthilo Date: Sun, 29 Apr 2012 22:36:06 +0100 Subject: [PATCH] TG: Added lasertag vests, guns, projectiles. Sprites for the vests and guns from Muncher. Lasertag guns are only usable if you're wearing the appropriate team vest. Lasertag projectiles will only stun people who are wearing vests belonging to the opposing team. Four vests and four laser tag guns are now in fitness (two sets of red, two sets of blue) Fixed emergency storage having chem storage access, removed the R walls around it. Updated changelog. Revision: r3333 Author: kortgstation --- code/modules/clothing/suits/miscellaneous.dm | 35 +++++++- code/modules/projectiles/guns/energy/laser.dm | 81 ++++++++++++++++++- code/modules/projectiles/projectile/beams.dm | 37 ++++++++- 3 files changed, 145 insertions(+), 8 deletions(-) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 9fac994c5f5..a2f976ea90e 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -6,6 +6,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + /obj/item/clothing/suit/storage/wcoat name = "waistcoat" desc = "The height of class." @@ -13,6 +14,24 @@ item_state = "wcoat" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + + + +/obj/item/clothing/suit/bluetag + name = "blue laser tag armour" + desc = "Blue Pride, Station Wide" + icon_state = "bluetag" + item_state = "bluetag" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + +/obj/item/clothing/suit/redtag + name = "red laser tag armour" + desc = "Pew pew pew" + icon_state = "redtag" + item_state = "redtag" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + + /obj/item/clothing/suit/storage/apron name = "apron" desc = "A basic blue apron. It has a large pocket you can store things in." @@ -21,6 +40,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS allowed = list (/obj/item/weapon/plantbgone,/obj/item/device/analyzer/plant_analyzer,/obj/item/seeds,/obj/item/nutrient,/obj/item/weapon/minihoe) + /obj/item/clothing/suit/storage/chef name = "chef's apron" desc = "An apron used by a high class chef. Has a few pockets for nic-naks." @@ -33,6 +53,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS allowed = list (/obj/item/weapon/kitchenknife,/obj/item/weapon/butch) + /obj/item/clothing/suit/storage/chef/classic name = "classic chef's apron" desc = "A basic, dull, white chef's apron." @@ -40,18 +61,21 @@ item_state = "apronchef" body_parts_covered = UPPER_TORSO|LOWER_TORSO + /obj/item/clothing/suit/hazardvest name = "hazard vest" desc = "A high-visibility vest used in work zones." icon_state = "hazard" item_state = "hazard" + /obj/item/clothing/suit/suspenders name = "suspenders" desc = "They suspend the illusion of the mime's play." icon = 'belts.dmi' icon_state = "suspenders" + /obj/item/clothing/suit/syndicatefake name = "red space suit replica" icon_state = "syndicate" @@ -62,6 +86,7 @@ allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + /obj/item/clothing/suit/storage/captunic name = "captain's parade tunic" desc = "Worn by a Captain to show their class." @@ -70,6 +95,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS flags_inv = HIDEJUMPSUIT + /obj/item/clothing/suit/nun name = "nun robe" desc = "Maximum piety in this star system." @@ -92,14 +118,16 @@ item_state = "chaplain_hoodie" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + /obj/item/clothing/suit/hastur - name = "Hastur's robes" + name = "\improper Hastur's robes" desc = "Robes not meant to be worn by man" icon_state = "hastur" item_state = "hastur" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + /obj/item/clothing/suit/imperium_monk name = "imperium monk robes" desc = "A set of strange robes." @@ -108,6 +136,7 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS flags_inv = HIDESHOES|HIDEJUMPSUIT + /obj/item/clothing/suit/chickensuit name = "chicken suit" desc = "Bwak!" @@ -116,6 +145,7 @@ body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET|HEAD flags_inv = HIDESHOES|HIDEJUMPSUIT + /obj/item/clothing/suit/monkeysuit name = "monkey suit" desc = "A suit that looks like a primate" @@ -124,6 +154,7 @@ body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + /obj/item/clothing/suit/holidaypriest name = "holiday priest" desc = "This is a nice holiday my son." @@ -131,6 +162,8 @@ item_state = "holidaypriest" body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + + // BubbleWrap - Nothing to see here /obj/item/clothing/suit/cardborg diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 2e86e4fea35..2233b41d551 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,5 +1,5 @@ /obj/item/weapon/gun/energy/laser - name = "\improper Laser Gun" + name = "laser gun" desc = "a basic weapon designed kill with concentrated energy bolts" icon_state = "laser" item_state = "laser" @@ -17,7 +17,7 @@ obj/item/weapon/gun/energy/laser/retro - name ="\improper Retro Laser" + name ="retro laser" icon_state = "retro" desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws." @@ -68,9 +68,84 @@ obj/item/weapon/gun/energy/laser/retro /obj/item/weapon/gun/energy/lasercannon - name = "\improper Laser Cannon" + name = "laser cannon" desc = "With the L.A.S.E.R. cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" icon_state = "lasercannon" fire_sound = 'lasercannonfire.ogg' origin_tech = "combat=4;materials=3;powerstorage=3" projectile_type = "/obj/item/projectile/beam/heavylaser" + + + + + +////////Laser Tag//////////////////// + +/obj/item/weapon/gun/energy/laser/bluetag + name = "laser tag gun" + icon_state = "bluetag" + desc = "Standard issue weapon of the Imperial Guard" + projectile_type = "/obj/item/projectile/bluetag" + + special_check(var/mob/living/carbon/human/M) + if(ishuman(M)) + if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) + return 1 + M << "\red You need to be wearing your laser tag vest!" + return 0 + var/charge_tick = 0 + + + New() + ..() + processing_objects.Add(src) + + + Del() + processing_objects.Remove(src) + ..() + + + process() + charge_tick++ + if(charge_tick < 4) return 0 + charge_tick = 0 + if(!power_supply) return 0 + power_supply.give(100) + update_icon() + return 1 + + + +/obj/item/weapon/gun/energy/laser/redtag + name = "laser tag gun" + icon_state = "redtag" + desc = "Standard issue weapon of the Imperial Guard" + projectile_type = "/obj/item/projectile/redtag" + var/charge_tick = 0 + + special_check(var/mob/living/carbon/human/M) + if(ishuman(M)) + if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) + return 1 + M << "\red You need to be wearing your laser tag vest!" + return 0 + + New() + ..() + processing_objects.Add(src) + + + Del() + processing_objects.Remove(src) + ..() + + + process() + charge_tick++ + if(charge_tick < 4) return 0 + charge_tick = 0 + if(!power_supply) return 0 + power_supply.give(100) + update_icon() + return 1 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index d9606bcd987..12e0ca517df 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -1,5 +1,5 @@ /obj/item/projectile/beam - name = "\improper Laser" + name = "laser" icon_state = "laser" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 40 @@ -56,20 +56,21 @@ flag = "laser" eyeblur = 2 + /obj/item/projectile/beam/heavylaser - name = "\improper Heavy Laser" + name = "heavy laser" icon_state = "heavylaser" damage = 60 /obj/item/projectile/beam/pulse - name = "\improper Pulse" + name = "pulse" icon_state = "u_laser" damage = 40 /obj/item/projectile/beam/deathlaser - name = "\improper Death Laser" + name = "death laser" icon_state = "heavylaser" damage = 60 @@ -79,4 +80,32 @@ +/obj/item/projectile/bluetag + name = "lasertag beam" + icon_state = "ice_2" + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + damage = 0 + damage_type = BURN + flag = "laser" + on_hit(var/atom/target, var/blocked = 0) + if(istype(target, /mob/living/carbon/human)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) + M.Weaken(5) + return 1 + +/obj/item/projectile/redtag + name = "lasertag beam" + icon_state = "laser" + pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE + damage = 0 + damage_type = BURN + flag = "laser" + + on_hit(var/atom/target, var/blocked = 0) + if(istype(target, /mob/living/carbon/human)) + var/mob/living/carbon/human/M = target + if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) + M.Weaken(5) + return 1 \ No newline at end of file