mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 20:23:26 +00:00
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
117 lines
2.7 KiB
Plaintext
117 lines
2.7 KiB
Plaintext
/obj/critter
|
|
name = "Critter"
|
|
desc = "Generic critter."
|
|
icon = 'critter.dmi'
|
|
icon_state = "basic"
|
|
layer = 5.0
|
|
density = 1
|
|
anchored = 0
|
|
var
|
|
alive = 1
|
|
health = 10
|
|
max_health = 10
|
|
list/access_list = list()//accesses go here
|
|
//AI things
|
|
task = "thinking"
|
|
//Attacks at will
|
|
aggressive = 1
|
|
//Will target an attacker
|
|
defensive = 0
|
|
//Will randomly move about
|
|
wanderer = 1
|
|
//Will open doors it bumps ignoring access
|
|
opensdoors = 0
|
|
|
|
//Internal tracking ignore
|
|
frustration = 0
|
|
max_frustration = 8
|
|
attack = 0
|
|
attacking = 0
|
|
steps = 0
|
|
last_found = null
|
|
target = null
|
|
oldtarget_name = null
|
|
target_lastloc = null
|
|
//The last guy who attacked it
|
|
attacker = null
|
|
//Will not attack this thing
|
|
friend = null
|
|
//How far to look for things dont set this overly high
|
|
seekrange = 7
|
|
|
|
//If true will attack these things
|
|
atkcarbon = 1
|
|
atksilicon = 0
|
|
atkcritter = 0
|
|
//Attacks critters of the same type
|
|
atksame = 0
|
|
atkmech = 0
|
|
|
|
//Damage multipliers
|
|
brutevuln = 1
|
|
firevuln = 1
|
|
//DR
|
|
armor = 0
|
|
|
|
//How much damage it does it melee
|
|
melee_damage_lower = 1
|
|
melee_damage_upper = 2
|
|
//Basic attack message when they move to attack and attack
|
|
angertext = "charges at"
|
|
attacktext = "attacks"
|
|
|
|
|
|
proc
|
|
patrol_step()
|
|
process()
|
|
seek_target()
|
|
Die()
|
|
ChaseAttack()
|
|
RunAttack()
|
|
TakeDamage(var/damage = 0)
|
|
Target_Attacker(var/target)
|
|
|
|
|
|
|
|
/* TODO:Go over these and see how/if to add them
|
|
|
|
proc/set_attack()
|
|
state = 1
|
|
if(path_idle.len) path_idle = new/list()
|
|
trg_idle = null
|
|
|
|
proc/set_idle()
|
|
state = 2
|
|
if (path_target.len) path_target = new/list()
|
|
target = null
|
|
frustration = 0
|
|
|
|
proc/set_null()
|
|
state = 0
|
|
if (path_target.len) path_target = new/list()
|
|
if (path_idle.len) path_idle = new/list()
|
|
target = null
|
|
trg_idle = null
|
|
frustration = 0
|
|
|
|
proc/path_idle(var/atom/trg)
|
|
path_idle = AStar(src.loc, get_turf(trg), /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 250, anicard, null)
|
|
path_idle = reverselist(path_idle)
|
|
|
|
proc/path_attack(var/atom/trg)
|
|
path_target = AStar(src.loc, trg.loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 250, anicard, null)
|
|
path_target = reverselist(path_target)
|
|
|
|
|
|
//Look these over
|
|
var/list/path = new/list()
|
|
var/patience = 35 //The maximum time it'll chase a target.
|
|
var/list/mob/living/carbon/flee_from = new/list()
|
|
var/list/path_target = new/list() //The path to the combat target.
|
|
|
|
var/turf/trg_idle //It's idle target, the one it's following but not attacking.
|
|
var/list/path_idle = new/list() //The path to the idle target.
|
|
|
|
|
|
|
|
*/ |