mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 23:42:27 +00:00
-Work done on facehuggers to stop them from being buggy if they're sterile or in a bag. Added icon sprites for inactive facehuggers when they're on a person, meaning they won't turn invisible.
Fixes Issue 1052 Fixes Issue 1065 -Added a world limit for blueprints naming areas. -Fixed a wrongfully named research design. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5394 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -15,7 +15,7 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
icon_state = "facehugger"
|
||||
item_state = "facehugger"
|
||||
w_class = 1 //note: can be picked up by aliens unlike most other items of w_class below 4
|
||||
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH|MASKCOVERSEYES
|
||||
flags = FPRINT | TABLEPASS | MASKCOVERSMOUTH | MASKCOVERSEYES | MASKINTERNALS
|
||||
throw_range = 5
|
||||
|
||||
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
|
||||
@@ -35,7 +35,7 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/facehugger/attack_hand(user as mob)
|
||||
if(stat == CONSCIOUS && !isalien(user))
|
||||
if((stat == CONSCIOUS && !sterile) && !isalien(user))
|
||||
Attach(user)
|
||||
return
|
||||
else
|
||||
@@ -85,14 +85,15 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/facehugger/on_found(mob/finder as mob)
|
||||
HasProximity(finder)
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/mask/facehugger/dropped()
|
||||
..()
|
||||
GoActive()
|
||||
if(stat == CONSCIOUS)
|
||||
HasProximity(finder)
|
||||
return 1
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
|
||||
if(CanHug(AM))
|
||||
Attach(AM)
|
||||
|
||||
/obj/item/clothing/mask/facehugger/throw_impact(atom/hit_atom)
|
||||
Attach(hit_atom)
|
||||
return
|
||||
@@ -109,19 +110,18 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
|
||||
var/mob/living/L = M //just so I don't need to use :
|
||||
|
||||
if(loc == L) return
|
||||
if(stat != CONSCIOUS) return
|
||||
if(!sterile) L.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage
|
||||
|
||||
var/mob/living/carbon/target = L
|
||||
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message("\red \b [src] leaps at [target]'s face!", 1)
|
||||
target.visible_message("\red \b [src] leaps at [target]'s face!")
|
||||
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(H.head && H.head.flags & HEADCOVERSMOUTH)
|
||||
for(var/mob/O in viewers(H, null))
|
||||
O.show_message("\red \b [src] smashes against [H]'s [H.head]!", 1)
|
||||
H.visible_message("\red \b [src] smashes against [H]'s [H.head]!")
|
||||
Die()
|
||||
return
|
||||
|
||||
@@ -131,13 +131,9 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
if(!W.canremove) return
|
||||
target.drop_from_inventory(W)
|
||||
|
||||
for(var/mob/O in viewers(target, null))
|
||||
O.show_message("\red \b [src] tears [W] off of [target]'s face!", 1)
|
||||
target.visible_message("\red \b [src] tears [W] off of [target]'s face!")
|
||||
|
||||
loc = target
|
||||
layer = 20
|
||||
target.wear_mask = src
|
||||
target.update_inv_wear_mask()
|
||||
target.equip_to_slot(src, slot_wear_mask)
|
||||
|
||||
GoIdle() //so it doesn't jump the people that tear it off
|
||||
|
||||
@@ -158,14 +154,11 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
target.status_flags |= XENO_HOST
|
||||
break
|
||||
|
||||
for(var/mob/O in viewers(target,null))
|
||||
O.show_message("\red \b [src] falls limp after violating [target]'s face!", 1)
|
||||
target.visible_message("\red \b [src] falls limp after violating [target]'s face!")
|
||||
|
||||
Die()
|
||||
else
|
||||
for(var/mob/O in viewers(target,null))
|
||||
O.show_message("\red \b [src] violates [target]'s face!", 1)
|
||||
target.update_inv_wear_mask()
|
||||
target.visible_message("\red \b [src] violates [target]'s face!")
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/facehugger/proc/GoActive()
|
||||
@@ -205,16 +198,12 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
icon_state = "[initial(icon_state)]_dead"
|
||||
stat = DEAD
|
||||
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message("\red \b[src] curls up into a ball!", 1)
|
||||
src.visible_message("\red \b[src] curls up into a ball!")
|
||||
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
|
||||
if(CanHug(AM))
|
||||
Attach(AM)
|
||||
|
||||
/proc/CanHug(var/mob/M)
|
||||
|
||||
if(!iscarbon(M) || isalien(M))
|
||||
return 0
|
||||
var/mob/living/carbon/C = M
|
||||
|
||||
@@ -124,7 +124,6 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
item_state = "beer"
|
||||
//item_state - Need to find a bottle sprite
|
||||
attack_verb = list("stabbed", "slashed", "attacked")
|
||||
var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")
|
||||
|
||||
|
||||
@@ -547,7 +547,7 @@ datum/design/telecomms_processor
|
||||
build_path = "/obj/item/weapon/circuitboard/telecomms/processor"
|
||||
|
||||
datum/design/telecomms_server
|
||||
name = "Circuit Design (Subspace Receiver)"
|
||||
name = "Circuit Design (Server Mainframe)"
|
||||
desc = "Allows for the construction of Telecommunications Servers."
|
||||
id = "s-server"
|
||||
req_tech = list("programming" = 4, "engineering" = 4)
|
||||
|
||||
Reference in New Issue
Block a user