mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 11:34:19 +01:00
Merge remote-tracking branch 'upstream/master' into botany-rework
This commit is contained in:
@@ -30,6 +30,12 @@ var/intercom_range_display_status = 0
|
||||
src.pixel_x = -224
|
||||
src.pixel_y = -224
|
||||
|
||||
/obj/effect/debugging/mapfix_marker
|
||||
name = "map fix marker"
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "mapfixmarker"
|
||||
desc = "I am a mappers mistake."
|
||||
|
||||
/obj/effect/debugging/marker
|
||||
icon = 'icons/turf/areas.dmi'
|
||||
icon_state = "yellow"
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil
|
||||
name = "soil"
|
||||
icon_state = "soil"
|
||||
density = 0
|
||||
use_power = 0
|
||||
mechanical = 0
|
||||
tray_light = 0
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(istype(O,/obj/item/weapon/tank))
|
||||
return
|
||||
else if(istype(O,/obj/item/weapon/crowbar))
|
||||
return
|
||||
else if(istype(O, /obj/item/weapon/shovel))
|
||||
if(seed)
|
||||
to_chat(user, "You dig up and dispose of \the [seed.display_name].")
|
||||
seed = null
|
||||
dead = 0
|
||||
sampled = 0
|
||||
age = 0
|
||||
lastproduce = 0
|
||||
yield_mod = 0
|
||||
mutation_mod = 0
|
||||
check_health()
|
||||
else
|
||||
to_chat(user, "You clear up [src]!")
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/New()
|
||||
..()
|
||||
verbs -= /obj/machinery/portable_atmospherics/hydroponics/verb/close_lid_verb
|
||||
verbs -= /obj/machinery/portable_atmospherics/hydroponics/verb/remove_label
|
||||
verbs -= /obj/machinery/portable_atmospherics/hydroponics/verb/setlight
|
||||
verbs -= /obj/machinery/portable_atmospherics/hydroponics/verb/eject_tank_verb
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/CanPass()
|
||||
return 1
|
||||
|
||||
// Holder for vine plants.
|
||||
// Icons for plants are generated as overlays, so setting it to invisible wouldn't work.
|
||||
// Hence using a blank icon.
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible
|
||||
name = "plant"
|
||||
icon = 'icons/obj/seeds.dmi'
|
||||
icon_state = "blank"
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/New(var/newloc,var/datum/seed/newseed)
|
||||
..()
|
||||
seed = newseed
|
||||
dead = 0
|
||||
age = 1
|
||||
health = seed.get_trait(TRAIT_ENDURANCE)
|
||||
lastcycle = world.time
|
||||
pixel_y = rand(-5,5)
|
||||
check_health()
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/remove_dead()
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/harvest()
|
||||
..()
|
||||
if(!seed) // Repeat harvests are a thing.
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/die()
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/process()
|
||||
if(!seed)
|
||||
qdel(src)
|
||||
return
|
||||
else if(name=="plant")
|
||||
name = seed.display_name
|
||||
..()
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Destroy()
|
||||
// Check if we're masking a decal that needs to be visible again.
|
||||
for(var/obj/effect/plant/plant in get_turf(src))
|
||||
if(plant.invisibility == INVISIBILITY_MAXIMUM)
|
||||
plant.invisibility = initial(plant.invisibility)
|
||||
return ..()
|
||||
@@ -3,6 +3,12 @@
|
||||
caliber = "357"
|
||||
projectile_type = /obj/item/projectile/bullet
|
||||
|
||||
/obj/item/ammo_casing/rubber9mm
|
||||
desc = "A 9mm rubber bullet casing."
|
||||
caliber = "9mm"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/weakbullet4
|
||||
|
||||
/obj/item/ammo_casing/a762
|
||||
desc = "A 7.62mm bullet casing."
|
||||
icon_state = "762-casing"
|
||||
@@ -20,6 +26,7 @@
|
||||
/obj/item/ammo_casing/c38
|
||||
desc = "A .38 bullet casing."
|
||||
caliber = "38"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/weakbullet2/rubber
|
||||
|
||||
/obj/item/ammo_casing/c10mm
|
||||
@@ -76,6 +83,12 @@
|
||||
caliber = "4.6x30mm"
|
||||
projectile_type = /obj/item/projectile/bullet/incendiary/firebullet
|
||||
|
||||
/obj/item/ammo_casing/rubber45
|
||||
desc = "A .45 rubber bullet casing."
|
||||
caliber = ".45"
|
||||
icon_state = "r-casing"
|
||||
projectile_type = /obj/item/projectile/bullet/weakbullet4
|
||||
|
||||
/obj/item/ammo_casing/c45
|
||||
desc = "A .45 bullet casing."
|
||||
caliber = ".45"
|
||||
@@ -120,7 +133,7 @@
|
||||
/obj/item/ammo_casing/shotgun/rubbershot
|
||||
name = "rubber shot"
|
||||
desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance."
|
||||
icon_state = "bshell"
|
||||
icon_state = "cshell"
|
||||
projectile_type = /obj/item/projectile/bullet/rpellet
|
||||
pellets = 6
|
||||
variance = 25
|
||||
@@ -254,7 +267,7 @@
|
||||
/obj/item/ammo_casing/shotgun/tranquilizer
|
||||
name = "tranquilizer darts"
|
||||
desc = "A tranquilizer round used to subdue individuals utilizing stimulants."
|
||||
icon_state = "cshell"
|
||||
icon_state = "nshell"
|
||||
projectile_type = /obj/item/projectile/bullet/dart/syringe/tranquilizer
|
||||
materials = list(MAT_METAL=250)
|
||||
|
||||
|
||||
@@ -35,6 +35,12 @@
|
||||
ammo_type = /obj/item/ammo_casing/c45
|
||||
max_ammo = 20
|
||||
|
||||
/obj/item/ammo_box/rubber45
|
||||
name = "ammo box (.45 rubber)"
|
||||
icon_state = "45box-r"
|
||||
ammo_type = /obj/item/ammo_casing/rubber45
|
||||
max_ammo = 16
|
||||
|
||||
/obj/item/ammo_box/a40mm
|
||||
name = "ammo box (40mm grenades)"
|
||||
icon_state = "40mm"
|
||||
@@ -52,14 +58,14 @@
|
||||
|
||||
/obj/item/ammo_box/n762
|
||||
name = "ammo box (7.62x38mmR)"
|
||||
icon_state = "10mmbox"
|
||||
icon_state = "riflebox"
|
||||
origin_tech = "combat=2"
|
||||
ammo_type = /obj/item/ammo_casing/n762
|
||||
max_ammo = 14
|
||||
|
||||
/obj/item/ammo_box/shotgun
|
||||
name = "Ammunition Box (slug)"
|
||||
icon_state = "9mmbox"
|
||||
icon_state = "slugbox"
|
||||
origin_tech = "combat=2"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun
|
||||
max_ammo = 7
|
||||
@@ -67,26 +73,30 @@
|
||||
|
||||
/obj/item/ammo_box/shotgun/buck
|
||||
name = "Ammunition Box (buckshot)"
|
||||
icon_state = "buckshotbox"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/buckshot
|
||||
|
||||
/obj/item/ammo_box/shotgun/stun
|
||||
name = "Ammunition Box (stun shells)"
|
||||
icon_state = "stunbox"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/stunslug
|
||||
materials = list(MAT_METAL=1750)
|
||||
|
||||
/obj/item/ammo_box/shotgun/beanbag
|
||||
name = "Ammunition Box (beanbag shells)"
|
||||
icon_state = "beanbagbox"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
||||
materials = list(MAT_METAL=1750)
|
||||
|
||||
/obj/item/ammo_box/shotgun/rubbershot
|
||||
name = "Ammunition Box (rubbershot shells)"
|
||||
icon_state = "rubbershotbox"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
|
||||
materials = list(MAT_METAL=28000)
|
||||
|
||||
/obj/item/ammo_box/shotgun/tranquilizer
|
||||
name = "Ammunition Box (tranquilizer darts)"
|
||||
icon_state = "45box"
|
||||
icon_state = "tranqbox"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/tranquilizer
|
||||
materials = list(MAT_METAL=1750)
|
||||
|
||||
|
||||
@@ -209,6 +209,34 @@
|
||||
caliber = ".45"
|
||||
max_ammo = 8
|
||||
multiple_sprites = 1
|
||||
/obj/item/ammo_box/magazine/m45/enforcer45
|
||||
name = "handgun magazine (.45)"
|
||||
icon_state = "enforcer"
|
||||
ammo_type = /obj/item/ammo_casing/rubber45
|
||||
|
||||
/obj/item/ammo_box/magazine/m45/enforcer45/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
|
||||
var/ammo = ammo_count()
|
||||
if(ammo && is_rubber())
|
||||
overlays += image('icons/obj/ammo.dmi', icon_state = "enforcer-r")
|
||||
|
||||
/obj/item/ammo_box/magazine/m45/enforcer45/examine(mob/user, var/distance)
|
||||
..()
|
||||
if(distance <= 2)
|
||||
to_chat(user, "It seems to be loaded with [is_rubber() ? "rubber" : "lethal"] bullets.")//only can see the topmost one.
|
||||
|
||||
/obj/item/ammo_box/magazine/m45/enforcer45/proc/is_rubber()//if the topmost bullet is a rubber one
|
||||
var/ammo = ammo_count()
|
||||
if(!ammo)
|
||||
return 0
|
||||
if(istype(contents[contents.len], /obj/item/ammo_casing/rubber45))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/ammo_box/magazine/m45/enforcer45/lethal
|
||||
ammo_type = /obj/item/ammo_casing/c45
|
||||
|
||||
/obj/item/ammo_box/magazine/wt550m9
|
||||
name = "wt550 magazine (4.6x30mm)"
|
||||
|
||||
@@ -40,6 +40,14 @@
|
||||
mag_type = /obj/item/ammo_box/magazine/m50
|
||||
can_suppress = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/enforcer45
|
||||
name = "Enforcer .45"
|
||||
desc = "A pistol of modern design."
|
||||
icon_state = "enforcer"
|
||||
force = 10
|
||||
mag_type = /obj/item/ammo_box/magazine/m45/enforcer45
|
||||
can_suppress = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][magazine ? "" : "-e"]"
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
damage = 5
|
||||
weaken = 3
|
||||
stamina = 60
|
||||
icon_state = "bullet-r"
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet2/rubber //detective's bullets that don't embed
|
||||
embed = 0
|
||||
@@ -50,6 +51,13 @@
|
||||
/obj/item/projectile/bullet/weakbullet3
|
||||
damage = 20
|
||||
|
||||
/obj/item/projectile/bullet/weakbullet4
|
||||
name = "rubber bullet"
|
||||
damage = 5
|
||||
stamina = 30
|
||||
icon_state = "bullet-r"
|
||||
embed = 0
|
||||
sharp = 0
|
||||
|
||||
/obj/item/projectile/bullet/toxinbullet
|
||||
damage = 15
|
||||
@@ -135,6 +143,7 @@
|
||||
name = "rubber pellet"
|
||||
damage = 3
|
||||
stamina = 25
|
||||
icon_state = "bullet-r"
|
||||
|
||||
/obj/item/projectile/bullet/stunshot//taser slugs for shotguns, nothing special
|
||||
name = "stunshot"
|
||||
|
||||
Reference in New Issue
Block a user