mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Doors now check for critter access.
Cleaned up the objectives a bit and made a new "kill" one for rev. Cleaned up implants and implanters a bit. Cleaned up the prisoner computer a bit. Sec Huds can be placed on security helmets (Still needs a sprite) The beachball now has in hand sprites (Kor) Cult: Heads other than the Captain and HoS are now able to start as or be converted to a cultist. Loyalty implants will block conversion but will not unconvert cultists. Rev: Station Heads or Head Revs who leave z1 will count as dead so long as they are off of the z level. Loyalty implants will block conversion and will unconvert revs upon injection. Once a mind has been unconverted it may not be reconverted New items: Loyalty implants, small implant that prevents reving/cult The Captain, Warden, Officers, and Detective all start with one already implanted Loyalty Implanter machine on the prison station that implants loyalty implants and may regen implants after a cooldown. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2049 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
alive = 1
|
||||
health = 10
|
||||
max_health = 10
|
||||
|
||||
list/access_list = list()//accesses go here
|
||||
//AI things
|
||||
task = "thinking"
|
||||
//Attacks at will
|
||||
@@ -19,8 +19,8 @@
|
||||
defensive = 0
|
||||
//Will randomly move about
|
||||
wanderer = 1
|
||||
//Will open doors it bumps
|
||||
opensdoors = 1
|
||||
//Will open doors it bumps ignoring access
|
||||
opensdoors = 0
|
||||
|
||||
//Internal tracking ignore
|
||||
frustration = 0
|
||||
|
||||
@@ -87,13 +87,12 @@
|
||||
|
||||
Bump(M as mob|obj)//TODO: Add access levels here
|
||||
spawn(0)
|
||||
if ((istype(M, /obj/machinery/door)))
|
||||
var/obj/machinery/door/D = M
|
||||
if (src.opensdoors)
|
||||
D.open()
|
||||
if((istype(M, /obj/machinery/door)))
|
||||
if(src.opensdoors)
|
||||
M:open()
|
||||
src.frustration = 0
|
||||
else src.frustration ++
|
||||
else if ((istype(M, /mob/living/)) && (!src.anchored))
|
||||
else src.frustration ++
|
||||
if((istype(M, /mob/living/)) && (!src.anchored))
|
||||
src.loc = M:loc
|
||||
src.frustration = 0
|
||||
return
|
||||
@@ -127,9 +126,9 @@
|
||||
for(var/obj/critter/C in view(src.seekrange,src))
|
||||
if(istype(C, /obj/critter) && !src.atkcritter) continue
|
||||
if(istype(C, /obj/mecha) && !src.atkmech) continue
|
||||
if(C.health < 0) continue
|
||||
if(C.health <= 0) continue
|
||||
if(istype(C, /obj/critter) && src.atkcritter)
|
||||
if(istype(C, src.type) && !src.atksame) continue
|
||||
if((istype(C, src.type) && !src.atksame) || (C == src)) continue
|
||||
src.attack = 1
|
||||
if(istype(C, /obj/mecha) && src.atkmech) src.attack = 1
|
||||
if(src.attack)
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
aggressive = 0
|
||||
defensive = 1
|
||||
wanderer = 1
|
||||
opensdoors = 0
|
||||
atkcarbon = 1
|
||||
atksilicon = 0
|
||||
attacktext = "bites"
|
||||
@@ -49,7 +48,6 @@
|
||||
aggressive = 1
|
||||
defensive = 0
|
||||
wanderer = 1
|
||||
opensdoors = 1
|
||||
atkcarbon = 1
|
||||
atksilicon = 1
|
||||
firevuln = 2
|
||||
@@ -73,7 +71,6 @@
|
||||
aggressive = 0
|
||||
defensive = 0
|
||||
wanderer = 1
|
||||
opensdoors = 0
|
||||
atkcarbon = 0
|
||||
atksilicon = 0
|
||||
firevuln = 2
|
||||
@@ -101,7 +98,6 @@
|
||||
aggressive = 1
|
||||
defensive = 1
|
||||
wanderer = 1
|
||||
opensdoors = 1
|
||||
atkcarbon = 1
|
||||
atksilicon = 1
|
||||
atkcritter = 1
|
||||
@@ -127,6 +123,7 @@
|
||||
max_health = 50
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 20
|
||||
// opensdoors = 1 would give all access dono if want
|
||||
|
||||
/obj/critter/walkingmushroom
|
||||
name = "Walking Mushroom"
|
||||
@@ -137,7 +134,6 @@
|
||||
aggressive = 0
|
||||
defensive = 0
|
||||
wanderer = 1
|
||||
opensdoors = 0
|
||||
atkcarbon = 0
|
||||
atksilicon = 0
|
||||
firevuln = 2
|
||||
|
||||
@@ -74,9 +74,9 @@
|
||||
for(var/obj/critter/C in view(src.seekrange,src))
|
||||
if(istype(C, /obj/critter) && !src.atkcritter) continue
|
||||
if(istype(C, /obj/mecha) && !src.atkmech) continue
|
||||
if(C.health < 0) continue
|
||||
if(C.health <= 0) continue
|
||||
if(istype(C, /obj/critter) && src.atkcritter)
|
||||
if(istype(C, /obj/critter/hivebot) && !src.atksame) continue
|
||||
if((istype(C, /obj/critter/hivebot) && !src.atksame) || (C == src)) continue
|
||||
src.attack = 1
|
||||
if(istype(C, /obj/mecha) && src.atkmech) src.attack = 1
|
||||
if(src.attack)
|
||||
@@ -203,6 +203,7 @@
|
||||
if(auto_spawn)
|
||||
spawn(spawn_delay)
|
||||
turn_on = 1
|
||||
auto_spawn = 0
|
||||
|
||||
|
||||
warpbots()
|
||||
@@ -224,11 +225,12 @@
|
||||
|
||||
|
||||
process()
|
||||
if(health < (max_health/2))
|
||||
turn_on = 1
|
||||
if(turn_on)
|
||||
if((health < (max_health/2)) && (!turn_on))
|
||||
if(prob(2))//Might be a bit low, will mess with it likely
|
||||
turn_on = 1
|
||||
if(turn_on == 1)
|
||||
warpbots()
|
||||
turn_on = 0
|
||||
turn_on = 2
|
||||
..()
|
||||
|
||||
/obj/critter/hivebot/tele/massive
|
||||
|
||||
Reference in New Issue
Block a user