Skip to content

Commit

Permalink
Merge pull request #18 from Marmio64/junglespiders
Browse files Browse the repository at this point in the history
emerald spiders
  • Loading branch information
Djiq authored Oct 12, 2022
2 parents 8c5b0a3 + 4201642 commit cf18d25
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 2 deletions.
4 changes: 2 additions & 2 deletions yogstation/code/datums/mapgen/biomes/JungleBiomes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
loose_flora = list(/obj/structure/flora/ausbushes/stalkybush = 2,/obj/structure/flora/rock = 2,/obj/structure/flora/rock/jungle = 2,/obj/structure/flora/rock/pile = 2,/obj/structure/flora/stump=2,/obj/structure/flora/tree/jungle = 1,/obj/structure/herb/cinchona = 0.1, /obj/structure/flytrap = 0.1)
dense_flora_density = 10
loose_flora_density = 10
fauna_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast = 39,/mob/living/simple_animal/hostile/asteroid/goldgrub = 34,/mob/living/simple_animal/hostile/yog_jungle/meduracha = 10,/mob/living/simple_animal/hostile/yog_jungle/skin_twister = 1,/mob/living/simple_animal/hostile/yog_jungle/mosquito = 16)
fauna_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast = 39,/mob/living/simple_animal/hostile/asteroid/goldgrub = 31,/mob/living/simple_animal/hostile/yog_jungle/meduracha = 10,/mob/living/simple_animal/hostile/yog_jungle/skin_twister = 1,/mob/living/simple_animal/hostile/yog_jungle/mosquito = 16, /mob/living/simple_animal/hostile/yog_jungle/emeraldspider = 3)
fauna_density = 0.4
spawn_fauna_on_closed = TRUE
this_area = /area/jungleland/dry_swamp
Expand Down Expand Up @@ -88,6 +88,6 @@
dense_flora = list(/obj/structure/flora/tree/jungle/small = 2,/obj/structure/flora/tree/jungle = 2, /obj/structure/flora/rock/jungle = 1, /obj/structure/flora/junglebush = 1, /obj/structure/flora/junglebush/b = 1, /obj/structure/flora/junglebush/c = 1, /obj/structure/flora/junglebush/large = 1, /obj/structure/flora/rock/pile/largejungle = 1)
loose_flora = list(/obj/structure/flora/grass/jungle = 3,/obj/structure/flora/grass/jungle/b = 2,/obj/structure/flora/ausbushes = 2,/obj/structure/flora/ausbushes/leafybush = 1,/obj/structure/flora/ausbushes/sparsegrass = 1,/obj/structure/flora/ausbushes/fullgrass = 1,/obj/structure/herb/explosive_shrooms = 0.1,/obj/structure/herb/cinchona = 0.1,/obj/structure/herb/liberal_hats = 0.1,/obj/structure/flytrap = 0.1)
loose_flora_density = 60
fauna_types = list(/mob/living/simple_animal/hostile/yog_jungle/dryad = 69 ,/mob/living/simple_animal/hostile/yog_jungle/skin_twister = 1,/mob/living/simple_animal/hostile/yog_jungle/mosquito = 20, /mob/living/simple_animal/hostile/yog_jungle/yellowjacket = 10)
fauna_types = list(/mob/living/simple_animal/hostile/yog_jungle/dryad = 69 ,/mob/living/simple_animal/hostile/yog_jungle/skin_twister = 1,/mob/living/simple_animal/hostile/yog_jungle/mosquito = 15, /mob/living/simple_animal/hostile/yog_jungle/yellowjacket = 10, /mob/living/simple_animal/hostile/yog_jungle/emeraldspider = 5)
fauna_density = 0.7
this_area = /area/jungleland/proper
91 changes: 91 additions & 0 deletions yogstation/code/modules/jungleland/jungle_mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,97 @@
DestroySurroundings() //"Fred, were you feeding steroids to the wasp again?"
..()

/mob/living/simple_animal/hostile/yog_jungle/emeraldspider
name = "emerald spider"
desc = "A big, angry, venomous spider. Flings webs at prey to slow them down, before closing in on it's prey."
icon_state = "emeraldspider"
icon_living = "emeraldspider"
icon_dead = "emeraldspider_dead"
butcher_results = list(/obj/item/stack/sheet/bone = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/animalhide/weaver_chitin = 4, /obj/item/reagent_containers/food/snacks/meat/slab/spider = 2)
loot = list()
attacktext = "bites"
gold_core_spawnable = HOSTILE_SPAWN
health = 240
maxHealth = 240
vision_range = 8
move_to_delay = 12
speed = 3
ranged = 1
melee_damage_lower = 13
melee_damage_upper = 16
stat_attack = 1
robust_searching = 1
see_in_dark = 7
ventcrawler = 2
ranged_cooldown_time = 80
projectiletype = /obj/item/projectile/websling
projectilesound = 'sound/weapons/pierce.ogg'
pass_flags = PASSTABLE
attack_sound = 'sound/weapons/bite.ogg'
deathmessage = "rolls over, frothing at the mouth before stilling."
var/poison_type = /datum/reagent/toxin
var/poison_per_bite = 4

/obj/item/projectile/websling
name = "web"
icon = 'yogstation/icons/obj/jungle.dmi'
nodamage = TRUE
damage = 0
speed = 3 //you can dodge it from far away
icon_state = "websling"

/obj/item/projectile/websling/on_hit(atom/target, blocked = FALSE)
if(iscarbon(target) && blocked < 100)
var/obj/item/restraints/legcuffs/beartrap/emeraldspider/B = new /obj/item/restraints/legcuffs/beartrap/emeraldspider(get_turf(target))
B.Crossed(target)
..()

/obj/item/restraints/legcuffs/beartrap/emeraldspider
name = "silk restraints"
desc = "A silky bundle of web that can entangle legs."
icon = 'yogstation/icons/obj/jungle.dmi'
armed = TRUE
breakouttime = 30 //3 seconds. Long enough you'd rather not get hit, but not debilitating.
item_flags = DROPDEL
flags_1 = NONE
trap_damage = 0
icon_state = "websling"
icon = 'yogstation/icons/mob/jungle.dmi'

/mob/living/simple_animal/hostile/yog_jungle/emeraldspider/AttackingTarget()
..()
if(isliving(target))
var/mob/living/L = target
if(target.reagents)
L.reagents.add_reagent(poison_type, poison_per_bite)
if((L.stat == DEAD) && (health < maxHealth) && ishuman(L))
var/mob/living/carbon/human/H = L
var/foundorgans = 0
for(var/obj/item/organ/O in H.internal_organs)
if(O.zone == "chest")
foundorgans++
qdel(O)
if(foundorgans)
src.visible_message(
span_danger("[src] drools some toxic goo into [L]'s innards..."),
span_danger("Before sucking out the slurry of bone marrow and flesh, healing itself!"),
"<span class-'userdanger>You liquefy [L]'s innards with your venom and suck out the resulting slurry, revitalizing yourself.</span>")
adjustBruteLoss(round(-H.maxHealth/2))
for(var/obj/item/bodypart/B in H.bodyparts)
if(B.body_zone == "chest")
B.dismember()
else
to_chat(src, span_warning("There are no organs left in this corpse."))

/mob/living/simple_animal/hostile/yog_jungle/emeraldspider/CanAttack(atom/A)
if(..())
return TRUE
if((health < maxHealth) && ishuman(A) && !faction_check_mob(A))
var/mob/living/carbon/human/H = A
for(var/obj/item/organ/O in H.internal_organs)
if(O.zone == "chest")
return TRUE
return FALSE

/mob/living/simple_animal/hostile/tar
icon = 'yogstation/icons/mob/jungle.dmi'
Expand Down
Binary file modified yogstation/icons/mob/jungle.dmi
Binary file not shown.
Binary file modified yogstation/icons/mob/lavaland/lavaland_monsters.dmi
Binary file not shown.
Binary file modified yogstation/icons/obj/jungle.dmi
Binary file not shown.

0 comments on commit cf18d25

Please sign in to comment.