mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-03 14:04:41 +00:00
Removes jungle
This commit is contained in:
@@ -871,6 +871,7 @@
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\computer.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\modules.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\ninja.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\rig_weapons.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\utility.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\modules\vision.dm"
|
||||
#include "code\modules\clothing\spacesuits\rig\suits\alien.dm"
|
||||
@@ -1267,6 +1268,7 @@
|
||||
#include "code\modules\power\antimatter\containment_jar.dm"
|
||||
#include "code\modules\power\antimatter\control.dm"
|
||||
#include "code\modules\power\antimatter\shielding.dm"
|
||||
#include "code\modules\power\rust\areas.dm"
|
||||
#include "code\modules\power\rust\circuits_and_design.dm"
|
||||
#include "code\modules\power\rust\core_control.dm"
|
||||
#include "code\modules\power\rust\core_field.dm"
|
||||
@@ -1512,11 +1514,6 @@
|
||||
#include "code\TriDimension\Structures.dm"
|
||||
#include "code\TriDimension\Structures_presets.dm"
|
||||
#include "code\TriDimension\Turfs.dm"
|
||||
#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_animals.dm"
|
||||
#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_plants.dm"
|
||||
#include "code\WorkInProgress\Cael_Aislinn\Jungle\jungle_tribe.dm"
|
||||
#include "code\WorkInProgress\SkyMarshal\officer_stuff.dm"
|
||||
#include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm"
|
||||
#include "code\ZAS\_docs.dm"
|
||||
#include "code\ZAS\_gas_mixture_xgm.dm"
|
||||
#include "code\ZAS\_xgm_gas_data.dm"
|
||||
|
||||
@@ -1,158 +0,0 @@
|
||||
|
||||
//spawns one of the specified animal type
|
||||
/obj/effect/landmark/animal_spawner
|
||||
icon_state = "x3"
|
||||
var/spawn_type
|
||||
var/mob/living/spawned_animal
|
||||
invisibility = 101
|
||||
|
||||
/obj/effect/landmark/animal_spawner/New()
|
||||
if(!spawn_type)
|
||||
var/new_type = pick(typesof(/obj/effect/landmark/animal_spawner) - /obj/effect/landmark/animal_spawner)
|
||||
new new_type(get_turf(src))
|
||||
del(src)
|
||||
|
||||
processing_objects.Add(src)
|
||||
spawned_animal = new spawn_type(get_turf(src))
|
||||
|
||||
/obj/effect/landmark/animal_spawner/process()
|
||||
//if any of our animals are killed, spawn new ones
|
||||
if(!spawned_animal || spawned_animal.stat == DEAD)
|
||||
spawned_animal = new spawn_type(src)
|
||||
//after a random timeout, and in a random position (6-30 seconds)
|
||||
spawn(rand(1200,2400))
|
||||
spawned_animal.loc = locate(src.x + rand(-12,12), src.y + rand(-12,12), src.z)
|
||||
|
||||
/obj/effect/landmark/animal_spawner/Del()
|
||||
processing_objects.Remove(src)
|
||||
|
||||
/obj/effect/landmark/animal_spawner/panther
|
||||
name = "panther spawner"
|
||||
spawn_type = /mob/living/simple_animal/hostile/panther
|
||||
|
||||
/obj/effect/landmark/animal_spawner/parrot
|
||||
name = "parrot spawner"
|
||||
spawn_type = /mob/living/simple_animal/parrot
|
||||
|
||||
/obj/effect/landmark/animal_spawner/monkey
|
||||
name = "monkey spawner"
|
||||
spawn_type = /mob/living/carbon/monkey
|
||||
|
||||
/obj/effect/landmark/animal_spawner/snake
|
||||
name = "snake spawner"
|
||||
spawn_type = /mob/living/simple_animal/hostile/snake
|
||||
|
||||
|
||||
//*********//
|
||||
// Panther //
|
||||
//*********//
|
||||
|
||||
/mob/living/simple_animal/hostile/panther
|
||||
name = "panther"
|
||||
desc = "A long sleek, black cat with sharp teeth and claws."
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "panther"
|
||||
icon_living = "panther"
|
||||
icon_dead = "panther_dead"
|
||||
icon_gib = "panther_dead"
|
||||
speak_chance = 0
|
||||
turns_per_move = 3
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
stop_automated_movement_when_pulled = 0
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
|
||||
harm_intent_damage = 8
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
attacktext = "slashed"
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
|
||||
layer = 3.1 //so they can stay hidde under the /obj/structure/bush
|
||||
var/stalk_tick_delay = 3
|
||||
|
||||
/mob/living/simple_animal/hostile/panther/ListTargets()
|
||||
var/list/targets = list()
|
||||
for(var/mob/living/carbon/human/H in view(src, 10))
|
||||
targets += H
|
||||
return targets
|
||||
|
||||
/mob/living/simple_animal/hostile/panther/FindTarget()
|
||||
. = ..()
|
||||
if(.)
|
||||
emote("nashes at [.]")
|
||||
|
||||
/mob/living/simple_animal/hostile/panther/AttackingTarget()
|
||||
. =..()
|
||||
var/mob/living/L = .
|
||||
if(istype(L))
|
||||
if(prob(15))
|
||||
L.Weaken(3)
|
||||
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/panther/AttackTarget()
|
||||
..()
|
||||
if(stance == HOSTILE_STANCE_ATTACKING && get_dist(src, target_mob))
|
||||
stalk_tick_delay -= 1
|
||||
if(stalk_tick_delay <= 0)
|
||||
src.loc = get_step_towards(src, target_mob)
|
||||
stalk_tick_delay = 3
|
||||
|
||||
//*******//
|
||||
// Snake //
|
||||
//*******//
|
||||
|
||||
/mob/living/simple_animal/hostile/snake
|
||||
name = "snake"
|
||||
desc = "A sinuously coiled, venomous looking reptile."
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "snake"
|
||||
icon_living = "snake"
|
||||
icon_dead = "snake_dead"
|
||||
icon_gib = "snake_dead"
|
||||
speak_chance = 0
|
||||
turns_per_move = 1
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
stop_automated_movement_when_pulled = 0
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
|
||||
harm_intent_damage = 2
|
||||
melee_damage_lower = 3
|
||||
melee_damage_upper = 10
|
||||
attacktext = "bitten"
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
|
||||
layer = 3.1 //so they can stay hidde under the /obj/structure/bush
|
||||
var/stalk_tick_delay = 3
|
||||
|
||||
/mob/living/simple_animal/hostile/snake/ListTargets()
|
||||
var/list/targets = list()
|
||||
for(var/mob/living/carbon/human/H in view(src, 10))
|
||||
targets += H
|
||||
return targets
|
||||
|
||||
/mob/living/simple_animal/hostile/snake/FindTarget()
|
||||
. = ..()
|
||||
if(.)
|
||||
emote("hisses wickedly")
|
||||
|
||||
/mob/living/simple_animal/hostile/snake/AttackingTarget()
|
||||
. =..()
|
||||
var/mob/living/L = .
|
||||
if(istype(L))
|
||||
L.apply_damage(rand(3,12), TOX)
|
||||
|
||||
/mob/living/simple_animal/hostile/snake/AttackTarget()
|
||||
..()
|
||||
if(stance == HOSTILE_STANCE_ATTACKING && get_dist(src, target_mob))
|
||||
stalk_tick_delay -= 1
|
||||
if(stalk_tick_delay <= 0)
|
||||
src.loc = get_step_towards(src, target_mob)
|
||||
stalk_tick_delay = 3
|
||||
@@ -1,119 +0,0 @@
|
||||
//*********************//
|
||||
// Generic undergrowth //
|
||||
//*********************//
|
||||
|
||||
/obj/structure/bush
|
||||
name = "foliage"
|
||||
desc = "Pretty thick scrub, it'll take something sharp and a lot of determination to clear away."
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "bush1"
|
||||
density = 1
|
||||
anchored = 1
|
||||
layer = 3.2
|
||||
var/indestructable = 0
|
||||
var/stump = 0
|
||||
|
||||
/obj/structure/bush/New()
|
||||
if(prob(20))
|
||||
opacity = 1
|
||||
|
||||
/obj/structure/bush/Bumped(M as mob)
|
||||
if (istype(M, /mob/living/simple_animal))
|
||||
var/mob/living/simple_animal/A = M
|
||||
A.loc = get_turf(src)
|
||||
else if (istype(M, /mob/living/carbon/monkey))
|
||||
var/mob/living/carbon/monkey/A = M
|
||||
A.loc = get_turf(src)
|
||||
|
||||
/obj/structure/bush/attackby(var/obj/I as obj, var/mob/user as mob)
|
||||
//hatchets can clear away undergrowth
|
||||
if(istype(I, /obj/item/weapon/hatchet) && !stump)
|
||||
if(indestructable)
|
||||
//this bush marks the edge of the map, you can't destroy it
|
||||
user << "\red You flail away at the undergrowth, but it's too thick here."
|
||||
else
|
||||
user.visible_message("\red <b>[user] begins clearing away [src].</b>","\red <b>You begin clearing away [src].</b>")
|
||||
spawn(rand(15,30))
|
||||
if(get_dist(user,src) < 2)
|
||||
user << "\blue You clear away [src]."
|
||||
var/obj/item/stack/sheet/wood/W = new(src.loc)
|
||||
W.amount = rand(3,15)
|
||||
if(prob(50))
|
||||
icon_state = "stump[rand(1,2)]"
|
||||
name = "cleared foliage"
|
||||
desc = "There used to be dense undergrowth here."
|
||||
density = 0
|
||||
stump = 1
|
||||
pixel_x = rand(-6,6)
|
||||
pixel_y = rand(-6,6)
|
||||
else
|
||||
del(src)
|
||||
else
|
||||
return ..()
|
||||
|
||||
//*******************************//
|
||||
// Strange, fruit-bearing plants //
|
||||
//*******************************//
|
||||
|
||||
var/list/fruit_icon_states = list("badrecipe","kudzupod","reishi","lime","grapes","boiledrorocore","chocolateegg")
|
||||
var/list/reagent_effects = list("toxin","anti_toxin","stoxin","space_drugs","mindbreaker","zombiepowder","impedrezene")
|
||||
var/jungle_plants_init = 0
|
||||
|
||||
/proc/init_jungle_plants()
|
||||
jungle_plants_init = 1
|
||||
fruit_icon_states = shuffle(fruit_icon_states)
|
||||
reagent_effects = shuffle(reagent_effects)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/jungle_fruit
|
||||
name = "jungle fruit"
|
||||
desc = "It smells weird and looks off."
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "orange"
|
||||
potency = 1
|
||||
|
||||
/obj/structure/jungle_plant
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "plant1"
|
||||
desc = "Looks like some of that fruit might be edible."
|
||||
var/fruits_left = 3
|
||||
var/fruit_type = -1
|
||||
var/icon/fruit_overlay
|
||||
var/plant_strength = 1
|
||||
var/fruit_r
|
||||
var/fruit_g
|
||||
var/fruit_b
|
||||
|
||||
|
||||
/obj/structure/jungle_plant/New()
|
||||
if(!jungle_plants_init)
|
||||
init_jungle_plants()
|
||||
|
||||
fruit_type = rand(1,7)
|
||||
icon_state = "plant[fruit_type]"
|
||||
fruits_left = rand(1,5)
|
||||
fruit_overlay = icon('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"fruit[fruits_left]")
|
||||
fruit_r = 255 - fruit_type * 36
|
||||
fruit_g = rand(1,255)
|
||||
fruit_b = fruit_type * 36
|
||||
fruit_overlay.Blend(rgb(fruit_r, fruit_g, fruit_b), ICON_ADD)
|
||||
overlays += fruit_overlay
|
||||
plant_strength = rand(20,200)
|
||||
|
||||
/obj/structure/jungle_plant/attack_hand(var/mob/user as mob)
|
||||
if(fruits_left > 0)
|
||||
fruits_left--
|
||||
user << "\blue You pick a fruit off [src]."
|
||||
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/jungle_fruit/J = new (src.loc)
|
||||
J.potency = plant_strength
|
||||
J.icon_state = fruit_icon_states[fruit_type]
|
||||
J.reagents.add_reagent(reagent_effects[fruit_type], 1+round((plant_strength / 20), 1))
|
||||
J.bitesize = 1+round(J.reagents.total_volume / 2, 1)
|
||||
J.attack_hand(user)
|
||||
|
||||
overlays -= fruit_overlay
|
||||
fruit_overlay = icon('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"fruit[fruits_left]")
|
||||
fruit_overlay.Blend(rgb(fruit_r, fruit_g, fruit_b), ICON_ADD)
|
||||
overlays += fruit_overlay
|
||||
else
|
||||
user << "\red There are no fruit left on [src]."
|
||||
@@ -1,91 +0,0 @@
|
||||
|
||||
|
||||
/obj/item/projectile/jungle_spear
|
||||
damage = 10
|
||||
damage_type = TOX
|
||||
icon_state = "bullet"
|
||||
|
||||
/obj/effect/jungle_tribe_spawn
|
||||
name = "campfire"
|
||||
desc = "Looks cosy, in an alien sort of way."
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "campfire"
|
||||
anchored = 1
|
||||
var/list/tribesmen = list()
|
||||
var/list/enemy_players = list()
|
||||
var/tribe_type = 1
|
||||
|
||||
/obj/effect/jungle_tribe_spawn/New()
|
||||
processing_objects.Add(src)
|
||||
tribe_type = rand(1,5)
|
||||
|
||||
var/num_tribesmen = rand(3,6)
|
||||
for(var/i=0,i<num_tribesmen,i++)
|
||||
var/mob/living/simple_animal/hostile/tribesman/T = new(src.loc)
|
||||
T.my_type = tribe_type
|
||||
T.x += rand(-6,6)
|
||||
T.y += rand(-6,6)
|
||||
tribesmen += T
|
||||
|
||||
/obj/effect/jungle_tribe_spawn/Del()
|
||||
processing_objects.Remove(src)
|
||||
|
||||
/obj/effect/jungle_tribe_spawn/process()
|
||||
set background = 1
|
||||
for(var/mob/living/simple_animal/hostile/tribesman/T in tribesmen)
|
||||
if(T.stat == DEAD)
|
||||
tribesmen.Remove(T)
|
||||
spawn(rand(50,300))
|
||||
var/mob/living/simple_animal/hostile/tribesman/B = new(src.loc)
|
||||
B.my_type = tribe_type
|
||||
B.x += rand(-4,4)
|
||||
B.y += rand(-4,4)
|
||||
tribesmen += B
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/tribesman
|
||||
name = "tribesman"
|
||||
desc = "A noble savage, doesn't seem to know what to make of you."
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "native1"
|
||||
icon_living = "native1"
|
||||
icon_dead = "native1_dead"
|
||||
speak_chance = 25
|
||||
speak = list("Rong a'hu dong'a sik?","Ahi set mep'a teth.","Ohen nek'ti ep esi.")
|
||||
speak_emote = list("chatters")
|
||||
emote_hear = list("chatters to themselves","chatters away at something","whistles")
|
||||
emote_see = list("bends down to examine something")
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 15
|
||||
turns_per_move = 1
|
||||
stop_automated_movement_when_pulled = 0
|
||||
var/my_type = 1
|
||||
|
||||
/mob/living/simple_animal/hostile/tribesman/New()
|
||||
if(prob(33))
|
||||
ranged = 1
|
||||
|
||||
spawn(8)
|
||||
icon_state = "native[my_type]"
|
||||
icon_living = "native[my_type]"
|
||||
icon_dead = "native[my_type]_dead"
|
||||
|
||||
/mob/living/simple_animal/hostile/tribesman/ListTargets()
|
||||
var/list/targets = list()
|
||||
for(var/mob/living/simple_animal/hostile/H in view(src, 10))
|
||||
if(istype(H, /mob/living/simple_animal/hostile/tribesman))
|
||||
continue
|
||||
targets += H
|
||||
return targets
|
||||
|
||||
/mob/living/simple_animal/hostile/tribesman/FindTarget()
|
||||
. = ..()
|
||||
if(.)
|
||||
emote("waves a spear at [.]")
|
||||
|
||||
/mob/living/simple_animal/hostile/tribesman/OpenFire(target_mob)
|
||||
visible_message("\red <b>[src]</b> throws a spear at [target_mob]!", 1)
|
||||
flick(src, "native[my_type]_act")
|
||||
|
||||
var/tturf = get_turf(target_mob)
|
||||
Shoot(tturf, src.loc, src)
|
||||
@@ -26,9 +26,7 @@
|
||||
/mob/living/simple_animal/hostile/giant_spider/nurse,\
|
||||
/mob/living/simple_animal/hostile/alien,\
|
||||
/mob/living/simple_animal/hostile/bear,\
|
||||
/mob/living/simple_animal/hostile/creature,\
|
||||
/mob/living/simple_animal/hostile/panther,\
|
||||
/mob/living/simple_animal/hostile/snake\
|
||||
/mob/living/simple_animal/hostile/creature\
|
||||
)
|
||||
else
|
||||
spawn_type = pick(\
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "samak"
|
||||
icon_living = "samak"
|
||||
icon_dead = "samak_dead"
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 2
|
||||
maxHealth = 125
|
||||
health = 125
|
||||
@@ -26,7 +26,7 @@
|
||||
icon_state = "diyaab"
|
||||
icon_living = "diyaab"
|
||||
icon_dead = "diyaab_dead"
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 1
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
@@ -47,7 +47,7 @@
|
||||
icon_state = "shantak"
|
||||
icon_living = "shantak"
|
||||
icon_dead = "shantak_dead"
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon = 'icons/jungle.dmi'
|
||||
move_to_delay = 1
|
||||
maxHealth = 75
|
||||
health = 75
|
||||
@@ -66,7 +66,7 @@
|
||||
icon_state = "yithian"
|
||||
icon_living = "yithian"
|
||||
icon_dead = "yithian_dead"
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
/mob/living/simple_animal/tindalos
|
||||
name = "tindalos"
|
||||
@@ -74,4 +74,4 @@
|
||||
icon_state = "tindalos"
|
||||
icon_living = "tindalos"
|
||||
icon_dead = "tindalos_dead"
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon = 'icons/jungle.dmi'
|
||||
|
||||
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
4164
maps/exodus-2.dmm
4164
maps/exodus-2.dmm
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user