Skip to content

Commit

Permalink
zombies
Browse files Browse the repository at this point in the history
  • Loading branch information
Derven committed Mar 31, 2020
1 parent 98dfff1 commit f642b42
Show file tree
Hide file tree
Showing 10 changed files with 313 additions and 26 deletions.
29 changes: 12 additions & 17 deletions CODE/DATUM/AI.dm
Original file line number Diff line number Diff line change
Expand Up @@ -162,29 +162,24 @@
life()
var/deathfactor = 0
while(deathfactor == 0)
if(istype(brain, /mob/simulated/living/humanoid/human))
var/mob/simulated/living/humanoid/human/zombie = brain
zombie.death = 0
if(zombie.lying == 1)
zombie.resting()
var/sum_damage = 0
for(var/datum/organ/external/EX in zombie.organs)
sum_damage += EX.brute_dam + EX.burn_dam
if(sum_damage > 140)
deathfactor = 1
brain.process()
if(brain.death == 1)
deathfactor = 1
sleep(rand(7,25))
if(prob(75))
mobmovement()
for(var/mob/simulated/living/humanoid/human/MOB in range(1,src))
for(var/mob/O in viewers(src, null))
O.show_message("\red <B>[src]</B> bites [MOB]!", 1)
MOB.rand_damage(7, 15)
for(var/mob/simulated/living/humanoid/human/MOB in range(1,brain))
if(brain.type != MOB.type)
for(var/mob/O in viewers(brain, null))
O.show_message("\red <B>[brain]</B> bites [MOB]!", 1)
MOB.rand_damage(7, 15)

mobmovement()
for(var/mob/simulated/living/humanoid/human/M in range(9, brain))
if(prob(10))
talking()
walk_to(brain, M, 0, 3, 64)
if(brain.type != M.type)
if(prob(10))
talking()
walk_to(brain, M, 0, 3, 64)

mobmovement()
for(var/mob/M in range(5, brain))
Expand Down
21 changes: 18 additions & 3 deletions CODE/MOB_SIMULATED_LIVING.dm
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@
stat("hungry", nutrition / (400 / 100))

/mob/simulated/living/bullet_act(var/obj/item/projectile/Proj)
world << "debug210"
if(Proj.firer != src)
if(Proj.damage > 0)
rand_damage(Proj.damage - rand(1,4), Proj.damage)
Expand Down Expand Up @@ -275,6 +276,7 @@
/mob/simulated/living/proc/attacked_by(var/obj/item/I, var/mob/simulated/living/humanoid/user, var/def_zone)
user = usr
var/mob/simulated/living/humanoid/H = src
world << "debug0"

var/staminamodify = 0
if(istype(usr, /mob/simulated/living/humanoid))
Expand All @@ -284,6 +286,8 @@
if(USRH.stamina < 30)
staminamodify = rand(2,3)

world << "debug11"

if((!I || !user) && istype(I, /obj/item/weapon/reagent_containers)) return 0

if(istype(I, /obj/item/weapon/handcuffs))
Expand All @@ -298,16 +302,27 @@
M.playsoundforme('handcuffs.ogg')
return

world << "debug12"

var/datum/organ/external/defen_zone
if(client)
defen_zone = get_organ(ran_zone(DF_ZONE.selecting))

world << "debug13"

var/datum/organ/external/affecting = get_organ(ran_zone(user.ZN_SEL.selecting))
var/hit_area = parse_zone(affecting.name)
var/hit_area
var/def_area
if(def_zone && client)
def_area = parse_zone(defen_zone.name)
if(affecting)
hit_area = parse_zone(affecting.name)
if(def_zone && client)
def_area = parse_zone(defen_zone.name)
else
hit_area = pick("chest", "head")
def_area = pick("chest", "head")


world << "debug1"
usr << "\red <B>[src] attacked [user] to [hit_area] by [I.name] !</B>"

if(istype(I, /obj/item/weapon/flasher))
Expand Down
61 changes: 61 additions & 0 deletions CODE/MOB_SIMULATED_ZOMBIE.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/mob/simulated/living/humanoid/human/zombie
name = "zombie"
death = 0

/mob/simulated/living/humanoid/human/zombie/process()
if(death == 0)
SLOC = src.loc
//set invisibility = 0
//set background = 1
var/datum/gas_mixture/environment = SLOC.return_air()
//handle_pain()
handle_stomach()
handle_injury()
handle_chemicals_in_body()
handle_temperature(environment)
parstunweak()
updatehealth()
else
if(heart)
heart.pumppower = 0
myspaceisperfect()

/mob/simulated/living/humanoid/human/zombie/New()
select_overlay = image(usr)
overlay_cur = image('sign.dmi', icon_state = "say", layer = 10)
overlay_cur.layer = 16
overlay_cur.pixel_z = 5
overlay_cur.pixel_x = -14
usr.select_overlay.override = 1
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src

chest = new /datum/organ/external/chest(src)
head = new /datum/organ/external/head(src)
l_arm = new /datum/organ/external/arm/l_arm(src)
r_arm = new /datum/organ/external/arm/r_arm(src)
r_leg = new /datum/organ/external/leg/r_leg(src)
l_leg = new /datum/organ/external/leg/l_leg(src)
groin = new /datum/organ/external/groin(src)
lungs = new /datum/organ/internal/lungs(src)
heart = new /datum/organ/internal/heart(src)

chest.owner = src
head.owner = src
r_arm.owner = src
l_arm.owner = src
r_leg.owner = src
l_leg.owner = src
groin.owner = src
organs += chest
organs += head
organs += r_arm
organs += l_arm
organs += r_leg
organs += l_leg
organs += groin

reagents.add_reagent("blood",300)
addai(src, /datum/AI/hunter/zombie)
..()
2 changes: 1 addition & 1 deletion CODE/types/GUNS.dm
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ obj/item/weapon/gun/energy/laser/retro
name = "laser"
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
damage = 20
damage = 70
damage_type = BURN
flag = "laser"
eyeblur = 2
Expand Down
Loading

0 comments on commit f642b42

Please sign in to comment.