Ported the last of the critters to simple_animal.

Removed all critter code/replaced it with their simple animal paths where applicable.

Replaced the critters on the maps with simple_animal versions.

If I missed any vars/icons/etc when I ported them over, let me know.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5210 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
Kortgstation@gmail.com
2012-11-27 19:06:15 +00:00
parent c243250daa
commit a55b8b6ad7
21 changed files with 104 additions and 701 deletions

View File

@@ -19,5 +19,48 @@
run_action() run_action()
if(spores.len >= max_spores) return 0 if(spores.len >= max_spores) return 0
new/obj/effect/critter/blob(src.loc, src) new/mob/living/simple_animal/hostile/blobspore(src.loc, src)
return 1 return 1
/mob/living/simple_animal/hostile/blobspore
name = "blob"
desc = "Some blob thing."
icon = 'icons/mob/critter.dmi'
icon_state = "blobsquiggle"
icon_living = "blobsquiggle"
pass_flags = PASSBLOB
health = 20
maxHealth = 20
melee_damage_lower = 4
melee_damage_upper = 8
attacktext = "hits"
attack_sound = 'sound/weapons/genhit1.ogg'
var/obj/effect/blob/factory/factory = null
faction = "blob"
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
maxbodytemp = 360
New(loc, var/obj/effect/blob/factory/linked_node)
..()
if(istype(linked_node))
factory = linked_node
factory.spores += src
..(loc)
return
Die()
..()
if(factory)
factory.spores -= src
..()
del(src)

View File

@@ -144,8 +144,6 @@ datum/hSB
continue continue
if(istype(O, /obj/item/weapon/melee/energy/sword)) if(istype(O, /obj/item/weapon/melee/energy/sword))
continue continue
if(istype(O, /obj/effect/critter))
continue
if(istype(O, /obj/structure)) if(istype(O, /obj/structure))
continue continue
selectable += O selectable += O

View File

@@ -66,14 +66,6 @@
open() open()
return return
if(istype(AM, /obj/effect/critter))
var/obj/effect/critter/critter = AM
if(critter.opensdoors) return
if(src.check_access_list(critter.access_list))
if(density)
open()
return
if(istype(AM, /obj/mecha)) if(istype(AM, /obj/mecha))
var/obj/mecha/mecha = AM var/obj/mecha/mecha = AM
if(density) if(density)

View File

@@ -449,9 +449,6 @@ Status: []<BR>"},
var/list/secondarytargets = list() // targets that are least important var/list/secondarytargets = list() // targets that are least important
if(src.check_anomalies) // if its set to check for xenos/carps, check for non-mob "crittersssss"(And simple_animals) if(src.check_anomalies) // if its set to check for xenos/carps, check for non-mob "crittersssss"(And simple_animals)
for (var/obj/effect/critter/L in view(7,src))
if(L.alive)
targets += L
for(var/mob/living/simple_animal/C in view(7,src)) for(var/mob/living/simple_animal/C in view(7,src))
if(!C.stat) if(!C.stat)
targets += C targets += C
@@ -506,15 +503,6 @@ Status: []<BR>"},
spawn() popUp() // pop the turret up if it's not already up. spawn() popUp() // pop the turret up if it's not already up.
dir=get_dir(src,M) // even if you can't shoot, follow the target dir=get_dir(src,M) // even if you can't shoot, follow the target
spawn() shootAt(M) // shoot the target, finally spawn() shootAt(M) // shoot the target, finally
else
if (istype(t, /obj/effect/critter)) // shoot other things, same process as above
var/obj/effect/critter/L = t
if (L.alive==1)
spawn() popUp()
dir=get_dir(src,L)
spawn() shootAt(L)
else else
if(secondarytargets.len>0) // if there are no primary targets, go for secondary targets if(secondarytargets.len>0) // if there are no primary targets, go for secondary targets

View File

@@ -469,23 +469,6 @@
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>") user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
return return
/obj/mecha/proc/attack_critter(obj/effect/critter/C)
src.log_message("Attack by creature. Attacker - [C].",1)
var/damage = max(0, rand(C.melee_damage_lower - 5, C.melee_damage_upper - 5 ))
if(!prob(src.deflect_chance) && damage > 0)
src.take_damage(damage)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
playsound(src.loc, "sparks", 50, 1)
visible_message("\red <b>[C]</b> hits [src.name]'s armor!")
else
src.log_append_to_last("Armor saved.")
src.occupant_message("\blue <b>[C]'s</b> attack is stopped by the armor.")
visible_message("\blue <b>[C]</b> rebounds off [src.name]'s armor!")
return
/obj/mecha/hitby(atom/movable/A as mob|obj) //wrapper /obj/mecha/hitby(atom/movable/A as mob|obj) //wrapper
src.log_message("Hit by [A].",1) src.log_message("Hit by [A].",1)
call((proc_res["dynhitby"]||src), "dynhitby")(A) call((proc_res["dynhitby"]||src), "dynhitby")(A)

View File

@@ -283,9 +283,6 @@
for(var/obj/mecha/M in src)//Mecha are not gibbed but are damaged. for(var/obj/mecha/M in src)//Mecha are not gibbed but are damaged.
spawn(0) spawn(0)
M.take_damage(100, "brute") M.take_damage(100, "brute")
for(var/obj/effect/critter/M in src)
spawn(0)
M.Die()
/turf/proc/Bless() /turf/proc/Bless()
if(flags & NOJAUNT) if(flags & NOJAUNT)

View File

@@ -1,129 +0,0 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/effect/critter
name = "Critter"
desc = "Generic critter."
icon = 'icons/mob/critter.dmi'
icon_state = "basic"
layer = 5.0
density = 1
anchored = 0
var/alive = 1
var/health = 10
var/max_health = 10
var/list/access_list = list()//accesses go here
//AI things
var/task = "thinking"
//Attacks at will
var/aggressive = 1
//Will target an attacker
var/defensive = 0
//Will randomly move about
var/wanderer = 1
//Will open doors it bumps ignoring access
var/opensdoors = 0
//Will randomly travel through vents
var/ventcrawl = 0
//Internal tracking ignore
var/frustration = 0
var/max_frustration = 8
var/attack = 0
var/attacking = 0
var/steps = 0
var/last_found = null
var/target = null
var/oldtarget_name = null
var/target_lastloc = null
var/thinkspeed = 15
var/chasespeed = 4
var/wanderspeed = 10
//The last guy who attacked it
var/attacker = null
//Will not attack this thing
var/friend = null
//How far to look for things dont set this overly high
var/seekrange = 7
//If true will attack these things
var/atkcarbon = 1
var/atksilicon = 0
var/atkcritter = 0
//Attacks critters of the same type
var/atksame = 0
var/atkmech = 0
//Attacks syndies/traitors (distinguishes via mind)
var/atksynd = 1
//Attacks things NOT in its obj/req_access list
var/atkreq = 0
//Damage multipliers
var/brutevuln = 1
var/firevuln = 1
//DR
var/armor = 0
//How much damage it does it melee
var/melee_damage_lower = 1
var/melee_damage_upper = 2
//Basic attack message when they move to attack and attack
var/angertext = "charges at"
var/attacktext = "attacks"
var/deathtext = "dies!"
var/chasestate = null // the icon state to use when attacking or chasing a target
var/attackflick = null // the icon state to flick when it attacks
var/attack_sound = null // the sound it makes when it attacks!
var/attack_speed = 25 // delay of attack
proc/AfterAttack(var/mob/living/target)
return
/* 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.
*/

View File

@@ -1,241 +0,0 @@
/obj/effect/critter
New(loc)
spawn(0) process()//I really dont like this much but it seems to work well
..(loc)
process()
set background = 1
if (!src.alive) return
switch(task)
if("thinking")
src.attack = 0
src.target = null
sleep(thinkspeed)
walk_to(src,0)
if (src.aggressive) seek_target()
if (src.wanderer && !src.target) src.task = "wandering"
if("chasing")
if (src.frustration >= max_frustration)
src.target = null
src.last_found = world.time
src.frustration = 0
src.task = "thinking"
walk_to(src,0)
if (target)
if (get_dist(src, src.target) <= 1)
var/mob/living/carbon/M = src.target
ChaseAttack()
src.task = "attacking"
if(chasestate)
icon_state = chasestate
src.anchored = 1
src.target_lastloc = M.loc
else
var/turf/olddist = get_dist(src, src.target)
walk_to(src, src.target,1,chasespeed)
if ((get_dist(src, src.target)) >= (olddist))
src.frustration++
else
src.frustration = 0
sleep(5)
else src.task = "thinking"
if("attacking")
// see if he got away
if ((get_dist(src, src.target) > 1) || ((src.target:loc != src.target_lastloc)))
src.anchored = 0
src.task = "chasing"
if(chasestate)
icon_state = chasestate
else
if (get_dist(src, src.target) <= 1)
var/mob/living/carbon/M = src.target
if(!src.attacking) RunAttack()
if(!src.aggressive)
src.task = "thinking"
src.target = null
src.anchored = 0
src.last_found = world.time
src.frustration = 0
src.attacking = 0
else
if(M!=null)
if(ismob(src.target))
if(M.health < 0)
src.task = "thinking"
src.target = null
src.anchored = 0
src.last_found = world.time
src.frustration = 0
src.attacking = 0
else
src.anchored = 0
src.attacking = 0
src.task = "chasing"
if(chasestate)
icon_state = chasestate
if("wandering")
if(chasestate)
icon_state = initial(icon_state)
patrol_step()
sleep(wanderspeed)
spawn(8)
process()
return
proc/patrol_step()
var/moveto = locate(src.x + rand(-1,1),src.y + rand(-1, 1),src.z)
if (istype(moveto, /turf/simulated/floor) || istype(moveto, /turf/simulated/shuttle/floor) || istype(moveto, /turf/unsimulated/floor)) step_towards(src, moveto)
if(src.aggressive) seek_target()
steps += 1
if (steps == rand(5,20)) src.task = "thinking"
Bump(M as mob|obj)//TODO: Add access levels here
spawn(0)
if((istype(M, /obj/machinery/door)))
if(src.opensdoors)
M:open()
src.frustration = 0
else src.frustration ++
if((istype(M, /mob/living/)) && (!src.anchored))
src.loc = M:loc
src.frustration = 0
return
return
Bumped(M as mob|obj)
spawn(0)
var/turf/T = get_turf(src)
M:loc = T
proc/seek_target()
src.anchored = 0
var/T = null
for(var/mob/living/C in view(src.seekrange,src))//TODO: mess with this
if (src.target)
src.task = "chasing"
break
// Ignore syndicates and traitors if specified
if(!atksynd && C.mind)
var/datum/mind/synd_mind = C.mind
if( synd_mind.special_role == "Syndicate" || synd_mind.special_role == "traitor" )
continue
if((C.name == src.oldtarget_name) && (world.time < src.last_found + 100)) continue
if(istype(C, /mob/living/carbon/) && !src.atkcarbon) continue
if(istype(C, /mob/living/silicon/) && !src.atksilicon) continue
if(atkreq)
if(src.allowed(C)) continue
if(C.health < 0) continue
if(istype(C, /mob/living/carbon/) && src.atkcarbon) src.attack = 1
if(istype(C, /mob/living/silicon/) && src.atksilicon) src.attack = 1
if(atkreq)
if(!src.allowed(C)) src.attack = 1
if(src.attack)
T = C
break
if(!src.attack)
for(var/obj/effect/critter/C in view(src.seekrange,src))
if(!src.atkcritter) continue
if(C.health <= 0) continue
if(src.atkcritter)
if((istype(C, src.type) && !src.atksame) || (C == src)) continue
src.attack = 1
if(src.attack)
T = C
break
if(!src.attack)
for(var/obj/mecha/C in view(src.seekrange,src))
if(!C.occupant) continue
if(atkreq && C.occupant)
if(src.allowed(C.occupant)) continue
if(!atksynd && C.occupant)
if(C.occupant.mind)
var/datum/mind/synd_mind = C.occupant.mind
if( synd_mind.special_role == "Syndicate" || synd_mind.special_role == "traitor" )
continue
if(!src.atkmech) continue
if(C.health <= 0) continue
if(src.atkmech) src.attack = 1
if(src.attack)
T = C
break
if(src.attack)
src.target = T
src.oldtarget_name = T:name
src.task = "chasing"
return
proc/ChaseAttack()
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src]</B> [src.angertext] at [src.target]!", 1)
return
proc/RunAttack()
src.attacking = 1
if(ismob(src.target))
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src]</B> [src.attacktext] [src.target]!", 1)
var/damage = rand(melee_damage_lower, melee_damage_upper)
if(ishuman(target))
var/mob/living/carbon/human/H = target
var/dam_zone = pick("chest", "l_hand", "r_hand", "l_leg", "r_leg")
var/datum/organ/external/affecting = H.get_organ(ran_zone(dam_zone))
H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"))
else if(isliving(target))
var/mob/living/L = target
L.adjustBruteLoss(damage)
if(attack_sound)
playsound(loc, attack_sound, 50, 1, -1)
AfterAttack(target)
if(isobj(src.target))
if(istype(target, /obj/mecha))
//src.target:take_damage(rand(melee_damage_lower,melee_damage_upper))
src.target:attack_critter(src)
else
src.target:TakeDamage(rand(melee_damage_lower,melee_damage_upper))
spawn(attack_speed)
src.attacking = 0
return
/*TODO: Figure out how to handle special things like this dont really want to give it to every critter
/obj/effect/critter/proc/CritterTeleport(var/telerange, var/dospark, var/dosmoke)
if (!src.alive) return
var/list/randomturfs = new/list()
for(var/turf/T in orange(src, telerange))
if(istype(T, /turf/space) || T.density) continue
randomturfs.Add(T)
src.loc = pick(randomturfs)
if (dospark)
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
if (dosmoke)
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(10, 0, src.loc)
smoke.start()
src.task = "thinking"
*/

View File

@@ -1,128 +0,0 @@
/*
Contains the procs that control attacking critters
*/
/obj/effect/critter
attackby(obj/item/weapon/W as obj, mob/living/user as mob)
..()
if(!src.alive)
Harvest(W,user)
return
var/damage = 0
switch(W.damtype)
if("fire") damage = W.force * firevuln
if("brute") damage = W.force * brutevuln
TakeDamage(damage)
if(src.defensive && alive) Target_Attacker(user)
return
attack_hand(var/mob/user as mob)
if (!src.alive) ..()
if (user.a_intent == "hurt")
TakeDamage(rand(1,2) * brutevuln)
if(istype(user, /mob/living/carbon/human))
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[user] has punched [src]!</B>", 1)
playsound(src.loc, pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'), 100, 1)
else if(istype(user, /mob/living/carbon/alien/humanoid))
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[user] has slashed at [src]!</B>", 1)
playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1)
else
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[user] has bit [src]!</B>", 1)
if(src.defensive) Target_Attacker(user)
else
for(var/mob/O in viewers(src, null))
O.show_message("\blue [user] touches [src]!", 1)
proc/Target_Attacker(var/target)
if(!target) return
src.target = target
src.oldtarget_name = target:name
if(task != "chasing" && task != "attacking")
if(angertext && angertext != "")
for(var/mob/O in viewers(src, null))
O.show_message("\red <b>[src]</b> [src.angertext] at [target:name]!", 1)
src.task = "chasing"
return
proc/TakeDamage(var/damage = 0)
var/tempdamage = (damage-armor)
if(tempdamage > 0)
src.health -= tempdamage
else
src.health--
if(src.health <= 0)
src.Die()
proc/Die()
if (!src.alive) return
src.icon_state += "-dead"
src.alive = 0
src.anchored = 0
src.density = 0
walk_to(src,0)
src.visible_message("<b>[src]</b> [deathtext]")
proc/Harvest(var/obj/item/weapon/W, var/mob/living/user)
if((!W) || (!user)) return 0
if(src.alive) return 0
return 1
bullet_act(var/obj/item/projectile/Proj)
TakeDamage(Proj.damage)
..()
ex_act(severity)
switch(severity)
if(1.0)
src.Die()
return
if(2.0)
TakeDamage(20)
return
return
emp_act(serverity)
switch(serverity)
if(1.0)
src.Die()
return
if(2.0)
TakeDamage(20)
return
return
meteorhit()
src.Die()
return
blob_act()
if(prob(25))
src.Die()
return
attack_animal(mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0)
M.emote("[M.friendly] [src]")
else
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[M]</B> [M.attacktext] [src]!", 1)
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
TakeDamage(damage)
return

View File

@@ -1,127 +0,0 @@
/obj/effect/critter/creature
name = "creature"
desc = "A sanity-destroying otherthing."
icon_state = "otherthing"
health = 80
max_health = 80
aggressive = 1
defensive = 1
wanderer = 1
opensdoors = 1
atkcarbon = 1
atksilicon = 1
atkcritter = 1
atkmech = 1
atksame = 1
firevuln = 1
brutevuln = 1
melee_damage_lower = 25
melee_damage_upper = 50
angertext = "runs"
attacktext = "chomps"
attack_sound = 'sound/weapons/bite.ogg'
/obj/effect/critter/roach
name = "cockroach"
desc = "An unpleasant insect that lives in filthy places."
icon_state = "roach"
health = 5
max_health = 5
aggressive = 0
defensive = 1
wanderer = 1
atkcarbon = 1
atksilicon = 0
attacktext = "bites"
Die()
..()
del(src)
/obj/effect/critter/spore
name = "plasma spore"
desc = "A barely intelligent colony of organisms. Very volatile."
icon_state = "spore"
density = 1
health = 1
max_health = 1
aggressive = 0
defensive = 0
wanderer = 1
atkcarbon = 0
atksilicon = 0
firevuln = 2
brutevuln = 2
/* process()
if(prob(50))
TakeDamage(1)
..()*/
Die()
src.visible_message("<b>[src]</b> ruptures and explodes!")
src.alive = 0
var/turf/T = get_turf(src.loc)
if(T)
T.hotspot_expose(700,125)
explosion(T, -1, -1, 2, 3)
del src
ex_act(severity)
src.Die()
/obj/effect/critter/blob
name = "blob"
desc = "Some blob thing."
icon_state = "blob"
pass_flags = PASSBLOB
health = 20
max_health = 20
aggressive = 1
defensive = 0
wanderer = 1
atkcarbon = 1
atksilicon = 1
firevuln = 2
brutevuln = 0.5
melee_damage_lower = 2
melee_damage_upper = 8
angertext = "charges"
attacktext = "hits"
attack_sound = 'sound/weapons/genhit1.ogg'
var/obj/effect/blob/factory/factory = null
New(loc, var/obj/effect/blob/factory/linked_node)
if(istype(linked_node))
factory = linked_node
factory.spores += src
..(loc)
return
Die()
if(factory)
factory.spores -= src
..()
del(src)
/obj/effect/critter/lizard
name = "Lizard"
desc = "A cute tiny lizard."
icon_state = "lizard"
health = 5
max_health = 5
aggressive = 0
defensive = 1
wanderer = 1
opensdoors = 0
atkcarbon = 1
atksilicon = 1
attacktext = "bites"

View File

@@ -8,6 +8,7 @@
see_invisible = SEE_INVISIBLE_LEVEL_TWO see_invisible = SEE_INVISIBLE_LEVEL_TWO
var/ghost_name = "Unknown" var/ghost_name = "Unknown"
var/creating_blob = 0 var/creating_blob = 0
faction = "blob"
New() New()
@@ -251,3 +252,7 @@
B << "Check your Blob verbs and hit Create Node to build a node." B << "Check your Blob verbs and hit Create Node to build a node."
spawn(10) spawn(10)
del(G_found) del(G_found)

View File

@@ -438,10 +438,6 @@ Radar-related things
if(M.stat == 2) continue if(M.stat == 2) continue
found_targets.Add(M) found_targets.Add(M)
for(var/obj/effect/critter/C in orange(max_dist, distance_ref))
if(!C.alive) continue
found_targets.Add(C)
for(var/obj/mecha/M in orange(max_dist, distance_ref)) for(var/obj/mecha/M in orange(max_dist, distance_ref))
if(!M.occupant) continue if(!M.occupant) continue
found_targets.Add(M) found_targets.Add(M)
@@ -495,10 +491,6 @@ Radar-related things
blip.icon_state = "unknownblip" blip.icon_state = "unknownblip"
blip.name = "Unknown Organism" blip.name = "Unknown Organism"
else if(istype(A, /obj/effect/critter))
blip.icon_state = "unknownblip"
blip.name = "Unknown Organism"
else if(istype(A, /obj/mecha)) else if(istype(A, /obj/mecha))
blip.icon_state = "roboblip" blip.icon_state = "roboblip"
blip.name = "Robotic Organism" blip.name = "Robotic Organism"

View File

@@ -0,0 +1,17 @@
/mob/living/simple_animal/lizard
name = "Lizard"
desc = "A cute tiny lizard."
icon = 'icons/mob/critter.dmi'
icon_state = "lizard"
icon_living = "lizard"
icon_dead = "lizard-dead"
speak_emote = list("hisses")
health = 5
maxHealth = 5
attacktext = "bites"
attacktext = "bites"
melee_damage_lower = 1
melee_damage_upper = 2
response_help = "pets"
response_disarm = "shoos"
response_harm = "stomps on"

View File

@@ -13,5 +13,3 @@
response_disarm = "pushes aside the" response_disarm = "pushes aside the"
response_harm = "smacks the" response_harm = "smacks the"
harm_intent_damage = 5 harm_intent_damage = 5
/mob/living/simple_animal/tomato

View File

@@ -0,0 +1,15 @@
/mob/living/simple_animal/hostile/creature
name = "creature"
desc = "A sanity-destroying otherthing."
icon = 'icons/mob/critter.dmi'
speak_emote = list("gibbers")
icon_state = "otherthing"
icon_living = "otherthing"
icon_dead = "otherthing-dead"
health = 80
maxHealth = 80
melee_damage_lower = 25
melee_damage_upper = 50
attacktext = "chomps"
attack_sound = 'sound/weapons/bite.ogg'
faction = "creature"

View File

@@ -136,8 +136,9 @@
/mob/living/simple_animal/hostile/viscerator /mob/living/simple_animal/hostile/viscerator
name = "viscerator" name = "viscerator"
desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations." desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations."
icon_state = "viscerator" icon = 'icons/mob/critter.dmi'
icon_living = "viscerator" icon_state = "viscerator_attack"
icon_living = "viscerator_attack"
pass_flags = PASSTABLE pass_flags = PASSTABLE
health = 15 health = 15
maxHealth = 15 maxHealth = 15

View File

@@ -789,7 +789,7 @@ datum
required_other = 4 required_other = 4
on_reaction(var/datum/reagents/holder, var/created_volume) on_reaction(var/datum/reagents/holder, var/created_volume)
var/list/critters = typesof(/obj/effect/critter) - /obj/effect/critter // list of possible critters var/list/critters = typesof(/mob/living/simple_animal/hostile) - /mob/living/simple_animal/hostile // list of possible hostile mobs
playsound(get_turf_loc(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) playsound(get_turf_loc(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
@@ -799,7 +799,7 @@ datum
for(var/i = 1, i <= created_volume, i++) for(var/i = 1, i <= created_volume, i++)
var/chosen = pick(critters) var/chosen = pick(critters)
var/obj/effect/critter/C = new chosen var/mob/living/simple_animal/hostile/C = new chosen
C.loc = get_turf_loc(holder.my_atom) C.loc = get_turf_loc(holder.my_atom)
if(prob(50)) if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++) for(var/j = 1, j <= rand(1, 3), j++)

View File

@@ -94,7 +94,7 @@
"bP" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/awaymission/research) "bP" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/awaymission/research)
"bQ" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research) "bQ" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"bR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/eastleft,/obj/machinery/door/window/westright,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research) "bR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/eastleft,/obj/machinery/door/window/westright,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"bS" = (/obj/effect/critter/lizard,/turf/simulated/floor/grass,/area/awaymission/research) "bS" = (/mob/living/simple_animal/lizard,/turf/simulated/floor/grass,/area/awaymission/research)
"bT" = (/turf/simulated/floor/grass,/area/awaymission/research) "bT" = (/turf/simulated/floor/grass,/area/awaymission/research)
"bU" = (/mob/living/carbon/monkey,/turf/simulated/floor/grass,/area/awaymission/research) "bU" = (/mob/living/carbon/monkey,/turf/simulated/floor/grass,/area/awaymission/research)
"bV" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/syndishuttle) "bV" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/awaymission/syndishuttle)
@@ -106,7 +106,7 @@
"cb" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/awaymission/research) "cb" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/awaymission/research)
"cc" = (/mob/living/carbon/alien/humanoid/sentinel{fireloss = 200; stat = 2},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research) "cc" = (/mob/living/carbon/alien/humanoid/sentinel{fireloss = 200; stat = 2},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"cd" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/research) "cd" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/awaymission/research)
"ce" = (/obj/effect/critter/creature{name = "Experiment 35b"},/turf/simulated/floor,/area/awaymission/research) "ce" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/simulated/floor,/area/awaymission/research)
"cf" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research) "cf" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"cg" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grass,/area/awaymission/research) "cg" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grass,/area/awaymission/research)
"ch" = (/obj/machinery/emitter{anchored = 1; state = 2},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research) "ch" = (/obj/machinery/emitter{anchored = 1; state = 2},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)

View File

@@ -134,16 +134,16 @@
"cD" = (/obj/structure/table/woodentable,/obj/item/clothing/gloves/yellow,/obj/item/device/multitool,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cD" = (/obj/structure/table/woodentable,/obj/item/clothing/gloves/yellow,/obj/item/device/multitool,/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cE" = (/obj/structure/stool/bed/chair/wood/normal{dir = 4},/turf/simulated/floor/wood,/area/awaymission/wwgov) "cE" = (/obj/structure/stool/bed/chair/wood/normal{dir = 4},/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cF" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cF" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cG" = (/obj/effect/critter/creature,/turf/simulated/floor{tag = "icon-stage_bleft"; icon_state = "stage_bleft"},/area/awaymission/wwgov) "cG" = (/mob/living/simple_animal/hostile/creature,/turf/simulated/floor{tag = "icon-stage_bleft"; icon_state = "stage_bleft"},/area/awaymission/wwgov)
"cH" = (/obj/effect/landmark/corpse/chef{mobname = "Chef"},/turf/simulated/floor{tag = "icon-stage_bleft"; icon_state = "stage_bleft"},/area/awaymission/wwgov) "cH" = (/obj/effect/landmark/corpse/chef{mobname = "Chef"},/turf/simulated/floor{tag = "icon-stage_bleft"; icon_state = "stage_bleft"},/area/awaymission/wwgov)
"cI" = (/obj/structure/bookcase{tag = "icon-book-5"; icon_state = "book-5"},/turf/simulated/floor/wood,/area/awaymission/wwmines) "cI" = (/obj/structure/bookcase{tag = "icon-book-5"; icon_state = "book-5"},/turf/simulated/floor/wood,/area/awaymission/wwmines)
"cJ" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor/wood,/area/awaymission/wwmines) "cJ" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"cK" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/turf/simulated/floor/wood,/area/awaymission/wwmines) "cK" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"cL" = (/obj/structure/table/woodentable,/obj/item/weapon/twohanded/dualsaber,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cL" = (/obj/structure/table/woodentable,/obj/item/weapon/twohanded/dualsaber,/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cM" = (/obj/effect/landmark/corpse/miner/rig,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cM" = (/obj/effect/landmark/corpse/miner/rig,/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cN" = (/obj/effect/critter/creature,/turf/simulated/floor/wood,/area/awaymission/wwgov) "cN" = (/mob/living/simple_animal/hostile/creature,/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cO" = (/obj/structure/mineral_door/wood{tag = "icon-woodopening"; icon_state = "woodopening"},/turf/simulated/floor/wood,/area/awaymission/wwgov) "cO" = (/obj/structure/mineral_door/wood{tag = "icon-woodopening"; icon_state = "woodopening"},/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cP" = (/obj/effect/critter/creature,/turf/simulated/floor/carpet,/area/awaymission/wwgov) "cP" = (/mob/living/simple_animal/hostile/creature,/turf/simulated/floor/carpet,/area/awaymission/wwgov)
"cQ" = (/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/window/reinforced{tag = "icon-fwindow (EAST)"; icon_state = "fwindow"; dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwgov) "cQ" = (/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/window/reinforced{tag = "icon-fwindow (EAST)"; icon_state = "fwindow"; dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwgov)
"cR" = (/obj/structure/stool/bed/chair/wood/wings{dir = 4},/turf/simulated/floor/wood,/area/awaymission/wwgov) "cR" = (/obj/structure/stool/bed/chair/wood/wings{dir = 4},/turf/simulated/floor/wood,/area/awaymission/wwgov)
"cS" = (/obj/structure/window/reinforced{tag = "icon-fwindow (EAST)"; icon_state = "fwindow"; dir = 4},/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwgov) "cS" = (/obj/structure/window/reinforced{tag = "icon-fwindow (EAST)"; icon_state = "fwindow"; dir = 4},/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwgov)
@@ -181,7 +181,7 @@
"dy" = (/obj/effect/landmark/corpse/miner/rig,/turf/simulated/floor/wood,/area/awaymission/wwmines) "dy" = (/obj/effect/landmark/corpse/miner/rig,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"dz" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand12"; icon_state = "ironsand12"},/area/awaymission/wwgov) "dz" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand12"; icon_state = "ironsand12"},/area/awaymission/wwgov)
"dA" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand14"; icon_state = "ironsand14"},/area/awaymission/wwgov) "dA" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand14"; icon_state = "ironsand14"},/area/awaymission/wwgov)
"dB" = (/obj/structure/toilet,/obj/effect/critter/creature,/turf/simulated/floor{tag = "icon-white"; icon_state = "white"},/area/awaymission/wwgov) "dB" = (/obj/structure/toilet,/mob/living/simple_animal/hostile/creature,/turf/simulated/floor{tag = "icon-white"; icon_state = "white"},/area/awaymission/wwgov)
"dC" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand9"; icon_state = "ironsand9"},/area/awaymission/wwgov) "dC" = (/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand9"; icon_state = "ironsand9"},/area/awaymission/wwgov)
"dD" = (/obj/structure/mineral_door/wood{tag = "icon-woodopening"; icon_state = "woodopening"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwgov) "dD" = (/obj/structure/mineral_door/wood{tag = "icon-woodopening"; icon_state = "woodopening"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwgov)
"dE" = (/obj/structure/largecrate,/turf/simulated/floor/wood,/area/awaymission/wwmines) "dE" = (/obj/structure/largecrate,/turf/simulated/floor/wood,/area/awaymission/wwmines)
@@ -323,7 +323,7 @@
"gk" = (/mob/living/simple_animal/hostile/syndicate,/turf/simulated/floor/wood,/area/awaymission/wwmines) "gk" = (/mob/living/simple_animal/hostile/syndicate,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"gl" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/awaymission/wwmines) "gl" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"gm" = (/obj/item/weapon/gun/projectile,/turf/simulated/floor/wood,/area/awaymission/wwmines) "gm" = (/obj/item/weapon/gun/projectile,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"gn" = (/obj/effect/critter/creature,/turf/simulated/floor/grass,/area/awaymission/wwgov) "gn" = (/mob/living/simple_animal/hostile/creature,/turf/simulated/floor/grass,/area/awaymission/wwgov)
"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/grass,/area/awaymission/wwgov) "go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/grass,/area/awaymission/wwgov)
"gp" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/mineral,/area/awaymission/wwmines) "gp" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/mineral,/area/awaymission/wwmines)
"gq" = (/obj/effect/decal/cleanable/blood/gibs/up,/turf/simulated/floor/wood,/area/awaymission/wwmines) "gq" = (/obj/effect/decal/cleanable/blood/gibs/up,/turf/simulated/floor/wood,/area/awaymission/wwmines)

View File

@@ -7165,9 +7165,9 @@
"cHO" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHO" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cHP" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "cHP" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"cHQ" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) "cHQ" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"cHR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHR" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/wizard_station)
"cHS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHS" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/wizard_station)
"cHT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHT" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHEAST)"; icon_state = "fakewindows"; dir = 5},/area/wizard_station)
"cHU" = (/obj/item/trash/raisins,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHU" = (/obj/item/trash/raisins,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cHV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cHW" = (/obj/effect/showcase,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) "cHW" = (/obj/effect/showcase,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
@@ -7176,16 +7176,16 @@
"cHZ" = (/obj/effect/showcase,/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station) "cHZ" = (/obj/effect/showcase,/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
"cIa" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "cIa" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
"cIb" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "cIb" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
"cIc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cIc" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (NORTH)"; icon_state = "fakewindows2"; dir = 1},/area/wizard_station)
"cId" = (/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cId" = (/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
"cIe" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station) "cIe" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
"cIf" = (/mob/living/carbon/monkey,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cIf" = (/mob/living/carbon/monkey,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
"cIg" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station) "cIg" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
"cIh" = (/obj/effect/critter/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "cIh" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
"cIi" = (/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station) "cIi" = (/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
"cIj" = (/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station) "cIj" = (/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
"cIk" = (/obj/effect/decal/cleanable/molten_item,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station) "cIk" = (/obj/effect/decal/cleanable/molten_item,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
"cIl" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cIl" = (/turf/unsimulated/wall/fakeglass,/area/wizard_station)
"cIm" = (/obj/item/trash/chips,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cIm" = (/obj/item/trash/chips,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cIn" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cIn" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
"cIo" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station) "cIo" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)

View File

@@ -112,7 +112,6 @@
#define FILE_DIR "code/modules/clothing/suits" #define FILE_DIR "code/modules/clothing/suits"
#define FILE_DIR "code/modules/clothing/under" #define FILE_DIR "code/modules/clothing/under"
#define FILE_DIR "code/modules/clothing/under/jobs" #define FILE_DIR "code/modules/clothing/under/jobs"
#define FILE_DIR "code/modules/critters"
#define FILE_DIR "code/modules/detectivework" #define FILE_DIR "code/modules/detectivework"
#define FILE_DIR "code/modules/flufftext" #define FILE_DIR "code/modules/flufftext"
#define FILE_DIR "code/modules/food" #define FILE_DIR "code/modules/food"
@@ -211,7 +210,9 @@
#define FILE_DIR "icons/vending_icons" #define FILE_DIR "icons/vending_icons"
#define FILE_DIR "interface" #define FILE_DIR "interface"
#define FILE_DIR "maps" #define FILE_DIR "maps"
#define FILE_DIR "maps/backup"
#define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "maps/RandomZLevels"
#define FILE_DIR "maps/RandomZLevels/backup"
#define FILE_DIR "music" #define FILE_DIR "music"
#define FILE_DIR "music/interface" #define FILE_DIR "music/interface"
#define FILE_DIR "sound" #define FILE_DIR "sound"
@@ -938,10 +939,6 @@
#include "code\modules\clothing\under\jobs\engineering.dm" #include "code\modules\clothing\under\jobs\engineering.dm"
#include "code\modules\clothing\under\jobs\medsci.dm" #include "code\modules\clothing\under\jobs\medsci.dm"
#include "code\modules\clothing\under\jobs\security.dm" #include "code\modules\clothing\under\jobs\security.dm"
#include "code\modules\critters\critter.dm"
#include "code\modules\critters\critter_AI.dm"
#include "code\modules\critters\critter_defenses.dm"
#include "code\modules\critters\critters.dm"
#include "code\modules\detectivework\detective_work.dm" #include "code\modules\detectivework\detective_work.dm"
#include "code\modules\detectivework\evidence.dm" #include "code\modules\detectivework\evidence.dm"
#include "code\modules\detectivework\footprints_and_rag.dm" #include "code\modules\detectivework\footprints_and_rag.dm"
@@ -1123,12 +1120,14 @@
#include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm"
#include "code\modules\mob\living\simple_animal\friendly\corgi.dm" #include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
#include "code\modules\mob\living\simple_animal\friendly\crab.dm" #include "code\modules\mob\living\simple_animal\friendly\crab.dm"
#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
#include "code\modules\mob\living\simple_animal\friendly\mouse.dm" #include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
#include "code\modules\mob\living\simple_animal\friendly\mushroom.dm" #include "code\modules\mob\living\simple_animal\friendly\mushroom.dm"
#include "code\modules\mob\living\simple_animal\friendly\tomato.dm" #include "code\modules\mob\living\simple_animal\friendly\tomato.dm"
#include "code\modules\mob\living\simple_animal\hostile\alien.dm" #include "code\modules\mob\living\simple_animal\hostile\alien.dm"
#include "code\modules\mob\living\simple_animal\hostile\bear.dm" #include "code\modules\mob\living\simple_animal\hostile\bear.dm"
#include "code\modules\mob\living\simple_animal\hostile\carp.dm" #include "code\modules\mob\living\simple_animal\hostile\carp.dm"
#include "code\modules\mob\living\simple_animal\hostile\creature.dm"
#include "code\modules\mob\living\simple_animal\hostile\faithless.dm" #include "code\modules\mob\living\simple_animal\hostile\faithless.dm"
#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"
#include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm"