mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Merge pull request #447 from Fox-McCloud/Shields
Telescopic Riot Shield
This commit is contained in:
@@ -6,30 +6,29 @@
|
||||
desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "riot"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
force = 5.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 1
|
||||
throw_range = 4
|
||||
w_class = 4.0
|
||||
force = 8
|
||||
throwforce = 5
|
||||
throw_speed = 2
|
||||
throw_range = 3
|
||||
w_class = 4
|
||||
g_amt = 7500
|
||||
m_amt = 1000
|
||||
origin_tech = "materials=2"
|
||||
attack_verb = list("shoved", "bashed")
|
||||
var/cooldown = 0 //shield bash cooldown. based on world.time
|
||||
|
||||
IsShield()
|
||||
return 1
|
||||
/obj/item/weapon/shield/riot/IsShield()
|
||||
return 1
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/melee/baton))
|
||||
if(cooldown < world.time - 25)
|
||||
user.visible_message("<span class='warning'>[user] bashes [src] with [W]!</span>")
|
||||
playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1)
|
||||
cooldown = world.time
|
||||
else
|
||||
..()
|
||||
/obj/item/weapon/shield/riot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/melee/baton))
|
||||
if(cooldown < world.time - 25)
|
||||
user.visible_message("<span class='warning'>[user] bashes [src] with [W]!</span>")
|
||||
playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1)
|
||||
cooldown = world.time
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/shield/riot/roman
|
||||
name = "roman shield"
|
||||
@@ -42,16 +41,93 @@
|
||||
desc = "A shield capable of stopping most melee attacks. Protects user from almost all energy projectiles. It can be retracted, expanded, and stored anywhere."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "eshield0" // eshield1 for expanded
|
||||
flags = CONDUCT
|
||||
force = 3.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 1
|
||||
throw_range = 4
|
||||
force = 3
|
||||
throwforce = 3
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 1
|
||||
origin_tech = "materials=4;magnets=3;syndicate=4"
|
||||
attack_verb = list("shoved", "bashed")
|
||||
var/active = 0
|
||||
|
||||
/obj/item/weapon/shield/energy/IsShield()
|
||||
return (active)
|
||||
|
||||
/obj/item/weapon/shield/energy/IsReflect()
|
||||
return (active)
|
||||
|
||||
/obj/item/weapon/shield/energy/attack_self(mob/living/carbon/human/user)
|
||||
if(user.disabilities & CLUMSY && prob(50))
|
||||
user << "<span class='warning'>You beat yourself in the head with [src].</span>"
|
||||
user.take_organ_damage(5)
|
||||
active = !active
|
||||
icon_state = "eshield[active]"
|
||||
|
||||
if(active)
|
||||
force = 10
|
||||
throwforce = 8
|
||||
throw_speed = 2
|
||||
w_class = 4
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 35, 1)
|
||||
user << "<span class='notice'>[src] is now active.</span>"
|
||||
else
|
||||
force = 3
|
||||
throwforce = 3
|
||||
throw_speed = 3
|
||||
w_class = 1
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1)
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
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/shield/riot/tele
|
||||
name = "telescopic shield"
|
||||
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "teleriot0"
|
||||
icon_override = 'icons/mob/in-hand/tools.dmi'
|
||||
slot_flags = null
|
||||
force = 3
|
||||
throwforce = 3
|
||||
throw_speed = 3
|
||||
throw_range = 4
|
||||
w_class = 3
|
||||
var/active = 0
|
||||
|
||||
/obj/item/weapon/shield/riot/tele/IsShield()
|
||||
return (active)
|
||||
|
||||
/obj/item/weapon/shield/riot/tele/attack_self(mob/living/user)
|
||||
active = !active
|
||||
icon_state = "teleriot[active]"
|
||||
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
|
||||
|
||||
if(active)
|
||||
force = 8
|
||||
throwforce = 5
|
||||
throw_speed = 2
|
||||
w_class = 4
|
||||
slot_flags = SLOT_BACK
|
||||
user << "<span class='notice'>You extend \the [src].</span>"
|
||||
else
|
||||
force = 3
|
||||
throwforce = 3
|
||||
throw_speed = 3
|
||||
w_class = 3
|
||||
slot_flags = null
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
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/cloaking_device
|
||||
name = "cloaking device"
|
||||
desc = "Use this to become invisible to the human eyesocket."
|
||||
|
||||
@@ -282,40 +282,4 @@
|
||||
src.w_class = 5
|
||||
hitsound = "swing_hit"
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
|
||||
/*
|
||||
* Energy Shield
|
||||
*/
|
||||
/obj/item/weapon/shield/energy/IsShield()
|
||||
if(active)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/shield/energy/attack_self(mob/living/user as mob)
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
user << "\red You beat yourself in the head with [src]."
|
||||
user.take_organ_damage(5)
|
||||
active = !active
|
||||
if (active)
|
||||
force = 10
|
||||
reflect_chance = 100
|
||||
icon_state = "eshield[active]"
|
||||
w_class = 4
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
||||
user << "\blue [src] is now active."
|
||||
else
|
||||
force = 3
|
||||
icon_state = "eshield[active]"
|
||||
w_class = 1
|
||||
reflect_chance = 0
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
||||
user << "\blue [src] can now be concealed."
|
||||
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
|
||||
return
|
||||
@@ -113,7 +113,7 @@
|
||||
new /obj/item/weapon/storage/lockbox/loyalty(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer/hos(src)
|
||||
new /obj/item/weapon/shield/riot(src)
|
||||
new /obj/item/weapon/shield/riot/tele(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/storage/belt/security(src)
|
||||
new /obj/item/taperoll/police(src)
|
||||
|
||||
@@ -68,6 +68,17 @@
|
||||
build_path = /obj/item/weapon/grenade/chem_grenade/large
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/tele_shield
|
||||
name = "Telescopic Riot Shield"
|
||||
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
|
||||
id = "tele_shield"
|
||||
req_tech = list("combat" = 4, "materials" = 3, "engineering" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 4000, "$glass" = 5000, "$silver" = 300)
|
||||
build_path = /obj/item/weapon/shield/riot/tele
|
||||
locked = 1
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/lasercannon
|
||||
name = "Laser Cannon"
|
||||
desc = "A heavy duty laser cannon."
|
||||
|
||||
Reference in New Issue
Block a user