mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
- Removed the 'alive' variable from simple animals. It was redundant, since stat already tells that.
- Standardized critter proc declarations - Added an AdjustBruteLocc() proc to simple animals - Fixed the bug where simple animals would move when bumped, even when buckled - Added space bears. They have some decently complex AI which revolves around stances, which include idle, alert, attack, attacking and tired. They are quite a fun little thing. Sprites were in code forever. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4153 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -140,7 +140,7 @@
|
|||||||
if("SHADE")
|
if("SHADE")
|
||||||
var/mob/living/simple_animal/shade/T = target
|
var/mob/living/simple_animal/shade/T = target
|
||||||
var/obj/item/device/soulstone/C = src
|
var/obj/item/device/soulstone/C = src
|
||||||
if (T.alive == 0)
|
if (T.stat == DEAD)
|
||||||
U << "\red <b>Capture failed!</b>: \black The shade has already been banished!"
|
U << "\red <b>Capture failed!</b>: \black The shade has already been banished!"
|
||||||
else
|
else
|
||||||
if(C.contents.len)
|
if(C.contents.len)
|
||||||
|
|||||||
@@ -80,16 +80,8 @@
|
|||||||
var/attack_speed = 25 // delay of attack
|
var/attack_speed = 25 // delay of attack
|
||||||
|
|
||||||
|
|
||||||
proc
|
proc/AfterAttack(var/mob/living/target)
|
||||||
patrol_step()
|
return
|
||||||
seek_target()
|
|
||||||
Die()
|
|
||||||
ChaseAttack()
|
|
||||||
RunAttack()
|
|
||||||
TakeDamage(var/damage = 0)
|
|
||||||
Target_Attacker(var/target)
|
|
||||||
Harvest(var/obj/item/weapon/W, var/mob/living/user)//Controls havesting things from dead critters
|
|
||||||
AfterAttack(var/mob/living/target)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
patrol_step()
|
proc/patrol_step()
|
||||||
var/moveto = locate(src.x + rand(-1,1),src.y + rand(-1, 1),src.z)
|
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 (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()
|
if(src.aggressive) seek_target()
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
M:loc = T
|
M:loc = T
|
||||||
|
|
||||||
|
|
||||||
seek_target()
|
proc/seek_target()
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
var/T = null
|
var/T = null
|
||||||
for(var/mob/living/C in view(src.seekrange,src))//TODO: mess with this
|
for(var/mob/living/C in view(src.seekrange,src))//TODO: mess with this
|
||||||
@@ -179,13 +179,13 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
ChaseAttack()
|
proc/ChaseAttack()
|
||||||
for(var/mob/O in viewers(src, null))
|
for(var/mob/O in viewers(src, null))
|
||||||
O.show_message("\red <B>[src]</B> [src.angertext] at [src.target]!", 1)
|
O.show_message("\red <B>[src]</B> [src.angertext] at [src.target]!", 1)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
RunAttack()
|
proc/RunAttack()
|
||||||
src.attacking = 1
|
src.attacking = 1
|
||||||
if(ismob(src.target))
|
if(ismob(src.target))
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ Contains the procs that control attacking critters
|
|||||||
O.show_message("\blue [user] touches [src]!", 1)
|
O.show_message("\blue [user] touches [src]!", 1)
|
||||||
|
|
||||||
|
|
||||||
Target_Attacker(var/target)
|
proc/Target_Attacker(var/target)
|
||||||
if(!target) return
|
if(!target) return
|
||||||
src.target = target
|
src.target = target
|
||||||
src.oldtarget_name = target:name
|
src.oldtarget_name = target:name
|
||||||
@@ -54,7 +54,7 @@ Contains the procs that control attacking critters
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
TakeDamage(var/damage = 0)
|
proc/TakeDamage(var/damage = 0)
|
||||||
var/tempdamage = (damage-armor)
|
var/tempdamage = (damage-armor)
|
||||||
if(tempdamage > 0)
|
if(tempdamage > 0)
|
||||||
src.health -= tempdamage
|
src.health -= tempdamage
|
||||||
@@ -64,7 +64,7 @@ Contains the procs that control attacking critters
|
|||||||
src.Die()
|
src.Die()
|
||||||
|
|
||||||
|
|
||||||
Die()
|
proc/Die()
|
||||||
if (!src.alive) return
|
if (!src.alive) return
|
||||||
src.icon_state += "-dead"
|
src.icon_state += "-dead"
|
||||||
src.alive = 0
|
src.alive = 0
|
||||||
@@ -74,7 +74,7 @@ Contains the procs that control attacking critters
|
|||||||
src.visible_message("<b>[src]</b> [deathtext]")
|
src.visible_message("<b>[src]</b> [deathtext]")
|
||||||
|
|
||||||
|
|
||||||
Harvest(var/obj/item/weapon/W, var/mob/living/user)
|
proc/Harvest(var/obj/item/weapon/W, var/mob/living/user)
|
||||||
if((!W) || (!user)) return 0
|
if((!W) || (!user)) return 0
|
||||||
if(src.alive) return 0
|
if(src.alive) return 0
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
163
code/modules/mob/living/simple_animal/bear.dm
Normal file
163
code/modules/mob/living/simple_animal/bear.dm
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
#define BEAR_STANCE_IDLE 1
|
||||||
|
#define BEAR_STANCE_ALERT 2
|
||||||
|
#define BEAR_STANCE_ATTACK 3
|
||||||
|
#define BEAR_STANCE_ATTACKING 4
|
||||||
|
#define BEAR_STANCE_TIRED 4
|
||||||
|
|
||||||
|
//Space bears!
|
||||||
|
/mob/living/simple_animal/bear
|
||||||
|
name = "space bear"
|
||||||
|
desc = "RawrRawr!!"
|
||||||
|
icon = 'icons/mob/mob.dmi'
|
||||||
|
icon_state = "bearspace"
|
||||||
|
icon_living = "bearspace"
|
||||||
|
icon_dead = "bear_d"
|
||||||
|
speak = list("RAWR!","Rawr!","GRR!","Growl!")
|
||||||
|
speak_emote = list("growls", "roars")
|
||||||
|
emote_hear = list("rawrs","grumbles","grawls")
|
||||||
|
emote_see = list("stares ferociously", "stomps")
|
||||||
|
speak_chance = 1
|
||||||
|
turns_per_move = 5
|
||||||
|
see_in_dark = 6
|
||||||
|
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||||
|
response_help = "pets the"
|
||||||
|
response_disarm = "gently pushes aside the"
|
||||||
|
response_harm = "pokes the"
|
||||||
|
|
||||||
|
health = 60
|
||||||
|
|
||||||
|
//Space bears aren't affected by atmos.
|
||||||
|
min_oxy = 0
|
||||||
|
max_oxy = 0
|
||||||
|
min_tox = 0
|
||||||
|
max_tox = 0
|
||||||
|
min_co2 = 0
|
||||||
|
max_co2 = 0
|
||||||
|
min_n2 = 0
|
||||||
|
max_n2 = 0
|
||||||
|
|
||||||
|
var/stance = BEAR_STANCE_IDLE //Used to determine behavior
|
||||||
|
var/stance_step = 0 //Used to delay checks depending on what stance the bear is in
|
||||||
|
var/mob/living/target_mob //Once the bear enters attack stance, it will try to chase this mob. This it to prevent it changing it's mind between multiple mobs.
|
||||||
|
|
||||||
|
//SPACE BEARS! SQUEEEEEEEE~ OW! FUCK! IT BIT MY HAND OFF!!
|
||||||
|
/mob/living/simple_animal/bear/Hudson
|
||||||
|
name = "Hudson"
|
||||||
|
desc = ""
|
||||||
|
response_help = "pets"
|
||||||
|
response_disarm = "gently pushes aside"
|
||||||
|
response_harm = "pokes"
|
||||||
|
|
||||||
|
/mob/living/simple_animal/bear/Life()
|
||||||
|
..()
|
||||||
|
|
||||||
|
if(!stat)
|
||||||
|
if( loc && istype(loc,/turf/space) )
|
||||||
|
icon_state = "bearspace"
|
||||||
|
else
|
||||||
|
icon_state = "bearfloor"
|
||||||
|
|
||||||
|
switch(stance)
|
||||||
|
if(BEAR_STANCE_IDLE)
|
||||||
|
stop_automated_movement = 0
|
||||||
|
stance_step++
|
||||||
|
if(stance_step > 5)
|
||||||
|
stance_step = 0
|
||||||
|
for( var/mob/living/L in viewers(7,src) )
|
||||||
|
if(isbear(L)) continue
|
||||||
|
if(!L.stat)
|
||||||
|
emote("stares alertly at [L]")
|
||||||
|
stance = BEAR_STANCE_ALERT
|
||||||
|
break
|
||||||
|
if(BEAR_STANCE_ALERT)
|
||||||
|
stop_automated_movement = 1
|
||||||
|
var/found_mob = 0
|
||||||
|
for( var/mob/living/L in viewers(7,src) )
|
||||||
|
if(isbear(L)) continue
|
||||||
|
if(!L.stat)
|
||||||
|
stance_step = max(0, stance_step) //If we have not seen a mob in a while, the stance_step will be negative, we need to reset it to 0 as soon as we see a mob again.
|
||||||
|
stance_step++
|
||||||
|
found_mob = 1
|
||||||
|
target_mob = L
|
||||||
|
src.dir = get_dir(src,target_mob) //Keep staring at the mob
|
||||||
|
|
||||||
|
if(stance_step in list(1,4,7)) //every 3 ticks
|
||||||
|
var/action = pick( list( "growls at [L]", "stares angrily at [L]", "prepares to attack [L]", "closely watches [L]" ) )
|
||||||
|
if(action)
|
||||||
|
emote(action)
|
||||||
|
break
|
||||||
|
if(!found_mob)
|
||||||
|
stance_step--
|
||||||
|
|
||||||
|
if(stance_step <= -20) //If we have not found a mob for 20-ish ticks, revert to idle mode
|
||||||
|
stance = BEAR_STANCE_IDLE
|
||||||
|
if(stance_step >= 7) //If we have been staring at a mob for 7 ticks,
|
||||||
|
stance = BEAR_STANCE_ATTACK
|
||||||
|
if(BEAR_STANCE_ATTACK) //This one should only be active for one tick,
|
||||||
|
stop_automated_movement = 1
|
||||||
|
if(!target_mob || target_mob.stat)
|
||||||
|
stance = BEAR_STANCE_ALERT
|
||||||
|
stance_step = 5 //Make it very alert, so it quickly attacks again if a mob returns
|
||||||
|
if(target_mob in viewers(7,src))
|
||||||
|
walk_to(src, target_mob, 1, 3)
|
||||||
|
stance = BEAR_STANCE_ATTACKING
|
||||||
|
stance_step = 0
|
||||||
|
if(BEAR_STANCE_ATTACKING)
|
||||||
|
|
||||||
|
stop_automated_movement = 1
|
||||||
|
stance_step++
|
||||||
|
if(!target_mob || target_mob.stat)
|
||||||
|
stance = BEAR_STANCE_ALERT
|
||||||
|
stance_step = 5 //Make it very alert, so it quickly attacks again if a mob returns
|
||||||
|
return
|
||||||
|
if( !(target_mob in viewers(7,src)) )
|
||||||
|
stance = BEAR_STANCE_ALERT
|
||||||
|
stance_step = 5 //Make it very alert, so it quickly attacks again if a mob returns
|
||||||
|
target_mob = null
|
||||||
|
return
|
||||||
|
if( get_dist(src, target_mob) <= 1 ) //Attacking
|
||||||
|
emote( pick( list("slashes at [target_mob]", "bites [target_mob]") ) )
|
||||||
|
|
||||||
|
var/damage = rand(20,30)
|
||||||
|
|
||||||
|
if(ishuman(target_mob))
|
||||||
|
var/mob/living/carbon/human/H = target_mob
|
||||||
|
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_mob))
|
||||||
|
var/mob/living/L = target_mob
|
||||||
|
L.adjustBruteLoss(damage)
|
||||||
|
|
||||||
|
if( stance_step >= 20 ) //attacks for 20 ticks, then it gets tired and needs to rest
|
||||||
|
emote( "is worn out and needs to rest" )
|
||||||
|
stance = BEAR_STANCE_TIRED
|
||||||
|
stance_step = 0
|
||||||
|
walk(src, 0) //This stops the bear's walking
|
||||||
|
return
|
||||||
|
if(BEAR_STANCE_TIRED)
|
||||||
|
stop_automated_movement = 1
|
||||||
|
stance_step++
|
||||||
|
if(stance_step >= 10) //rests for 10 ticks
|
||||||
|
if(target_mob && target_mob in viewers(7,src))
|
||||||
|
stance = BEAR_STANCE_ATTACK //If the mob he was chasing is still nearby, resume the attack, otherwise go idle.
|
||||||
|
else
|
||||||
|
stance = BEAR_STANCE_IDLE
|
||||||
|
|
||||||
|
|
||||||
|
/mob/living/simple_animal/bear/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||||
|
if(stance != BEAR_STANCE_ATTACK && stance != BEAR_STANCE_ATTACKING)
|
||||||
|
stance = BEAR_STANCE_ALERT
|
||||||
|
stance_step = 6
|
||||||
|
target_mob = user
|
||||||
|
..()
|
||||||
|
|
||||||
|
/mob/living/simple_animal/bear/attack_hand(mob/living/carbon/human/M as mob)
|
||||||
|
if(stance != BEAR_STANCE_ATTACK && stance != BEAR_STANCE_ATTACKING)
|
||||||
|
stance = BEAR_STANCE_ALERT
|
||||||
|
stance_step = 6
|
||||||
|
target_mob = M
|
||||||
|
..()
|
||||||
|
|
||||||
|
/mob/living/simple_animal/bear/Process_Spacemove(var/check_drift = 0)
|
||||||
|
return //No drifting in space for space bears!
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
//Feeding, chasing food, FOOOOODDDD
|
//Feeding, chasing food, FOOOOODDDD
|
||||||
if(alive && !resting && !buckled)
|
if(!stat && !resting && !buckled)
|
||||||
turns_since_scan++
|
turns_since_scan++
|
||||||
if(turns_since_scan > 5)
|
if(turns_since_scan > 5)
|
||||||
turns_since_scan = 0
|
turns_since_scan = 0
|
||||||
@@ -364,7 +364,7 @@
|
|||||||
|
|
||||||
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
|
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
|
||||||
if(istype(O, /obj/item/weapon/newspaper))
|
if(istype(O, /obj/item/weapon/newspaper))
|
||||||
if(alive)
|
if(!stat)
|
||||||
for(var/mob/M in viewers(user, null))
|
for(var/mob/M in viewers(user, null))
|
||||||
if ((M.client && !( M.blinded )))
|
if ((M.client && !( M.blinded )))
|
||||||
M.show_message("\blue [user] baps [name] on the nose with the rolled up [O]")
|
M.show_message("\blue [user] baps [name] on the nose with the rolled up [O]")
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
/mob/living/simple_animal/crab/Life()
|
/mob/living/simple_animal/crab/Life()
|
||||||
..()
|
..()
|
||||||
//CRAB movement
|
//CRAB movement
|
||||||
if(!ckey && alive)
|
if(!ckey && !stat)
|
||||||
if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc.
|
if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc.
|
||||||
turns_since_move++
|
turns_since_move++
|
||||||
if(turns_since_move >= turns_per_move)
|
if(turns_since_move >= turns_per_move)
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
health -= 20
|
health -= 20
|
||||||
Die()
|
Die()
|
||||||
if(istype(O, /obj/item/stack/medical))
|
if(istype(O, /obj/item/stack/medical))
|
||||||
if(alive)
|
if(stat != DEAD)
|
||||||
var/obj/item/stack/medical/MED = O
|
var/obj/item/stack/medical/MED = O
|
||||||
if(health < maxHealth)
|
if(health < maxHealth)
|
||||||
if(MED.amount >= 1)
|
if(MED.amount >= 1)
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
var/icon_living = ""
|
var/icon_living = ""
|
||||||
var/icon_dead = ""
|
var/icon_dead = ""
|
||||||
maxHealth = 20
|
maxHealth = 20
|
||||||
var/alive = 1
|
|
||||||
var/list/speak = list()
|
var/list/speak = list()
|
||||||
var/list/speak_emote = list()// Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable.
|
var/list/speak_emote = list()// Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable.
|
||||||
var/speak_chance = 0
|
var/speak_chance = 0
|
||||||
@@ -64,10 +63,9 @@
|
|||||||
/mob/living/simple_animal/Life()
|
/mob/living/simple_animal/Life()
|
||||||
|
|
||||||
//Health
|
//Health
|
||||||
if(!alive)
|
if(stat == DEAD)
|
||||||
if(health > 0)
|
if(health > 0)
|
||||||
icon_state = icon_living
|
icon_state = icon_living
|
||||||
alive = 1
|
|
||||||
stat = CONSCIOUS
|
stat = CONSCIOUS
|
||||||
density = 1
|
density = 1
|
||||||
return
|
return
|
||||||
@@ -217,7 +215,11 @@
|
|||||||
|
|
||||||
/mob/living/simple_animal/Bumped(AM as mob|obj)
|
/mob/living/simple_animal/Bumped(AM as mob|obj)
|
||||||
if(!AM) return
|
if(!AM) return
|
||||||
if(isturf(src.loc) && !resting && !buckled)
|
|
||||||
|
if(resting || buckled)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(isturf(src.loc))
|
||||||
if(ismob(AM))
|
if(ismob(AM))
|
||||||
var/newamloc = src.loc
|
var/newamloc = src.loc
|
||||||
src.loc = AM:loc
|
src.loc = AM:loc
|
||||||
@@ -304,7 +306,7 @@
|
|||||||
|
|
||||||
/mob/living/simple_animal/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
|
/mob/living/simple_animal/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
|
||||||
if(istype(O, /obj/item/stack/medical))
|
if(istype(O, /obj/item/stack/medical))
|
||||||
if(alive)
|
if(stat != DEAD)
|
||||||
var/obj/item/stack/medical/MED = O
|
var/obj/item/stack/medical/MED = O
|
||||||
if(health < maxHealth)
|
if(health < maxHealth)
|
||||||
if(MED.amount >= 1)
|
if(MED.amount >= 1)
|
||||||
@@ -344,7 +346,6 @@
|
|||||||
stat(null, "Health: [round((health / maxHealth) * 100)]%")
|
stat(null, "Health: [round((health / maxHealth) * 100)]%")
|
||||||
|
|
||||||
/mob/living/simple_animal/proc/Die()
|
/mob/living/simple_animal/proc/Die()
|
||||||
alive = 0
|
|
||||||
icon_state = icon_dead
|
icon_state = icon_dead
|
||||||
stat = DEAD
|
stat = DEAD
|
||||||
density = 0
|
density = 0
|
||||||
@@ -363,4 +364,7 @@
|
|||||||
|
|
||||||
|
|
||||||
if(3.0)
|
if(3.0)
|
||||||
health -= 30
|
health -= 30
|
||||||
|
|
||||||
|
/mob/living/simple_animal/adjustBruteLoss(damage)
|
||||||
|
health -= damage
|
||||||
@@ -56,19 +56,14 @@
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
/proc/iscat(A)
|
/proc/iscat(A)
|
||||||
if(istype(A, /mob/living/simple_animal/cat/))
|
if(istype(A, /mob/living/simple_animal/cat))
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/*proc/ishivebot(A)
|
/proc/isbear(A)
|
||||||
if(A && istype(A, /mob/living/silicon/hivebot))
|
if(istype(A, /mob/living/simple_animal/bear))
|
||||||
return 1
|
return 1
|
||||||
return 0*/
|
return 0
|
||||||
|
|
||||||
/*proc/ishivemainframe(A)
|
|
||||||
if(A && istype(A, /mob/living/silicon/hive_mainframe))
|
|
||||||
return 1
|
|
||||||
return 0*/
|
|
||||||
|
|
||||||
/proc/isAI(A)
|
/proc/isAI(A)
|
||||||
if(istype(A, /mob/living/silicon/ai))
|
if(istype(A, /mob/living/silicon/ai))
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 25 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 202 KiB |
199
tgstation.dme
199
tgstation.dme
@@ -5,6 +5,204 @@
|
|||||||
// END_INTERNALS
|
// END_INTERNALS
|
||||||
// BEGIN_FILE_DIR
|
// BEGIN_FILE_DIR
|
||||||
#define FILE_DIR .
|
#define FILE_DIR .
|
||||||
|
#define FILE_DIR "code"
|
||||||
|
#define FILE_DIR "code/ATMOSPHERICS"
|
||||||
|
#define FILE_DIR "code/ATMOSPHERICS/components"
|
||||||
|
#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices"
|
||||||
|
#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices"
|
||||||
|
#define FILE_DIR "code/ATMOSPHERICS/components/unary"
|
||||||
|
#define FILE_DIR "code/datums"
|
||||||
|
#define FILE_DIR "code/datums/diseases"
|
||||||
|
#define FILE_DIR "code/datums/helper_datums"
|
||||||
|
#define FILE_DIR "code/datums/spells"
|
||||||
|
#define FILE_DIR "code/defines"
|
||||||
|
#define FILE_DIR "code/defines/area"
|
||||||
|
#define FILE_DIR "code/defines/mob"
|
||||||
|
#define FILE_DIR "code/defines/mob/dead"
|
||||||
|
#define FILE_DIR "code/defines/mob/living"
|
||||||
|
#define FILE_DIR "code/defines/mob/living/carbon"
|
||||||
|
#define FILE_DIR "code/defines/mob/living/silicon"
|
||||||
|
#define FILE_DIR "code/defines/obj"
|
||||||
|
#define FILE_DIR "code/defines/procs"
|
||||||
|
#define FILE_DIR "code/defines/tanning"
|
||||||
|
#define FILE_DIR "code/FEA"
|
||||||
|
#define FILE_DIR "code/game"
|
||||||
|
#define FILE_DIR "code/game/area"
|
||||||
|
#define FILE_DIR "code/game/asteroid"
|
||||||
|
#define FILE_DIR "code/game/gamemodes"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/blob"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/blob/blobs"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/changeling"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/cult"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/events"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/events/holidays"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/extended"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/malfunction"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/meteor"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/nuclear"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/revolution"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/sandbox"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/traitor"
|
||||||
|
#define FILE_DIR "code/game/gamemodes/wizard"
|
||||||
|
#define FILE_DIR "code/game/jobs"
|
||||||
|
#define FILE_DIR "code/game/jobs/job"
|
||||||
|
#define FILE_DIR "code/game/machinery"
|
||||||
|
#define FILE_DIR "code/game/machinery/atmoalter"
|
||||||
|
#define FILE_DIR "code/game/machinery/bots"
|
||||||
|
#define FILE_DIR "code/game/machinery/computer"
|
||||||
|
#define FILE_DIR "code/game/machinery/doors"
|
||||||
|
#define FILE_DIR "code/game/machinery/embedded_controller"
|
||||||
|
#define FILE_DIR "code/game/machinery/kitchen"
|
||||||
|
#define FILE_DIR "code/game/machinery/pipe"
|
||||||
|
#define FILE_DIR "code/game/machinery/telecomms"
|
||||||
|
#define FILE_DIR "code/game/magic"
|
||||||
|
#define FILE_DIR "code/game/magic/cultist"
|
||||||
|
#define FILE_DIR "code/game/mecha"
|
||||||
|
#define FILE_DIR "code/game/mecha/combat"
|
||||||
|
#define FILE_DIR "code/game/mecha/equipment"
|
||||||
|
#define FILE_DIR "code/game/mecha/equipment/tools"
|
||||||
|
#define FILE_DIR "code/game/mecha/equipment/weapons"
|
||||||
|
#define FILE_DIR "code/game/mecha/medical"
|
||||||
|
#define FILE_DIR "code/game/mecha/working"
|
||||||
|
#define FILE_DIR "code/game/objects"
|
||||||
|
#define FILE_DIR "code/game/objects/alien"
|
||||||
|
#define FILE_DIR "code/game/objects/closets"
|
||||||
|
#define FILE_DIR "code/game/objects/closets/secure"
|
||||||
|
#define FILE_DIR "code/game/objects/devices"
|
||||||
|
#define FILE_DIR "code/game/objects/devices/PDA"
|
||||||
|
#define FILE_DIR "code/game/objects/grenades"
|
||||||
|
#define FILE_DIR "code/game/objects/items"
|
||||||
|
#define FILE_DIR "code/game/objects/items/weapons"
|
||||||
|
#define FILE_DIR "code/game/objects/items/weapons/implants"
|
||||||
|
#define FILE_DIR "code/game/objects/radio"
|
||||||
|
#define FILE_DIR "code/game/objects/secstorage"
|
||||||
|
#define FILE_DIR "code/game/objects/stacks"
|
||||||
|
#define FILE_DIR "code/game/objects/storage"
|
||||||
|
#define FILE_DIR "code/game/objects/tanks"
|
||||||
|
#define FILE_DIR "code/game/vehicles"
|
||||||
|
#define FILE_DIR "code/game/vehicles/airtight"
|
||||||
|
#define FILE_DIR "code/game/verbs"
|
||||||
|
#define FILE_DIR "code/js"
|
||||||
|
#define FILE_DIR "code/modules"
|
||||||
|
#define FILE_DIR "code/modules/admin"
|
||||||
|
#define FILE_DIR "code/modules/admin/DB ban"
|
||||||
|
#define FILE_DIR "code/modules/admin/verbs"
|
||||||
|
#define FILE_DIR "code/modules/assembly"
|
||||||
|
#define FILE_DIR "code/modules/chemical"
|
||||||
|
#define FILE_DIR "code/modules/client"
|
||||||
|
#define FILE_DIR "code/modules/clothing"
|
||||||
|
#define FILE_DIR "code/modules/clothing/glasses"
|
||||||
|
#define FILE_DIR "code/modules/clothing/gloves"
|
||||||
|
#define FILE_DIR "code/modules/clothing/head"
|
||||||
|
#define FILE_DIR "code/modules/clothing/masks"
|
||||||
|
#define FILE_DIR "code/modules/clothing/shoes"
|
||||||
|
#define FILE_DIR "code/modules/clothing/spacesuits"
|
||||||
|
#define FILE_DIR "code/modules/clothing/suits"
|
||||||
|
#define FILE_DIR "code/modules/clothing/under"
|
||||||
|
#define FILE_DIR "code/modules/clothing/uniforms"
|
||||||
|
#define FILE_DIR "code/modules/critters"
|
||||||
|
#define FILE_DIR "code/modules/critters/hivebots"
|
||||||
|
#define FILE_DIR "code/modules/detectivework"
|
||||||
|
#define FILE_DIR "code/modules/flufftext"
|
||||||
|
#define FILE_DIR "code/modules/food"
|
||||||
|
#define FILE_DIR "code/modules/maps"
|
||||||
|
#define FILE_DIR "code/modules/mining"
|
||||||
|
#define FILE_DIR "code/modules/mob"
|
||||||
|
#define FILE_DIR "code/modules/mob/dead"
|
||||||
|
#define FILE_DIR "code/modules/mob/dead/observer"
|
||||||
|
#define FILE_DIR "code/modules/mob/living"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/blob"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/alien"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/alien/larva"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/brain"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/human"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/metroid"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/carbon/monkey"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/silicon"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/silicon/ai"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/silicon/decoy"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/silicon/pai"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/silicon/robot"
|
||||||
|
#define FILE_DIR "code/modules/mob/living/simple_animal"
|
||||||
|
#define FILE_DIR "code/modules/mob/new_player"
|
||||||
|
#define FILE_DIR "code/modules/mob/organ"
|
||||||
|
#define FILE_DIR "code/modules/paperwork"
|
||||||
|
#define FILE_DIR "code/modules/power"
|
||||||
|
#define FILE_DIR "code/modules/power/antimatter"
|
||||||
|
#define FILE_DIR "code/modules/power/singularity"
|
||||||
|
#define FILE_DIR "code/modules/power/singularity/particle_accelerator"
|
||||||
|
#define FILE_DIR "code/modules/projectiles"
|
||||||
|
#define FILE_DIR "code/modules/projectiles/ammunition"
|
||||||
|
#define FILE_DIR "code/modules/projectiles/guns"
|
||||||
|
#define FILE_DIR "code/modules/projectiles/guns/energy"
|
||||||
|
#define FILE_DIR "code/modules/projectiles/guns/projectile"
|
||||||
|
#define FILE_DIR "code/modules/projectiles/projectile"
|
||||||
|
#define FILE_DIR "code/modules/recycling"
|
||||||
|
#define FILE_DIR "code/modules/research"
|
||||||
|
#define FILE_DIR "code/modules/scripting"
|
||||||
|
#define FILE_DIR "code/modules/scripting/AST"
|
||||||
|
#define FILE_DIR "code/modules/scripting/AST/Operators"
|
||||||
|
#define FILE_DIR "code/modules/scripting/Implementations"
|
||||||
|
#define FILE_DIR "code/modules/scripting/Interpreter"
|
||||||
|
#define FILE_DIR "code/modules/scripting/Parser"
|
||||||
|
#define FILE_DIR "code/modules/scripting/Scanner"
|
||||||
|
#define FILE_DIR "code/modules/security levels"
|
||||||
|
#define FILE_DIR "code/unused"
|
||||||
|
#define FILE_DIR "code/unused/beast"
|
||||||
|
#define FILE_DIR "code/unused/computer2"
|
||||||
|
#define FILE_DIR "code/unused/disease2"
|
||||||
|
#define FILE_DIR "code/unused/gamemodes"
|
||||||
|
#define FILE_DIR "code/unused/hivebot"
|
||||||
|
#define FILE_DIR "code/unused/mining"
|
||||||
|
#define FILE_DIR "code/unused/optics"
|
||||||
|
#define FILE_DIR "code/unused/pda2"
|
||||||
|
#define FILE_DIR "code/unused/powerarmor"
|
||||||
|
#define FILE_DIR "code/unused/spacecraft"
|
||||||
|
#define FILE_DIR "code/WorkInProgress"
|
||||||
|
#define FILE_DIR "code/WorkInProgress/carn"
|
||||||
|
#define FILE_DIR "code/WorkInProgress/mapload"
|
||||||
|
#define FILE_DIR "code/WorkInProgress/organs"
|
||||||
|
#define FILE_DIR "code/WorkInProgress/virus2"
|
||||||
|
#define FILE_DIR "html"
|
||||||
|
#define FILE_DIR "icons"
|
||||||
|
#define FILE_DIR "icons/48x48"
|
||||||
|
#define FILE_DIR "icons/effects"
|
||||||
|
#define FILE_DIR "icons/mecha"
|
||||||
|
#define FILE_DIR "icons/misc"
|
||||||
|
#define FILE_DIR "icons/mob"
|
||||||
|
#define FILE_DIR "icons/obj"
|
||||||
|
#define FILE_DIR "icons/obj/assemblies"
|
||||||
|
#define FILE_DIR "icons/obj/atmospherics"
|
||||||
|
#define FILE_DIR "icons/obj/clothing"
|
||||||
|
#define FILE_DIR "icons/obj/doors"
|
||||||
|
#define FILE_DIR "icons/obj/machines"
|
||||||
|
#define FILE_DIR "icons/obj/pipes"
|
||||||
|
#define FILE_DIR "icons/pda_icons"
|
||||||
|
#define FILE_DIR "icons/spideros_icons"
|
||||||
|
#define FILE_DIR "icons/Testing"
|
||||||
|
#define FILE_DIR "icons/turf"
|
||||||
|
#define FILE_DIR "icons/unused"
|
||||||
|
#define FILE_DIR "icons/vehicles"
|
||||||
|
#define FILE_DIR "icons/vending_icons"
|
||||||
|
#define FILE_DIR "interface"
|
||||||
|
#define FILE_DIR "maps"
|
||||||
|
#define FILE_DIR "maps/RandomZLevels"
|
||||||
|
#define FILE_DIR "Redirector"
|
||||||
|
#define FILE_DIR "sound"
|
||||||
|
#define FILE_DIR "sound/AI"
|
||||||
|
#define FILE_DIR "sound/ambience"
|
||||||
|
#define FILE_DIR "sound/effects"
|
||||||
|
#define FILE_DIR "sound/hallucinations"
|
||||||
|
#define FILE_DIR "sound/items"
|
||||||
|
#define FILE_DIR "sound/machines"
|
||||||
|
#define FILE_DIR "sound/mecha"
|
||||||
|
#define FILE_DIR "sound/misc"
|
||||||
|
#define FILE_DIR "sound/piano"
|
||||||
|
#define FILE_DIR "sound/voice"
|
||||||
|
#define FILE_DIR "sound/weapons"
|
||||||
// END_FILE_DIR
|
// END_FILE_DIR
|
||||||
|
|
||||||
// BEGIN_PREFERENCES
|
// BEGIN_PREFERENCES
|
||||||
@@ -849,6 +1047,7 @@
|
|||||||
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
|
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\say.dm"
|
#include "code\modules\mob\living\silicon\robot\say.dm"
|
||||||
#include "code\modules\mob\living\silicon\robot\wires.dm"
|
#include "code\modules\mob\living\silicon\robot\wires.dm"
|
||||||
|
#include "code\modules\mob\living\simple_animal\bear.dm"
|
||||||
#include "code\modules\mob\living\simple_animal\behemoth.dm"
|
#include "code\modules\mob\living\simple_animal\behemoth.dm"
|
||||||
#include "code\modules\mob\living\simple_animal\cat.dm"
|
#include "code\modules\mob\living\simple_animal\cat.dm"
|
||||||
#include "code\modules\mob\living\simple_animal\constructs.dm"
|
#include "code\modules\mob\living\simple_animal\constructs.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user