From bab6b30e02cbc05ac6a1bd313097626f1ee867cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 28 Aug 2017 02:20:39 -0500 Subject: [PATCH 1/3] Splits jungle mob code into separate files --- .../hostile/jungle/_jungle_mobs.dm | 17 + .../simple_animal/hostile/jungle/leaper.dm | 263 ++++++ .../hostile/jungle/mega_arachnid.dm | 65 ++ .../simple_animal/hostile/jungle/mook.dm | 224 +++++ .../simple_animal/hostile/jungle/seedling.dm | 244 +++++ .../simple_animal/hostile/jungle_mobs.dm | 833 ------------------ icons/mob/jungle/arachnid.dmi | Bin 66795 -> 20573 bytes icons/mob/jungle/leaper.dmi | Bin 0 -> 6479 bytes icons/mob/jungle/mook.dmi | Bin 0 -> 23590 bytes icons/mob/jungle/seedling.dmi | Bin 0 -> 11385 bytes tgstation.dme | 1 - tgstation.dme.rej | 13 + 12 files changed, 826 insertions(+), 834 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/mook.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm create mode 100644 icons/mob/jungle/leaper.dmi create mode 100644 icons/mob/jungle/mook.dmi create mode 100644 icons/mob/jungle/seedling.dmi create mode 100644 tgstation.dme.rej diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm new file mode 100644 index 0000000000..c337344c90 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm @@ -0,0 +1,17 @@ +/mob/living/simple_animal/hostile/jungle + vision_range = 5 + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + faction = list("jungle") + weather_immunities = list("acid") + obj_damage = 30 + environment_smash = ENVIRONMENT_SMASH_WALLS + minbodytemp = 0 + maxbodytemp = 450 + response_help = "pokes" + response_disarm = "shoves" + response_harm = "strikes" + status_flags = NONE + a_intent = INTENT_HARM + see_in_dark = 4 + lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE + mob_size = MOB_SIZE_LARGE diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm new file mode 100644 index 0000000000..491aca3233 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -0,0 +1,263 @@ +#define PLAYER_HOP_DELAY 25 + +//Huge, carnivorous toads that spit an immobilizing toxin at its victims before leaping onto them. +//It has no melee attack, and its damage comes from the toxin in its bubbles and its crushing leap. +//Its eyes will turn red to signal an imminent attack! +/mob/living/simple_animal/hostile/jungle/leaper + name = "leaper" + desc = "Commonly referred to as 'leapers', the Geron Toad is a massive beast that spits out highly pressurized bubbles containing a unique toxin, knocking down its prey and then crushing it with its girth." + icon = 'icons/mob/jungle/leaper.dmi' + icon_state = "leaper" + icon_living = "leaper" + icon_dead = "leaper_dead" + maxHealth = 300 + health = 300 + ranged = TRUE + projectiletype = /obj/item/projectile/leaper + projectilesound = 'sound/weapons/pierce.ogg' + ranged_cooldown_time = 30 + pixel_x = -16 + layer = LARGE_MOB_LAYER + speed = 10 + stat_attack = 1 + robust_searching = 1 + var/hopping = FALSE + var/hop_cooldown = 0 //Strictly for player controlled leapers + var/projectile_ready = FALSE //Stopping AI leapers from firing whenever they want, and only doing it after a hop has finished instead + +/obj/item/projectile/leaper + name = "leaper bubble" + icon_state = "leaper" + knockdown = 50 + damage = 0 + range = 7 + hitsound = 'sound/effects/snap.ogg' + nondirectional_sprite = TRUE + impact_effect_type = /obj/effect/temp_visual/leaper_projectile_impact + +/obj/item/projectile/leaper/on_hit(atom/target, blocked = FALSE) + ..() + if(iscarbon(target)) + var/mob/living/carbon/C = target + C.reagents.add_reagent("leaper_venom", 5) + return + if(isanimal(target)) + var/mob/living/simple_animal/L = target + L.adjustHealth(25) + +/obj/item/projectile/leaper/on_range() + var/turf/T = get_turf(src) + ..() + new /obj/structure/leaper_bubble(T) + +/obj/effect/temp_visual/leaper_projectile_impact + name = "leaper bubble" + icon = 'icons/obj/projectiles.dmi' + icon_state = "leaper_bubble_pop" + layer = ABOVE_ALL_MOB_LAYER + duration = 3 + +/obj/effect/temp_visual/leaper_projectile_impact/Initialize() + . = ..() + new /obj/effect/decal/cleanable/leaper_sludge(get_turf(src)) + +/obj/effect/decal/cleanable/leaper_sludge + name = "leaper sludge" + desc = "A small pool of sludge, containing trace amounts of leaper venom." + icon = 'icons/effects/tomatodecal.dmi' + icon_state = "tomato_floor1" + +/obj/structure/leaper_bubble + name = "leaper bubble" + desc = "A floating bubble containing leaper venom. The contents are under a surprising amount of pressure." + icon = 'icons/obj/projectiles.dmi' + icon_state = "leaper" + max_integrity = 10 + density = FALSE + +/obj/structure/leaper_bubble/Initialize() + . = ..() + float(on = TRUE) + QDEL_IN(src, 100) + +/obj/structure/leaper_bubble/Destroy() + new /obj/effect/temp_visual/leaper_projectile_impact(get_turf(src)) + playsound(src,'sound/effects/snap.ogg',50, 1, -1) + return ..() + +/obj/structure/leaper_bubble/Crossed(atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!istype(L, /mob/living/simple_animal/hostile/jungle/leaper)) + playsound(src,'sound/effects/snap.ogg',50, 1, -1) + L.Knockdown(50) + if(iscarbon(L)) + var/mob/living/carbon/C = L + C.reagents.add_reagent("leaper_venom", 5) + if(isanimal(L)) + var/mob/living/simple_animal/A = L + A.adjustHealth(25) + qdel(src) + return ..() + +/datum/reagent/toxin/leaper_venom + name = "Leaper venom" + id = "leaper_venom" + description = "A toxin spat out by leapers that, while harmless in small doses, quickly creates a toxic reaction if too much is in the body." + color = "#801E28" // rgb: 128, 30, 40 + toxpwr = 0 + taste_description = "french cuisine" + taste_mult = 1.3 + +/datum/reagent/toxin/leaper_venom/on_mob_life(mob/living/M) + if(volume >= 10) + M.adjustToxLoss(5, 0) + ..() + +/obj/effect/temp_visual/leaper_crush + name = "grim tidings" + desc = "Incoming leaper!" + icon = 'icons/effects/96x96.dmi' + icon_state = "lily_pad" + layer = BELOW_MOB_LAYER + pixel_x = -32 + pixel_y = -32 + duration = 30 + +/mob/living/simple_animal/hostile/jungle/leaper/Initialize() + . = ..() + verbs -= /mob/living/verb/pulled + +/mob/living/simple_animal/hostile/jungle/leaper/CtrlClickOn(atom/A) + face_atom(A) + target = A + if(!isturf(loc)) + return + if(next_move > world.time) + return + if(hopping) + return + if(isliving(A)) + var/mob/living/L = A + if(L.incapacitated()) + BellyFlop() + return + if(hop_cooldown <= world.time) + Hop(player_hop = TRUE) + +/mob/living/simple_animal/hostile/jungle/leaper/AttackingTarget() + if(isliving(target)) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/leaper/handle_automated_action() + if(hopping || projectile_ready) + return + . = ..() + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + BellyFlop() + return + if(!hopping) + Hop() + +/mob/living/simple_animal/hostile/jungle/leaper/Life() + . = ..() + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if(prob(33) && !ckey) + ranged_cooldown = 0 //Keeps em on their toes instead of a constant rotation + ..() + +/mob/living/simple_animal/hostile/jungle/leaper/OpenFire() + face_atom(target) + if(ranged_cooldown <= world.time) + if(ckey) + if(hopping) + return + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + return //No stunlocking. Hop on them after you stun them, you donk. + if(AIStatus == AI_ON && !projectile_ready && !ckey) + return + . = ..(target) + projectile_ready = FALSE + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/proc/Hop(player_hop = FALSE) + if(z != target.z) + return + hopping = TRUE + density = FALSE + pass_flags |= PASSMOB + notransform = TRUE + var/turf/new_turf = locate((target.x + rand(-3,3)),(target.y + rand(-3,3)),target.z) + if(player_hop) + new_turf = get_turf(target) + hop_cooldown = world.time + PLAYER_HOP_DELAY + if(AIStatus == AI_ON && ranged_cooldown <= world.time) + projectile_ready = TRUE + update_icons() + throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .FinishHop)) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() + density = TRUE + notransform = FALSE + pass_flags &= ~PASSMOB + hopping = FALSE + playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1) + if(target && AIStatus == AI_ON && projectile_ready && !ckey) + face_atom(target) + addtimer(CALLBACK(src, .proc/OpenFire, target), 5) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() + var/turf/new_turf = get_turf(target) + hopping = TRUE + notransform = TRUE + new /obj/effect/temp_visual/leaper_crush(new_turf) + addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) + density = FALSE + throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) + +/mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() + hopping = FALSE + density = TRUE + notransform = FALSE + playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1) + for(var/mob/living/L in orange(1, src)) + L.adjustBruteLoss(35) + if(!QDELETED(L)) // Some mobs are deleted on death + var/throw_dir = get_dir(src, L) + if(L.loc == loc) + throw_dir = pick(GLOB.alldirs) + var/throwtarget = get_edge_target_turf(src, throw_dir) + L.throw_at(throwtarget, 3, 1) + visible_message("[L] is thrown clear of [src]!") + if(ckey)//Lessens ability to chain stun as a player + ranged_cooldown = ranged_cooldown_time + world.time + update_icons() + +/mob/living/simple_animal/hostile/jungle/leaper/Goto() + return + +/mob/living/simple_animal/hostile/jungle/leaper/throw_impact() + return + +/mob/living/simple_animal/hostile/jungle/leaper/update_icons() + . = ..() + if(stat) + icon_state = "leaper_dead" + return + if(ranged_cooldown <= world.time) + if(AIStatus == AI_ON && projectile_ready || ckey) + icon_state = "leaper_alert" + return + icon_state = "leaper" + +#undef PLAYER_HOP_DELAY diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm new file mode 100644 index 0000000000..be51502a96 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -0,0 +1,65 @@ +//Large and powerful, but timid. It won't engage anything above 50 health, or anything without legcuffs. +//It can fire fleshy snares that legcuff anyone that it hits, making them look especially tasty to the arachnid. +/mob/living/simple_animal/hostile/jungle/mega_arachnid + name = "mega arachnid" + desc = "Though physically imposing, it prefers to ambush its prey, and it will only engage with an already crippled opponent." + icon = 'icons/mob/jungle/arachnid.dmi' + icon_state = "arachnid" + icon_living = "arachnid" + icon_dead = "arachnid_dead" + melee_damage_lower = 30 + melee_damage_upper = 30 + maxHealth = 300 + health = 300 + speed = 1 + ranged = 1 + pixel_x = -16 + move_to_delay = 10 + aggro_vision_range = 9 + speak_emote = list("chitters") + attack_sound = 'sound/weapons/bladeslice.ogg' + ranged_cooldown_time = 60 + projectiletype = /obj/item/projectile/mega_arachnid + projectilesound = 'sound/weapons/pierce.ogg' + alpha = 50 + +/mob/living/simple_animal/hostile/jungle/mega_arachnid/Life() + ..() + if(target && ranged_cooldown > world.time && iscarbon(target)) + var/mob/living/carbon/C = target + if(!C.legcuffed && C.health < 50) + retreat_distance = 9 + minimum_distance = 9 + alpha = 125 + return + retreat_distance = 0 + minimum_distance = 0 + alpha = 255 + + +/mob/living/simple_animal/hostile/jungle/mega_arachnid/Aggro() + ..() + alpha = 255 + +/mob/living/simple_animal/hostile/jungle/mega_arachnid/LoseAggro() + ..() + alpha = 50 + +/obj/item/projectile/mega_arachnid + name = "flesh snare" + nodamage = 1 + damage = 0 + icon_state = "tentacle_end" + +/obj/item/projectile/mega_arachnid/on_hit(atom/target, blocked = FALSE) + if(iscarbon(target) && blocked < 100) + var/obj/item/restraints/legcuffs/beartrap/mega_arachnid/B = new /obj/item/restraints/legcuffs/beartrap/mega_arachnid(get_turf(target)) + B.Crossed(target) + ..() + +/obj/item/restraints/legcuffs/beartrap/mega_arachnid + name = "fleshy restraints" + desc = "Used by mega arachnids to immobilize their prey." + flags_1 = DROPDEL_1 + icon_state = "tentacle_end" + icon = 'icons/obj/projectiles.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm new file mode 100644 index 0000000000..05896c80b5 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -0,0 +1,224 @@ +#define MOOK_ATTACK_NEUTRAL 0 +#define MOOK_ATTACK_WARMUP 1 +#define MOOK_ATTACK_ACTIVE 2 +#define MOOK_ATTACK_RECOVERY 3 +#define ATTACK_INTERMISSION_TIME 5 + +//Fragile but highly aggressive wanderers that pose a large threat in numbers. +//They'll attempt to leap at their target from afar using their hatchets. +/mob/living/simple_animal/hostile/jungle/mook + name = "wanderer" + desc = "This unhealthy looking primitive is wielding a rudimentary hatchet, swinging it with wild abandon. One isn't much of a threat, but in numbers they can quickly overwhelm a superior opponent." + icon = 'icons/mob/jungle/mook.dmi' + icon_state = "mook" + icon_living = "mook" + icon_dead = "mook_dead" + pixel_x = -16 + maxHealth = 45 + health = 45 + melee_damage_lower = 30 + melee_damage_upper = 30 + pixel_y = -8 + ranged = TRUE + ranged_cooldown_time = 10 + pass_flags = LETPASSTHROW + robust_searching = TRUE + stat_attack = UNCONSCIOUS + attack_sound = 'sound/weapons/rapierhit.ogg' + death_sound = 'sound/voice/mook_death.ogg' + aggro_vision_range = 15 //A little more aggressive once in combat to balance out their really low HP + var/attack_state = MOOK_ATTACK_NEUTRAL + var/struck_target_leap = FALSE + +/mob/living/simple_animal/hostile/jungle/mook/CanPass(atom/movable/O) + if(istype(O, /mob/living/simple_animal/hostile/jungle/mook)) + var/mob/living/simple_animal/hostile/jungle/mook/M = O + if(M.attack_state == MOOK_ATTACK_ACTIVE && M.throwing) + return TRUE + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/death() + desc = "A deceased primitive. Upon closer inspection, it was suffering from severe cellular degeneration and its garments are machine made..."//Can you guess the twist + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/AttackingTarget() + if(isliving(target)) + if(ranged_cooldown <= world.time && attack_state == MOOK_ATTACK_NEUTRAL) + var/mob/living/L = target + if(L.incapacitated()) + WarmupAttack(forced_slash_combo = TRUE) + return + WarmupAttack() + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/Goto() + if(attack_state != MOOK_ATTACK_NEUTRAL) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/Move() + if(attack_state == MOOK_ATTACK_WARMUP || attack_state == MOOK_ATTACK_RECOVERY) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/proc/WarmupAttack(forced_slash_combo = FALSE) + if(attack_state == MOOK_ATTACK_NEUTRAL && target) + attack_state = MOOK_ATTACK_WARMUP + walk(src,0) + update_icons() + if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo) + addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) + return + addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3)) + return + attack_state = MOOK_ATTACK_RECOVERY + ResetNeutral() + +/mob/living/simple_animal/hostile/jungle/mook/proc/SlashCombo() + if(attack_state == MOOK_ATTACK_WARMUP && !stat) + attack_state = MOOK_ATTACK_ACTIVE + update_icons() + SlashAttack() + addtimer(CALLBACK(src, .proc/SlashAttack), 3) + addtimer(CALLBACK(src, .proc/SlashAttack), 6) + addtimer(CALLBACK(src, .proc/AttackRecovery), 9) + +/mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack() + if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE) + melee_damage_lower = 15 + melee_damage_upper = 15 + var/mob_direction = get_dir(src,target) + if(get_dist(src,target) > 1) + step(src,mob_direction) + if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from) && isliving(target)) + var/mob/living/L = target + L.attack_animal(src) + return + var/swing_turf = get_step(src,mob_direction) + new /obj/effect/temp_visual/kinetic_blast(swing_turf) + playsound(src, 'sound/weapons/slashmiss.ogg', 50, 1) + +/mob/living/simple_animal/hostile/jungle/mook/proc/LeapAttack() + if(target && !stat && attack_state == MOOK_ATTACK_WARMUP) + attack_state = MOOK_ATTACK_ACTIVE + density = FALSE + melee_damage_lower = 30 + melee_damage_upper = 30 + update_icons() + new /obj/effect/temp_visual/mook_dust(get_turf(src)) + playsound(src, 'sound/weapons/thudswoosh.ogg', 25, 1) + playsound(src, 'sound/voice/mook_leap_yell.ogg', 100, 1) + var/target_turf = get_turf(target) + throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery)) + return + attack_state = MOOK_ATTACK_RECOVERY + ResetNeutral() + +/mob/living/simple_animal/hostile/jungle/mook/proc/AttackRecovery() + if(attack_state == MOOK_ATTACK_ACTIVE && !stat) + attack_state = MOOK_ATTACK_RECOVERY + density = TRUE + face_atom(target) + if(!struck_target_leap) + update_icons() + struck_target_leap = FALSE + if(prob(40)) + attack_state = MOOK_ATTACK_NEUTRAL + if(target) + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated() && L.stat != DEAD) + addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) + return + addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) + return + addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME) + +/mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral() + if(attack_state == MOOK_ATTACK_RECOVERY) + attack_state = MOOK_ATTACK_NEUTRAL + ranged_cooldown = world.time + ranged_cooldown_time + update_icons() + if(target && !stat) + update_icons() + Goto(target, move_to_delay, minimum_distance) + +/mob/living/simple_animal/hostile/jungle/mook/throw_impact(atom/hit_atom, throwingdatum) + . = ..() + if(isliving(hit_atom) && attack_state == MOOK_ATTACK_ACTIVE) + var/mob/living/L = hit_atom + if(CanAttack(L)) + L.attack_animal(src) + struck_target_leap = TRUE + density = TRUE + update_icons() + var/mook_under_us = FALSE + for(var/A in get_turf(src)) + if(struck_target_leap && mook_under_us) + break + if(A == src) + continue + if(isliving(A)) + var/mob/living/ML = A + if(!struck_target_leap && CanAttack(ML))//Check if some joker is attempting to use rest to evade us + struck_target_leap = TRUE + ML.attack_animal(src) + density = TRUE + struck_target_leap = TRUE + update_icons() + continue + if(istype(ML, /mob/living/simple_animal/hostile/jungle/mook) && !mook_under_us)//If we land on the same tile as another mook, spread out so we don't stack our sprite on the same tile + var/mob/living/simple_animal/hostile/jungle/mook/M = ML + if(!M.stat) + mook_under_us = TRUE + var/anydir = pick(GLOB.cardinals) + Move(get_step(src, anydir), anydir) + continue + +/mob/living/simple_animal/hostile/jungle/mook/handle_automated_action() + if(attack_state) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/mook/OpenFire() + if(isliving(target)) + var/mob/living/L = target + if(L.incapacitated()) + return + WarmupAttack() + +/mob/living/simple_animal/hostile/jungle/mook/update_icons() + . = ..() + if(!stat) + switch(attack_state) + if(MOOK_ATTACK_NEUTRAL) + icon_state = "mook" + if(MOOK_ATTACK_WARMUP) + icon_state = "mook_warmup" + if(MOOK_ATTACK_ACTIVE) + if(!density) + icon_state = "mook_leap" + return + if(struck_target_leap) + icon_state = "mook_strike" + return + icon_state = "mook_slash_combo" + if(MOOK_ATTACK_RECOVERY) + icon_state = "mook" + +/obj/effect/temp_visual/mook_dust + name = "dust" + desc = "it's just a dust cloud!" + icon = 'icons/mob/jungle/mook.dmi' + icon_state = "mook_leap_cloud" + layer = BELOW_MOB_LAYER + pixel_x = -16 + pixel_y = -16 + duration = 10 + +#undef MOOK_ATTACK_NEUTRAL +#undef MOOK_ATTACK_WARMUP +#undef MOOK_ATTACK_ACTIVE +#undef MOOK_ATTACK_RECOVERY +#undef ATTACK_INTERMISSION_TIME diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm new file mode 100644 index 0000000000..3e28a789ad --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -0,0 +1,244 @@ +#define SEEDLING_STATE_NEUTRAL 0 +#define SEEDLING_STATE_WARMUP 1 +#define SEEDLING_STATE_ACTIVE 2 +#define SEEDLING_STATE_RECOVERY 3 + +//A plant rooted in the ground that forfeits its melee attack in favor of ranged barrages. +//It will fire flurries of solar energy, and occasionally charge up a powerful blast that makes it vulnerable to attack. +/mob/living/simple_animal/hostile/jungle/seedling + name = "seedling" + desc = "This oversized, predatory flower conceals what can only be described as an organic energy cannon, and it will not die until its hidden vital organs are sliced out. \ + The concentrated streams of energy it sometimes produces require its full attention, attacking it during this time will prevent it from finishing its attack." + icon = 'icons/mob/jungle/seedling.dmi' + icon_state = "seedling" + icon_living = "seedling" + icon_dead = "seedling_dead" + maxHealth = 100 + health = 100 + melee_damage_lower = 30 + melee_damage_upper = 30 + pixel_x = -16 + pixel_y = -14 + minimum_distance = 3 + move_to_delay = 20 + vision_range = 9 + aggro_vision_range = 15 + ranged = TRUE + ranged_cooldown_time = 10 + projectiletype = /obj/item/projectile/seedling + projectilesound = 'sound/weapons/pierce.ogg' + robust_searching = TRUE + stat_attack = UNCONSCIOUS + anchored = TRUE + var/combatant_state = SEEDLING_STATE_NEUTRAL + var/obj/seedling_weakpoint/weak_point + var/mob/living/beam_debuff_target + var/solar_beam_identifier = 0 + +/obj/item/projectile/seedling + name = "solar energy" + icon_state = "seedling" + damage = 10 + damage_type = BURN + light_range = 2 + flag = "energy" + light_color = LIGHT_COLOR_YELLOW + hitsound = 'sound/weapons/sear.ogg' + hitsound_wall = 'sound/weapons/effects/searwall.ogg' + nondirectional_sprite = TRUE + +/obj/item/projectile/seedling/Collide(atom/A)//Stops seedlings from destroying other jungle mobs through FF + if(isliving(A)) + var/mob/living/L = A + if("jungle" in L.faction) + return FALSE + return ..() + +/obj/effect/temp_visual/solarbeam_killsat + name = "beam of solar energy" + icon_state = "solar_beam" + icon = 'icons/effects/beam.dmi' + layer = LIGHTING_LAYER + duration = 5 + randomdir = FALSE + +/datum/status_effect/seedling_beam_indicator + id = "seedling beam indicator" + duration = 30 + status_type = STATUS_EFFECT_MULTIPLE + alert_type = null + tick_interval = 1 + var/obj/screen/seedling/seedling_screen_object + var/atom/target + + +/datum/status_effect/seedling_beam_indicator/on_creation(mob/living/new_owner, target_plant) + . = ..() + if(.) + target = target_plant + tick() + +/datum/status_effect/seedling_beam_indicator/on_apply() + if(owner.client) + seedling_screen_object = new /obj/screen/seedling() + owner.client.screen += seedling_screen_object + tick() + return ..() + +/datum/status_effect/seedling_beam_indicator/Destroy() + if(owner) + if(owner.client) + owner.client.screen -= seedling_screen_object + return ..() + +/datum/status_effect/seedling_beam_indicator/tick() + var/target_angle = Get_Angle(owner, target) + var/matrix/final = matrix() + final.Turn(target_angle) + seedling_screen_object.transform = final + +/obj/screen/seedling + icon = 'icons/mob/jungle/arachnid.dmi' + icon_state = "seedling_beam_indicator" + screen_loc = "CENTER:-16,CENTER:-16" + +/mob/living/simple_animal/hostile/jungle/seedling/Goto() + if(combatant_state != SEEDLING_STATE_NEUTRAL) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/seedling/AttackingTarget() + if(isliving(target)) + if(ranged_cooldown <= world.time && combatant_state == SEEDLING_STATE_NEUTRAL) + OpenFire(target) + return + return ..() + +/mob/living/simple_animal/hostile/jungle/seedling/OpenFire() + WarmupAttack() + +/mob/living/simple_animal/hostile/jungle/seedling/proc/WarmupAttack() + if(combatant_state == SEEDLING_STATE_NEUTRAL) + combatant_state = SEEDLING_STATE_WARMUP + walk(src,0) + update_icons() + var/target_dist = get_dist(src,target) + var/living_target_check = isliving(target) + if(living_target_check) + if(target_dist > 7)//Offscreen check + SolarBeamStartup(target) + return + if(get_dist(src,target) >= 4 && prob(40)) + SolarBeamStartup(target) + return + addtimer(CALLBACK(src, .proc/Volley), 5) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark + if(combatant_state == SEEDLING_STATE_WARMUP && target) + combatant_state = SEEDLING_STATE_ACTIVE + living_target.apply_status_effect(/datum/status_effect/seedling_beam_indicator, src) + beam_debuff_target = living_target + playsound(src,'sound/effects/seedling_chargeup.ogg', 100, 0) + if(get_dist(src,living_target) > 7) + playsound(living_target,'sound/effects/seedling_chargeup.ogg', 100, 0) + solar_beam_identifier = world.time + addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0) + if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier) + if(living_target.z == z) + update_icons() + var/obj/effect/temp_visual/solarbeam_killsat/S = new (get_turf(src)) + var/matrix/starting = matrix() + starting.Scale(1,32) + starting.Translate(0,520) + S.transform = starting + var/obj/effect/temp_visual/solarbeam_killsat/K = new (get_turf(living_target)) + var/matrix/final = matrix() + final.Scale(1,32) + final.Translate(0,512) + K.transform = final + living_target.adjustFireLoss(30) + living_target.adjust_fire_stacks(0.2)//Just here for the showmanship + living_target.IgniteMob() + playsound(living_target,'sound/weapons/sear.ogg', 50, 1) + addtimer(CALLBACK(src, .proc/AttackRecovery), 5) + return + AttackRecovery() + +/mob/living/simple_animal/hostile/jungle/seedling/proc/Volley() + if(combatant_state == SEEDLING_STATE_WARMUP && target) + combatant_state = SEEDLING_STATE_ACTIVE + update_icons() + var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) + for(var/i in 1 to 13) + addtimer(cb, i) + addtimer(CALLBACK(src, .proc/AttackRecovery), 14) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot() + if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat) + if(get_dist(src,target) <= 3)//If they're close enough just aim straight at them so we don't miss at point blank ranges + Shoot(target) + return + var/turf/our_turf = get_turf(src) + var/obj/item/projectile/seedling/readied_shot = new /obj/item/projectile/seedling(our_turf) + readied_shot.current = our_turf + readied_shot.starting = our_turf + readied_shot.firer = src + readied_shot.original = target + readied_shot.yo = target.y - our_turf.y + rand(-1,1) + readied_shot.xo = target.x - our_turf.x + rand(-1,1) + readied_shot.fire() + playsound(src, projectilesound, 100, 1) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/AttackRecovery() + if(combatant_state == SEEDLING_STATE_ACTIVE) + combatant_state = SEEDLING_STATE_RECOVERY + update_icons() + ranged_cooldown = world.time + ranged_cooldown_time + if(target) + face_atom(target) + addtimer(CALLBACK(src, .proc/ResetNeutral), 10) + +/mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral() + combatant_state = SEEDLING_STATE_NEUTRAL + if(target && !stat) + update_icons() + Goto(target, move_to_delay, minimum_distance) + +/mob/living/simple_animal/hostile/jungle/seedling/adjustHealth() + . = ..() + if(combatant_state == SEEDLING_STATE_ACTIVE && beam_debuff_target) + beam_debuff_target.remove_status_effect(/datum/status_effect/seedling_beam_indicator) + beam_debuff_target = null + solar_beam_identifier = 0 + AttackRecovery() + +/mob/living/simple_animal/hostile/jungle/seedling/update_icons() + . = ..() + if(!stat) + switch(combatant_state) + if(SEEDLING_STATE_NEUTRAL) + icon_state = "seedling" + if(SEEDLING_STATE_WARMUP) + icon_state = "seedling_charging" + if(SEEDLING_STATE_ACTIVE) + icon_state = "seedling_fire" + if(SEEDLING_STATE_RECOVERY) + icon_state = "seedling" + +/mob/living/simple_animal/hostile/jungle/seedling/GiveTarget() + if(target) + if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE)//So it doesn't 180 and blast you in the face while it's firing at someone else + return + return ..() + +/mob/living/simple_animal/hostile/jungle/seedling/LoseTarget() + if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE) + return + return ..() + +#undef SEEDLING_STATE_NEUTRAL +#undef SEEDLING_STATE_WARMUP +#undef SEEDLING_STATE_ACTIVE +#undef SEEDLING_STATE_RECOVERY diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm deleted file mode 100644 index b3e1479b91..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/jungle_mobs.dm +++ /dev/null @@ -1,833 +0,0 @@ -/mob/living/simple_animal/hostile/jungle - vision_range = 5 - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - faction = list("jungle") - weather_immunities = list("acid") - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_WALLS - minbodytemp = 0 - maxbodytemp = 450 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" - status_flags = 0 - a_intent = INTENT_HARM - see_in_dark = 4 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - mob_size = MOB_SIZE_LARGE - - - -//Mega arachnid - -/mob/living/simple_animal/hostile/jungle/mega_arachnid - name = "mega arachnid" - desc = "Though physically imposing, it prefers to ambush its prey, and it will only engage with an already crippled opponent." - melee_damage_lower = 30 - melee_damage_upper = 30 - maxHealth = 300 - health = 300 - speed = 1 - ranged = 1 - pixel_x = -16 - move_to_delay = 10 - aggro_vision_range = 9 - speak_emote = list("chitters") - attack_sound = 'sound/weapons/bladeslice.ogg' - ranged_cooldown_time = 60 - projectiletype = /obj/item/projectile/mega_arachnid - projectilesound = 'sound/weapons/pierce.ogg' - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "arachnid" - icon_living = "arachnid" - icon_dead = "dead_purple" - alpha = 50 - -/mob/living/simple_animal/hostile/jungle/mega_arachnid/Life() - ..() - if(target && ranged_cooldown > world.time && iscarbon(target)) - var/mob/living/carbon/C = target - if(!C.legcuffed && C.health < 50) - retreat_distance = 9 - minimum_distance = 9 - alpha = 125 - return - retreat_distance = 0 - minimum_distance = 0 - alpha = 255 - - -/mob/living/simple_animal/hostile/jungle/mega_arachnid/Aggro() - ..() - alpha = 255 - -/mob/living/simple_animal/hostile/jungle/mega_arachnid/LoseAggro() - ..() - alpha = 50 - -/obj/item/projectile/mega_arachnid - name = "flesh snare" - nodamage = 1 - damage = 0 - icon_state = "tentacle_end" - -/obj/item/projectile/mega_arachnid/on_hit(atom/target, blocked = FALSE) - if(iscarbon(target) && blocked < 100) - var/obj/item/restraints/legcuffs/beartrap/mega_arachnid/B = new /obj/item/restraints/legcuffs/beartrap/mega_arachnid(get_turf(target)) - B.Crossed(target) - ..() - -/obj/item/restraints/legcuffs/beartrap/mega_arachnid - name = "fleshy restraints" - desc = "Used by mega arachnids to immobilize their prey." - flags_1 = DROPDEL_1 - icon_state = "tentacle_end" - icon = 'icons/obj/projectiles.dmi' - -////Leaper//// - -#define PLAYER_HOP_DELAY 25 - -/mob/living/simple_animal/hostile/jungle/leaper - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - faction = list("jungle") - weather_immunities = list("acid") - obj_damage = 30 - environment_smash = ENVIRONMENT_SMASH_WALLS - maxHealth = 300 - health = 300 - minbodytemp = 0 - maxbodytemp = 450 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" - status_flags = 0 - a_intent = INTENT_HARM - see_in_dark = 4 - ranged = TRUE - projectiletype = /obj/item/projectile/leaper - projectilesound = 'sound/weapons/pierce.ogg' - ranged_cooldown_time = 30 - pixel_x = -16 - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "leaper" - icon_living = "leaper" - icon_dead = "leaper_dead" - layer = LARGE_MOB_LAYER - name = "leaper" - desc = "Commonly referred to as 'leapers', the Geron Toad is a massive beast that spits out highly pressurized bubbles containing a unique toxin, knocking down its prey and then crushing it with its girth." - speed = 10 - stat_attack = 1 - robust_searching = 1 - var/hopping = FALSE - var/hop_cooldown = 0 //Strictly for player controlled leapers - var/projectile_ready = FALSE //Stopping AI leapers from firing whenever they want, and only doing it after a hop has finished instead - -/obj/item/projectile/leaper - name = "leaper bubble" - icon_state = "leaper" - knockdown = 50 - damage = 0 - range = 7 - hitsound = 'sound/effects/snap.ogg' - nondirectional_sprite = TRUE - impact_effect_type = /obj/effect/temp_visual/leaper_projectile_impact - -/obj/item/projectile/leaper/on_hit(atom/target, blocked = FALSE) - ..() - if(iscarbon(target)) - var/mob/living/carbon/C = target - C.reagents.add_reagent("leaper_venom", 5) - return - if(isanimal(target)) - var/mob/living/simple_animal/L = target - L.adjustHealth(25) - -/obj/item/projectile/leaper/on_range() - var/turf/T = get_turf(src) - ..() - new /obj/structure/leaper_bubble(T) - -/obj/effect/temp_visual/leaper_projectile_impact - name = "leaper bubble" - icon = 'icons/obj/projectiles.dmi' - icon_state = "leaper_bubble_pop" - layer = ABOVE_ALL_MOB_LAYER - duration = 3 - -/obj/effect/temp_visual/leaper_projectile_impact/Initialize() - . = ..() - new /obj/effect/decal/cleanable/leaper_sludge(get_turf(src)) - -/obj/effect/decal/cleanable/leaper_sludge - name = "leaper sludge" - desc = "A small pool of sludge, containing trace amounts of leaper venom" - icon = 'icons/effects/tomatodecal.dmi' - icon_state = "tomato_floor1" - -/obj/structure/leaper_bubble - name = "leaper bubble" - desc = "A floating bubble containing leaper venom, the contents are under a surprising amount of pressure." - icon = 'icons/obj/projectiles.dmi' - icon_state = "leaper" - max_integrity = 10 - density = FALSE - -/obj/structure/leaper_bubble/Initialize() - . = ..() - float(on = TRUE) - QDEL_IN(src, 100) - -/obj/structure/leaper_bubble/Destroy() - new /obj/effect/temp_visual/leaper_projectile_impact(get_turf(src)) - playsound(src,'sound/effects/snap.ogg',50, 1, -1) - return ..() - -/obj/structure/leaper_bubble/Crossed(atom/movable/AM) - if(isliving(AM)) - var/mob/living/L = AM - if(!istype(L, /mob/living/simple_animal/hostile/jungle/leaper)) - playsound(src,'sound/effects/snap.ogg',50, 1, -1) - L.Knockdown(50) - if(iscarbon(L)) - var/mob/living/carbon/C = L - C.reagents.add_reagent("leaper_venom", 5) - if(isanimal(L)) - var/mob/living/simple_animal/A = L - A.adjustHealth(25) - qdel(src) - return ..() - -/datum/reagent/toxin/leaper_venom - name = "Leaper venom" - id = "leaper_venom" - description = "A toxin spat out by leapers that while harmless in small doses, quickly creates a toxic reaction if too much is in the body." - color = "#801E28" // rgb: 128, 30, 40 - toxpwr = 0 - taste_description = "french cuisine" - taste_mult = 1.3 - -/datum/reagent/toxin/leaper_venom/on_mob_life(mob/living/M) - if(volume >= 10) - M.adjustToxLoss(5, 0) - ..() - -/obj/effect/temp_visual/leaper_crush - name = "Grim tidings" - desc = "Incoming leaper!" - icon = 'icons/effects/96x96.dmi' - icon_state = "lily_pad" - layer = BELOW_MOB_LAYER - pixel_x = -32 - pixel_y = -32 - duration = 30 - -/mob/living/simple_animal/hostile/jungle/leaper/Initialize() - . = ..() - verbs -= /mob/living/verb/pulled - -/mob/living/simple_animal/hostile/jungle/leaper/CtrlClickOn(atom/A) - face_atom(A) - target = A - if(!isturf(loc)) - return - if(next_move > world.time) - return - if(hopping) - return - if(isliving(A)) - var/mob/living/L = A - if(L.incapacitated()) - BellyFlop() - return - if(hop_cooldown <= world.time) - Hop(player_hop = TRUE) - -/mob/living/simple_animal/hostile/jungle/leaper/AttackingTarget() - if(isliving(target)) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/leaper/handle_automated_action() - if(hopping || projectile_ready) - return - . = ..() - if(target) - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated()) - BellyFlop() - return - if(!hopping) - Hop() - -/mob/living/simple_animal/hostile/jungle/leaper/Life() - . = ..() - update_icons() - -/mob/living/simple_animal/hostile/jungle/leaper/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - if(prob(33) && !ckey) - ranged_cooldown = 0 //Keeps em on their toes instead of a constant rotation - ..() - -/mob/living/simple_animal/hostile/jungle/leaper/OpenFire() - face_atom(target) - if(ranged_cooldown <= world.time) - if(ckey) - if(hopping) - return - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated()) - return //No stunlocking. Hop on them after you stun them, you donk. - if(AIStatus == AI_ON && !projectile_ready && !ckey) - return - . = ..(target) - projectile_ready = FALSE - update_icons() - -/mob/living/simple_animal/hostile/jungle/leaper/proc/Hop(player_hop = FALSE) - if(z != target.z) - return - hopping = TRUE - density = FALSE - pass_flags |= PASSMOB - notransform = TRUE - var/turf/new_turf = locate((target.x + rand(-3,3)),(target.y + rand(-3,3)),target.z) - if(player_hop) - new_turf = get_turf(target) - hop_cooldown = world.time + PLAYER_HOP_DELAY - if(AIStatus == AI_ON && ranged_cooldown <= world.time) - projectile_ready = TRUE - update_icons() - throw_at(new_turf, max(3,get_dist(src,new_turf)), 1, src, FALSE, callback = CALLBACK(src, .FinishHop)) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() - density = TRUE - notransform = FALSE - pass_flags &= ~PASSMOB - hopping = FALSE - playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1) - if(target && AIStatus == AI_ON && projectile_ready && !ckey) - face_atom(target) - addtimer(CALLBACK(src, .proc/OpenFire, target), 5) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() - var/turf/new_turf = get_turf(target) - hopping = TRUE - notransform = TRUE - new /obj/effect/temp_visual/leaper_crush(new_turf) - addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlopHop(turf/T) - density = FALSE - throw_at(T, get_dist(src,T),1,src, FALSE, callback = CALLBACK(src, .proc/Crush)) - -/mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() - hopping = FALSE - density = TRUE - notransform = FALSE - playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1) - for(var/mob/living/L in orange(1, src)) - L.adjustBruteLoss(35) - if(!QDELETED(L)) // Some mobs are deleted on death - var/throw_dir = get_dir(src, L) - if(L.loc == loc) - throw_dir = pick(GLOB.alldirs) - var/throwtarget = get_edge_target_turf(src, throw_dir) - L.throw_at(throwtarget, 3, 1) - visible_message("[L] is thrown clear of [src]!") - if(ckey)//Lessens ability to chain stun as a player - ranged_cooldown = ranged_cooldown_time + world.time - update_icons() - -/mob/living/simple_animal/hostile/jungle/leaper/Goto() - return - -/mob/living/simple_animal/hostile/jungle/leaper/throw_impact() - return - -/mob/living/simple_animal/hostile/jungle/leaper/update_icons() - . = ..() - if(stat) - icon_state = "leaper_dead" - return - if(ranged_cooldown <= world.time) - if(AIStatus == AI_ON && projectile_ready || ckey) - icon_state = "leaper_alert" - return - icon_state = "leaper" - -#undef PLAYER_HOP_DELAY - -////JUNGLE MOOK//// - -#define MOOK_ATTACK_NEUTRAL 0 -#define MOOK_ATTACK_WARMUP 1 -#define MOOK_ATTACK_ACTIVE 2 -#define MOOK_ATTACK_RECOVERY 3 - -#define ATTACK_INTERMISSION_TIME 5 - -/mob/living/simple_animal/hostile/jungle/mook - name = "wanderer" - desc = "This unhealthy looking primitive is wielding a rudimentary hatchet, swinging it with wild abandon. One isn't much of a threat, but in numbers they can quickly overwhelm a superior opponent." - maxHealth = 45 - health = 45 - melee_damage_lower = 30 - melee_damage_upper = 30 - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "mook" - icon_living = "mook" - icon_dead = "mook_dead" - pixel_x = -16 - pixel_y = -8 - ranged = TRUE - ranged_cooldown_time = 10 - pass_flags = LETPASSTHROW - robust_searching = TRUE - stat_attack = UNCONSCIOUS - attack_sound = 'sound/weapons/rapierhit.ogg' - death_sound = 'sound/voice/mook_death.ogg' - aggro_vision_range = 15 //A little more aggressive once in combat to balance out their really low HP - var/attack_state = MOOK_ATTACK_NEUTRAL - var/struck_target_leap = FALSE - -/mob/living/simple_animal/hostile/jungle/mook/CanPass(atom/movable/O) - if(istype(O, /mob/living/simple_animal/hostile/jungle/mook)) - var/mob/living/simple_animal/hostile/jungle/mook/M = O - if(M.attack_state == MOOK_ATTACK_ACTIVE && M.throwing) - return TRUE - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/death() - desc = "A deceased primitive. Upon closer inspection, it was suffering from severe cellular degeneration and its garments are machine made..."//Can you guess the twist - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/AttackingTarget() - if(isliving(target)) - if(ranged_cooldown <= world.time && attack_state == MOOK_ATTACK_NEUTRAL) - var/mob/living/L = target - if(L.incapacitated()) - WarmupAttack(forced_slash_combo = TRUE) - return - WarmupAttack() - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/Goto() - if(attack_state != MOOK_ATTACK_NEUTRAL) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/Move() - if(attack_state == MOOK_ATTACK_WARMUP || attack_state == MOOK_ATTACK_RECOVERY) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/proc/WarmupAttack(forced_slash_combo = FALSE) - if(attack_state == MOOK_ATTACK_NEUTRAL && target) - attack_state = MOOK_ATTACK_WARMUP - walk(src,0) - update_icons() - if(prob(50) && get_dist(src,target) <= 3 || forced_slash_combo) - addtimer(CALLBACK(src, .proc/SlashCombo), ATTACK_INTERMISSION_TIME) - return - addtimer(CALLBACK(src, .proc/LeapAttack), ATTACK_INTERMISSION_TIME + rand(0,3)) - return - attack_state = MOOK_ATTACK_RECOVERY - ResetNeutral() - -/mob/living/simple_animal/hostile/jungle/mook/proc/SlashCombo() - if(attack_state == MOOK_ATTACK_WARMUP && !stat) - attack_state = MOOK_ATTACK_ACTIVE - update_icons() - SlashAttack() - addtimer(CALLBACK(src, .proc/SlashAttack), 3) - addtimer(CALLBACK(src, .proc/SlashAttack), 6) - addtimer(CALLBACK(src, .proc/AttackRecovery), 9) - -/mob/living/simple_animal/hostile/jungle/mook/proc/SlashAttack() - if(target && !stat && attack_state == MOOK_ATTACK_ACTIVE) - melee_damage_lower = 15 - melee_damage_upper = 15 - var/mob_direction = get_dir(src,target) - if(get_dist(src,target) > 1) - step(src,mob_direction) - if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from) && isliving(target)) - var/mob/living/L = target - L.attack_animal(src) - return - var/swing_turf = get_step(src,mob_direction) - new /obj/effect/temp_visual/kinetic_blast(swing_turf) - playsound(src, 'sound/weapons/slashmiss.ogg', 50, 1) - -/mob/living/simple_animal/hostile/jungle/mook/proc/LeapAttack() - if(target && !stat && attack_state == MOOK_ATTACK_WARMUP) - attack_state = MOOK_ATTACK_ACTIVE - density = FALSE - melee_damage_lower = 30 - melee_damage_upper = 30 - update_icons() - new /obj/effect/temp_visual/mook_dust(get_turf(src)) - playsound(src, 'sound/weapons/thudswoosh.ogg', 25, 1) - playsound(src, 'sound/voice/mook_leap_yell.ogg', 100, 1) - var/target_turf = get_turf(target) - throw_at(target_turf, 7, 1, src, FALSE, callback = CALLBACK(src, .proc/AttackRecovery)) - return - attack_state = MOOK_ATTACK_RECOVERY - ResetNeutral() - -/mob/living/simple_animal/hostile/jungle/mook/proc/AttackRecovery() - if(attack_state == MOOK_ATTACK_ACTIVE && !stat) - attack_state = MOOK_ATTACK_RECOVERY - density = TRUE - face_atom(target) - if(!struck_target_leap) - update_icons() - struck_target_leap = FALSE - if(prob(40)) - attack_state = MOOK_ATTACK_NEUTRAL - if(target) - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated() && L.stat != DEAD) - addtimer(CALLBACK(src, .proc/WarmupAttack, TRUE), ATTACK_INTERMISSION_TIME) - return - addtimer(CALLBACK(src, .proc/WarmupAttack), ATTACK_INTERMISSION_TIME) - return - addtimer(CALLBACK(src, .proc/ResetNeutral), ATTACK_INTERMISSION_TIME) - -/mob/living/simple_animal/hostile/jungle/mook/proc/ResetNeutral() - if(attack_state == MOOK_ATTACK_RECOVERY) - attack_state = MOOK_ATTACK_NEUTRAL - ranged_cooldown = world.time + ranged_cooldown_time - update_icons() - if(target && !stat) - update_icons() - Goto(target, move_to_delay, minimum_distance) - -/mob/living/simple_animal/hostile/jungle/mook/throw_impact(atom/hit_atom, throwingdatum) - . = ..() - if(isliving(hit_atom) && attack_state == MOOK_ATTACK_ACTIVE) - var/mob/living/L = hit_atom - if(CanAttack(L)) - L.attack_animal(src) - struck_target_leap = TRUE - density = TRUE - update_icons() - var/mook_under_us = FALSE - for(var/A in get_turf(src)) - if(struck_target_leap && mook_under_us) - break - if(A == src) - continue - if(isliving(A)) - var/mob/living/ML = A - if(!struck_target_leap && CanAttack(ML))//Check if some joker is attempting to use rest to evade us - struck_target_leap = TRUE - ML.attack_animal(src) - density = TRUE - struck_target_leap = TRUE - update_icons() - continue - if(istype(ML, /mob/living/simple_animal/hostile/jungle/mook) && !mook_under_us)//If we land on the same tile as another mook, spread out so we don't stack our sprite on the same tile - var/mob/living/simple_animal/hostile/jungle/mook/M = ML - if(!M.stat) - mook_under_us = TRUE - var/anydir = pick(GLOB.cardinals) - Move(get_step(src, anydir), anydir) - continue - -/mob/living/simple_animal/hostile/jungle/mook/handle_automated_action() - if(attack_state) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/mook/OpenFire() - if(isliving(target)) - var/mob/living/L = target - if(L.incapacitated()) - return - WarmupAttack() - -/mob/living/simple_animal/hostile/jungle/mook/update_icons() - . = ..() - if(!stat) - switch(attack_state) - if(MOOK_ATTACK_NEUTRAL) - icon_state = "mook" - if(MOOK_ATTACK_WARMUP) - icon_state = "mook_warmup" - if(MOOK_ATTACK_ACTIVE) - if(!density) - icon_state = "mook_leap" - return - if(struck_target_leap) - icon_state = "mook_strike" - return - icon_state = "mook_slash_combo" - if(MOOK_ATTACK_RECOVERY) - icon_state = "mook" - -/obj/effect/temp_visual/mook_dust - name = "dust" - desc = "it's just a dust cloud!" - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "mook_leap_cloud" - layer = BELOW_MOB_LAYER - pixel_x = -16 - pixel_y = -16 - duration = 10 - -#undef MOOK_ATTACK_NEUTRAL -#undef MOOK_ATTACK_WARMUP -#undef MOOK_ATTACK_ACTIVE -#undef MOOK_ATTACK_RECOVERY -#undef ATTACK_INTERMISSION_TIME - -////Jungle Seedling//// - -#define SEEDLING_STATE_NEUTRAL 0 -#define SEEDLING_STATE_WARMUP 1 -#define SEEDLING_STATE_ACTIVE 2 -#define SEEDLING_STATE_RECOVERY 3 - - -/mob/living/simple_animal/hostile/jungle/seedling - name = "seedling" - desc = "This oversized, predatory flower conceals what can only be described as an organic energy cannon, and it will not die until its hidden vital organs are sliced out. \ - The concentrated streams of energy it sometimes produces require its full attention, attacking it during this time will prevent it from finishing its attack." - maxHealth = 100 - health = 100 - melee_damage_lower = 30 - melee_damage_upper = 30 - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "seedling" - icon_living = "seedling" - icon_dead = "seedling_dead" - pixel_x = -16 - pixel_y = -14 - minimum_distance = 3 - move_to_delay = 20 - vision_range = 9 - aggro_vision_range = 15 - ranged = TRUE - ranged_cooldown_time = 10 - projectiletype = /obj/item/projectile/seedling - projectilesound = 'sound/weapons/pierce.ogg' - robust_searching = TRUE - stat_attack = UNCONSCIOUS - anchored = TRUE - var/combatant_state = SEEDLING_STATE_NEUTRAL - var/obj/seedling_weakpoint/weak_point - var/mob/living/beam_debuff_target - var/solar_beam_identifier = 0 - -/obj/item/projectile/seedling - name = "solar energy" - icon_state = "seedling" - damage = 10 - damage_type = BURN - light_range = 2 - flag = "energy" - light_color = LIGHT_COLOR_YELLOW - hitsound = 'sound/weapons/sear.ogg' - hitsound_wall = 'sound/weapons/effects/searwall.ogg' - nondirectional_sprite = TRUE - -/obj/item/projectile/seedling/Collide(atom/A)//Stops seedlings from destroying other jungle mobs through FF - if(isliving(A)) - var/mob/living/L = A - if("jungle" in L.faction) - return FALSE - return ..() - -/obj/effect/temp_visual/solarbeam_killsat - name = "beam of solar energy" - icon_state = "solar_beam" - icon = 'icons/effects/beam.dmi' - layer = LIGHTING_LAYER - duration = 5 - randomdir = FALSE - -/datum/status_effect/seedling_beam_indicator - id = "seedling beam indicator" - duration = 30 - status_type = STATUS_EFFECT_MULTIPLE - alert_type = null - tick_interval = 1 - var/obj/screen/seedling/seedling_screen_object - var/atom/target - - -/datum/status_effect/seedling_beam_indicator/on_creation(mob/living/new_owner, target_plant) - . = ..() - if(.) - target = target_plant - tick() - -/datum/status_effect/seedling_beam_indicator/on_apply() - if(owner.client) - seedling_screen_object = new /obj/screen/seedling() - owner.client.screen += seedling_screen_object - tick() - return ..() - -/datum/status_effect/seedling_beam_indicator/Destroy() - if(owner) - if(owner.client) - owner.client.screen -= seedling_screen_object - return ..() - -/datum/status_effect/seedling_beam_indicator/tick() - var/target_angle = Get_Angle(owner, target) - var/matrix/final = matrix() - final.Turn(target_angle) - seedling_screen_object.transform = final - -/obj/screen/seedling - icon = 'icons/mob/jungle/arachnid.dmi' - icon_state = "seedling_beam_indicator" - screen_loc = "CENTER:-16,CENTER:-16" - -/mob/living/simple_animal/hostile/jungle/seedling/Goto() - if(combatant_state != SEEDLING_STATE_NEUTRAL) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/seedling/AttackingTarget() - if(isliving(target)) - if(ranged_cooldown <= world.time && combatant_state == SEEDLING_STATE_NEUTRAL) - OpenFire(target) - return - return ..() - -/mob/living/simple_animal/hostile/jungle/seedling/OpenFire() - WarmupAttack() - -/mob/living/simple_animal/hostile/jungle/seedling/proc/WarmupAttack() - if(combatant_state == SEEDLING_STATE_NEUTRAL) - combatant_state = SEEDLING_STATE_WARMUP - walk(src,0) - update_icons() - var/target_dist = get_dist(src,target) - var/living_target_check = isliving(target) - if(living_target_check) - if(target_dist > 7)//Offscreen check - SolarBeamStartup(target) - return - if(get_dist(src,target) >= 4 && prob(40)) - SolarBeamStartup(target) - return - addtimer(CALLBACK(src, .proc/Volley), 5) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/SolarBeamStartup(mob/living/living_target)//It's more like requiem than final spark - if(combatant_state == SEEDLING_STATE_WARMUP && target) - combatant_state = SEEDLING_STATE_ACTIVE - living_target.apply_status_effect(/datum/status_effect/seedling_beam_indicator, src) - beam_debuff_target = living_target - playsound(src,'sound/effects/seedling_chargeup.ogg', 100, 0) - if(get_dist(src,living_target) > 7) - playsound(living_target,'sound/effects/seedling_chargeup.ogg', 100, 0) - solar_beam_identifier = world.time - addtimer(CALLBACK(src, .proc/Beamu, living_target, solar_beam_identifier), 35) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/Beamu(mob/living/living_target, beam_id = 0) - if(combatant_state == SEEDLING_STATE_ACTIVE && living_target && beam_id == solar_beam_identifier) - if(living_target.z == z) - update_icons() - var/obj/effect/temp_visual/solarbeam_killsat/S = new (get_turf(src)) - var/matrix/starting = matrix() - starting.Scale(1,32) - starting.Translate(0,520) - S.transform = starting - var/obj/effect/temp_visual/solarbeam_killsat/K = new (get_turf(living_target)) - var/matrix/final = matrix() - final.Scale(1,32) - final.Translate(0,512) - K.transform = final - living_target.adjustFireLoss(30) - living_target.adjust_fire_stacks(0.2)//Just here for the showmanship - living_target.IgniteMob() - playsound(living_target,'sound/weapons/sear.ogg', 50, 1) - addtimer(CALLBACK(src, .proc/AttackRecovery), 5) - return - AttackRecovery() - -/mob/living/simple_animal/hostile/jungle/seedling/proc/Volley() - if(combatant_state == SEEDLING_STATE_WARMUP && target) - combatant_state = SEEDLING_STATE_ACTIVE - update_icons() - var/datum/callback/cb = CALLBACK(src, .proc/InaccurateShot) - for(var/i in 1 to 13) - addtimer(cb, i) - addtimer(CALLBACK(src, .proc/AttackRecovery), 14) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/InaccurateShot() - if(!QDELETED(target) && combatant_state == SEEDLING_STATE_ACTIVE && !stat) - if(get_dist(src,target) <= 3)//If they're close enough just aim straight at them so we don't miss at point blank ranges - Shoot(target) - return - var/turf/our_turf = get_turf(src) - var/obj/item/projectile/seedling/readied_shot = new /obj/item/projectile/seedling(our_turf) - readied_shot.current = our_turf - readied_shot.starting = our_turf - readied_shot.firer = src - readied_shot.original = target - readied_shot.yo = target.y - our_turf.y + rand(-1,1) - readied_shot.xo = target.x - our_turf.x + rand(-1,1) - readied_shot.fire() - playsound(src, projectilesound, 100, 1) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/AttackRecovery() - if(combatant_state == SEEDLING_STATE_ACTIVE) - combatant_state = SEEDLING_STATE_RECOVERY - update_icons() - ranged_cooldown = world.time + ranged_cooldown_time - if(target) - face_atom(target) - addtimer(CALLBACK(src, .proc/ResetNeutral), 10) - -/mob/living/simple_animal/hostile/jungle/seedling/proc/ResetNeutral() - combatant_state = SEEDLING_STATE_NEUTRAL - if(target && !stat) - update_icons() - Goto(target, move_to_delay, minimum_distance) - -/mob/living/simple_animal/hostile/jungle/seedling/adjustHealth() - . = ..() - if(combatant_state == SEEDLING_STATE_ACTIVE && beam_debuff_target) - beam_debuff_target.remove_status_effect(/datum/status_effect/seedling_beam_indicator) - beam_debuff_target = null - solar_beam_identifier = 0 - AttackRecovery() - -/mob/living/simple_animal/hostile/jungle/seedling/update_icons() - . = ..() - if(!stat) - switch(combatant_state) - if(SEEDLING_STATE_NEUTRAL) - icon_state = "seedling" - if(SEEDLING_STATE_WARMUP) - icon_state = "seedling_charging" - if(SEEDLING_STATE_ACTIVE) - icon_state = "seedling_fire" - if(SEEDLING_STATE_RECOVERY) - icon_state = "seedling" - -/mob/living/simple_animal/hostile/jungle/seedling/GiveTarget() - if(target) - if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE)//So it doesn't 180 and blast you in the face while it's firing at someone else - return - return ..() - -/mob/living/simple_animal/hostile/jungle/seedling/LoseTarget() - if(combatant_state == SEEDLING_STATE_WARMUP || combatant_state == SEEDLING_STATE_ACTIVE) - return - return ..() - -#undef SEEDLING_STATE_NEUTRAL -#undef SEEDLING_STATE_WARMUP -#undef SEEDLING_STATE_ACTIVE -#undef SEEDLING_STATE_RECOVERY \ No newline at end of file diff --git a/icons/mob/jungle/arachnid.dmi b/icons/mob/jungle/arachnid.dmi index ccd52eeb7df7701cc1b33a37468cedc8e4cc08e9..23482d00ebebf8323df1559cfdfa03070af75498 100644 GIT binary patch literal 20573 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�bTy@K?^}h z?cX(pNXvVdLL~kXmk4kx8i|k_B6#2O)#~Cs6J(7y^(7c<}F(u?U7_%v^K%86;urro}~3uu4rCSQ>&+WayC6dqQg zQlODL5omSY$~4ZV zfE;;wg4uvjD|11Ej*!UWe*)&G%Z^TAb%Vr?X=dKq!3dmM<|wgPZ)h+!#&vEmq80{n zmhCs5@8874#l`Q2WJxpty|ouu#Yjy|;uuVs)J5Lg@NQ_V0JS^q^^n2?vCE~88^jaW zp(oLStFW59;egdD12Sk!#kTWT%9zB(tSPVMwddR5pda4+*_C%g*b(hVNos^2=ndG? z7oBP zo3=v#=6e0G2J6<90?2!^nQqU+!Sv&H##eMrazn&jhvsb`oT`oI)D@;8t^Ye*0eTkC zMQrd>rT1n}kzCM*Nu@!pXC5G|l&{SO5q%y&0RIB2zY#_(*7Ty!d#!i&m6!5v3x~&G zx=$my2={92N2G@1hP!41!G$=NK1-Aklnbu91>>e5DDXg^#@|?P> znXXr^%3u9?{pL?N`>7BtC@HWoZo1>dll{bQq3Y^DOFcl0mcW_E=5|>+|63BKYikP7 z-k*5N{@SFa_7cbZ^y1Y6=urO2Rjh<|et92)>Ot*Dn=u!9&b-x2RE@R!I;5f!$0S(qwD4p4>;+9 zlKJ;{k#TKbED-&2cd?*9exJ?G&1VSq887`e(Rn=T9hbS4z+n+RhQrOAij*e$f}4Q9 zWE}M6t+!7z!#?^Wy-*ubar-y`69k|STRfmb^PS%STH{!86;G83uXV)Y)|yzlheCn9VLoB zxx10E)brPyhfmPlfp@%?S#ixbDTa^ym0 zfhNt8~lx$wHE#?T&I;0NjVk#8uQ{L)^ zE4tHoPS6f2smrwZZ7ieTTb;REJ3Jro?irU+XxTsYd5J-`;09qxz_jqD1JrJeXMex# zW2&+z!AsF15TUaJ>Y!@$9lg`Lp9|CVXo~APS38 z#{?*B+Wrn*3r;c+S(FVP+9ieWjn-0UTd5CpOotzX@aW@z_+yK`0!}BkZe!4s$B?8^ zF--af$>g)~vKSt19o2MHR7xB=b|4%4_XfE5R`$hz9LKe>){w%8ZwB~~(&4JMDxTN^ z5;}e=ee!#A#7PJ<{t)+7kx=94(+t1buiv`~Kk&^rr@rj!9$_ChiUk*|mLa&f-+Xr) z&1OzT8}CF^%QObVlJ3Q+2fhP$5K7rvl?5O#rJ1duZ2GKsDiM38@r)=b?cOx2&>=7%8F7=(RKMcecjE{G}J7h|m@v*)| zwGQxS9Z4=23-4syEj8ypjD{(Dk5t?%KoB^vb4bk!Y{S~IPyxPS!&tO+?O0r1YE`aG zM}NnY#+wZ~gcxtIqb=I7K&@lsm5VRwmsvb%kY(Vx69i1y*<5X1yOFlr{a>U?M){B; z1PXP(5sXb|Ndsw@#Xy|hQbX5_z7J2Zx}{*P=iF09rcw zwN?SYA;D4*$<|=--cc3Pl>AcjSx+1~i-c{2|F{GTBP=9Bpovs7u3zuvgF(y*2w4=~ z!jEM7^NL1x{?3v|DC*vQrmDO~d8Fo%iU*VoS|y51(mw@I)cF?f_oIan$|BvS@V|tK zdx>Evkdhkf&+wsF8{3zt!VBkk9pdi88T{fmb$AvO4K;bQ)X0DddT4kwNo5fh*}NI7 z*11nk!r{w0TCs;#P$mOTYuz6F+Lv<1E_kv6`u49qUIkt3PFYjUN}sgWUf)j;Z2gf| zOJKjmeA5S<^^JDNjK6E%BoTD_7Lly1`x{*N-@$GDn_(@6URU>K?1f@#_apId0sTJ6 zr^$V%W1t-i>Yv#OqGuWYg`$|}QfHP}7J~j3u0&qF*H;VnK@3*wUOogh`u3T}T$*h7 z2oo<-%TixtDf7)8>w9d7qQYnmkz?K~xk5UwgQud%hNX%jlqB5&b|JcaKi)5dVcYJX z!$f%_D&E{mfGkwpWUfD!#uhwJB{-gHuDkirMwm>=-{s8- zwi*6Ll4<8Ku^P)TlBh0@R6oYpWJ9~#SD&;K4U|03cXf9 zWORyGVCGLZtjxvWB7({w$C?~G)YN*;xSFHzWheJLFZ7V?PXSVhLU9li+Ko_e_X#qjb1Q{pa4%4Ud>iW+e78{n^9nhxDTl^?}xY$=L z{QN38dGOxPFU++2|8sEv^GLF+&HEp(bo({&HFCQmQ~b~t2<>?{DKT*_K~d5z45;lD zcY4{ArXNIb|6`Tk$eRA)$n!#)fTKru(-9(UV4d@<9)$%K!^xHBVo30t8fr2?GI zeexMdVr@iy!f95`SNBu93oQ|?Ngg+wOx_kW(kNKAuKxiYH8K~mqg7ivx&9YsY=g)h z90&oaIBD55V({?Rajw>zW@RtGxG9dh@ZYuW|K}Zy138`W58C%^Tr9Y89^^tH!3dOv zMs9z^m!i2u+;tkU59Mn(gH|*u`+vD@G{{7;2m^kZf{uu`_yRa_1I+!?d(H+v;H1`b zQby;(F>M3BYF1WV(D69Eeq>Pc{fEa@kF=3r?fgvzWYx2*=NLT8Lt&P{e6FCPig4nCsMG!c&q#=^|69V#%z%!P9?-_M zu_3=H6AC<4A_E;ABjyn{a9lxKJ%&H|Y2m8}#{kq27#O%{8k`h4#mjKy&C`?1t;t*Y z-({Tr8SR^56y68hUPy!3SCghSU;X^#qN7yFpa>3W5Dd4i-jbwXbEEyP+-l*2^biLR zb$ATQ#qY2W6yd1NR~OejBW@~ z+xw?>Y!$igh8({sn`~4bGQ(>07~wPtQs)CtGD{7pmk&Whz@>|9xHvss9iMB3RCOi)#NXzH?Q(ZZ#g?&t)OMEs2t^D1D5) zkX#!PTOSJN%s0-B;)joz2VuR9ve$2&$26h0hcp1>2*nU~tsWC*WH0EsjFS z{jZzjXsJhZVwq<>GlB>+&aSR4wQ8~F-kKksY)HN`{uOw@4Qzx@a}nFE9MDI-xldx3 z;5orjn<{W_2Lz!t&m`#Um}-9@2NH+krQfwhlE$+_V}Tdqv_PO=wF~BPef4)+AUG^l z9_#ZEt7N#h?C?8S%}co!cM|6&n-X3W7uSPCiZ;dtgJVq>g)ZVhEmu{&C9%IAT%ctG|RSgJbdKS{zg= zivmBUL4Gej$)(PUME#n1(~DC7;cevG>#;w!(sXWjZ(n5__r^_4Zpgv$n8`=qa%l(S z&0763o3SV{@(6Xi)FJvo9jDtK2+Y7*DvK-udvTMajJYr-!PrzA#~_%2?xu^cH2K)4 z8UNnkUsqH{zA8V{M(q8n?~chlErUqUop8XV-B$8t?j4??#mo880U&xeIB9ddHZ>}C z1Q#Ss54Sfe%zP6xyj_4v2Lzj+4vc6_`~_{Knr!D`tu!8jMa*i#p^0$JU~qzby!OGx z-&-#L$&1_n7oY;uld-*M6L?KKbMAWeTkKqMU+Up`)Y{S$((>FBH{nhB@-1Za9N%`? z`vVUew6#^B`a2G!n&Xa7a_rGJC58x8(ZYS+w3SnYFUQJdTG#j&dJ8z8852h^uhqNX zEIfknAt%LYJ6hQ*N4gW@<-T+X^6=;qWhMPY7Ami87JocwWquqi-TO_79WEPej`s#x zaIcmdXN9xt&3@5aQsdv+SUMrUXY9}q8p(iX&>ftx2O4xtCTZxc;d|N!OM0)kq|`HO zB;TkVoV^3>Yc$_c-!Mnlt01o=sYRYx4&A4$1i!a7hHdM3BY=H!wT{Vd4FtPFdY8&P z5GJ*o9+C1@#K;|UN%sFrA$f-6cpAm|g7tXD72$|hCOY$p)=j9MF}^={I&!7!&icLm zUXdik*uvL;7((XvxlDL>-omCbrfiaY`>^C5yQXACuA z;phr~X2&Tg%ZBb!VU(ErKDXnRiB94C>z5C%XLy^Wx;~F%XsyKoawxc5RqEb*u9YJ* ze=`9nWw~AB`{~wCbA2kUcDW|$+pr~L0jJnw!MS~J?NZfn;B5XTox=`K zwu=Vm1VxsUDsVRxNz{yfs~D_s{VWhG5s`xmn2q*tknl80W{$k!Bq0RsQkA^ge*euw z$9^`{lUIK8fKU+V&|GZ>gL1P`$&)F&8Z3K~d;UT+1~rJaow*VX^d$h+HQ<43ItC%> zAtLhaM;6FGk`TM322)w@kUZ*%bdh45MbM2o3~_3=a2&pIZ!aJyObt1<>?gl2)C;7U z3X(;R=h?5N0%pvCF8uW$WGxL3p&fh~9n#Q}!Sne3HuXrs#$Z#4evll0%J!+p5biA=R`pO0el;|rB2fZ=m5w?X zdFr$gJbXR#rLxn!=g#n_AJ2veLsf$;E>F=a>IM_vJ@eC+n%%#Hve=tiIVzcCeJ8a1 zsvo{_Z;NqCZubgdVz4u@XdNzROyF2!mVwGTxdRVhf3v1z#Ntp>&5-m~=)##)QpYdy z_`MOdyE8DO^^;rop!kZ7uTt6FYnT9VF9d#YGa1<(HdBMmpY{s*k#R>d2>+7{`hO}S zpo$fYq^`yIXlmNPty?cq$ee|&RVk{p)kAfn_DitvVv ziX<9VM2@90a`>r~$c7RMNpsF9k`6DKGZ~Rd4%HmvHDidZ$s9Hwdw%!+e(vYGp69;q z>-+tDKZm;!y8jsF){N=vw2Yb0k_77_X)Cx5)cX>am99Oo=Cp{p9Ob^U$%n}{BAv8~ z99e50n%5`S0GM} zE|~ZinKunPC-SwF4Fs$Hbid;72tSC#-bO0hV5TnX+M3_p^_KEC8)h2!=__U}q>G2H zLboKe$_1U*ThjkazapHez)N<5&hVtpK|Qo@teYtygm?EKUI$i}-*DP)WgKIJ$30XC?NiI14XH9h0`-5} zu?JphGa%h{R%_()+;S#-z_O&TYJM^$s*J~Y>2UeVP^E1C)k3Y$T5h6)!#^##DpgJB z4+#5T%a1T;YYOM~;1SZ1)vY>$z1hC+w&ZUAL_c_>_#e_hGdfFTL2A#PMdA@{k9;L0 zE)HjycqBxP|2;0}TCQUYqiPFY6$+hMA9Z`7f7FnU=Kv zwGNwme>m*r)WoI>F;2uryuws)Vr_-`U{U$ud6n_`Z=Y4ZGAeuG&#t8Q%5nRPPo9&! zvVrPeyGv(0U8z}=5M^Te>)QaDEU>X?G=cB~s{n8KQ92<8u}GHSuK42TOUyUuccxVI z-x3ic`S1`P{apya4i#=!1R<8r382R;Bw;9shScqnN6*ktHc_R%!eK0uiCBtF<)03m zgNe9tBNkRfpFZxobybF;Opu3C%@zw;y}iZ_ zQ*b=x$YkkjU4uZ``oM}q=yasYk7mIFf#EpK`#Nn1)&lF#VvOTe& z8Gs~$#(ONgWb#AVNYL6Rq10gi>y>*ZuM6XD*t7p$DGQYEc(6P1IUal6l`vTlnM!>u z>A4Zsa!pY0pM0kI4U17>$59{{pJ0bR@b?8fc?Iw2=71?WEh|!I+8D9#$huiSq%AmlhX_nk{=LXX_|5BnRJlQnhPE`s3gz*Hc>PyOuMQ4g@t%eRN8&)`2= z0ifjL8EcqKiyG%F&61$uqex4t(q|*<3eMZVK7a?txVJ17>1$6$D(q4xL?Tqwj09hUKPpn&PrW;qRFmg9jjYW@fNWWtWZH)D z`8WQvKFXgoDXl0Ikirg%l==}JeG&`O~axxuXwe>s~8O2cp%V^>_pdXC*wBd!y#vbtRr7X zReVLm(Yce(q8DQ;_PI-XIf5Qe36_Hn>T}Rf#S2Wyc-*DDmf{y_r40<`?E@&020E{f z+@#L_aVgW|IoOI6mz@rOYy?hHu=j)n<}AKVN0|R#e!P)2LIkwij~QS)t`42LzDV5Evo%$P&sL zPUw(Y(6&fK?WP9G&7t9`-4X;+|Pa zM%!fE&zb3!GV3Le9hh3oz$_~VRn$l)$v2MbEDteFauIo*1!Cm-eTCC}?x!AZ$?EC4 z#wqN3r*{r3NUfN`U4Bc06CUg=pf-hZXR=AV*gp$%e`}Tdb-)l5G^EFbG<3*`Deo5~$En;iNz4?$i-odzCf;&!kJL09i zlM9XAe>_zO2YtEl^G|!?)gmh$&eSE)q%wd?cPOpo1KR>`!>DL$!%T0H1BEOQiF_Q^!Dv_)5M10{sNX=A-`s!v5N7Ohht{*El zq2P)-X|ZvEUBnqXtoHri0rj%7CYI9Ya9Ec@!3X&?@4OyZce2;PLpL=_44lN&S%(Sg z^+!jJ8tvxc9FDm?5LS3-;$|Qv*+K6M?*`iSj_Kxss|~azjY*jElz~x#P!32xv{K6F zZ9Q&XYQ+q|aT=t-*MQ9-yH+r_fpXu<-ntDf+qcNR-g4TsO~5zXh<-CCMr<`&FK7#8 z_FfV}foDa#&7O>5V8y&n%k$3>j!^9HCegTVg5x%#ftj9qV=)SJxV&j34R{iy>DM<5BmTIPL5UC%Kwcq_hZpir?31qI%wgN#d3qV`uY~M@?X1&!r z2RS~gpO2M@*C&J}_PMxiaHk~8jfXwO+>_yo($$GfZ|cMDbT2vQ5$6(^H>?8I>thLr z_dzIYBroXEwrrJGvX$%3fzdHrh!hwc!vq`pqreg_LYBJ+E+PA(Oqx&c4E^YD^xoAhc%Nzqfwdr0EB>o@{>~4-kd*W5 ke?sM-s={fXVHn9OH=eAkY>@}|1tLycpFR2Sai7@#1IyxIU;qFB literal 66795 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 z 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 G=>GsXI47F` diff --git a/icons/mob/jungle/leaper.dmi b/icons/mob/jungle/leaper.dmi new file mode 100644 index 0000000000000000000000000000000000000000..39f807a191c2e89592dc9d53daffde7584e5419d GIT binary patch literal 6479 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 literal 0 HcmV?d00001 diff --git a/icons/mob/jungle/mook.dmi b/icons/mob/jungle/mook.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c9265b22a0ad201b5cfc7f102ff610268157245b GIT binary patch literal 23590 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 ZRB$MC*ufz(2#m#G7mQ2|3-ujw{{fJ{#Cre$ literal 0 HcmV?d00001 diff --git a/icons/mob/jungle/seedling.dmi b/icons/mob/jungle/seedling.dmi new file mode 100644 index 0000000000000000000000000000000000000000..01e91c6c292c27b9ef399988f323449a19776fce GIT binary patch literal 11385 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 T8=ru?#2`g^)o10hM)3aygn=(% literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 3b58a075e4..c3775a64ec 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1784,7 +1784,6 @@ #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" #include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" diff --git a/tgstation.dme.rej b/tgstation.dme.rej new file mode 100644 index 0000000000..a5ff4dc3cb --- /dev/null +++ b/tgstation.dme.rej @@ -0,0 +1,13 @@ +diff a/tgstation.dme b/tgstation.dme (rejected hunks) +@@ -1746,6 +1745,11 @@ + #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" + #include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" + #include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" ++#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" + #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" + #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" + #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" From 8f4a6133f9e27020974760d2952472134b8cfd3f Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 20:45:51 -0700 Subject: [PATCH 2/3] dme --- tgstation.dme | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tgstation.dme b/tgstation.dme index c3775a64ec..79842c5ece 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1801,6 +1801,14 @@ #include "code\modules\mob\living\simple_animal\hostile\wumborian_fugu.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\boss.dm" #include "code\modules\mob\living\simple_animal\hostile\bosses\paperwizard.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" +#include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm" From 985b8767065f48d6f9f67745ac2a9cb3ef493fa1 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 29 Aug 2017 20:47:20 -0700 Subject: [PATCH 3/3] woops --- tgstation.dme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index bca2fda847..79842c5ece 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1784,7 +1784,6 @@ #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\killertomato.dm" #include "code\modules\mob\living\simple_animal\hostile\mecha_pilot.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" @@ -1805,6 +1804,11 @@ #include "code\modules\mob\living\simple_animal\hostile\gorilla\emotes.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\gorilla.dm" #include "code\modules\mob\living\simple_animal\hostile\gorilla\visuals_icons.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\_jungle_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\leaper.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mega_arachnid.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\mook.dm" +#include "code\modules\mob\living\simple_animal\hostile\jungle\seedling.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\colossus.dm"