Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
6a645de
remove foliage regrowth
CrazyAmphibian Dec 19, 2025
e6f2eb1
Update vgstation13.dme
CrazyAmphibian Dec 19, 2025
b8bc94a
foliage SS removal cleanup
CrazyAmphibian Dec 19, 2025
291f059
surely this will have no unforeseen consequences :clueless:
CrazyAmphibian Dec 19, 2025
839907e
special check code cleanup
CrazyAmphibian Dec 19, 2025
db58cf5
missed one
CrazyAmphibian Dec 19, 2025
1879373
that should be the last of the bear trap stuff
CrazyAmphibian Dec 19, 2025
9db3003
i hate whitespace
CrazyAmphibian Dec 19, 2025
cc37993
merged animal code to SA
CrazyAmphibian Dec 20, 2025
a522bcf
adjusting base and croc for new type
CrazyAmphibian Dec 20, 2025
44f2b6c
mob hunting fix
CrazyAmphibian Dec 20, 2025
63ddea3
base grass turf addition
CrazyAmphibian Dec 20, 2025
43adf64
grass tiles swapped type
CrazyAmphibian Dec 21, 2025
bf2e77a
tool use refactor
CrazyAmphibian Dec 21, 2025
a05dfb8
Merge https://github.com/vgstation-coders/vgstation13 into jungle-cle…
CrazyAmphibian Dec 21, 2025
020fe0f
Update zoo.dmm
CrazyAmphibian Dec 21, 2025
6ae65e1
cleanup for jungle grass for var changes
CrazyAmphibian Dec 21, 2025
df5fb3b
dirt type change, further code cleaning
CrazyAmphibian Dec 21, 2025
8f6c408
moved sand
CrazyAmphibian Dec 21, 2025
c0d10ee
more replacments
CrazyAmphibian Dec 21, 2025
86c75db
all types swapped over, compiler issues fixed
CrazyAmphibian Dec 22, 2025
4e3a9fc
base code moved over
CrazyAmphibian Dec 22, 2025
582a7b5
runtime fix
CrazyAmphibian Dec 22, 2025
da5817a
Merge branch 'Bleeding-Edge' into jungle-cleanup
CrazyAmphibian Dec 22, 2025
f9a7579
Merge https://github.com/vgstation-coders/vgstation13 into jungle-cle…
CrazyAmphibian Dec 25, 2025
a2d109d
Merge branch 'jungle-cleanup' of https://github.com/CrazyAmphibian/vg…
CrazyAmphibian Dec 25, 2025
f6d340d
please don't kill me
CrazyAmphibian Dec 25, 2025
c75ca51
Merge branch 'Bleeding-Edge' into jungle-cleanup
CrazyAmphibian Dec 27, 2025
525f0f6
Merge branch 'Bleeding-Edge' into jungle-cleanup
CrazyAmphibian Dec 30, 2025
ab2f229
Merge branch 'Bleeding-Edge' into jungle-cleanup
CrazyAmphibian Jan 3, 2026
3abdbc2
unemptied some subtypes
CrazyAmphibian Jan 3, 2026
47f74d6
tsm
CrazyAmphibian Jan 3, 2026
bac88f5
turf speed to parent
CrazyAmphibian Jan 4, 2026
746720b
Apply suggestions from code review
CrazyAmphibian Jan 14, 2026
6e90faa
Merge branch 'Bleeding-Edge' into jungle-cleanup
CrazyAmphibian Jan 14, 2026
4a351ba
water overlay type change
CrazyAmphibian Jan 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion __DEFINES/_macros.dm
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@

#define isrobot(A) istype(A, /mob/living/silicon/robot)

#define isanimal(A) istype(A, /mob/living/simple_animal) || istype(A,/mob/living/complex_animal)
#define isanimal(A) istype(A, /mob/living/simple_animal)

#define iscorgi(A) istype(A, /mob/living/simple_animal/corgi)

Expand Down
3 changes: 0 additions & 3 deletions __DEFINES/subsystem.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
#define SS_INIT_PERSISTENCE_MAP -98
#define SS_INIT_PATHFINDER -100
#define SS_INIT_DAYNIGHT -200
#define SS_INIT_FOLIAGE_REGROW -300

#define SS_PRIORITY_TIMER 1000
#define FIRE_PRIORITY_RUNECHAT 410
Expand Down Expand Up @@ -69,7 +68,6 @@
#define SS_PRIORITY_INACTIVITY 1
#define SS_PRIORITY_BURNABLE -50
#define SS_PRIORITY_DAYNIGHT -200
#define SS_PRIORITY_FOLIAGE_REGROW -300
#define SS_PRIORITY_NEWS -1000

#define SS_WAIT_WEATHER 2 SECONDS
Expand Down Expand Up @@ -107,7 +105,6 @@
#define SS_DISPLAY_THERM_ENTROPY 13
#define SS_DISPLAY_THERM_DISS 14
#define SS_DISPLAY_DBCORE 15
#define SS_DISPLAY_FOLIAGE_REGROW 19
#define SS_DISPLAY_DAYNIGHT 20
#define SS_DISPLAY_BURNABLE 21

Expand Down
49 changes: 0 additions & 49 deletions code/controllers/subsystem/foliage_regrowth.dm

This file was deleted.

2 changes: 1 addition & 1 deletion code/game/area/Space Station 13 areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2186,7 +2186,7 @@ var/global/list/adminbusteleportlocs = list()
/area/surface/jungle/landing
name = "\improper Landing Area"
icon_state="jungle_landing"
base_turf_type=/turf/unsimulated/floor/jungle/concrete
base_turf_type=/turf/unsimulated/floor/planetary/concrete/jungle
holomap_color = HOLOMAP_AREACOLOR_ESCAPE

//DJSTATION
Expand Down
2 changes: 0 additions & 2 deletions code/game/machinery/doors/airlock.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1176,8 +1176,6 @@ About the new airlock wires panel:
if(SA.environment_smash_flags & OPEN_DOOR_STRONG)
level_of_door_opening = 2
dooropendelay=SA.force_airlock_time
else if(istype(M,/mob/living/complex_animal))
level_of_door_opening = 1



Expand Down
4 changes: 0 additions & 4 deletions code/game/machinery/doors/windowdoor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,6 @@
return
dmg=M.melee_damage_upper
visible_message("<span class='warning'>\The [M.name] [M.attacktext] against \the [name].</span>", 1)
else if(istype(user,/mob/living/complex_animal))
var/mob/living/complex_animal/M = user
dmg= M.base_damage+rand(-M.damage_variance ,M.damage_variance )
visible_message("<span class='warning'>\The [M.name] smacks against \the [name].</span>", 1)
user.do_attack_animation(src, user)
user.delayNextAttack(8)
playsound(src, 'sound/effects/Glasshit.ogg', 75, 1)
Expand Down
7 changes: 0 additions & 7 deletions code/game/objects/breakable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,6 @@
try_break()
else
. = ..()
else if(istype(L,/mob/living/complex_animal))
var/mob/living/complex_animal/M=L
M.do_attack_animation(src, M)
M.delayNextAttack(1 SECONDS)
var/glanced=!take_damage(M.base_damage +rand(-M.damage_variance,M.damage_variance), skip_break = TRUE)
M.visible_message("<span class='warning'>\The [M] attacks \the [src][generate_break_text(glanced,TRUE)]</span>","<span class='notice'>You attack \the [src][generate_break_text(glanced)]</span>")
try_break()


//Object ballistically colliding with something
Expand Down
66 changes: 12 additions & 54 deletions code/game/objects/misc_weapons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -453,8 +453,7 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")
var/trapped = 0
var/datum/organ/external/trappedorgan //The limb currently trapped, it must be a leg
var/mob/living/carbon/human/trappeduser
var/mob/living/simple_animal/hostile/bear/trappedbear
var/mob/living/complex_animal/trappedcanimal
var/mob/living/simple_animal/trappedbear
var/obj/item/weapon/grenade/iedcasing/IED = null
var/image/ied_overlay
health=60 //so animals don't break it in 1 hit if they attack it.
Expand All @@ -475,9 +474,6 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")
if (trappedbear)
unlock_atom(trappedbear)
trappedbear = null
if (trappedcanimal)
unlock_atom(trappedcanimal)
trappedcanimal=null
if (IED)
qdel(IED)
IED = null
Expand Down Expand Up @@ -609,38 +605,22 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")
trappedbear.update_icon()
trappedbear = null
anchored = FALSE

if(istype(trappedbear,/mob/living/simple_animal/complex))
var/mob/living/simple_animal/complex/CA=trappedbear
CA.family+=user
to_chat(user,"<span class='notice'>\The [trappedbear] seems appreciative.</span>")
return
else
user.visible_message("<span class='warning'>\The [H] fails to pry \the [src] off of \the [trappedbear], and crushes their leg even more!</span>", \
"<span class='warning'>You fail to pry \the [src] off of \the [trappedbear], and you crush their leg even more!</span>")
trappedbear.adjustBruteLoss(5)
return
else if (trappedcanimal)
user.visible_message("<span class='notice'>[H] tries to pry \the [src] off of \the [trappedcanimal]!</span>", \
"<span class='notice'>You try to pry open \the [src] with your bare hands.</span>")

if(do_after(user, src, 40) && prob(60))
user.visible_message("<span class='notice'>\The [H] managed to pry \the [src] off of \the [trappedcanimal]!</span>", \
"<span class='notice'>You manage to pry \the [src] off!</span>")
playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3)
trapped = 0
unlock_atom(trappedcanimal)
trappedcanimal.update_icon()
trappedcanimal = null
anchored = FALSE
trappedcanimal.family+=user
to_chat(user,"<span class='notice'>\The [trappedcanimal] seems appreciative.</span>")
return
else
user.visible_message("<span class='warning'>\The [H] fails to pry \the [src] off of \the [trappedcanimal], and crushes their leg even more!</span>", \
"<span class='warning'>You fail to pry \the [src] off of \the [trappedcanimal], and you crush their leg even more!</span>")
trappedcanimal.adjustBruteLoss(5)
return
..()

/obj/item/weapon/beartrap/try_break(datum/throwparams/propelparams, hit_atom)
if(health <= 0)
if(trappeduser || trappedbear || trappedcanimal)
if(trappeduser || trappedbear)
armed = 0
anchored = FALSE
update_icon()
Expand All @@ -654,10 +634,6 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")
unlock_atom(trappedbear)
trappedbear.update_icon()
trappedbear = null
if(trappedcanimal)
unlock_atom(trappedcanimal)
trappedcanimal.update_icon()
trappedcanimal = null
return FALSE

visible_message("\the [src] is smashed apart into nothing but metal...")
Expand Down Expand Up @@ -725,21 +701,10 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")
unlock_atom(trappedbear)
trappedbear.update_icon()
trappedbear = null
else if (trappedcanimal)
user.visible_message("<span class='notice'>[user] tries to pry \the [src] off of \the [trappedcanimal]!</span>", \
"<span class='notice'>You try to pry open \the [src] with \the [I.name].</span>")
if(do_after(user, src, 30))
user.visible_message("<span class='notice'>\The [user] managed to pry \the [src] off of \the [trappedcanimal]!</span>", \
"<span class='notice'>You pry open the bear trap with \the [I.name].</span>")
playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3)
trapped = 0
unlock_atom(trappedcanimal)
trappedcanimal.update_icon()
trappedcanimal = null
anchored = FALSE
trappedcanimal.family+=user
to_chat(user,"<span class='notice'>\The [trappedcanimal] seems appreciative.</span>")
return
if(istype(trappedbear,/mob/living/simple_animal/complex))
var/mob/living/simple_animal/complex/CA=trappedbear
CA.family+=user
to_chat(user,"<span class='notice'>\The [trappedbear] seems appreciative.</span>")
else
to_chat(user, "<span class='notice'>You carefully set the bear trap off with \the [I.name].</span>")
playsound(src, 'sound/effects/snap.ogg', 60, 1)
Expand Down Expand Up @@ -768,7 +733,7 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")

else if (istype(AM,/mob/living/simple_animal/hostile/bear))
trap(AM)
else if (istype(AM,/mob/living/complex_animal))
else if (istype(AM,/mob/living/simple_animal/complex))
trap(AM)
else if(isanimal(AM))
armed = 0
Expand Down Expand Up @@ -822,13 +787,6 @@ var/list/available_redphone_names3 = list("1","2","3","4","5","6","7","8","9")
trapped = 0
trappedbear = null
anchored = FALSE

if(trappedcanimal)
unlock_atom(trappedcanimal)
trappedcanimal.gib()
trapped = 0
trappedcanimal = null
anchored = FALSE

// Called when the dude is moved from the trap on way or the other.
/obj/item/weapon/beartrap/proc/forcefully_remove(atom/movable/mover)
Expand Down
7 changes: 0 additions & 7 deletions code/game/objects/structures/crates_lockers/closets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -432,13 +432,6 @@
dump_electronics()
dump_contents()
qdel(src)
else if(istype(user,/mob/living/complex_animal))
visible_message("<span class='warning'>[user] destroys the [src]. </span>")
broken = 1
if(has_electronics)
dump_electronics()
dump_contents()
qdel(src)
// this should probably use dump_contents()
/obj/structure/closet/blob_act()
anim(target = loc, a_icon = 'icons/mob/blob/blob.dmi', flick_anim = "blob_act", sleeptime = 15, lay = 12)
Expand Down
7 changes: 2 additions & 5 deletions code/game/objects/structures/flora/flora.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@
update_icon()

/obj/structure/flora/Destroy()
if(istype(loc,/turf/unsimulated/floor/jungle/grass))
var/turf/unsimulated/floor/jungle/grass/G=loc
if(istype(loc,/turf/unsimulated/floor/planetary/grass/jungle))
var/turf/unsimulated/floor/planetary/grass/jungle/G=loc
G.turf_speed_multiplier=1.0
if(SSFoliageRegrow)
turfs_to_regrow +=G
G.regrowticks=world.time
..()

/obj/structure/flora/update_icon()
Expand Down
7 changes: 0 additions & 7 deletions code/game/objects/structures/girders.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,6 @@
else
M.visible_message("<span class='danger'>[M] smashes against \the [src].</span>", \
"<span class='attack'>You smash against \the [src].</span>")
if(istype(M,/mob/living/complex_animal))
if(prob(25)) // Not the best solution, but this should allow for better feedback so the player realizes the mob is trying to break through and has time to retreat
playsound(src, 'sound/weapons/heavysmash.ogg', 75, 1)
M.visible_message("<span class='danger'>[M] smashes through \the [src].</span>", \
"<span class='attack'>You smash through \the [src].</span>")
drop_stack(material, get_turf(src), 2)
qdel(src)
else
M.visible_message("<span class='danger'>[M] smashes against \the [src].</span>", \
"<span class='attack'>You smash against \the [src].</span>")
Expand Down
8 changes: 0 additions & 8 deletions code/game/objects/structures/grille.dm
Original file line number Diff line number Diff line change
Expand Up @@ -162,14 +162,6 @@
"<span class='warning'>You smash against \the [src].</span>", \
"You hear twisting metal.")
health -= rand(SA.melee_damage_lower, SA.melee_damage_upper)
else if(istype(M,/mob/living/complex_animal))
var/mob/living/complex_animal/CA = M
M.delayNextAttack(8)
M.do_attack_animation(src, M)
M.visible_message("<span class='warning'>[M] smashes against \the [src].</span>", \
"<span class='warning'>You smash against \the [src].</span>", \
"You hear twisting metal.")
health -= CA.base_damage + rand(-CA.damage_variance , CA.damage_variance )
healthcheck(hitsound = 1)
shock(M, 100)

Expand Down
25 changes: 12 additions & 13 deletions code/game/objects/structures/ladder_jungle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,35 +43,34 @@

/obj/structure/ladder/jungle_tunnel/Destroy()
..()
if(up)
qdel(up)
if(down)
qdel(down)
var/turf/T = loc
if(T.type==/turf/unsimulated/floor/jungle/bedrock)
var/turf/unsimulated/floor/jungle/bedrock/TT=T
if(T.type==/turf/unsimulated/floor/planetary/cave/jungle)
var/turf/unsimulated/floor/planetary/cave/jungle/TT=T
TT.hashole=null
TT.update_icon()
if(T.type==/turf/unsimulated/floor/jungle/dirt)
var/turf/unsimulated/floor/jungle/dirt/TT=T
if(T.type==/turf/unsimulated/floor/planetary/dirt/jungle)
var/turf/unsimulated/floor/planetary/dirt/jungle/TT=T
TT.hashole=null

if(up)
qdel(up)
if(down)
qdel(down)

/obj/structure/ladder/jungle_tunnel/mapped

/obj/structure/ladder/jungle_tunnel/mapped/New(var/loc)
..()
if(istype(loc,/turf/unsimulated/floor/jungle/dirt))
var/turf/unsimulated/floor/jungle/dirt/TT=loc
if(istype(loc,/turf/unsimulated/floor/planetary/dirt/jungle))
var/turf/unsimulated/floor/planetary/dirt/jungle/TT=loc
TT.hashole=src
var/turf/T=locate(x,y,z==1 ? 2 : 6)
var/obj/structure/ladder/jungle_tunnel/mapped/MJT = (locate(/obj/structure/ladder/jungle_tunnel/mapped) in T.contents)
if(MJT)
MJT.up=src
down=MJT

if(istype(loc,/turf/unsimulated/floor/jungle/bedrock))
var/turf/unsimulated/floor/jungle/bedrock/TT=loc
if(istype(loc,/turf/unsimulated/floor/planetary/cave/jungle))
var/turf/unsimulated/floor/planetary/cave/jungle/TT=loc
TT.hashole=src
var/turf/T=locate(x,y,z==2 ? 1 : 4)
var/obj/structure/ladder/jungle_tunnel/mapped/MJT = (locate(/obj/structure/ladder/jungle_tunnel/mapped) in T.contents)
Expand Down
4 changes: 0 additions & 4 deletions code/game/objects/structures/tables_racks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -881,10 +881,6 @@
user.do_attack_animation(src, user)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
destroy()
else if(istype(user,/mob/living/complex_animal))
user.do_attack_animation(src, user)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
destroy()

/obj/structure/rack/attack_tk() // no telehulk sorry
return
3 changes: 0 additions & 3 deletions code/game/objects/structures/window.dm
Original file line number Diff line number Diff line change
Expand Up @@ -352,9 +352,6 @@ var/list/one_way_windows
if(M.melee_damage_upper <= 0)
return
attack_generic(M, M.melee_damage_upper)
else if(istype(user,/mob/living/complex_animal))
var/mob/living/complex_animal/M = user
attack_generic(M, M.base_damage+rand(-M.damage_variance ,M.damage_variance ))

/obj/structure/window/attack_slime(mob/user as mob)

Expand Down
Loading
Loading