mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 15:14:27 +01: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
|
||||
|
||||
@@ -3029,16 +3029,15 @@ It can still be worn/put on as normal.
|
||||
///eyecheck()
|
||||
///Returns a number between -1 to 2
|
||||
/mob/living/carbon/human/eyecheck()
|
||||
var/number = 0
|
||||
if(istype(src.head, /obj/item/clothing/head/helmet/welding))
|
||||
if(!src.head:up)
|
||||
return (2)
|
||||
number += 2
|
||||
if(istype(src.head, /obj/item/clothing/head/helmet/space))
|
||||
return (2)
|
||||
number += 2
|
||||
if(istype(src.glasses, /obj/item/clothing/glasses/sunglasses))
|
||||
return (1)
|
||||
number += 1
|
||||
if(istype(src.glasses, /obj/item/clothing/glasses/thermal))
|
||||
return (-1)
|
||||
if(src.sdisabilities & 1)//Blindness Check
|
||||
return (2)
|
||||
return (0)
|
||||
number -= 1
|
||||
return number
|
||||
|
||||
|
||||
@@ -842,35 +842,6 @@
|
||||
sight |= SEE_OBJS
|
||||
if (!druggy)
|
||||
see_invisible = 0
|
||||
else if (istype(glasses, /obj/item/clothing/glasses/hud/security))
|
||||
if(client)
|
||||
var/icon/tempHud = 'hud.dmi'
|
||||
for(var/mob/living/carbon/human/perp in view(src))
|
||||
if(perp.wear_id)
|
||||
client.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]")
|
||||
var/perpname = "wot"
|
||||
if(istype(perp.wear_id,/obj/item/weapon/card/id))
|
||||
perpname = perp.wear_id:registered
|
||||
else if(istype(perp.wear_id,/obj/item/device/pda))
|
||||
var/obj/item/device/pda/tempPda = perp.wear_id
|
||||
perpname = tempPda.owner
|
||||
for (var/datum/data/record/E in data_core.general)
|
||||
if (E.fields["name"] == perpname)
|
||||
for (var/datum/data/record/R in data_core.security)
|
||||
if ((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
|
||||
client.images += image(tempHud,perp,"hudwanted")
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
|
||||
client.images += image(tempHud,perp,"hudprisoner")
|
||||
break
|
||||
else
|
||||
client.images += image(tempHud,perp,"hudunknown")
|
||||
for(var/obj/item/weapon/implant/tracking/tracker in perp)
|
||||
if(tracker.implanted)
|
||||
client.images += image(tempHud,perp,"hudtracking")
|
||||
break
|
||||
if (!druggy)
|
||||
see_invisible = 0
|
||||
else if (istype(glasses, /obj/item/clothing/glasses/hud/health))
|
||||
if(client)
|
||||
|
||||
@@ -922,6 +893,18 @@
|
||||
if(!head:up && tinted_weldhelh)
|
||||
see_in_dark = 1
|
||||
|
||||
if(istype(glasses, /obj/item/clothing/glasses/hud/security))
|
||||
if(client)
|
||||
glasses:process_hud(src)
|
||||
if(!druggy)
|
||||
see_invisible = 0
|
||||
else if((istype(head, /obj/item/clothing/head/helmet)) && (!istype(head, /obj/item/clothing/head/helmet/space)))
|
||||
if(client)
|
||||
if(head:shud)
|
||||
head:shud:process_hud(src)
|
||||
if(!druggy)
|
||||
see_invisible = 0
|
||||
|
||||
if (sleep) sleep.icon_state = text("sleep[]", sleeping)
|
||||
if (rest) rest.icon_state = text("rest[]", resting)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user