From 639dde2caa5c797da26c842afb098499cb0d87e4 Mon Sep 17 00:00:00 2001 From: FluffMedic <109300046+FluffMedic@users.noreply.github.com> Date: Sun, 8 Feb 2026 18:01:24 -0500 Subject: [PATCH] Astral Collective Part 1. (#12361) --- .../game/turfs/simulated/outdoors/grass_ch.dm | 5 +- .../simple_mob/subtypes/bullet_heck/base.dm | 1 + .../subtypes/bullet_heck/bullet_patterns.dm | 4 +- .../subtypes/bullet_heck/eclipse.dm | 633 ++----- .../subtypes/bullet_heck/hivebot.dm | 1 + .../subtypes/bullet_heck/other_attacks.dm | 45 + .../subtypes/bullet_heck/puddle_mechanic.dm | 8 + .../simple_mob/subtypes/bullet_heck/tyrian.dm | 41 +- .../humanoid/eclipse/astral_collective.dm | 441 +++++ .../subtypes/humanoid/eclipse/eclipse.dm | 1019 ----------- .../subtypes/humanoid/eclipse/heads.dm | 668 ------- .../subtypes/humanoid/eclipse/lore.dm | 153 -- .../subtypes/humanoid/eclipse/noms.dm | 149 -- .../subtypes/humanoid/starhunters/avatar.dm | 219 --- .../subtypes/humanoid/starhunters/base.dm | 156 -- .../subtypes/humanoid/starhunters/food.dm | 108 -- .../subtypes/humanoid/starhunters/hunters.dm | 242 --- .../subtypes/humanoid/starhunters/passive.dm | 128 -- .../humanoid/starhunters/tradercode.dm | 392 ---- .../modules/projectiles/precursor/eclipse.dm | 161 +- modular_chomp/icons/mob/eclipse.dmi | Bin 140506 -> 38769 bytes modular_chomp/icons/mob/starhunters.dmi | Bin 7122 -> 0 bytes .../icons/obj/guns/precursor/eclipse.dmi | Bin 4135 -> 4093 bytes .../common_submaps/gateway/hiddeneclipse.dmm | 1516 ++++------------ .../overmap/planets/tyr/tyr.dmm | 658 +++---- .../space_pois/starhuntersarena_70x70.dmm | 8 +- .../maps/southern_cross/southern_cross-6.dmm | 1583 ++++++++--------- .../wilderness/bountyhunters2.dmm | 4 +- vorestation.dme | 11 +- 29 files changed, 2264 insertions(+), 6090 deletions(-) create mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/astral_collective.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/eclipse.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/heads.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/lore.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/noms.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/avatar.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/base.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/food.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/hunters.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/passive.dm delete mode 100644 modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/tradercode.dm delete mode 100644 modular_chomp/icons/mob/starhunters.dmi diff --git a/code/game/turfs/simulated/outdoors/grass_ch.dm b/code/game/turfs/simulated/outdoors/grass_ch.dm index 4e84152b25..0ca918d65b 100644 --- a/code/game/turfs/simulated/outdoors/grass_ch.dm +++ b/code/game/turfs/simulated/outdoors/grass_ch.dm @@ -27,8 +27,6 @@ GLOBAL_LIST_INIT(grass_animals,list( /mob/living/simple_mob/animal/sif/duck = 24, /obj/random/mob/multiple/sifmobs = 6, /mob/living/simple_mob/humanoid/cultist/tesh = 2, - /mob/living/simple_mob/humanoid/eclipse/solar/froststalker = 2, - /mob/living/simple_mob/humanoid/eclipse/lunar = 1, /mob/living/simple_mob/humanoid/merc/ranged/laser = 2, /mob/living/simple_mob/humanoid/cultist/magus/rift = 0.05 ), @@ -48,8 +46,7 @@ GLOBAL_LIST_INIT(grass_animals,list( /mob/living/simple_mob/animal/space/mouse_army/operative = 6, /mob/living/simple_mob/animal/space/mouse_army/pyro = 6, /mob/living/simple_mob/animal/space/mouse_army/ammo = 6, - /mob/living/simple_mob/mechanical/mecha/mouse_tank/livewire = 2, - /mob/living/simple_mob/humanoid/eclipse/lunar = 6 + /mob/living/simple_mob/mechanical/mecha/mouse_tank/livewire = 2 ), "seasonalspring" = list( /mob/living/simple_mob/vore/alienanimals/teppi = 10, //CHOMP Edit diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/base.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/base.dm index 7971d06a30..abe59becc8 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/base.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/base.dm @@ -11,6 +11,7 @@ shock_resist = -0.2 deflect_chance = 0 movement_cooldown = 10 + damage_fatigue_mult = 0 status_flags = null special_attack_min_range = 0 special_attack_max_range = 14 diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/bullet_patterns.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/bullet_patterns.dm index eb95bc3510..924fcc6fc2 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/bullet_patterns.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/bullet_patterns.dm @@ -812,7 +812,7 @@ return var/list/potential_targets = ai_holder.list_targets() for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/eclipse)) + if(istype(entry, /mob/living/simple_mob/mechanical/mecha/eclipse)) potential_targets -= entry if(potential_targets.len) var/iteration = clamp(potential_targets.len, 1, 3) @@ -860,7 +860,7 @@ return var/list/potential_targets = ai_holder.list_targets() for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/eclipse)) + if(istype(entry, /mob/living/simple_mob/mechanical/mecha/eclipse)) potential_targets -= entry if(potential_targets.len) var/iteration = clamp(potential_targets.len, 1, 3) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/eclipse.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/eclipse.dm index 63f779c95a..aacd921c2e 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/eclipse.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/eclipse.dm @@ -1,421 +1,57 @@ -//Most mechas have a strange defense mechanism -//This one however, is the simplest one, more meant as an intro -/mob/living/simple_mob/mechanical/mecha/eclipse/antipersonal_unit //Melts folks with lasers - name = "Eclipse Expirmental Anti-Infantary Unit" - health = 400 - maxHealth = 400 - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorge - armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 90, bio = 100, rad = 100) - icon_state = "orb" - wreckage = /obj/structure/loot_pile/mecha/odd_gygax - -/mob/living/simple_mob/mechanical/mecha/eclipse/antipersonal_unit/do_special_attack(atom/A) - switch(a_intent) - if(I_DISARM) //phase3 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 20, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - Beam(A, icon_state = "solar_beam", time = 2 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - - if(I_HURT) //phase1 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 8, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - Beam(A, icon_state = "solar_beam", time = 2 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - if(I_GRAB) // Phase 2 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 12, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - Beam(A, icon_state = "solar_beam", time = 1.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 1 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - - - -//Nigh unbreakable defenses except during certian attack phases. -/mob/living/simple_mob/mechanical/mecha/eclipse/mining_guard //Explosive death - name = "Eclipse Expirmental Mining Mecha" - desc = "You mecha guarded by a powerful shield. Perhaps it will drop at some point." - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - shock_resist = 1 - wreckage = /obj/structure/loot_pile/mecha/odd_ripley - attackcycle = 1 - -/mob/living/simple_mob/mechanical/mecha/eclipse/mining_guard/do_special_attack(atom/A) - switch(a_intent) - if(I_DISARM) //phase3 - if(attackcycle == 1) - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 12, 2, 10), 1 SECOND, TIMER_DELETE_ME) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100) - icon_state = "mining_mecha" - attackcycle = 0 - else if(attackcycle == 2) - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 3, 15), 0.5 SECONDS, TIMER_DELETE_ME) - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - attackcycle = 0 - else if(attackcycle == 3) - specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor - addtimer(CALLBACK(src, PROC_REF(chain_burst), A, 1, 15), 0.5 SECONDS, TIMER_DELETE_ME) - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - attackcycle = 0 - if(I_HURT) //phase1 - if(attackcycle == 1) - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 6, 2, 10), 1 SECOND, TIMER_DELETE_ME) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100) - icon_state = "mining_mecha" - attackcycle = 0 - else if(attackcycle == 2) - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 3, 20), 0.5 SECONDS, TIMER_DELETE_ME) - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - attackcycle = 0 - else if(attackcycle == 3) - specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor - addtimer(CALLBACK(src, PROC_REF(chain_burst), A, 1, 20), 0.5 SECONDS, TIMER_DELETE_ME) - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - attackcycle = 0 - if(I_GRAB) // Phase 2 - if(attackcycle == 1) - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 8, 2, 10), 1 SECOND, TIMER_DELETE_ME) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100) - icon_state = "mining_mecha" - attackcycle = 0 - else if(attackcycle == 2) - specialattackprojectile = /obj/item/projectile/energy/eclipse/lorgealien - addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 3, 15), 0.5 SECONDS, TIMER_DELETE_ME) - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - attackcycle = 0 - else if(attackcycle == 3) - specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor - addtimer(CALLBACK(src, PROC_REF(chain_burst), A, 1, 15), 0.5 SECONDS, TIMER_DELETE_ME) - armor = list(melee = 99, bullet = 99, laser = 99, energy = 99, bomb = 90, bio = 100, rad = 100) - icon_state = "shielded_mining_mecha" - attackcycle = 0 - - -//radidation gimmick go brrrr -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha - name = "Eclipse Expirmental Enginering Mecha" - health = 300 - maxHealth = 300 - desc = "A mecha made for enginering purposes, with several alterations to be an odd ball combat unit." - specialattackprojectile = /obj/item/projectile/energy/excavate/weak - armor = list(melee = 30, bullet = 30, laser = 30, energy = 40, bomb = 90, bio = 100, rad = 100) - icon_state = "engi_spider" - shock_resist = 1 - projectiletype = /obj/item/projectile/beam/chain_lightning - reload_max = 1 - reload_time = 0.5 SECONDS - ranged_attack_delay = 2 SECONDS - - glow_color = "#14ff20" - light_color = "#14ff20" - glow_range = 5 - glow_intensity = 3 - - special_attack_cooldown = 60 - - pilot_type = /mob/living/simple_mob/humanoid/eclipse/head/engineer - - var/rads = 5 - -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha/do_special_attack(atom/A) - rads += 15 - -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha/handle_special() - if(stat != DEAD) - irradiate() - ..() - -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha/proc/irradiate() - SSradiation.radiate(src, rads) - -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha/ranged_pre_animation(atom/A) - Beam(get_turf(A), icon_state = "sniper_beam", time = 2 SECONDS, maxdistance = 15) - . = ..() - -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha/shoot_target(atom/A) - set waitfor = FALSE - - if(!istype(A) || QDELETED(A)) - return - - setClickCooldown(get_attack_speed()) - - face_atom(A) - - var/atom/orig_targ = A - - if(ranged_attack_delay) - A = get_turf(orig_targ) - ranged_pre_animation(A) - handle_attack_delay(A, ranged_attack_delay) // This will sleep this proc for a bit, which is why waitfor is false. - - if(needs_reload) - if(reload_count >= reload_max) - try_reload() - return FALSE - - /* - * CHOMP Addition: This section here is (duplicated) special snowflake code because sniper does not call parent. Basically, this is a non-stupid version of the above intended for ranged mobs. - * ranged_attack_delay is stupid because it sleeps the entire mob. - * This new ranged_cooldown_time is smarter in the sense that it is an internalized timer. Try not to confuse the names. - */ - if(ranged_cooldown_time) //If you have a non-zero number in a mob's variables, this pattern begins. - if(ranged_cooldown <= world.time) //Further down, a timer keeps adding to the ranged_cooldown variable automatically. - visible_message(span_bolddanger("\The [src]") + " fires at \the [A]!") //Leave notice of shooting. - shoot(A) //Perform the shoot action - if(casingtype) //If the mob is designated to leave casings... - new casingtype(loc) //... leave the casing. - ranged_cooldown = world.time + ranged_cooldown_time + ((injury_level / 2) SECONDS) //Special addition here. This is a timer. Keeping updating the time after shooting. Add that ranged cooldown time specified in the mob to the world time. - return TRUE //End these commands here. - // CHOMPAddition End - - visible_message(span_bolddanger("\The [src]") + " fires at \the [orig_targ]!") - shoot(A) - if(casingtype) - new casingtype(loc) - - if(ranged_attack_delay) - ranged_post_animation(A) - - return TRUE - -//High overall defense, swaps between Burn and brute defense based off what was just used. -/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/armored //The final boss - name = "Eclipse Expirmental Janus" - desc = "A powerful looking mecha, it's shield appears to swap to protect itself against the most rescent damage type." - armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 80, bio = 100, rad = 100) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - pilot_type =/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/phasetwo - wreckage = /obj/item/prop/tyrlore/monodisc - icon_state = "eclipse_janus" - attackcycle = 1 - - -/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/armored/bullet_act(obj/item/projectile/P) - .= ..() - if(istype(P, /obj/item/projectile/bullet)) - armor = list(melee = 90, bullet = 90, laser = 30, energy = 30, bomb = 80, bio = 100, rad = 100) - icon_state = "eclipse_janus_red" - visible_message(span_cult("[P] has been adapted too!.")) - else - armor = list(melee = 30, bullet = 30, laser = 80, energy = 80, bomb = 80, bio = 100, rad = 100) - icon_state = "eclipse_janus_orange" - visible_message(span_cult("[P] has been adapted too!.")) - -/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/armored/do_special_attack(atom/A) - switch(a_intent) - if(I_DISARM) //phase3 - if(attackcycle == 1) - rng_cycle = rand(1,4) - addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, rng_cycle, 2), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor - addtimer(CALLBACK(src, PROC_REF(dual_burst), A, rng_cycle), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 8, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 4) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor - addtimer(CALLBACK(src, PROC_REF(chain_burst), A, rng_cycle), 1 SECOND, TIMER_DELETE_ME) - attackcycle = 0 - if(I_HURT) //phase1 simple projectiles - if(attackcycle == 1) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 8, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - Beam(A, icon_state = "solar_beam", time = 2 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 4) - rng_cycle = rand(1,4) - addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, rng_cycle, 3), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - if(I_GRAB) // Phase 2 - if(attackcycle == 1) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 8, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,4) - addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, rng_cycle, 2), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 4) - rng_cycle = rand(1,4) - specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor - addtimer(CALLBACK(src, PROC_REF(checker_board), A, rng_cycle), 1 SECOND, TIMER_DELETE_ME) - attackcycle = 0 - -/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/phasetwo //we ain't done yet - name = "Collapsing Janus" - armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 80, bio = 100, rad = 100) //our shielding is gone - health = 400 - maxHealth = 400 - desc = "The mecha is smoking, it's drone and shield is broken, but it's pilot is pushing it further." - specialattackprojectile = /obj/item/projectile/energy/eclipse/janusjavelin - wreckage = /obj/item/prop/tyrlore/neonjanus - pilot_type = /mob/living/simple_mob/mechanical/mecha/eclipse/sniper - has_repair_droid = FALSE //broken mecha - icon_state = "eclipse_janus" - -/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/phasetwo/do_special_attack(atom/A) - if(attackcycle == 1) - attackcycle = rand(4,6) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 14, attackcycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - else if(attackcycle == 2) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, attackcycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = rand(4,6) - else if(attackcycle == 3) - addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, attackcycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = rand(4,6) - else if(attackcycle == 4) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 5) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 7, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 6) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, rng_cycle, 5), 3 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - - -/mob/living/simple_mob/mechanical/mecha/eclipse/sniper //one last stand - name = "Eclipse Lead Pilot" - icon_state = "captian" - icon_living = "captian" - health = 200 - maxHealth = 200 - ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 50, bio = 100, rad = 100) - specialattackprojectile = /obj/item/projectile/arc/explosive_rocket - wreckage = /obj/item/prop/tyrlore/truegoal - has_repair_droid = FALSE - -/mob/living/simple_mob/mechanical/mecha/eclipse/sniper/do_special_attack(atom/A) - . = TRUE - if(attackcycle == 1) - addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, 2, 4), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - specialattackprojectile = /obj/item/projectile/beam/heavylaser/cannon - Beam(A, icon_state = "solar_beam", time = 0.75 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, 1), 1 SECOND, TIMER_DELETE_ME) - attackcycle = 0 - /mob/living/simple_mob/mechanical/mecha/eclipse/battle_top - name = "eclipse cryo top" + name = "astral collective cryo top" icon_state = "mecha_top" icon_living = "mecha_top" + health = 3000 + maxHealth = 3000 wreckage = /obj/item/melee/energy/sword/top_shield - specialattackprojectile = /obj/item/projectile/energy/eclipse/chillingwind - desc = "It appears to be spinning at rapid speeds; enough to deflect projectiles. The air around it feels frigid.." + desc = "It appears to be spinning at rapid speeds; enough to deflect projectiles. The air around it feels frigid." + specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/chillingwind + projectiletype = /obj/item/projectile/energy/eclipse_boss/chillingwind + pilot_type = /mob/living/simple_mob/humanoid/astral_collective/purity /mob/living/simple_mob/mechanical/mecha/eclipse/battle_top/do_special_attack(atom/A) - var/rng_cycle + rng_cycle = rand(1,3) switch(a_intent) - if(I_DISARM) //phase3 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - if(I_HURT) //phase1 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - - if(I_GRAB) // Phase 2 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 25), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - + switch(attackcycle) + if(1) + specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/chillingwind + addtimer(CALLBACK(src, PROC_REF(rising_star), A, rng_cycle, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(2) + specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/chillingwind + addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, rng_cycle, 18), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(3) + addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, rng_cycle, /datum/modifier/mmo_drop/eclipse_iceball), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(I_GRAB) //phase2 + switch(attackcycle) + if(1) + specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/chillingwind + addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, 3, 8), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(2) + specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor + addtimer(CALLBACK(src, PROC_REF(chain_burst), A, rng_cycle, 6), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(3) + addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, rng_cycle, /datum/modifier/mmo_drop/eclipse_iceball), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(I_DISARM) //phase3 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, rng_cycle, /datum/modifier/mmo_drop/eclipse_iceball), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(2) + specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor + addtimer(CALLBACK(src, PROC_REF(checker_board), A, rng_cycle), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(3) + projectiletype = /obj/item/projectile/energy/eclipse_boss/chillingwind + addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 8), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 /mob/living/simple_mob/mechanical/mecha/eclipse/battle_top/handle_special() @@ -428,72 +64,117 @@ if(!IIsAlly(L)) L.add_modifier(/datum/modifier/chilled, 3, src) -/mob/living/simple_mob/mechanical/mecha/eclipse/excavate_head - name = "Xenoarch Lead" - desc = "A unathi wearing what appears to be a modified breacher suit. Something seems off though" - icon_state = "cursor_guard" - icon_living = "cursor_guard" - armor = list(melee = 80, bullet = 80, laser = 80, energy = 80, bomb = 80, bio = 100, rad = 100) - wreckage = /obj/item/prop/tyrlore/stolenbreacher - specialattackprojectile = /obj/item/projectile/energy/eclipse/mining - desc = "A being wearing what appears to be a modified breacher outfit." - projectiletype = /obj/item/projectile/arc/explosive_rocket - ranged_cooldown = 50 +/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/ufo + name = "astral collective deflection saucer" + icon_state = "UPshield_mecha" + icon_living = "UPshield_mecha" + desc = "A metallic flying saucer, a reflective barrier around it." + faction = FACTION_ECLIPSE + icon = 'modular_chomp/icons/mob/eclipse.dmi' + health = 1500 + maxHealth = 1500 + specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/metalsphere + projectiletype = /obj/item/projectile/energy/eclipse_boss/metalsphere + wreckage = /obj/item/prop/deconstructable/gigacell + pilot_type = /mob/living/simple_mob/humanoid/astral_collective/purity - -/mob/living/simple_mob/mechanical/mecha/eclipse/excavate_head/updatehealth() - . = ..() - if(health < maxHealth*0.3) - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100) - else if(health < maxHealth*0.6) - armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 100, rad = 100) - else if (health < maxHealth*0.9) - armor = list(melee = 60, bullet = 60, laser = 60, energy = 50, bomb = 60, bio = 100, rad = 100) - - -/mob/living/simple_mob/mechanical/mecha/eclipse/excavate_head/do_special_attack(atom/A) - var/rng_cycle +/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/ufo/do_special_attack(atom/A) switch(a_intent) - if(I_DISARM) //phase3 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 20, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - Beam(A, icon_state = "solar_beam", time = 2 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - if(I_HURT) //phase1 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 8, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - Beam(A, icon_state = "solar_beam", time = 2 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - if(I_GRAB) // Phase 2 - if(attackcycle == 1) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(random_firing), A, 12, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 2) - rng_cycle = rand(1,3) - addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 - else if(attackcycle == 3) - rng_cycle = rand(1,3) - Beam(A, icon_state = "solar_beam", time = 1.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 1 SECONDS, TIMER_DELETE_ME) - attackcycle = 0 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(cross_spin), A, 2, 5), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 100 + icon_state = "UPshield_mecha" + if(2) + addtimer(CALLBACK(src, PROC_REF(rising_star), A, 3, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 100 + icon_state = "UPshield_mecha" + if(3) + addtimer(CALLBACK(src, PROC_REF(random_firing), A, 10, 1, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + icon_state = "shield_mecha" + if(I_GRAB) //phase2 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 2, 5), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 100 + icon_state = "UPshield_mecha" + if(2) + addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, 3, 8), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 100 + icon_state = "UPshield_mecha" + if(3) + addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 10, 1, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + icon_state = "shield_mecha" + if(I_DISARM) //phase3 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 2, 4), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 100 + icon_state = "UPshield_mecha" + if(2) + addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 3, 15), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 100 + icon_state = "UPshield_mecha" + if(3) + addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 10, 1, 5), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + parry_chance = 0 + icon_state = "shield_mecha" + +/mob/living/simple_mob/mechanical/mecha/eclipse/janus + name = "astral collective janus" + icon_state = "astral_janus" + icon_living = "astral_janus" + desc = "A janus made from stolen tech." + health = 4500 + maxHealth = 4500 + specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/energyjavelin + projectiletype = /obj/item/projectile/energy/eclipse_boss/energyjavelin + wreckage = /obj/item/prop/deconstructable/gigacell + pilot_type = /mob/living/simple_mob/humanoid/astral_collective/purity + +/mob/living/simple_mob/mechanical/mecha/eclipse/janus/do_special_attack(atom/A) + rng_cycle = rand(1,3) + switch(a_intent) + if(I_HURT) //phase1 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 4, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(2) + addtimer(CALLBACK(src, PROC_REF(rising_star), A, rng_cycle, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(3) + addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 4, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(I_GRAB) //phase2 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(death_wall), A, rng_cycle, 9), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(2) + addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, rng_cycle), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(3) + addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, rng_cycle, 7), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(I_DISARM) //phase3 + switch(attackcycle) + if(1) + addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, rng_cycle, /datum/modifier/mmo_drop/blade_boss_short), 2.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(2) + addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 3, 12), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 + if(3) + addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 3), 0.5 SECONDS, TIMER_DELETE_ME) + attackcycle = 0 diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/hivebot.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/hivebot.dm index a54e0fb7f1..199e9c77f7 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/hivebot.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/hivebot.dm @@ -58,6 +58,7 @@ size_multiplier = 2 maxHealth = 600 health = 600 + projectiletype = /obj/item/projectile/energy/wallbreaker/boss wreckage = /obj/structure/loot_pile/surface/alien/engineering ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases/no_movement anchored = 1 diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/other_attacks.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/other_attacks.dm index f45c9fda7b..2faa5381a2 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/other_attacks.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/other_attacks.dm @@ -42,6 +42,51 @@ s2.start() attackcycle = next_cycle +/obj/effect/artillery_attack + anchored = TRUE + density = FALSE + unacidable = TRUE + mouse_opacity = 0 + icon = 'icons/effects/effects.dmi' + icon_state = "drop_marker" + var/ammmotype = /obj/effect/falling_effect/callstrike_bomb + +/obj/effect/artillery_attack/Initialize(mapload) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/effect/artillery_attack/LateInitialize() + var/delay = rand(25, 30) + addtimer(CALLBACK(src, PROC_REF(spawner)), delay, TIMER_DELETE_ME) + +/obj/effect/artillery_attack/proc/spawner() + new ammmotype(src.loc) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.7 SECONDS, TIMER_DELETE_ME) + +/obj/effect/falling_effect/callstrike_bomb + falling_type = /obj/effect/callstrike + crushing = FALSE + +/obj/effect/callstrike + anchored = TRUE + density = FALSE + mouse_opacity = 0 + icon ='modular_chomp/icons/obj/guns/precursor/tyr.dmi' + +/obj/effect/callstrike/Initialize(mapload) + .=..() + icon_state = "arti" + +/obj/effect/callstrike/end_fall(var/crushing = FALSE) + for(var/mob/living/L in loc) + var/target_zone = ran_zone() + var/blocked = L.run_armor_check(target_zone, "laser") + + if(!L.apply_damage(70, BURN, target_zone, blocked)) + break + playsound(src, 'sound/effects/clang2.ogg', 50, 1) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.25 SECONDS, TIMER_DELETE_ME) + /mob/living/simple_mob/mechanical/mecha/eclipse/proc/gravity_surge(atom/target, var/next_cycle, var/pull_radius, var/pull_strength) if(!target) return diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/puddle_mechanic.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/puddle_mechanic.dm index fe915273f8..37a959cb70 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/puddle_mechanic.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/puddle_mechanic.dm @@ -68,6 +68,7 @@ /obj/item/projectile/bullet/incendiary/dragonflame/occult range = 4 speed = 4 + damage = 10 /obj/item/grenade/shooter/auto_explode/occult_fireball spread_range = 2 @@ -75,3 +76,10 @@ /datum/modifier/mmo_drop/occult_fireball puddleitem = /obj/item/grenade/shooter/auto_explode/occult_fireball + +/obj/item/grenade/shooter/auto_explode/eclipse_iceball + spread_range = 2 + projectile_types = list(/obj/item/projectile/energy/eclipse_boss/chillingwind) + +/datum/modifier/mmo_drop/eclipse_iceball + puddleitem = /obj/item/grenade/shooter/auto_explode/eclipse_iceball diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/tyrian.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/tyrian.dm index c101ba611c..cef996c8d8 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/tyrian.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/bullet_heck/tyrian.dm @@ -52,6 +52,7 @@ icon_living = "poison_boss" wreckage = /obj/item/prop/tyrlore/acid_boss specialattackprojectile = /obj/item/projectile/energy/neurotoxin/toxic/tyr_flora + projectiletype = /obj/item/projectile/energy/neurotoxin/toxic/tyr_flora var/regeneration_strength = -20 /mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/load_default_bellies() @@ -94,7 +95,7 @@ /mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/sonic_boss name = "experiment 10" desc = "A strange furball, the air vibrating around it." - specialattackprojectile = /obj/item/projectile/knockback/slow + specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin icon_state = "sonic_boss" icon_living = "sonic_boss" projectiletype = /obj/item/projectile/knockback/slow @@ -204,7 +205,26 @@ melee_attack_delay = 2.5 SECONDS movement_cooldown = 4 special_attack_cooldown = 8 SECONDS - evasion = 200 //forced to fight in melee lol + var/parry_chance = 100 + +/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/bullet_act(obj/item/projectile/P) + if(prob(parry_chance)) + visible_message(span_danger("The [P.name] gets reflected by [src]'s armor!"), \ + span_userdanger("The [P.name] gets reflected by [src]'s armor!")) + + // Find a turf near or on the original location to bounce to + if(P.starting) + var/new_x = P.starting.x + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) + var/new_y = P.starting.y + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) + var/turf/curloc = get_turf(src) + + // redirect the projectile + P.redirect(new_x, new_y, curloc, src) + P.reflected = 1 + + return -1 // complete projectile permutation + + return (..(P)) /mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/do_special_attack(atom/A) addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 1.5 SECONDS, TIMER_DELETE_ME) @@ -286,8 +306,8 @@ /mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai name = "swarm controler" desc = "A massive hivebot that has shifting bits of metal upon it's body." - health = 700 - maxHealth = 700 + health = 400 + maxHealth = 400 icon_state = "bright_green" icon_living = "bright_green" icon = 'modular_chomp/icons/mob/hivebot.dmi' @@ -363,16 +383,3 @@ adjustToxLoss(-1000) adjustOxyLoss(-1000) adjustCloneLoss(-1000) -/* -/mob/living/simple_mob/mechanical/hivebot/tyr/heart - name = "barrier unit" - icon = 'modular_chomp/icons/mob/tyr.dmi' - icon_state = "guardian" - icon_living = "guardian" - maxHealth = 1.5 LASERS_TO_KILL // 60 hp - health = 1.5 LASERS_TO_KILL - melee_damage_lower = 10 - melee_damage_upper = 10 - attack_armor_pen = 80 - movement_cooldown = 4 -*/ diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/astral_collective.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/astral_collective.dm new file mode 100644 index 0000000000..daa03087db --- /dev/null +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/astral_collective.dm @@ -0,0 +1,441 @@ +/mob/living/simple_mob/humanoid/astral_collective + name = "Astral Collective Unit" + tt_desc = "E Homo sapiens" + desc = "You shouldn't be seeing this." + icon = 'modular_chomp/icons/mob/eclipse.dmi' + icon_state = "medi" + icon_living = "medi" + icon_dead = "medi" + taser_kill = 0 + + faction = FACTION_ECLIPSE + movement_cooldown = 0 + + status_flags = 0 + + response_help = "pokes" + response_disarm = "shoves" + response_harm = "hits" + + health = 100 + maxHealth = 100 + harm_intent_damage = 0 + melee_damage_lower = 25 + melee_damage_upper = 25 + melee_attack_delay = 0.75 SECONDS + evasion = 20 + attack_sharp = 1 + attack_edge = 1 + attacktext = list("slashed", "stabbed") + projectile_dispersion = 0 + armor = list(melee = 30, bullet = 30, laser = 30, energy = 60, bomb = 20, bio = 100, rad = 100) // Simple mob immunuties plus minour armor + + can_be_drop_prey = FALSE + can_be_drop_pred = TRUE + pass_flags = PASSTABLE //mostly for the melee mobs. + softfall = TRUE //highly advanced spacesuit stuff + + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 + heat_damage_per_tick = 0 + + projectilesound = 'sound/weapons/Gunshot_light.ogg' + + ai_holder_type = /datum/ai_holder/simple_mob/ranged/astral_collective + + special_attack_cooldown = 15 SECONDS + special_attack_min_range = 0 + special_attack_max_range = 14 + + swallowTime = 3 SECONDS + vore_active = 1 + vore_capacity = 1 + vore_bump_chance = 10 + vore_stomach_name = "Stomach" + vore_default_item_mode = IM_DIGEST + vore_pounce_chance = 50 + vore_pounce_cooldown = 10 + vore_pounce_successrate = 75 + vore_pounce_falloff = 0 + vore_pounce_maxhealth = 100 + vore_standing_too = TRUE + unacidable = TRUE + + movement_cooldown = 0 + + loot_list = list(/obj/item/slime_extract/sepia = 75, + /obj/item/bone/skull = 100, + /obj/item/seeds/random = 60, + /obj/random/powercell = 20, + /obj/random/medical/pillbottle = 7, + /obj/random/firstaid = 3, + /obj/random/grenade/box = 5, + /obj/random/tool/power = 30, + /obj/random/tool/alien = 20, + /obj/random/tech_supply/component/nofail = 40, + /obj/random/medical = 12, + /obj/random/cash/big = 25, + /obj/random/material = 60, + /obj/random/material/refined = 50, + /obj/random/material/precious = 40, + /obj/random/janusmodule = 3, + /obj/item/dnainjector/random_verybad = 10, + /obj/item/stock_parts/scanning_module/omni = 10, + /obj/item/stock_parts/micro_laser/omni = 10, + /obj/item/stock_parts/capacitor/omni = 10, + /obj/item/stock_parts/manipulator/omni = 10, + /obj/item/stock_parts/matter_bin/omni = 10, + /obj/item/stock_parts/scanning_module/hyper = 25, + /obj/item/stock_parts/micro_laser/hyper = 25, + /obj/item/stock_parts/capacitor/hyper = 25, + /obj/item/stock_parts/manipulator/hyper = 25, + /obj/item/stock_parts/matter_bin/hyper = 25, + /obj/item/assembly/signaler/anomaly/flux = 7, + /obj/item/assembly/signaler/anomaly/bluespace = 7, + /obj/item/assembly/signaler/anomaly/grav = 7, + /obj/item/assembly/signaler/anomaly/dimensional = 7, + /obj/item/assembly/signaler/anomaly/bioscrambler = 7, + /obj/item/assembly/signaler/anomaly/hallucination = 7, + /obj/item/assembly/signaler/anomaly/pyro = 7, + /obj/item/assembly/signaler/anomaly/weather = 7, + ) + + + var/expirmental + +/mob/living/simple_mob/humanoid/astral_collective/Initialize(mapload) + . = ..() + expirmental = rand(1,7) + expirmentresult() + +/datum/modifier/astralcollect_swift + slowdown = -0.5 + evasion = 20 + +/datum/modifier/astralcollect_regen + mob_overlay_state = "poisoned" + +/datum/modifier/astralcollect_regen/tick() + holder.adjustBruteLoss(-8) + holder.adjustFireLoss(-8) + holder.adjustToxLoss(-8) + holder.adjustOxyLoss(-8) + holder.adjustCloneLoss(-8) + +/datum/modifier/astralcollect_titan + max_health_percent = 1.8 + +/datum/modifier/astralcollect_armour + incoming_damage_percent = 0.65 + +/datum/modifier/astralcollect_mistake + mob_overlay_state = "poisoned" + incoming_damage_percent = 1.35 + slowdown = 1 + max_health_percent = 0.75 + +/datum/modifier/astralcollect_solar + mob_overlay_state = "red_electricity_constant" + incoming_brute_damage_percent = 2 + incoming_fire_damage_percent = 0.3 + +/datum/modifier/astralcollect_lunar + mob_overlay_state = "blue_electricity_constant" + incoming_brute_damage_percent = 0.3 + incoming_fire_damage_percent = 2 + +/mob/living/simple_mob/humanoid/astral_collective/proc/expirmentresult() + switch(expirmental) + if(1) + add_modifier(/datum/modifier/astralcollect_swift, null, src) + size_multiplier -= 0.3 + if(2) + add_modifier(/datum/modifier/astralcollect_regen, null, src) + if(3) + add_modifier(/datum/modifier/astralcollect_titan, null, src) + size_multiplier += 0.6 + if(4) + add_modifier(/datum/modifier/astralcollect_armour, null, src) + size_multiplier += 0.3 + if(5) + add_modifier(/datum/modifier/astralcollect_mistake, null, src) + if(6) + add_modifier(/datum/modifier/astralcollect_solar, null, src) + if(7) + add_modifier(/datum/modifier/astralcollect_lunar, null, src) + if(8) + ai_holder_type = /datum/ai_holder/hostile/ranged/robust + if(9) + ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax + if(10) + projectile_dispersion = 10 + +/datum/ai_holder/simple_mob/ranged/astral_collective + pointblank = TRUE + can_breakthrough = TRUE + violent_breakthrough = TRUE + unconscious_vore = TRUE + handle_corpse = TRUE + hostile = TRUE + mauling = TRUE + destructive = TRUE + +/datum/ai_holder/simple_mob/ranged/astral_collective/pre_ranged_attack(atom/A) + holder.IMove(get_step(holder, pick(GLOB.alldirs))) + holder.face_atom(A) + + +/datum/ai_holder/simple_mob/ranged/astral_collective/post_ranged_attack(atom/A) + holder.IMove(get_step(holder, pick(GLOB.alldirs))) + holder.face_atom(A) + +/datum/ai_holder/simple_mob/ranged/astral_collective/post_melee_attack(atom/A) + holder.IMove(get_step_away(holder, A)) + holder.face_atom(A) + +/datum/ai_holder/simple_mob/melee/evasive/astral_collective + +/datum/ai_holder/simple_mob/melee/evasive/astral_collective/pre_special_attack(atom/A) + holder.IMove(get_step(holder, pick(GLOB.alldirs))) + holder.face_atom(A) + + +/datum/ai_holder/simple_mob/melee/evasive/astral_collective/post_special_attack(atom/A) + holder.IMove(get_step(holder, pick(GLOB.alldirs))) + holder.face_atom(A) + +/mob/living/simple_mob/humanoid/astral_collective/purity + name = "Astral Collective Purity" + desc = "A strange living bioweapon" + icon_state = "purity" + icon_living = "purity" + ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/astral_collective + melee_damage_lower = 32 //25ish with explo voidsuit + melee_damage_upper = 32 + attack_armor_pen = 20 + melee_attack_delay = 1.5 SECONDS + + health = 200 + maxHealth = 200 + + special_attack_cooldown = 3 SECONDS + special_attack_min_range = 0 + special_attack_max_range = 14 + +/mob/living/simple_mob/humanoid/astral_collective/purity/do_special_attack(atom/A) + adjustBruteLoss(-3) + adjustFireLoss(-3) + adjustToxLoss(-3) + adjustOxyLoss(-3) + adjustCloneLoss(-3) + +//the ranged mobs +/mob/living/simple_mob/humanoid/astral_collective/ranged + name = "Astral Collective Unit" + projectile_accuracy = 10 + needs_reload = TRUE + special_attack_cooldown = 7 SECONDS + reload_max = 7 + reload_time = 1.5 SECONDS + ranged_cooldown = 65 + +//snake creature +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle + desc = "A naga wrapped up in strange glowing armour." + icon_state = "noodle" + icon_living = "noodle" + projectiletype = /obj/item/projectile/energy/astral_collective/anti_mecha + +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle/do_special_attack(atom/A) + if((health / maxHealth) <= 0.5) + alpha = 180 + teleport_self(A) + +//taur creature +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur + desc = "A quadrapel creature with expirmental gear." + icon_state = "taur" + icon_living = "taur" + projectiletype = /obj/item/projectile/energy/astral_collective/armour_breaker + health = 125 + maxHealth = 125 + +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur/do_special_attack(atom/A) + expirmental = rand(1,5) + switch(expirmental) + if(1) + teleport_attack(A) + if(2) + gravity_surge(A) + if(3) + air_strike(A) + if(4) + repair_self(A) + if(5) + teleport_self(A) + +//teshari +/mob/living/simple_mob/humanoid/astral_collective/ranged/tesh + desc = "A teshari contained within prototype equipment." + icon_state = "tesh" + icon_living = "tesh" + projectiletype = /obj/item/projectile/energy/astral_collective/particle + health = 75 + maxHealth = 75 + +/mob/living/simple_mob/humanoid/astral_collective/ranged/tesh/do_special_attack(atom/A) + if((health / maxHealth) <= 0.5) + selfexplode_attack(A) + else + teleport_attack(A) + +//cannine +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf + desc = "A humanoid armored cannine folk." + icon_state = "wolf" + icon_living = "wolf" + projectiletype = /obj/item/projectile/energy/astral_collective/green + +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf/do_special_attack(atom/A) + gravity_surge(A) + +//lizard +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard + desc = "A humanoid heavily armoured lizardfolk." + icon_state = "breacher" + icon_living = "breacher" + projectiletype = /obj/item/projectile/energy/astral_collective/searing + health = 150 + maxHealth = 150 + +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard/do_special_attack(atom/A) + if((health / maxHealth) <= 0.5) + repair_self(A) + air_strike(A) + +//zaddat +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat + desc = "An armoured zaddat." + icon_state = "zaddat" + icon_living = "zaddat" + special_attack_cooldown = 1 SECOND + +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat/do_special_attack(atom/A) + projectiletype = pick(/obj/item/projectile/energy/astral_collective/anti_mecha, /obj/item/projectile/energy/astral_collective/armour_breaker, /obj/item/projectile/energy/astral_collective/searing, /obj/item/projectile/energy/astral_collective/green, /obj/item/projectile/energy/astral_collective/particle) + +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat/bullet_act(var/obj/item/projectile/Proj) + if(!Proj) + return + if(prob(60)) + visible_message(span_bolddanger("[Proj] is blocked by the shield.")) + if(Proj.firer) + ai_holder.react_to_attack(Proj.firer) + return + else + ..() + +/mob/living/simple_mob/humanoid/astral_collective/proc/teleport_attack(atom/target) + // Teleport attack. + if(!target) + to_chat(src, span_warning("There's nothing to teleport to.")) + return FALSE + + var/list/nearby_things = range(2, src) + var/list/valid_turfs = list() + + // All this work to just go to a non-dense tile. + for(var/turf/potential_turf in nearby_things) + var/valid_turf = TRUE + if(potential_turf.density) + continue + for(var/atom/movable/AM in potential_turf) + if(AM.density) + valid_turf = FALSE + if(valid_turf) + valid_turfs.Add(potential_turf) + + if(!(valid_turfs.len)) + to_chat(src, span_warning("There wasn't an unoccupied spot to teleport to.")) + return FALSE + + var/turf/target_turf = pick(valid_turfs) + + do_teleport(target, target_turf, channel = TELEPORT_CHANNEL_QUANTUM) + +/mob/living/simple_mob/humanoid/astral_collective/proc/selfexplode_attack(atom/target) + if(!target) + return FALSE + explosion(src.loc, 2, 3, 4, 5) + +/mob/living/simple_mob/humanoid/astral_collective/proc/gravity_surge(atom/target) + if(!target) + return FALSE + playsound(src, 'sound/weapons/wave.ogg', 75, 1) + for(target in range(7, src)) + target.singularity_pull(src, 3) + +/mob/living/simple_mob/humanoid/astral_collective/proc/air_strike(atom/target) + if(!target) + return FALSE + for(var/mob/living/L in orange(src, 14)) + if(L.stat != DEAD && !IIsAlly(L)) + L.add_modifier(/datum/modifier/mmo_drop/blade_boss_short, 3, src) + +/mob/living/simple_mob/humanoid/astral_collective/proc/repair_self(atom/target) + if(!target) + return FALSE + adjustBruteLoss(-70) + adjustFireLoss(-70) + adjustToxLoss(-70) + adjustOxyLoss(-70) + adjustCloneLoss(-70) + +/mob/living/simple_mob/humanoid/astral_collective/proc/teleport_self(atom/A) + // Teleport attack. + if(!A) + to_chat(src, span_warning("There's nothing to teleport to.")) + return FALSE + + var/list/nearby_things = range(4, A) + var/list/valid_turfs = list() + + // All this work to just go to a non-dense tile. + for(var/turf/potential_turf in nearby_things) + var/valid_turf = TRUE + if(potential_turf.density) + continue + for(var/atom/movable/AM in potential_turf) + if(AM.density) + valid_turf = FALSE + if(valid_turf) + valid_turfs.Add(potential_turf) + + if(!(valid_turfs.len)) + to_chat(src, span_warning("There wasn't an unoccupied spot to teleport to.")) + return FALSE + + var/turf/target_turf = pick(valid_turfs) + var/turf/T = get_turf(src) + + var/datum/effect/effect/system/spark_spread/s1 = new /datum/effect/effect/system/spark_spread + s1.set_up(5, 1, T) + var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/spark_spread + s2.set_up(5, 1, target_turf) + + + T.visible_message(span_warning("\The [src] vanishes!")) + s1.start() + + forceMove(target_turf) + playsound(target_turf, 'sound/effects/phasein.ogg', 50, 1) + to_chat(src, span_notice("You teleport to \the [target_turf].")) + + target_turf.visible_message(span_warning("\The [src] appears!")) + s2.start() diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/eclipse.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/eclipse.dm deleted file mode 100644 index ee126a20bb..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/eclipse.dm +++ /dev/null @@ -1,1019 +0,0 @@ -/////////////////////////////// -// Eclipse Mobs Go Here -/////////////////////////////// - -// Basic Version, the knife merc, or blood ininiate. Don't use them, or the eclipsesolar, lunar base versions either. -/mob/living/simple_mob/humanoid/eclipse - name = "Eclipse Initiate" - tt_desc = "E Homo sapiens" - desc = "You shouldn't be seeing this." - icon = 'modular_chomp/icons/mob/eclipse.dmi' - icon_state = "sun" - icon_living = "sun" - icon_dead = "statisgem" - icon_gib = "syndicate_gib" - taser_kill = 0 - - faction = FACTION_ECLIPSE - movement_cooldown = 0 - - status_flags = 0 - - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" - - health = 100 //old 40 - maxHealth = 100 - harm_intent_damage = 5 - melee_damage_lower = 15 //Tac Knife damage - melee_damage_upper = 15 - attack_sharp = 1 //CHOMPEdit - attack_edge = 1 - attacktext = list("slashed", "stabbed") - projectile_dispersion = 0 - ranged_cooldown = 40 - armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) // Simple mob immunuties plus base Eclipse foe stuff - - can_be_drop_prey = FALSE //CHOMP Add - pass_flags = PASSTABLE //mostly for the melee mobs. - softfall = TRUE //highly advanced spacesuit stuff - - min_oxy = 0 - max_oxy = 0 - min_tox = 0 - max_tox = 0 - min_co2 = 0 - max_co2 = 0 - min_n2 = 0 - max_n2 = 0 - minbodytemp = 0 - heat_damage_per_tick = 0 - - projectiletype = /obj/item/projectile/bullet/pistol/medium - projectilesound = 'sound/weapons/Gunshot_light.ogg' - - needs_reload = TRUE - reload_max = 4 - reload_time = 2.5 SECONDS - ai_holder_type = /datum/ai_holder/simple_mob/intentional/eclipse - - special_attack_cooldown = 15 SECONDS - special_attack_min_range = 2 - special_attack_max_range = 7 - var/has_heal_droid = FALSE - var/specialattackprojectile = /obj/item/projectile/energy/phase/bolt - var/artidrop = /obj/effect/artillery_attack - -//Want a self heal for a spefic dude, and to increase diffculty of some POIs -/mob/living/simple_mob/humanoid/eclipse/handle_special() - if(has_heal_droid) - adjustBruteLoss(-1.0) - adjustFireLoss(-1.0) - adjustToxLoss(-1.0) - adjustOxyLoss(-1.0) - adjustCloneLoss(-1.0) - ..() - -/mob/living/simple_mob/humanoid/eclipse/update_icon() - ..() // Cuts everything else, so do that first. - if(has_heal_droid) - add_overlay(image(icon = 'modular_chomp/icons/mob/eclipse.dmi', icon_state = "heal_droid")) - -//////////////////////////////// -// Stealing Merc AI Types -//////////////////////////////// -/datum/ai_holder/simple_mob/intentional/eclipse - conserve_ammo = TRUE - vision_range = 7 - conserve_ammo = TRUE - intelligence_level = AI_SMART - pointblank = TRUE - firing_lanes = TRUE - call_distance = 2 - wander = FALSE - var/closest_desired_distance = 4 - var/multiplayer_threshold = 3 - -/datum/ai_holder/simple_mob/intentional/eclipse/on_engagement(atom/A) - if(prob(20)) - step_rand(holder) - holder.face_atom(A) - if(get_dist(holder, A) <= closest_desired_distance) - holder.IMove(get_step_away(holder, A, closest_desired_distance)) - else if(get_dist(holder, A) > closest_desired_distance) - holder.IMove(get_step_towards(holder, A)) - -/datum/ai_holder/simple_mob/intentional/eclipse/pre_special_attack(atom/A) - if(isliving(A)) - var/tally = 0 - var/list/potential_targets = list_targets() - for(var/atom/movable/AM in potential_targets) - if(!can_attack(AM)) - continue - tally++ - if(tally >= multiplayer_threshold) - holder.a_intent = I_DISARM - return - else - holder.a_intent = I_HURT - -/datum/ai_holder/simple_mob/intentional/eclipse/closerange - closest_desired_distance = 1 - - -//////////////////////////////// -//The solar part of the faction, highly resistant to burns and stuff -/mob/living/simple_mob/humanoid/eclipse/solar - name = "Solar Eclipse Initiate" - desc = "You shouldn't be seeing this. But don't use lasers or energy weapons" - health = 100 - maxHealth = 100 - projectiletype = /obj/item/projectile/energy/eclipse - - armor = list(melee = -100, bullet = -100, laser = 90, energy = 90, bomb = 50, bio = 100, rad = 100) //Solar members are nigh immune to burns. - -/mob/living/simple_mob/humanoid/eclipse/solar/bullet_act(obj/item/projectile/P) - ..() - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) - visible_message(span_cult("[P] seems ineffective!.")) - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh - name = "Solar Eclipse Breaker" - desc = "An armored teshari with a sniper, protected from laser and energy based attacks" - health = 50 //old 20 - maxHealth = 50 - movement_cooldown = -1 - - icon_state = "eclipse_snipertesh" - icon_living = "eclipse_snipertesh" - - projectiletype = /obj/item/projectile/bullet/tyrshotburst - - projectile_accuracy = 100 - - reload_max = 1 - reload_time = 2.5 SECONDS - ranged_attack_delay = 2 SECONDS - var/cloaked_alpha = 60 // Lower = Harder to see. - var/cloak_cooldown = 5 SECONDS // Amount of time needed to re-cloak after losing it. - var/last_uncloak = 0 - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/gun/energy/lasershotgun = 10 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/cloak() - if(cloaked) - return - animate(src, alpha = cloaked_alpha, time = 1 SECOND) - cloaked = TRUE - - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/uncloak() - last_uncloak = world.time // This is assigned even if it isn't cloaked already, to 'reset' the timer if the spider is continously getting attacked. - if(!cloaked) - return - animate(src, alpha = initial(alpha), time = 1 SECOND) - cloaked = FALSE - -// Check if cloaking if possible. -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/proc/can_cloak() - if(stat) - return FALSE - if(last_uncloak + cloak_cooldown > world.time) - return FALSE - - return TRUE - -// Called by things that break cloaks, like Technomancer wards. -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/break_cloak() - uncloak() - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/is_cloaked() - return cloaked - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/is_cloaked() - return cloaked - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/ranged_pre_animation(atom/A) - Beam(get_turf(A), icon_state = "sniper_beam", time = 2 SECONDS, maxdistance = 5) - . = ..() - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/shoot_target(atom/A) - set waitfor = FALSE - - if(!istype(A) || QDELETED(A)) - return - - setClickCooldown(get_attack_speed()) - - face_atom(A) - - var/atom/orig_targ = A - - if(ranged_attack_delay) - A = get_turf(orig_targ) - ranged_pre_animation(A) - handle_attack_delay(A, ranged_attack_delay) // This will sleep this proc for a bit, which is why waitfor is false. - - if(needs_reload) - if(reload_count >= reload_max) - try_reload() - return FALSE - - if(ranged_cooldown_time) //If you have a non-zero number in a mob's variables, this pattern begins. - if(ranged_cooldown <= world.time) //Further down, a timer keeps adding to the ranged_cooldown variable automatically. - visible_message(span_bolddanger("\The [src]") + " fires at \the [A]!") //Leave notice of shooting. - shoot(A) //Perform the shoot action - if(casingtype) //If the mob is designated to leave casings... - new casingtype(loc) //... leave the casing. - ranged_cooldown = world.time + ranged_cooldown_time + ((injury_level / 2) SECONDS) //Special addition here. This is a timer. Keeping updating the time after shooting. Add that ranged cooldown time specified in the mob to the world time. - return TRUE //End these commands here. - // CHOMPAddition End - - visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!")) - shoot(A) - if(casingtype) - new casingtype(loc) - - if(ranged_attack_delay) - ranged_post_animation(A) - - return TRUE - -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh/handle_special() - if(!cloaked && can_cloak()) - cloak() - - -/mob/living/simple_mob/humanoid/eclipse/solar/plant - name = "Solar Eclipse Bioexpirment" - desc = "A strange armored looking plant." - reload_max = 6 - reload_time = 1 SECOND - movement_cooldown = 1 - - icon_state = "eclipse_plant" - icon_living = "eclipse_plant" - - projectiletype = /obj/item/projectile/energy/blob/toxic - specialattackprojectile = /obj/item/projectile/arc/spore - special_attack_cooldown = 7 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/seeds/random = 20 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/plant/do_special_attack(atom/A) - . = TRUE // So we don't fire a bolt as well. - switch(a_intent) - if(I_DISARM) - visible_message(span_warning("\The a flower begins to sprout from [src]'s back!")) - Beam(A, icon_state = "sat_beam", time = 2.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME) - else - visible_message(span_warning("\The [src]'s vines spread out!")) - Beam(A, icon_state = "vine", time = 3 SECONDS, maxdistance = INFINITY) - if(ishuman(A)) - addtimer(CALLBACK(src, PROC_REF(itemyoink), A), 3 SECONDS, TIMER_DELETE_ME) - - -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle //If you have a Nif, or are a borg you get hit with confusion and adds Edit, can't currently figure out NIF targeting - name = "Solar Eclipse Disabler Serpent" - desc = "A naga cladded in strange orange armor, seemingly guarded from lasers and energy based weaponry." - icon_state = "eclipse_disabler" - icon_living = "eclipse_disabler" - reload_max = 5 - movement_cooldown = 1 - - special_attack_cooldown = 30 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - - projectiletype = /obj/item/projectile/energy/eclipse - specialattackprojectile = /obj/item/projectile/energy/flash - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/cell/device/weapon/empproof = 10 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle/do_special_attack(atom/A) - . = TRUE // So we don't fire a bolt as well. - switch(a_intent) - if(I_DISARM) - specialattackprojectile = /obj/item/projectile/beam/stun - visible_message(span_warning("\The [src] begins to aim a strange gun!")) - Beam(A, icon_state = "sat_beam", time = 4.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 5 SECONDS, TIMER_DELETE_ME) - else - specialattackprojectile = /obj/item/projectile/energy/flash - visible_message(span_warning("\The [src] begins to aim a flare gun!")) - Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME) - - -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker //teleporting stalker - name = "Solar Eclipse Froststalker" - desc = "A somewhat see through being wearing a burn resistaint coat." - melee_damage_lower = 10 - melee_damage_upper = 10 - attack_armor_pen = 40 - special_attack_cooldown = 7 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - projectiletype = null - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - icon_state = "froststalker" - icon_living = "froststalker" - cold_resist = 1.0 - melee_attack_delay = 1.5 - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/stack/material/valhollide = 10 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker/do_special_attack(atom/A) - teleport(A) - -/mob/living/simple_mob/humanoid/eclipse/solar/nuclear - name = "Solar Eclipse Technician" - desc = "A strange being wearing a burn resistaint coat." - icon_state = "eclipse_nuke" - projectiletype = /obj/item/projectile/energy/lightingspark - special_attack_cooldown = 15 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 9 - specialattackprojectile = /obj/item/projectile/bullet/magnetic/fuelrod/tritium - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/stock_parts/matter_bin/hyper = 10, - /obj/item/stock_parts/manipulator/hyper = 10, - /obj/item/stock_parts/capacitor/hyper = 10, - /obj/item/stock_parts/scanning_module/hyper = 10, - /obj/item/stock_parts/micro_laser/hyper = 10 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/nuclear/do_special_attack(atom/A) - . = TRUE // So we don't fire a bolt as well. - switch(a_intent) - if(I_DISARM) - specialattackprojectile = /obj/item/projectile/bullet/magnetic/fuelrod/tritium - visible_message(span_warning("\The [src] begins to mess with a fuel rod cannon!")) - Beam(A, icon_state = "sat_beam", time = 4.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 5 SECONDS, TIMER_DELETE_ME) - else - specialattackprojectile = /obj/item/projectile/beam/lightning - visible_message(span_warning("\The [src] pulls out a lighting rod!")) - Beam(A, icon_state = "sat_beam", time = 1.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 2 SECONDS, TIMER_DELETE_ME) - -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish - name = "Lunar Eclipse Medic" - desc = "A strange being wearing a burn resistaint coat." - special_attack_cooldown = 5 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - projectiletype = /obj/item/projectile/energy/eclipse - icon_state = "guardian" - icon_living = "guardian" - reload_max = 4 - var/reflectmode = 0 - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/slime_extract/pink = 100, - /obj/item/xenobio/monkey_gun = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish/do_special_attack(atom/A) - visible_message(span_warning("\The [src] regenerates!!")) //completly lying the mob does nothing in single player mode - - -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish/handle_special() - if(stat != DEAD) - heal_aura() - ..() - -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish/proc/heal_aura() - for(var/mob/living/L in view(src, 7)) - if(L.stat == DEAD || !IIsAlly(L)) - continue - L.add_modifier(/datum/modifier/aura/slime_heal, null, src) - -//The lunar mobs, highly resistant to brute based damage. -/mob/living/simple_mob/humanoid/eclipse/lunar - name = "Lunar Eclipse Initiate" - desc = "You shouldn't be seeing this, but don't use melee weapons or bullets." - health = 100 - maxHealth = 100 - projectiletype = /obj/item/projectile/bullet/crystaline - armor = list(melee = 80, bullet = 80, laser = -100, energy = -100, bomb = 50, bio = 100, rad = 100) //Lunar members take massive damage from to burns. - -/mob/living/simple_mob/humanoid/eclipse/lunar/bullet_act(obj/item/projectile/P) - ..() - if(istype(P, /obj/item/projectile/bullet)) - visible_message(span_cult("[P] seems ineffective!.")) - -/mob/living/simple_mob/humanoid/eclipse/lunar/attackby(var/obj/item/O as obj, var/mob/user as mob) - to_chat(user, span_cult("This weapon is ineffective, it does no damage.")) - .=..() - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm //tesh got a gun - name = "Lunar Eclipse Judge" - desc = "A teshari wildly wielding a pistol, wearing bullet and sword protective gear." - health = 50 - maxHealth = 50 - icon_state = "eclipse_shottesh" - icon_living = "eclipse_shottesh" - movement_cooldown = -1 - - - projectiletype = /obj/item/projectile/bullet/crystalineburst - reload_max = 1 - reload_time = 2.5 SECONDS - ranged_attack_delay = 2 SECONDS - var/cloaked_alpha = 40 // Lower = Harder to see. - var/cloak_cooldown = 1 SECOND // Amount of time needed to re-cloak after losing it. - var/last_uncloak = 0 - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/ammo_magazine/ammo_box/b12g/pellet = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/cloak() - if(cloaked) - return - animate(src, alpha = cloaked_alpha, time = 1 SECOND) - cloaked = TRUE - - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/uncloak() - last_uncloak = world.time // This is assigned even if it isn't cloaked already, to 'reset' the timer if the spider is continously getting attacked. - if(!cloaked) - return - animate(src, alpha = initial(alpha), time = 1 SECOND) - cloaked = FALSE - -// Check if cloaking if possible. -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/proc/can_cloak() - if(stat) - return FALSE - if(last_uncloak + cloak_cooldown > world.time) - return FALSE - - return TRUE - -// Called by things that break cloaks, like Technomancer wards. -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/break_cloak() - uncloak() - - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/is_cloaked() - return cloaked - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/is_cloaked() - return cloaked - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/ranged_pre_animation(atom/A) - Beam(get_turf(A), icon_state = "sniper_beam", time = 2 SECONDS, maxdistance = 5) - . = ..() - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/shoot_target(atom/A) - set waitfor = FALSE - - if(!istype(A) || QDELETED(A)) - return - - setClickCooldown(get_attack_speed()) - - face_atom(A) - - var/atom/orig_targ = A - - if(ranged_attack_delay) - A = get_turf(orig_targ) - ranged_pre_animation(A) - handle_attack_delay(A, ranged_attack_delay) // This will sleep this proc for a bit, which is why waitfor is false. - - if(needs_reload) - if(reload_count >= reload_max) - try_reload() - return FALSE - - if(ranged_cooldown_time) //If you have a non-zero number in a mob's variables, this pattern begins. - if(ranged_cooldown <= world.time) //Further down, a timer keeps adding to the ranged_cooldown variable automatically. - visible_message(span_bolddanger("\The [src]") + " fires at \the [A]!") //Leave notice of shooting. - shoot(A) //Perform the shoot action - if(casingtype) //If the mob is designated to leave casings... - new casingtype(loc) //... leave the casing. - ranged_cooldown = world.time + ranged_cooldown_time + ((injury_level / 2) SECONDS) //Special addition here. This is a timer. Keeping updating the time after shooting. Add that ranged cooldown time specified in the mob to the world time. - return TRUE //End these commands here. - // CHOMPAddition End - - visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!")) - shoot(A) - if(casingtype) - new casingtype(loc) - - if(ranged_attack_delay) - ranged_post_animation(A) - - return TRUE - -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm/handle_special() - if(!cloaked && can_cloak()) - cloak() - -/mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse - health = 1 - maxHealth = 1 - faction = "eclipse" - -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle //Bouncing bullet extreme - name = "Lunar Eclipse Silver Serpent" - desc = "A hungry looking naga, their strange armor protecting them from ballistics and physical weaponry." - reload_max = 6 - movement_cooldown = 1 - - icon_state = "eclipse_silver" - icon_living = "eclipse_silver" - - special_attack_cooldown = 30 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - specialattackprojectile = /obj/item/projectile/beam/energy_net - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/archaeological_find = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle/do_special_attack(atom/A) //I am bringing back the netgun attack. 4 seconds - . = TRUE // So we don't fire a bolt as well. - switch(a_intent) - if(I_DISARM) - specialattackprojectile = /obj/item/projectile/bullet/srmrocket/weak - visible_message(span_warning("\The [src] begins to mess with a rockect launcher!")) - Beam(A, icon_state = "sat_beam", time = 4.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 5 SECONDS, TIMER_DELETE_ME) - else - specialattackprojectile = /obj/item/projectile/temp/hot - visible_message(span_warning("\The [src] pulls out a tempature gun!")) - Beam(A, icon_state = "sat_beam", time = 1.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 2 SECONDS, TIMER_DELETE_ME) - - -/obj/item/grenade/chem_grenade/frost - name = "frost grenade" - desc = "Currently in the testing phase, pratical purposes are unknown." - icon_state = "foam" - path = 1 - stage = 2 - sealed = TRUE - -/obj/item/grenade/chem_grenade/frost/Initialize(mapload) - . = ..() - var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src) - var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src) - - B1.reagents.add_reagent(REAGENT_ID_CRYOSLURRY, 150) - B1.reagents.add_reagent(REAGENT_ID_POTASSIUM, 150) - B2.reagents.add_reagent(REAGENT_ID_PHOSPHORUS, 150) - B2.reagents.add_reagent(REAGENT_ID_SUGAR, 150) - - detonator = new/obj/item/assembly_holder/timer_igniter(src) - - beakers += B1 - -/obj/item/projectile/bullet/frostshotgun - use_submunitions = 1 - only_submunitions = 1 - range = 0 - embed_chance = 0 - submunition_spread_max = 1200 - submunition_spread_min = 500 - submunitions = list(/obj/item/projectile/energy/frostsphere = 4) - - hud_state = "plasma_sphere" - -/obj/item/projectile/bullet/frostshotgun/on_range() - qdel(src) - -/obj/item/projectile/energy/frostsphere - name = "frost sphere" - icon_state = "ice_2" - fire_sound = 'sound/weapons/pulse3.ogg' - damage = 20 - modifier_type_to_apply = /datum/modifier/cryogelled - modifier_duration = 0.25 MINUTE - speed = 2.5 - range = 12 - hud_state = "water" - -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter - name = "Lunar Eclipse Experimenter" - desc = "A lizard cladded in strange red-purple armor, seemingly guarded from lasers and energy based weaponry." - icon_state = "eclipse_gravliz" - icon_living = "eclipse_gravliz" - reload_max = 1 - reload_time = 3 SECONDS - movement_cooldown = 1 - - special_attack_cooldown = 15 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - - projectiletype = /obj/item/projectile/energy/tyr_rifle //using the weapon found upon tyr - specialattackprojectile = /obj/item/projectile/arc/microsingulo - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/research_sample/bluespace = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter/do_special_attack(atom/A) - . = TRUE // So we don't fire a bolt as well. - switch(a_intent) - if(I_DISARM) - visible_message(span_warning("\The [src]'s armor deploys a shoulder mounted turret!")) - Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3.5 SECONDS, TIMER_DELETE_ME) - else - visible_message(span_danger("The [src]'s gauntlet glows silver!")) - Beam(A, icon_state = "purple_lighting", time = 3 SECONDS, maxdistance = 7) - if(isliving(A)) - addtimer(CALLBACK(src, PROC_REF(gravity_pull), A), 3 SECONDS, TIMER_DELETE_ME) - -//The Precursor intative big folks -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter //lunar melee unit - name = "Lunar Eclipse Titan Hunter" - desc = "A strange being with resistance to brunt force trauma." - icon_state = "eclipse_titan" - icon_living = "eclipse_titan" - melee_damage_lower = 20 - melee_damage_upper = 20 - attack_armor_pen = 20 - projectiletype = null - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/melee/energy/spear = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter/apply_melee_effects(atom/A) - if(isliving(A)) - var/mob/living/L = A - L.add_modifier(/datum/modifier/deep_wounds, 10 SECONDS) - if(L.mob_size <= MOB_MEDIUM) - visible_message(span_danger("\The [src] sends \the [L] flying with the impact!")) - playsound(src, "punch", 50, 1) - L.Weaken(1) - var/throwdir = get_dir(src, L) - L.throw_at(get_edge_target_turf(L, throwdir), 3, 1, src) - else - to_chat(L, span_warning("\The [src] hits you with incredible force, but you remain in place.")) - visible_message(span_danger("\The [src] hits \the [L] with incredible force, to no visible effect!")) - playsound(src, "punch", 50, 1) - -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver - name = "Lunar Eclipse Abyss Diver" - desc = "A strange being wearing a blunt resistaint coat." - projectiletype = /obj/item/projectile/ion/pistol - icon_state = "eclipse_diver" //note to self try to redo this sprite sometime - reload_max = 1 - reload_time = 5 SECONDS - - specialattackprojectile = /obj/item/projectile/energy/mechahack - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/disposable_teleporter = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver/do_special_attack(atom/A) - visible_message(span_danger("\The [src] begins to mess with a wrist mounted device.")) - if(istype(A, /obj/mecha)) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME) - -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish - name = "Lunar Eclipse Service" - desc = "A strange being wearing a blunt resistaint coat." - icon_state = "miner" - icon_living = "miner" - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/slime_extract/ruby = 100, - /obj/item/slime_extract/amber = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish/handle_special() - if(stat != DEAD) - heal_aura() - ..() - -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish/proc/heal_aura() - for(var/mob/living/L in view(src, 4)) - if(L.stat == DEAD || !IIsAlly(L)) - continue - L.add_modifier(/datum/modifier/technomancer/repel_missiles, 4, src) - - -/mob/living/simple_mob/mechanical/ward/monitor/eclipse - faction = FACTION_ECLIPSE -//Spcial attacks - -/mob/living/simple_mob/humanoid/eclipse/proc/remote_shutdown(var/mob/living/silicon/robot/L) - if(!L) - return - L.Weaken(10) - - -/mob/living/simple_mob/humanoid/eclipse/proc/remote_eject(obj/mecha/M) - if(!M) - return - visible_message(span_critical("\The [M] is remotly hacked and ejects [M.occupant]!")) - M.go_out() - - -/mob/living/simple_mob/humanoid/eclipse/proc/special_projectile(atom/A) - if(!A) - return - var/obj/item/projectile/P = new specialattackprojectile(get_turf(src)) - P.launch_projectile(A, BP_TORSO, src) - -/mob/living/simple_mob/humanoid/eclipse/proc/gravity_pull(mob/living/L) - if(!L) - return - for(L in view(src, 7)) - L.throw_at(src, 2, 4) // Just yoinked. - -/mob/living/simple_mob/humanoid/eclipse/proc/itemyoink(mob/living/carbon/human/H) - if(!H) - return - var/obj/item/I = H.get_active_hand() - if(H in view(src, 7)) - H.drop_item() - if(I) - I.throw_at(src, 2, 4) // Just yoinked. - src.visible_message(span_danger("The [name] heaves, pulling \the [H]'s weapon from their hands!")) - - -//new tyr mobs -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark //melee shork, anti-flesh - name = "Lunar Eclipse Brusier" - desc = "A akula in a strange eriee red and black armor. Bullets and melee armaments seem ineffective." - icon_state = "aegis_shark" - icon_living = "aegis_shark" - projectiletype = null - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - melee_damage_lower = 30 - melee_damage_upper = 30 - attack_armor_pen = 30 - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/soulstone = 30, - /obj/item/melee/cursedblade = 15 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark/apply_melee_effects(var/atom/A) //maybe replace this with Doom lite - if(isliving(A)) - var/mob/living/L = A - L.add_modifier(/datum/modifier/deep_wounds, 10 SECONDS) - - -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic //A semi tough creature - name = "Lunar Eclipse Fanatic" - desc = "A furry creature with stolen and modified cult attire. Seemingly swapped high energy resistance for brunt and sharp." - icon_state = "return" - icon_living = "return" - projectiletype = /obj/item/projectile/bullet/crystaline - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/clothing/suit/cultrobes/alt = 40, - /obj/item/clothing/head/culthood/alt = 40 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic/do_special_attack(atom/A) - teleport(A) - -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic/attackby(var/obj/item/O as obj, var/mob/user as mob) //I question why you are meleeing the meleeing resisting mob but funny shield flavour - if(O.force) - if(prob(70)) - visible_message(span_danger("\The [src] blocks \the [O] with its shield!")) - if(user) - ai_holder.react_to_attack(user) - return - else - ..() - else - to_chat(user, span_warning("This weapon is ineffective, it does no damage.")) - visible_message(span_warning("\The [user] gently taps [src] with \the [O].")) - -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling //A wierd creature - name = "Lunar Eclipse Bio-Weapon" - desc = "A horror of twisted and armored flesh. Whilst bullets and blades bounce off, perhaps it still burns." - icon_state = "horror" - icon_living = "horror" - projectiletype = /obj/item/projectile/energy/blob/acid - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - melee_damage_lower = 20 - melee_damage_upper = 20 - attack_armor_pen = 40 - specialattackprojectile = /obj/item/projectile/arc/spore - -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling/do_special_attack(atom/A) - Beam(A, icon_state = "tentacle", time = 3 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3.5 SECONDS, TIMER_DELETE_ME) - - -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear //Melee creature - name = "Solar Eclipse Spearmaster" - desc = "A furry creature wearing modified artifact armor, protecting itself from burns and energy." - icon_state = "clock_spear" - icon_living = "clock_spear" - projectiletype = null - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - melee_damage_lower = 30 - melee_damage_upper = 30 - attack_armor_pen = 60 - melee_attack_delay = 3 SECONDS - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/rig/ch/clockwork = 10, - /obj/item/ratvarian_spear = 30 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear/apply_melee_effects(var/atom/A) - if(isliving(A)) - var/mob/living/L = A - A.emp_act(4) //The weakest strength of EMP - playsound(src, 'sound/weapons/Egloves.ogg', 75, 1) - L.stuttering = max(L.stuttering, 4) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, L) - s.start() - -/mob/living/simple_mob/humanoid/eclipse/solar/clocksgun //Melee creature - name = "Solar Eclipse Artificer" - desc = "A furry creature wearing modified artifact armor, protecting itself from burns and energy." - icon_state = "clock_gun" - icon_living = "clock_gun" - projectiletype = /obj/item/projectile/bullet/rifle/clockwork - ranged_cooldown = 20 - reload_max = 10 - reload_time = 5 SECONDS - specialattackprojectile = /obj/item/projectile/beam/shock/clockwork - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/rig/ch/clockwork = 10, - /obj/item/gun/energy/clockwork = 30 - ) - - -/mob/living/simple_mob/humanoid/eclipse/solar/clocksgun/do_special_attack(atom/A) - Beam(A, icon_state = "volt_ray", time = 5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 5.5 SECONDS, TIMER_DELETE_ME) - - -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat //Melee creature - name = "Solar Eclipse Spacer" - desc = "A zaddat wearing orange armor, shielding itself from lasers and energy." - icon_state = "zaddat_spacer" - icon_living = "zaddat_spacer" - reload_max = 3 - reload_time = 3 SECONDS - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/clothing/head/helmet/space/void/zaddat = 30, - /obj/item/clothing/suit/space/void/zaddat = 30, - /obj/item/material/fishing_rod/modern = 30 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) - var/reflect_prob = P.damage - if(prob(reflect_prob)) - visible_message(span_danger("The [P.name] gets reflected by [src]'s armor!"), \ - span_userdanger("The [P.name] gets reflected by [src]'s armor!")) - - // Find a turf near or on the original location to bounce to - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) - var/new_y = P.starting.y + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) - var/turf/curloc = get_turf(src) - - // redirect the projectile - P.redirect(new_x, new_y, curloc, src) - P.reflected = 1 - - return -1 // complete projectile permutation - - return (..(P)) - -//mining zone -/mob/living/simple_mob/humanoid/eclipse/solar/miner - name = "Solar Eclipse Miner" - desc = "A miner wearing orange armor, shielding itself from lasers and energy." - icon_state = "solar_miner" - icon_state = "solar_miner" - - projectiletype = null - melee_damage_lower = 20 - melee_damage_upper = 20 - attack_armor_pen = 30 - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/plastique = 10, - /obj/item/pickaxe/anamolous = 30 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/miner/do_special_attack(atom/A) - summon_drones(A, 2, 1) - -/mob/living/simple_mob/humanoid/eclipse/solar/xenoarch - name = "Solar Eclipse Antiquarian" - desc = "An indivual wearing orange armor, shielding itself from lasers and energy. Lighting is crackling around them" - icon_state = "solar_anomalous" - icon_living = "solar_anomalous" - - projectiletype = /obj/item/projectile/energy/lightingspark - specialattackprojectile = /obj/item/projectile/beam/lightning/slime - - reload_max = 2 - reload_time = 3 SECONDS - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/research_sample/rare = 10, - /obj/item/stack/nanopaste/advanced = 30 - ) - -/mob/living/simple_mob/humanoid/eclipse/solar/xenoarch/do_special_attack(atom/A) - Beam(A, icon_state = "holo_beam", time = 5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 5.5 SECONDS, TIMER_DELETE_ME) - -/mob/living/simple_mob/humanoid/eclipse/solar/xenoarch/bullet_act(obj/item/projectile/P, atom/A) - ..() - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) - special_projectile(A) - -/mob/living/simple_mob/humanoid/eclipse/lunar/miner - name = "Lunar Eclipse Drill Tech" - desc = "An indivual wearing red and purple armor, shielding itself from bullets and physical trauma." - icon_state = "lunar_miner" - icon_state = "lunar_miner" - - projectiletype = null - melee_damage_lower = 20 - melee_damage_upper = 20 - attack_armor_pen = 30 - specialattackprojectile = /obj/item/projectile/energy/eclipse/mining - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/stack/material/void_opal = 10, - /obj/item/stack/material/mhydrogen = 70 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/miner/do_special_attack(atom/A) - Beam(A, icon_state = "holo_beam", time = 1 SECOND, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 1.5 SECONDS, TIMER_DELETE_ME) - -/mob/living/simple_mob/humanoid/eclipse/lunar/xenoarch - name = "Lunar Eclipse Xenoarcholgist" - desc = "An indivual wearing red and purple armor, shielding itself from bullets and physical trauma." - icon_state = "lunar_anomalous" - icon_living = "lunar_anomalous" - - loot_list = list(/obj/item/slime_extract/sepia = 1, - /obj/item/bone/skull = 100, - /obj/item/research_sample/rare = 10, - /obj/item/extraction_pack = 30 - ) - -/mob/living/simple_mob/humanoid/eclipse/lunar/xenoarch/do_special_attack(atom/A) - Beam(A, icon_state = "drain_life_grey", time = 1 SECOND, maxdistance = 4) - addtimer(CALLBACK(src, PROC_REF(blood_siphon), A), 1.5 SECONDS, TIMER_DELETE_ME) - -/mob/living/simple_mob/humanoid/eclipse/proc/blood_siphon(atom/A, var/mob/living/carbon/human/M) - if(!A) - return - if(A in view(src, 4)) - if(ishuman(M)) - var/target = pick(M.organs_by_name) - M.apply_damage(rand(5, 10), SEARING, target) - to_chat(M, span_critical("The skin on your [parse_zone(target)] feels like it's ripping apart, and a stream of blood flies out.")) - var/blood_to_remove = (rand(10,30)) - M.remove_blood(blood_to_remove) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/heads.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/heads.dm deleted file mode 100644 index b7a2bfdcf3..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/heads.dm +++ /dev/null @@ -1,668 +0,0 @@ -/mob/living/simple_mob/humanoid/eclipse/head - name = "Eclipse Head" - desc = "You shouldn't be seeing this. This is going to be rough" - health = 315 - maxHealth = 315 //A 20 damage shot will need to land 35 times - projectile_dispersion = 8 - projectile_accuracy = 0 - ranged_cooldown = 5 - grab_resist = 100 - - damage_fatigue_mult = 0 - - armor = list(melee = 34, bullet = 34, laser = 34, energy = 34, bomb = 100, bio = 100, rad = 100) - has_heal_droid = TRUE - -/mob/living/simple_mob/humanoid/eclipse/head/security - name = "Eclipse Head Of Security" - icon_state = "fleetsec" - projectiletype = /obj/item/projectile/energy/flamecrystal - special_attack_cooldown = 10 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 8 - has_heal_droid = TRUE - specialattackprojectile = /obj/item/projectile/bullet/dragon - loot_list = list(/obj/item/gun/energy/flamegun = 100, - /obj/item/prop/tyrlore/neonsec = 100, - /obj/item/bone/skull = 100 - ) - -/mob/living/simple_mob/humanoid/eclipse/head/security/do_special_attack(atom/A) - if(vore_fullness > 3) - bomb_chaos(A) - else if(vore_fullness > 0) - visible_message(span_warning("\The [src]'s maw glows!")) - Beam(A, icon_state = "sat_beam", time = 2.5 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME) - else - if(prob(50)) - visible_message(span_warning("\The [src] throws out a chain!")) - Beam(A, icon_state = "chain", time = 3 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(gravity_pull), A), 3 SECOND, TIMER_DELETE_ME) - else - visible_message(span_warning("\The [src] throws out a chain!")) - Beam(A, icon_state = "chain", time = 3 SECONDS, maxdistance = INFINITY) - addtimer(CALLBACK(src, PROC_REF(itemyoink), A), 3 SECOND, TIMER_DELETE_ME) - -/obj/item/projectile/energy/flamecrystal - name = "Flame Crystal" - icon = 'modular_chomp/icons/mob/eclipse.dmi' //commiting sin - icon_state = "firecrystal" - damage = 15 - armor_penetration = 40 //Large pointy crystal - damage_type = BRUTE - check_armour = "bullet" - range = 12 - hud_state = "laser_sniper" - -/obj/item/projectile/energy/flamecrystal/on_hit(atom/target, blocked = 0, def_zone) - . = ..() - if(isliving(target)) - var/mob/living/L = target - L.adjust_fire_stacks(5) - L.ignite_mob() - -/obj/item/projectile/bullet/flamegun - use_submunitions = 1 - only_submunitions = 1 - range = 0 - embed_chance = 0 - submunition_spread_max = 800 - submunition_spread_min = 200 - submunitions = list(/obj/item/projectile/energy/flamecrystal = 3) - hud_state = "laser_heat" - -/obj/item/projectile/bullet/flamegun/on_range() - qdel(src) - -/mob/living/simple_mob/humanoid/eclipse/head/scientist - name = "Eclipse Lead Researcher" - icon_state = "fleetsci" - maxHealth = 60 - health = 60 - special_attack_cooldown = 5 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 10 - projectiletype = /obj/item/projectile/bullet/pistol/ap - - loot_list = list(/obj/item/circuitboard/mecha/imperion/targeting = 60, - /obj/item/circuitboard/mecha/gygax/peripherals = 60, - /obj/item/prop/alien/phasecoil = 60, - /obj/item/circuitboard/mecha/durand/peripherals = 60, - /obj/item/bluespace_harpoon = 10, - /obj/item/bone/skull = 100, - /obj/item/prop/tyrlore/neonsci = 100 - ) - - var/obj/item/shield_projector/shield1 = null - var/obj/item/shield_projector/shield2 = null - var/obj/item/shield_projector/shield3 = null - -/mob/living/simple_mob/humanoid/eclipse/head/scientist/Initialize(mapload) - shield1 = new /obj/item/shield_projector/rectangle/automatic/eclipse(src) - shield2 = new /obj/item/shield_projector/rectangle/automatic/eclipse/medium(src) - shield3 = new /obj/item/shield_projector/rectangle/automatic/eclipse/big(src) - return ..() - -/obj/item/shield_projector/rectangle/automatic/eclipse - name = "cult shield stone" - icon = 'icons/obj/device.dmi' - icon_state = "implant_melted" - shield_health = 100 - max_shield_health = 100 - shield_regen_delay = 120 SECONDS - shield_regen_amount = 100 - size_x = 1 - size_y = 1 - color = "#FF6600" - high_color = "#0099CC" - low_color = "#660066" - -/obj/item/shield_projector/rectangle/automatic/eclipse/medium - size_x = 2 - size_y = 2 - -/obj/item/shield_projector/rectangle/automatic/eclipse/big - size_x = 3 - size_y = 3 - -/mob/living/simple_mob/mechanical/hivebot/swarm/eclipse - faction = FACTION_ECLIPSE - -/mob/living/simple_mob/mechanical/combat_drone/artillery - faction = FACTION_ECLIPSE - projectiletype = /obj/item/projectile/arc/blue_energy - -/mob/living/simple_mob/humanoid/eclipse/head/captain - name = "Eclipse Expedition Leader" - icon_state = "captain" - -/mob/living/simple_mob/humanoid/eclipse/head/tyrlead - name = "Eclipse Precursor Overseer" - icon_state = "overseer_shield" - icon_living = "overseer_shield" - special_attack_cooldown = 4 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 8 - projectiletype = /obj/item/projectile/energy/homing_bolt - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - loot_list = list(/obj/item/prop/tyrlore/baseneon = 100, - /obj/item/disposable_teleporter = 100, - /obj/item/hand_tele = 10, - /obj/item/bone/skull = 100 - ) - var/fullshield = 140 - var/shieldrage = 3 - -/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/bullet_act(obj/item/projectile/P) //Projectiles will be absorbed by the shield. Note to self do funky sprite. 4 hits to remove - if(fullshield > 0) - fullshield -= P.damage - if(P == /obj/item/projectile/ion) - fullshield = 0 - visible_message(span_boldwarning(span_orange("[P] breaks the shield!!."))) - icon_state = "overseer" - if(fullshield > 0) - visible_message(span_boldwarning(span_orange("[P] is absorbed by the shield!."))) - else - visible_message(span_boldwarning(span_orange("[P] breaks the shield!!."))) - icon_state = "overseer" - else - ..() - shieldrage-- - if(shieldrage == 0) - shieldrage = 3 - fullshield = 140 - visible_message(span_boldwarning(span_orange("The shield reactivates!!."))) - icon_state = "overseer_shield" - -/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/do_special_attack(atom/A) - var/deathdir = rand(1,3) - switch(deathdir) - if(1) - teleport(A) - if(2) - bomb_chaos(A) - if(3) - bomb_lines(A) - -/mob/living/simple_mob/humanoid/eclipse/head/engineer //teshari - name = "Eclipse Chief Engineer" - icon_state = "engi" - icon_living = "engi" - health = 50 - maxHealth = 50 - melee_damage_lower = 60 //Durasteel fireaxe - melee_damage_upper = 60 - projectiletype = null - - loot_list = list(/obj/item/stock_parts/matter_bin/omni = 60, - /obj/item/material/twohanded/fireaxe = 60, - /obj/item/storage/toolbox/syndicate/powertools = 60, - /obj/item/rig/ce = 60, - /obj/item/rig_module/teleporter = 5, - /obj/item/prop/tyrlore/neonengi = 100 - ) - -/mob/living/simple_mob/humanoid/eclipse/head/engineer/Initialize(mapload) - add_modifier(/datum/modifier/technomancer/haste, null, src) // tesh goes nyooooom - return ..() - -/mob/living/simple_mob/humanoid/eclipse/head/medical - name = "Eclipse Chief Medical Officer" - icon_state = "medi" - icon_living = "medi" - health = 150 - maxHealth = 150 - special_attack_cooldown = 5 SECONDS - special_attack_min_range = 0 - special_attack_max_range = 7 - melee_damage_lower = 15 //Durasteel fireaxe - melee_damage_upper = 15 - attack_armor_pen = 60 - projectiletype = null - - loot_list = list(/obj/item/rig_module/atmos_shield = 60, - /obj/item/rig_module/rad_shield/advanced = 60, - /obj/item/rig/baymed = 60, - /obj/item/ammo_casing/microbattery/medical/brute3 = 15, - /obj/item/ammo_casing/microbattery/medical/burn3 = 15, - /obj/item/ammo_casing/microbattery/medical/toxin3 = 15, - /obj/item/prop/tyrlore/neonmedi = 100, - /obj/item/ammo_casing/microbattery/medical/omni3 = 5 - ) - - var/cloaked_alpha = 45 // Lower = Harder to see. - var/cloak_cooldown = 5 SECONDS // Amount of time needed to re-cloak after losing it. - var/last_uncloak = 0 // world.time - var/poison_type = REAGENT_ID_STOXIN - var/poison_per_bite = 8 - var/poison_chance = 80 - -/mob/living/simple_mob/humanoid/eclipse/head/medical/apply_melee_effects(var/atom/A) - if(isliving(A)) - var/mob/living/L = A - if(L.reagents) - var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD) - if(L.can_inject(src, null, target_zone)) - inject_poison(L, target_zone) - -/mob/living/simple_mob/humanoid/eclipse/head/medical/proc/inject_poison(mob/living/L, target_zone) - if(prob(poison_chance)) - to_chat(L, span_warning("You feel a tiny prick.")) - L.reagents.add_reagent(poison_type, poison_per_bite) - -/mob/living/simple_mob/humanoid/eclipse/head/medical/cloak() - if(cloaked) - return - animate(src, alpha = cloaked_alpha, time = 1 SECOND) - cloaked = TRUE - - -/mob/living/simple_mob/humanoid/eclipse/head/medical/uncloak() - last_uncloak = world.time // This is assigned even if it isn't cloaked already, to 'reset' the timer if the spider is continously getting attacked. - if(!cloaked) - return - animate(src, alpha = initial(alpha), time = 1 SECOND) - cloaked = FALSE - -// Check if cloaking if possible. -/mob/living/simple_mob/humanoid/eclipse/head/medical/proc/can_cloak() - if(stat) - return FALSE - if(last_uncloak + cloak_cooldown > world.time) - return FALSE - - return TRUE - -// Called by things that break cloaks, like Technomancer wards. -/mob/living/simple_mob/humanoid/eclipse/head/medical/break_cloak() - uncloak() - - -/mob/living/simple_mob/humanoid/eclipse/head/medical/is_cloaked() - return cloaked - - -// Cloaks the spider automatically, if possible. -/mob/living/simple_mob/humanoid/eclipse/head/medical/handle_special() - if(!cloaked && can_cloak()) - cloak() - - -//special attack things -/mob/living/simple_mob/humanoid/eclipse/head/scientist/do_special_attack(atom/A) - addtimer(CALLBACK(src, PROC_REF(summon_drones), A, 3, 0.5 SECONDS), 0.5 SECONDS, TIMER_DELETE_ME) - -/mob/living/simple_mob/humanoid/eclipse/proc/summon_drones(atom/target, var/amount, var/fire_delay) - if(!target) - return - var/deathdir = rand(1,3) - switch(deathdir) - if(1) - new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse(src.loc) - if(2) - new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse(src.loc) - if(3) - new /mob/living/simple_mob/mechanical/combat_drone/artillery(src.loc) - amount-- - if(amount > 0) - addtimer(CALLBACK(src, PROC_REF(summon_drones), target, amount, fire_delay), fire_delay, TIMER_DELETE_ME) - - -/mob/living/simple_mob/humanoid/eclipse/head/medical/do_special_attack(atom/A) - if(!cloaked) - teleport(A) - -/mob/living/simple_mob/humanoid/eclipse/proc/teleport(atom/A) - // Teleport attack. - if(!A) - to_chat(src, span_warning("There's nothing to teleport to.")) - return FALSE - - var/list/nearby_things = range(4, A) - var/list/valid_turfs = list() - - // All this work to just go to a non-dense tile. - for(var/turf/potential_turf in nearby_things) - var/valid_turf = TRUE - if(potential_turf.density) - continue - for(var/atom/movable/AM in potential_turf) - if(AM.density) - valid_turf = FALSE - if(valid_turf) - valid_turfs.Add(potential_turf) - - if(!(valid_turfs.len)) - to_chat(src, span_warning("There wasn't an unoccupied spot to teleport to.")) - return FALSE - - var/turf/target_turf = pick(valid_turfs) - var/turf/T = get_turf(src) - - var/datum/effect/effect/system/spark_spread/s1 = new /datum/effect/effect/system/spark_spread - s1.set_up(5, 1, T) - var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/spark_spread - s2.set_up(5, 1, target_turf) - - - T.visible_message(span_warning("\The [src] vanishes!")) - s1.start() - - forceMove(target_turf) - playsound(target_turf, 'sound/effects/phasein.ogg', 50, 1) - to_chat(src, span_notice("You teleport to \the [target_turf].")) - - target_turf.visible_message(span_warning("\The [src] appears!")) - s2.start() - -/mob/living/simple_mob/humanoid/eclipse/head/cargomaster //Naga - name = "Eclipse Cargo Master" - - -/mob/living/simple_mob/humanoid/eclipse/proc/bomb_lines(atom/A) - if(!A) - return - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/eclipse)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - spawn_lines(target) - - -/mob/living/simple_mob/humanoid/eclipse/proc/spawn_lines(atom/target) - var/alignment = rand(1,2) // 1 for vertical, 2 for horizontal - var/list/line_range = list() - var/turf/T = get_turf(target) - line_range += T - for(var/i = 1, i <= 7, i++) - switch(alignment) - if(1) - if(T.x-i > 0) - line_range += locate(T.x-i, T.y-i, T.z) - if(T.x+i <= world.maxx) - line_range += locate(T.x+i, T.y+i, T.z) - if(T.y-i > 0) - line_range += locate(T.x+i, T.y-i, T.z) - if(T.y+i <= world.maxy) - line_range += locate(T.x-i, T.y+i, T.z) - if(2) - if(T.x-i > 0) - line_range += locate(T.x-i, T.y, T.z) - if(T.x+i <= world.maxx) - line_range += locate(T.x+i, T.y, T.z) - if(T.y-i > 0) - line_range += locate(T.x, T.y-i, T.z) - if(T.y+i <= world.maxy) - line_range += locate(T.x, T.y+i, T.z) - for(var/turf/dropspot in line_range) - new artidrop(dropspot) - - -/mob/living/simple_mob/humanoid/eclipse/proc/bomb_chaos(atom/A) - if(!A) - return - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/eclipse)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - chaos_lines(target) - - -/mob/living/simple_mob/humanoid/eclipse/proc/chaos_lines(atom/target) - var/alignment = rand(1,2) - var/list/line_range = list() - var/turf/T = get_turf(target) - line_range += T - for(var/i = 1, i <= 7, i++) - switch(alignment) - if(1) - if(T.x-i > 0) - var/zed = rand(1,3) - line_range += locate(T.x+zed, T.y-i, T.z) - if(T.x+i <= world.maxx) - var/zed = rand(1,3) - line_range += locate(T.x+zed, T.y+i, T.z) - if(T.y-i > 0) - var/zed = rand(1,3) - line_range += locate(T.x+i, T.y+zed, T.z) - if(T.y+i <= world.maxy) - var/zed = rand(1,3) - line_range += locate(T.x-i, T.y+zed, T.z) - if(2) - if(T.x-i > 0) - var/zed = rand(1,3) - line_range += locate(T.x-i, T.y-zed, T.z) - if(T.x+i <= world.maxx) - var/zed = rand(1,3) - line_range += locate(T.x+i, T.y-zed, T.z) - if(T.y-i > 0) - var/zed = rand(1,3) - line_range += locate(T.x-zed, T.y-i, T.z) - if(T.y+i <= world.maxy) - var/zed = rand(1,3) - line_range += locate(T.x-zed, T.y+i, T.z) - for(var/turf/dropspot in line_range) - new artidrop(dropspot) - - -/obj/effect/artillery_attack - anchored = TRUE - density = FALSE - unacidable = TRUE - mouse_opacity = 0 - icon = 'icons/effects/effects.dmi' - icon_state = "drop_marker" - var/ammmotype = /obj/effect/falling_effect/callstrike_bomb - -/obj/effect/artillery_attack/Initialize(mapload) - ..() - return INITIALIZE_HINT_LATELOAD - -/obj/effect/artillery_attack/LateInitialize() - var/delay = rand(25, 30) - addtimer(CALLBACK(src, PROC_REF(spawner)), delay, TIMER_DELETE_ME) - -/obj/effect/artillery_attack/proc/spawner() - new ammmotype(src.loc) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.7 SECONDS, TIMER_DELETE_ME) - -/obj/effect/falling_effect/callstrike_bomb - falling_type = /obj/effect/callstrike - crushing = FALSE - -/obj/effect/callstrike - anchored = TRUE - density = FALSE - mouse_opacity = 0 - icon ='modular_chomp/icons/obj/guns/precursor/tyr.dmi' - -/obj/effect/callstrike/Initialize(mapload) - .=..() - icon_state = "arti" - -/obj/effect/callstrike/end_fall(var/crushing = FALSE) - for(var/mob/living/L in loc) - var/target_zone = ran_zone() - var/blocked = L.run_armor_check(target_zone, "laser") - - if(!L.apply_damage(70, BURN, target_zone, blocked)) - break - playsound(src, 'sound/effects/clang2.ogg', 50, 1) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.25 SECONDS, TIMER_DELETE_ME) - -//Spacing -/obj/effect/falling_effect/callstrike_slime - falling_type = /obj/effect/callstrike_slime - crushing = FALSE - -/obj/effect/callstrike_slime - anchored = TRUE - density = FALSE - mouse_opacity = 0 - icon ='modular_chomp/icons/obj/guns/precursor/tyr.dmi' - -/obj/effect/callstrike_slime/Initialize(mapload) - .=..() - icon_state = "squish" - -/obj/effect/callstrike_slime/end_fall(var/crushing = FALSE) - for(var/mob/living/L in loc) - var/target_zone = ran_zone() - var/blocked = L.run_armor_check(target_zone, "energy") - - if(!L.apply_damage(50, BURN, target_zone, blocked)) - break - playsound(src, 'sound/effects/squelch1.ogg', 50, 1) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.25 SECONDS, TIMER_DELETE_ME) - - -/obj/effect/artillery_attack/goop - ammmotype = /obj/effect/falling_effect/callstrike_slime - -/obj/effect/falling_effect/callstrike_slimezone - falling_type = /obj/effect/slimeattack - crushing = FALSE - -/obj/effect/slimeattack - name = "slime goop" - desc = "A pool of acidic slime" - icon_state = "pool" - icon ='modular_chomp/icons/obj/guns/precursor/tyr.dmi' - var/health = 5 - var/modifiertype = /datum/modifier/poisoned/weak - -/obj/effect/slimeattack/Crossed(atom/movable/source) - if(source.is_incorporeal()) - return - Bumped(source) - -/obj/effect/slimeattack/attackby(var/obj/item/W, var/mob/user) - user.setClickCooldown(user.get_attack_speed(W)) - - if(LAZYLEN(W.attack_verb)) - visible_message(span_warning("\The [src] has been [pick(W.attack_verb)] with \the [W][(user ? " by [user]." : ".")]")) - else - visible_message(span_warning("\The [src] has been attacked with \the [W][(user ? " by [user]." : ".")]")) - - var/damage = W.force / 4.0 - - health -= damage - healthcheck() - - -/obj/effect/slimeattack/bullet_act(var/obj/item/projectile/Proj) - ..() - health -= Proj.get_structure_damage() - healthcheck() - -/obj/effect/slimeattack/proc/die() - qdel(src) - -/obj/effect/slimeattack/proc/healthcheck() - if(health <= 0) - die() - -/obj/effect/slimeattack/Bumped(mob/M as mob|obj) - if(istype(M, /obj/mecha)) - return - - if(istype(M, /mob/living/)) - var/mob/living/mob = M - if(!mob.hovering || !mob.flying) - attack_mob(M) - - -/obj/effect/slimeattack/proc/attack_mob(mob/living/L) - var/target_zone = pick(BP_ALL) - var/amount_blocked = L.run_armor_check(target_zone, "bio") - - var/damage = rand(5,5) - - if(amount_blocked >= 40) - return - - L.apply_damage(damage, BURN, target_zone, amount_blocked, used_weapon = "slime") - L.add_modifier(modifiertype, 5 SECONDS) - -/mob/living/simple_mob/humanoid/eclipse/minion - name = "Eclipse Expirment" - desc = "A being in an armored spacesuit" - -/mob/living/simple_mob/humanoid/eclipse/minion/squish_sphere - name = "Eclipse Bio-Sphere" - desc = "A floating orb of slime" - health = 7 - maxHealth = 7 - armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100) - icon_state = "squishblob" - icon_living = "squishblob" - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - melee_damage_lower = 1 - melee_damage_upper = 1 - attack_armor_pen = 100 //90% sure we need damage for the application of mods to proc - -/mob/living/simple_mob/humanoid/eclipse/minion/squish_sphere/apply_melee_effects(var/atom/A) //bring curea, a synth or gamble hard enough. - if(isliving(A)) - var/mob/living/L = A - L.add_modifier(/datum/modifier/poisoned, 120 SECONDS) - - -/mob/living/simple_mob/humanoid/eclipse/head/stargazer //starhunter boss replacement - name = "Eclipse Stargazer" - desc = "A being in an armored spacesuit" - icon_state = "medi" //place holdery - icon_living = "medi" //place holdery - health = 600 - maxHealth = 600 - glow_toggle = TRUE - glow_override = TRUE - glow_color = "#FFA723" - glow_range = 16 - armor = list(melee = 49, bullet = 49, laser = 49, energy = 49, bomb = 100, bio = 100, rad = 100) - projectiletype = /obj/item/projectile/energy/homing_bolt - ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax - loot_list = list(/obj/item/slime_extract/sepia = 25, - /obj/item/slime_extract/ruby = 25, - /obj/item/slime_extract/bluespace = 25, - /obj/item/slime_extract/light_pink = 25, - /obj/item/slime_extract/yellow = 25, - /obj/item/slime_extract/oil = 25, - ) - -/mob/living/simple_mob/humanoid/eclipse/head/stargazer/bullet_act(obj/item/projectile/P) - ..() - for(var/i =1 to 3) - new /mob/living/simple_mob/humanoid/eclipse/minion/squish_sphere - -/mob/living/simple_mob/humanoid/eclipse/head/stargazer/attackby(var/obj/item/O as obj, var/mob/user as mob) - ..() - new /mob/living/simple_mob/humanoid/eclipse/minion/squish_sphere - -/mob/living/simple_mob/humanoid/eclipse/head/stargazer/do_special_attack(atom/A) - if(prob(50)) - artidrop = /obj/effect/artillery_attack/goop - if(prob(50)) - bomb_lines(A) - else - chaos_lines(A) - else - artidrop = /obj/effect/falling_effect/callstrike_slime - if(prob(50)) - bomb_lines(A) - else - chaos_lines(A) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/lore.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/lore.dm deleted file mode 100644 index df0b82f854..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/lore.dm +++ /dev/null @@ -1,153 +0,0 @@ -/datum/category_item/catalogue/fauna/eclipse - name = "The Eclipse" - desc = "Life on the Frontier is hard, and unregulated. Unlike life in \ - more 'civlized' areas of the Galaxy, violence and piracy remain common \ - this far out. The Eclipse cares naught for this, rather their attention \ - shifting to the fallen kingdoms and empires of the past. \ - Salavaging secerts and materials long forgotton and stiching them \ - togther in new, strange creations." - value = CATALOGUER_REWARD_TRIVIAL - unlocked_by_any = list(/datum/category_item/catalogue/fauna/eclipse) - - -/datum/category_item/catalogue/fauna/eclipse/teslanoodle - name = "The Tesla Armor" - desc = "The tesla's units armor crackles with eletrical current. \ - Manifestation of such energy seeming to be summoned at will or at \ - random. This creation seems to be in a prototype phase." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/firemoff - name = "Eclipse Shielding" - desc = "Eclipse armor and uniform is unlike most others, seeming wide \ - and varied, but in reality is simplified to two diffrent types. \ - One of the Eclipse's first studies was a mix of precursor ablative and \ - bullet proof technolgy. They have gotten an understanding of it, they \ - are able to fuse it with many diffrent uniforms, allowing for a more \ - diverse apperance." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/snipertesh - name = "Cult-like rituals" - desc = "The Eclipse started off as a strange mixutre of a friendly \ - band, and lower tier orginization. as their technolgy has evolved, so did \ - their behaviors. Some sects begining to worship and heavly praise the fallen \ - precusor empires. Some going as far to try and revivive them, always to \ - mixed results, rarely resulting in in-fighting." - value = CATALOGUER_REWARD_MEDIUM - - -/datum/category_item/catalogue/fauna/eclipse/radiation - name = "Nuclear Failures" - desc = "Failure is not an option for the Eclipse. More so, failure \ - is just another opportunity to learn. Their radiation units coming\ - from serveral failures of nuclear power soruces alongside failures amongst, \ - nuclear weaponry. Eventually creating quality weapons, and refitting their \ - power sources to radiation field generators." - value = CATALOGUER_REWARD_MEDIUM - - -/datum/category_item/catalogue/fauna/eclipse/silvernoodle - name = "Failed Selling" - desc = "While one would think the Eclipse would become rather wealthy and \ - fame from their line of work, they are instead rather average due to most \ - of their products having a high chance of failure. For every working weapon, \ - armor, tool, there are at least 10 failures. Resleeving and high quality \ - medication are one of the few reasons they have not wiped themselves out." - value = CATALOGUER_REWARD_MEDIUM - - - -/datum/category_item/catalogue/fauna/eclipse/shotgunner - name = "Specialized Arms" - desc = "The Eclipse's focus on utilizing precursor tech leads them down \ - strange weaponry. Even with firearms, they are always modified slightly \ - just to fufill having some form of what they see as future tech. \ - Although this leads to weapon failures, or creation accidents." - value = CATALOGUER_REWARD_MEDIUM - - -/datum/category_item/catalogue/fauna/eclipse/bulletstorm - name = "Open Joining" - desc = "The Eclipse has many varying memebers, of all diffrent shapes, \ - sizes, and heritages. This is due to a varity of factors, which includes \ - high mortality rates, mutations, and body modification expermintation." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/ravanger - name = "Resleeving Failures" - desc = "The Eclipse has precourdered many bits of resleeving equipment \ - but like most of that comes into their grasp it has become more dangerous \ - and expirmental. Corruption and malformed bodies have become common place, \ - minds becoming lost. But failure is non-exsistant, instead being repurosed \ - such as shaping them into ravanger units." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/hellhound - name = "Hellhound Units" - desc = "Equiped with specialized armor, the systems of the suit pairing \ - with their nervous system in an attempt to allow for better hunting. \ - Venom is found within their claws and fangs, the chemical compound being, \ - akin to soporific, The hellhound units are both useful for single target \ - hunting, and frontal assualt." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/wheel - name = "Armadillo" - desc = "With several strange creatures among their ranks, the Eclipse \ - has attempted strange and usual armors and tatics. With several being able \ - to curl up into a ball shape, the wheel armor was created, trying to turn \ - a rolling motion into an offensive force." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/guardian - name = "Slime Pits" - desc = "Another potential of failed resleeves are the slime pits, \ - the failed body being merged with one of their many slimes, creating something \ - akin to a promethean but having a mind more akin to a drone. Some of the \ - slime creations the similiar abilties to their slime counter parts, or \ - renamants of the donator's DNA." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/pummler - name = "Hunter Unit - Pummler" - desc = "Another drone like creation, meld with alien sea life, and traces \ - renamants of solar grubs. Was orginally meant for assualting mecha pilots, \ - and tearing them free from the mechas, but prooved to be too variable with \ - results. Instead their desgin changing to that of hunting down single \ - targets across any and all terrains." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/aeroblaster - name = "Eclipse Drones" - desc = "Sometimes, the failed resleeves only leave the fragments of a mind \ - behind. But even that is useful, latching onto the renamants of loyalty and \ - the brain's remaining procressing power to create special circuits for, \ - their drones." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/miner - name = "Bio-tech Unit" - desc = "One benefit of the slime units is they're able to easily interface \ - with the drone units. Cooperation is keenly unquie between the slime and \ - drone units. This is espically helpful within hazardous mining conditions \ - both being able to flee or alter plans as soon as either noitces." - value = CATALOGUER_REWARD_MEDIUM - - -/datum/category_item/catalogue/fauna/eclipse/froststalker - name = "Mindless Ice" - desc = "Cryogel expermination has been one of the most active fronts, but \ - with it, countless failures. Whilst not on purpose, many of their number\ - have had their bodies freeze over, transforming into sentient creatures, \ - of ice. Their minds sometimes lost alongside their orginal form." - value = CATALOGUER_REWARD_MEDIUM - -/datum/category_item/catalogue/fauna/eclipse/cryomancer - name = "Cryomancers" - desc = "One of the few success in the Pluto Intitative, but one that \ - yields great results. Highly resistant to cold, and heat, more so then it's \ - contemparies, all the while wielding expirmental frost weaponry to deadly \ - effecieny. Rare and vaulable pieces in the Eclipse's army, they are rarely seen \ - but when utilized, that area is of high priority. " - value = CATALOGUER_REWARD_MEDIUM diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/noms.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/noms.dm deleted file mode 100644 index 8e3dcee91c..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/eclipse/noms.dm +++ /dev/null @@ -1,149 +0,0 @@ -/mob/living/simple_mob/humanoid/eclipse - vore_active = 1 - vore_capacity = 2 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 30 - vore_icons = null - - can_be_drop_prey = FALSE - can_be_drop_pred = TRUE - -/mob/living/simple_mob/humanoid/eclipse/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 3 - -/mob/living/simple_mob/humanoid/eclipse/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/eclipse/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!",) - -//This is placeholder code. Going to add special vorny for each of them slowly but surely. -/mob/living/simple_mob/humanoid/eclipse/head/scientist - vore_active = 1 - vore_capacity = 6 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - - can_be_drop_prey = FALSE //CHOMP Add - digestable = 0 - devourable = 0 - -/mob/living/simple_mob/humanoid/eclipse/head/scientist/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 1 - -/mob/living/simple_mob/humanoid/eclipse/head/scientist/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/eclipse/head/scientist/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.", - "Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.", - "Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!", - "The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.", - "Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,) - -/mob/living/simple_mob/humanoid/eclipse/head/security - vore_active = 1 - vore_capacity = 6 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - - can_be_drop_prey = FALSE //CHOMP Add - digestable = 0 - devourable = 0 - -/mob/living/simple_mob/humanoid/eclipse/head/security/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 1 - -/mob/living/simple_mob/humanoid/eclipse/head/security/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/eclipse/head/security/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.", - "Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.", - "Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!", - "The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.", - "Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,) - - -/mob/living/simple_mob/humanoid/eclipse/head/captain - vore_active = 1 - vore_capacity = 6 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - - can_be_drop_prey = FALSE //CHOMP Add - digestable = 0 - devourable = 0 - -/mob/living/simple_mob/humanoid/eclipse/head/captain/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 1 - -/mob/living/simple_mob/humanoid/eclipse/head/captain/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/eclipse/head/captain/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.", - "Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.", - "Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!", - "The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.", - "Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/avatar.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/avatar.dm deleted file mode 100644 index fb9a8a0162..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/avatar.dm +++ /dev/null @@ -1,219 +0,0 @@ -/mob/living/simple_mob/humanoid/starhunter/hunter/clone - name = "Avatar Of The Serpent" - icon_state = "avatar" - health = 15 - maxHealth = 15 - ai_holder_type = /datum/ai_holder/simple_mob/ranged/aggressive/starhunter - projectiletype = /obj/item/projectile/energy/ninjastar - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar - name = "Avatar Of The Serpent" - icon_state = "avatar" - health = 1000 //50 hits from 20 damage - maxHealth = 1000 //50 hits from 20 damage - damage_fatigue_mult = 0 - ai_holder_type = /datum/ai_holder/simple_mob/ranged/aggressive/starhunter - special_attack_cooldown = 20 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - projectiletype = /obj/item/projectile/energy/ninjastar - digestable = 0 - devourable = 0 - //note to self, expand the loot list later - loot_list = list(/obj/item/storage/belt/holding = 60, - /obj/item/clothing/glasses/omni = 60, - /obj/item/kinetic_crusher/glaive = 60, - /obj/item/slime_extract/sepia = 60, - /obj/item/circuitboard/defenseonelisk = 60, - /obj/item/circuitboard/paradoxrift = 60, - /obj/item/capture_crystal = 60 - ) - - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/updatehealth() - . = ..() - - if(health < maxHealth*0.25) - special_attack_cooldown = 5 SECONDS - projectiletype = /obj/item/projectile/bullet/ninjaburst - else if(health < maxHealth*0.5) - special_attack_cooldown = 10 SECONDS - projectiletype = /obj/item/projectile/energy/kunai - else if (health < maxHealth*0.75) - special_attack_cooldown = 15 SECONDS - projectiletype = /obj/item/projectile/energy/chakaram - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/do_special_attack(atom/A) - if(health < maxHealth*0.4) - if(prob(20)) - lightingstorm(A) - if(prob(20)) - lightingline(A) - if(prob(20)) - lightpillar(A) - if(prob(20)) - clones(A) - else - rapidfire_windup(A) - else if(health < maxHealth*0.7) - if(prob(25)) - lightingstorm(A) - if(prob(25)) - lightingline(A) - if(prob(25)) - lightpillar(A) - else - rapidfire_windup(A) - else - if(prob(50)) - lightingstrike(A) - else - lightpillar(A) - -/obj/item/projectile/energy/kunai //chip damage - name = "Energy Kunai" - icon = 'modular_chomp/icons/mob/starhunters.dmi' //commiting sin - icon_state = "kunai" - damage = 5 - armor_penetration = 65 //Gets into the gaps - speed = 2 - damage_type = BURN - check_armour = "laser" - -/obj/item/projectile/energy/chakaram //slower but hits harder - name = "Energy Chakaram" - icon = 'modular_chomp/icons/mob/starhunters.dmi' //commiting sin - icon_state = "chakaram" - damage = 25 - armor_penetration = 25 //Gets into the gaps - speed = 5 - damage_type = BURN - check_armour = "laser" - -/obj/item/projectile/bullet/ninjaburst - use_submunitions = 1 - only_submunitions = 1 - range = 0 - embed_chance = 0 - submunition_spread_max = 2600 - submunition_spread_min = 150 - submunitions = list(/obj/item/projectile/energy/kunai = 3, /obj/item/projectile/energy/chakaram = 1, /obj/item/projectile/energy/ninjastar = 3) - -/datum/ai_holder/simple_mob/ranged/aggressive/starhunter - vision_range = 14 - closest_distance = 5 - returns_home = TRUE // Stay close to the base... - wander = TRUE // ... but "patrol" a little. - intelligence_level = AI_SMART // Also knows not to walk while confused if it risks death. - mauling = TRUE - call_distance = 0 //Trying to disable this for the mobs - retaliate = TRUE - hostile = FALSE - violent_breakthrough = TRUE - respect_alpha = FALSE - pointblank = TRUE - -/obj/effect/calldown_attack_lighting - anchored = TRUE - density = FALSE - unacidable = TRUE - mouse_opacity = 0 - icon = 'icons/effects/effects.dmi' - icon_state = "drop_marker" - -/obj/effect/calldown_attack_lighting/Initialize(mapload) - ..() - return INITIALIZE_HINT_LATELOAD - -/obj/effect/calldown_attack_fire/LateInitialize() - var/delay = rand(25, 30) - spawn(delay-7) - lightning_strike(src.loc) - spawn(delay) - qdel(src) - - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/proc/lightingstorm(atom/A) - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/starhunter/hunter)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - lightingstormfollow(target) - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/proc/lightingstormfollow(atom/target) - var/list/bomb_range = block(locate(target.x-6, target.y-6, target.z), locate(target.x+6, target.y+6, target.z)) - new /obj/effect/calldown_attack(get_turf(target)) - bomb_range -= get_turf(target) - for(var/i = 0, i < 4, i++) - var/turf/T = pick(bomb_range) - new /obj/effect/calldown_attack_lighting(T) - bomb_range -= T - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/proc/lightingline(atom/A) - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/starhunter/hunter)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - lightinglinefollow(target) - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/proc/lightinglinefollow(atom/target) - var/alignment = rand(1,2) // 1 for vertical, 2 for horizontal - var/list/line_range = list() - var/turf/T = get_turf(target) - line_range += T - for(var/i = 1, i <= 7, i++) - switch(alignment) - if(1) - if(T.x-i > 0) - line_range += locate(T.x-i, T.y, T.z) - if(T.x+i <= world.maxx) - line_range += locate(T.x+i, T.y, T.z) - if(2) - if(T.y-i > 0) - line_range += locate(T.x, T.y-i, T.z) - if(T.y+i <= world.maxy) - line_range += locate(T.x, T.y+i, T.z) - for(var/turf/dropspot in line_range) - new /obj/effect/calldown_attack_lighting(dropspot) - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/proc/clones(atom/A) - new /mob/living/simple_mob/humanoid/starhunter/hunter/clone (src.loc) - new /mob/living/simple_mob/humanoid/starhunter/hunter/clone (src.loc) - new /mob/living/simple_mob/humanoid/starhunter/hunter/clone (src.loc) - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/proc/lightingstrike(atom/A) - var/list/nearby_things = range(1, A) - var/list/valid_turfs = list() - - // All this work to just go to a non-dense tile. - for(var/turf/potential_turf in nearby_things) - var/valid_turf = TRUE - if(potential_turf.density) - continue - for(var/atom/movable/AM in potential_turf) - if(AM.density) - valid_turf = FALSE - if(valid_turf) - valid_turfs.Add(potential_turf) - - if(!(valid_turfs.len)) - to_chat(src, span_warning("There wasn't an unoccupied spot to teleport to.")) - return FALSE - - var/turf/target_turf = pick(valid_turfs) - - new/obj/effect/calldown_attack_lighting(target_turf) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/base.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/base.dm deleted file mode 100644 index 2f895a414c..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/base.dm +++ /dev/null @@ -1,156 +0,0 @@ -/mob/living/simple_mob/humanoid/starhunter - name = "Starhunter Initiate" - desc = "A strange critter cladded in strange armor." - icon = 'modular_chomp/icons/mob/starhunters.dmi' - icon_state = "sun" - icon_living = "sun" - icon_dead = "statisgem" - icon_gib = "syndicate_gib" - taser_kill = 0 - - faction = "starhunter" - movement_cooldown = 0 - - status_flags = 0 - - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" - - health = 120 //This may be high, but intend for the combative ones to be on their own. - maxHealth = 120 - harm_intent_damage = 5 - melee_damage_lower = 17 //machette - melee_damage_upper = 17 //beg knife go brrr - attack_sharp = 1 - attack_edge = 1 - attacktext = list("slashed", "stabbed") - projectile_dispersion = 8 - projectile_accuracy = -20 - armor = list(melee = 40, bullet = 70, laser = 10, energy = 0, bomb = 50, bio = 100, rad = 100) // Critters are more ortiented torwards melee and bullet - ranged_cooldown = 5 - - ai_holder_type = /datum/ai_holder/simple_mob/starhunter - - can_be_drop_prey = FALSE - pass_flags = PASSTABLE - softfall = TRUE - - //spaceproofing things - minbodytemp = 0 // Minimum "okay" temperature in kelvin - maxbodytemp = 600 // Maximum of above - - min_oxy = 0 // Oxygen in moles, minimum, 0 is 'no minimum' - max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum' - min_tox = 0 // Phoron min - max_tox = 0 // Phoron max - min_co2 = 0 // CO2 min - max_co2 = 0 // CO2 max - min_n2 = 0 // N2 min - max_n2 = 0 - -/datum/ai_holder/simple_mob/starhunter - returns_home = TRUE // Stay close to the base... - wander = TRUE // ... but "patrol" a little. - intelligence_level = AI_SMART // Also knows not to walk while confused if it risks death. - can_flee = TRUE // If they're even allowed to flee. - flee_when_dying = TRUE // If they should flee when low on health. - dying_threshold = 0.2 // How low on health the holder needs to be before fleeing. Defaults to 30% or lower health. - mauling = TRUE - call_distance = 0 //Trying to disable this for the mobs - vision_range = 10 - retaliate = TRUE - hostile = FALSE - violent_breakthrough = TRUE - respect_alpha = FALSE - pointblank = TRUE - -/datum/ai_holder/simple_mob/starhunter/aggro - hostile = TRUE - -//basic aggro stahunters -/mob/living/simple_mob/humanoid/starhunter/hunter - ai_holder_type = /datum/ai_holder/simple_mob/starhunter/aggro - special_attack_cooldown = 30 SECONDS - special_attack_min_range = 1 - special_attack_max_range = 7 - -/mob/living/simple_mob/humanoid/starhunter/hunter/harvester - icon_state = "snekdruid" - icon_state = "snekdruid" - melee_damage_lower = 25 - melee_damage_upper = 25 - melee_attack_delay = 2.5 SECOND - -/mob/living/simple_mob/humanoid/starhunter/hunter/harvester/handle_special() //wierd movement - if(prob(20)) - step(src, pick(GLOB.cardinal)) - ..() - -/mob/living/simple_mob/humanoid/starhunter/hunter/ninja - icon_state = "suneswift" - icon_living = "suneswift" - movement_cooldown = -3 - melee_damage_lower = 15 - melee_damage_upper = 15 - melee_attack_delay = 1.5 SECOND - -/mob/living/simple_mob/humanoid/starhunter/hunter/ninja/do_special_attack(atom/target) - if(prob(50)) - teleportnompf(target) - else - smokebomb(target) -//Special attack procs -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/teleportnompf(atom/target) - var/list/nearby_things = range(1, target) - var/list/valid_turfs = list() - - for(var/turf/potential_turf in nearby_things) - var/valid_turf = TRUE - if(potential_turf.density) - continue - for(var/atom/movable/AM in potential_turf) - if(AM.density) - valid_turf = FALSE - if(valid_turf) - valid_turfs.Add(potential_turf) - - if(!(valid_turfs.len)) - to_chat(src, span_warning("There wasn't an unoccupied spot to teleport to.")) - return FALSE - - var/turf/target_turf = pick(valid_turfs) - - forceMove(target_turf) - - var/mob/living/L = target - var/obj/belly/belly_dest - - if(L.can_be_drop_prey && L.devourable) - L.forceMove(belly_dest) - to_chat(target, span_danger("[src] materializes around you, as you end up in their [belly_dest]!")) - - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/smokebomb(atom/target) - var/list/nearby_things = range(1, target) - var/list/valid_turfs = list() - - // All this work to just go to a non-dense tile. - for(var/turf/potential_turf in nearby_things) - var/valid_turf = TRUE - if(potential_turf.density) - continue - for(var/atom/movable/AM in potential_turf) - if(AM.density) - valid_turf = FALSE - if(valid_turf) - valid_turfs.Add(potential_turf) - - if(!(valid_turfs.len)) - to_chat(src, span_warning("There wasn't an unoccupied spot to teleport to.")) - return FALSE - - var/turf/target_turf = pick(valid_turfs) - - var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/smoke_spread - s2.set_up(5, 1, target_turf) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/food.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/food.dm deleted file mode 100644 index 9a78260f98..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/food.dm +++ /dev/null @@ -1,108 +0,0 @@ -/mob/living/simple_mob/humanoid/starhunter/hunter/druid - vore_active = 1 - vore_capacity = 6 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - - can_be_drop_prey = FALSE //CHOMP Add - -/mob/living/simple_mob/humanoid/starhunter/hunter/druid/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 1 - -/mob/living/simple_mob/humanoid/starhunter/hunter/druid/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/starhunter/hunter/druid/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.", - "Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.", - "Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!", - "The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.", - "Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,) - -/mob/living/simple_mob/humanoid/starhunter/hunter/champion - vore_active = 1 - vore_capacity = 6 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - - can_be_drop_prey = FALSE //CHOMP Add - -/mob/living/simple_mob/humanoid/starhunter/hunter/champion/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 1 - -/mob/living/simple_mob/humanoid/starhunter/hunter/champion/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/starhunter/hunter/champion/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.", - "Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.", - "Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!", - "The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.", - "Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,) - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar - vore_active = 1 - vore_capacity = 6 - vore_max_size = RESIZE_HUGE - vore_min_size = RESIZE_SMALL - vore_pounce_chance = 0 // Beat them into crit before eating. - vore_icons = SA_ICON_LIVING - - can_be_drop_prey = FALSE //CHOMP Add - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/Login() - . = ..() - if(!riding_datum) - riding_datum = new /datum/riding/simple_mob(src) - add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel - add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - movement_cooldown = 1 - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/MouseDrop_T(mob/living/M, mob/living/user) - return - -/mob/living/simple_mob/humanoid/starhunter/hunter/avatar/load_default_bellies() - . = ..() - var/obj/belly/B = vore_selected - B.name = "stomach" - B.desc = "The fearsome preadtor gets a firm grip upon you, before dunking you into it's maw, then with a powerful swift gulp you're sent tumbling into it's stomach.." - - B.emote_lists[DM_HOLD] = list( - "Your surroundings are momentarily filled with tour predator's pleased rumbling, its hands stroking over the taut swell you make in its belly.", - "Your surrondings glow with a neon red, dashes and spirals of pitch black flowing through the red gummy flesh as if it were a strange sky.", - "Your satsified predator sways their bloated gullet happily, their warm rumbling vibrarting the stomach, and by extension you.",) - - B.emote_lists[DM_DIGEST] = list( - "Every clench of the predator's stomach grinds powerful digestive fluids into your body, forcibly churning away your strength!", - "The caustic red acid splashes, and washes over your frame, your sense of smell being overwhelmed by acid and sulfur as you're turned to nutrion.", - "Every swift swap of the predator's hips sends you slamming against the glowing red sides, your vision blurring further as you contunie to weaken." ,) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/hunters.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/hunters.dm deleted file mode 100644 index f83613d41f..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/hunters.dm +++ /dev/null @@ -1,242 +0,0 @@ -//beg critters -//kitsune is bullet hell esque in a traditonal sense -//naga does a bunch of spawning and CoC -//This are both training for the bigger dude I'll make later -/mob/living/simple_mob/humanoid/starhunter/hunter/druid - name = "Starhunter Druid" - health = 200 //20 hits from 20 damage - maxHealth = 200 //20 hits from 20 damage - damage_fatigue_mult = 0 - icon_state = "snekdruid" - icon_living = "snekdruid" - -/mob/living/simple_mob/humanoid/starhunter/hunter/druid/do_special_attack(atom/A) - if(prob(50)) - lightpillar(A) - else - fire_lines(A) - -/mob/living/simple_mob/humanoid/starhunter/hunter/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/energy/lightpillar)) - visible_message(span_bolddanger(span_orange("[P] seems ineffective!."))) //immune to their own attack - else - ..() - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/lightpillar(atom/A) - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/starhunter/hunter)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - spawn_lightpillar(target) - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/spawn_lightpillar(atom/target) - var/list/bomb_range = block(locate(target.x-4, target.y-4, target.z), locate(target.x+4, target.y+4, target.z)) - new /obj/effect/calldown_attack(get_turf(target)) - bomb_range -= get_turf(target) - for(var/i = 0, i < 4, i++) - var/turf/T = pick(bomb_range) - new /mob/living/simple_mob/humanoid/starhunter/hunter/prop(T) - bomb_range -= T - -/mob/living/simple_mob/humanoid/starhunter/hunter/prop //This ain't a mob to spawn, but something apart of other mobs attacks and self deletes - health = 1000 - maxHealth = 1000 - projectile_dispersion = 0 - projectile_accuracy = 100 - armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 100, bio = 100, rad = 100) - projectiletype = /obj/item/projectile/energy/lightpillar - ranged_attack_delay = 1.5 SECONDS - icon_state = "prism" - icon_living = "prism" - -/mob/living/simple_mob/humanoid/starhunter/hunter/prop/ranged_pre_animation(atom/A) - Beam(get_turf(A), icon_state = "sniper_beam", time = 2 SECONDS, maxdistance = 10) - . = ..() - -/mob/living/simple_mob/humanoid/starhunter/hunter/prop/shoot_target(atom/A) - set waitfor = FALSE - - if(!istype(A) || QDELETED(A)) - return - - setClickCooldown(get_attack_speed()) - - face_atom(A) - - var/atom/orig_targ = A - - if(ranged_attack_delay) - A = get_turf(orig_targ) - ranged_pre_animation(A) - handle_attack_delay(A, ranged_attack_delay) // This will sleep this proc for a bit, which is why waitfor is false. - - if(needs_reload) - if(reload_count >= reload_max) - try_reload() - return FALSE - - /* - * CHOMP Addition: This section here is (duplicated) special snowflake code because sniper does not call parent. Basically, this is a non-stupid version of the above intended for ranged mobs. - * ranged_attack_delay is stupid because it sleeps the entire mob. - * This new ranged_cooldown_time is smarter in the sense that it is an internalized timer. Try not to confuse the names. - */ - if(ranged_cooldown_time) //If you have a non-zero number in a mob's variables, this pattern begins. - if(ranged_cooldown <= world.time) //Further down, a timer keeps adding to the ranged_cooldown variable automatically. - visible_message(span_danger(span_bold("\The [src]") + " fires at \the [A]!")) //Leave notice of shooting. - shoot(A) //Perform the shoot action - if(casingtype) //If the mob is designated to leave casings... - new casingtype(loc) //... leave the casing. - ranged_cooldown = world.time + ranged_cooldown_time + ((injury_level / 2) SECONDS) //Special addition here. This is a timer. Keeping updating the time after shooting. Add that ranged cooldown time specified in the mob to the world time. - qdel(src) - return TRUE //End these commands here. - // CHOMPAddition End - - visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!")) - shoot(A) - if(casingtype) - new casingtype(loc) - - if(ranged_attack_delay) - ranged_post_animation(A) - - return TRUE - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/fire_lines(atom/A) - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/starhunter/hunter)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - spawn_fire(target) - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/spawn_fire(atom/target) - var/alignment = rand(1,2) // 1 for vertical, 2 for horizontal - var/list/line_range = list() - var/turf/T = get_turf(target) - line_range += T - for(var/i = 1, i <= 7, i++) - switch(alignment) - if(1) - if(T.x-i > 0) - line_range += locate(T.x-i, T.y, T.z) - if(T.x+i <= world.maxx) - line_range += locate(T.x+i, T.y, T.z) - if(2) - if(T.y-i > 0) - line_range += locate(T.x, T.y-i, T.z) - if(T.y+i <= world.maxy) - line_range += locate(T.x, T.y+i, T.z) - for(var/turf/dropspot in line_range) - new /obj/effect/calldown_attack_fire(dropspot) - - -/obj/effect/calldown_attack_fire - anchored = TRUE - density = FALSE - unacidable = TRUE - mouse_opacity = 0 - icon = 'icons/effects/effects.dmi' - icon_state = "drop_marker" - -/obj/effect/calldown_attack_fire/Initialize(mapload) - ..() - return INITIALIZE_HINT_LATELOAD - -/obj/effect/calldown_attack_fire/LateInitialize() - var/delay = rand(25, 30) - spawn(delay-7) - new /obj/fire(src.loc) - spawn(delay) - qdel(src) - - -//Kitsune Stuff -/mob/living/simple_mob/humanoid/starhunter/hunter/champion - name = "Starhunter Starweilder" - health = 200 //10 hits from 20 damage - maxHealth = 200 - damage_fatigue_mult = 0 - projectiletype = /obj/item/projectile/energy/ninjastar - icon_state = "suneswift" - icon_living = "suneswift" - -/mob/living/simple_mob/humanoid/starhunter/hunter/champion/do_special_attack(atom/A) - if(prob(50)) - bullethell(A) - else - rapidfire_windup(A) - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/bullethell(atom/A) - set waitfor = FALSE - - var/sd = dir2angle(dir) - var/list/offsets = list(45, 45, 20, 10) - - for(var/i = 0, i<4, i++) - for(var/j = 0, j <4, j++) - var/obj/item/projectile/energy/slow_orb/shot = new(get_turf(src)) - shot.firer = src - shot.fire(sd) - sd += 90 - sd += pick(offsets) - sleep(20) - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/rapidfire_windup(atom/A) - var/list/potential_targets = ai_holder.list_targets() - for(var/atom/entry in potential_targets) - if(istype(entry, /mob/living/simple_mob/humanoid/starhunter/hunter)) - potential_targets -= entry - if(potential_targets.len) - var/iteration = clamp(potential_targets.len, 1, 3) - for(var/i = 0, i < iteration, i++) - if(!(potential_targets.len)) - break - var/mob/target = pick(potential_targets) - potential_targets -= target - rapidfire(target) - -/mob/living/simple_mob/humanoid/starhunter/hunter/proc/rapidfire(atom/target) - var/list/bomb_range = block(locate(target.x-4, target.y-4, target.z), locate(target.x+4, target.y+4, target.z)) - var/obj/item/projectile/P = new /obj/item/projectile/energy/ninjastar(get_turf(src)) - bomb_range -= get_turf(target) - for(var/i = 0, i < 4, i++) - var/turf/T = pick(bomb_range) - P.launch_projectile(target, BP_TORSO, src) - bomb_range -= T - - -/obj/item/projectile/energy/lightpillar - name = "Light Pillar" - icon = 'modular_chomp/icons/mob/starhunters.dmi' //commiting sin - icon_state = "lightpillar" - damage = 30 //DIVINE JUDGMENT - armor_penetration = 50 //DIVINE JUDGMENT - light_range = 5 - light_power = 5 - damage_type = BURN - check_armour = "laser" - light_color = "#FF6600" - range = 7 - speed = 13 - -/obj/item/projectile/energy/ninjastar - name = "Energy Star" - icon = 'modular_chomp/icons/mob/starhunters.dmi' //commiting sin - icon_state = "ninjastar" - damage = 15 - armor_penetration = 25 //Gets into the gaps - damage_type = BURN - check_armour = "laser" diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/passive.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/passive.dm deleted file mode 100644 index 70b5518a6f..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/passive.dm +++ /dev/null @@ -1,128 +0,0 @@ -/mob/living/simple_mob/humanoid/starhunter/trader/weaponsmith - name = "Starhunter Weapon Smith" - icon_state = "sunetrader" - icon_living = "sunetrader" - products = list(/obj/item/gun/energy/sickshot = 5, - /obj/item/material/twohanded/fireaxe/scythe = 3, - /obj/item/material/twohanded/spear/lance = 3, - /obj/item/beartrap = 12, - /obj/item/material/barbedwire = 12, - /obj/item/material/sword/battleaxe = 3 - - ) // For each, use the following pattern: - - premium = list(/obj/item/gun/energy/maghowitzer) //This may be a mistake - - prices = list(/obj/item/gun/energy/maghowitzer = 8000, - /obj/item/gun/energy/sickshot = 800, - /obj/item/material/twohanded/fireaxe/scythe = 400, - /obj/item/material/twohanded/spear/lance = 400, - /obj/item/beartrap = 80, - /obj/item/material/barbedwire = 80, - /obj/item/material/sword/battleaxe = 400 - ) - -/mob/living/simple_mob/humanoid/starhunter/trader/reliccollecter - name = "Starhunter Relic Collector" - icon_state = "snektrader" - icon_living = "snektrader" - products = list(/obj/item/clothing/head/helmet/combat/crusader = 3, - /obj/item/clothing/suit/armor/combat/crusader = 3, - /obj/item/clothing/head/culthood = 3, - /obj/item/clothing/suit/cultrobes = 3, - /obj/item/clothing/head/helmet/space/cult = 3, - /obj/item/clothing/suit/space/cult = 3, - /obj/item/soulstone = 8, - /obj/item/clothing/glasses/monocoole = 3, - /obj/item/storage/belt/holding = 1, - /obj/item/clothing/gloves/regen = 1 - ) // For each, use the following pattern: - - premium = list(/obj/item/clothing/glasses/omni) //I am unsure why but this feels right - - prices = list(/obj/item/clothing/head/helmet/combat/crusader = 600, - /obj/item/clothing/suit/armor/combat/crusader = 600, - /obj/item/clothing/head/culthood = 600, - /obj/item/clothing/suit/cultrobes = 600, - /obj/item/clothing/head/helmet/space/cult = 600, - /obj/item/clothing/suit/space/cult = 600, - /obj/item/soulstone = 80, - /obj/item/clothing/glasses/monocoole = 1200, - /obj/item/storage/belt/holding = 1800, - /obj/item/clothing/gloves/regen = 1800, - /obj/item/clothing/glasses/omni = 2600 - ) - -/mob/living/simple_mob/humanoid/starhunter/trader/miner - name = "Starhunter Miner" - icon_state = "snektrader" - icon_living = "snektrader" - products = list(/obj/item/kinetic_crusher/glaive = 5, - /obj/item/kinetic_crusher = 3, - /obj/item/gun/energy/mininglaser = 3, - /obj/item/melee/shock_maul = 3, - /obj/item/stack/material/phoron = 50, - /obj/item/stack/material/uranium = 50, - /obj/item/stack/material/tritium = 50, - /obj/item/stack/material/deuterium = 50, - /obj/item/stack/material/bronze = 50, - /obj/item/circuitboard/paradoxrift = 3 - ) // For each, use the following pattern: - - premium = list(/obj/item/circuitboard/defenseonelisk) // No specified amount = only one in stock - - prices = list(/obj/item/kinetic_crusher/glaive = 600, - /obj/item/kinetic_crusher = 600, - /obj/item/gun/energy/mininglaser = 800, - /obj/item/melee/shock_maul = 600, - /obj/item/stack/material/phoron = 12, - /obj/item/stack/material/uranium = 12, - /obj/item/stack/material/tritium = 12, - /obj/item/stack/material/deuterium = 12, - /obj/item/stack/material/bronze = 12, - /obj/item/circuitboard/paradoxrift = 2400, - /obj/item/circuitboard/defenseonelisk = 5000 - ) - -/mob/living/simple_mob/humanoid/starhunter/trader/farmer - name = "Starhunter Farmer" - icon_state = "sunetrader" - icon_living = "sunetrader" - products = list(/obj/item/slime_extract/sepia =3, - /obj/item/slime_extract/ruby = 3, - /obj/item/slime_extract/bluespace = 3, - /obj/item/slime_extract/oil = 3, - /obj/item/slime_extract/sapphire = 3, - /obj/item/slime_extract/emerald = 3, - /obj/item/seeds/shrinkshroom = 12, - /obj/item/seeds/megashroom = 12, - /obj/item/seeds/pitcherseed = 6, - /obj/item/seeds/deathberryseed = 6, - /obj/item/seeds/ambrosiainfernusseed = 6, - /obj/item/seeds/thaadra = 6, - /obj/item/seeds/icepepperseed = 6, - /obj/item/seeds/jurlmah = 6, - /obj/item/seeds/amauri = 6, - /obj/item/seeds/gelthi = 6, - /obj/item/seeds/vale = 6 - ) // For each, use the following pattern: - - premium = list() // No specified amount = only one in stock - - prices = list(/obj/item/slime_extract/sepia = 2500, - /obj/item/slime_extract/ruby = 2250, - /obj/item/slime_extract/bluespace = 2250, - /obj/item/slime_extract/oil = 2250, - /obj/item/slime_extract/sapphire = 2250, - /obj/item/slime_extract/emerald = 2250, - /obj/item/seeds/shrinkshroom = 50, - /obj/item/seeds/megashroom = 50, - /obj/item/seeds/pitcherseed = 125, - /obj/item/seeds/deathberryseed = 125, - /obj/item/seeds/ambrosiainfernusseed = 125, - /obj/item/seeds/thaadra = 125, - /obj/item/seeds/icepepperseed = 125, - /obj/item/seeds/jurlmah = 125, - /obj/item/seeds/amauri = 125, - /obj/item/seeds/gelthi = 125, - /obj/item/seeds/vale = 125) diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/tradercode.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/tradercode.dm deleted file mode 100644 index 4a8aa7b50e..0000000000 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/starhunters/tradercode.dm +++ /dev/null @@ -1,392 +0,0 @@ -/mob/living/simple_mob/humanoid/starhunter/trader - var/vend_ready = 1 //Are we ready to vend?? Is it time?? - var/vend_delay = 10 //How long does it take to vend? - var/categories = CAT_NORMAL // Bitmask of cats we're currently showing - var/datum/stored_item/vending_product/currently_vending = null // What we're requesting payment for right now - var/vending_sound = "machines/vending/vending_drop.ogg" - - /* - Variables used to initialize the product list - These are used for initialization only, and so are optional if - product_records is specified - */ - var/list/products = list() // For each, use the following pattern: - var/list/contraband = list() // list(/type/path = amount,/type/path2 = amount2) - var/list/premium = list() // No specified amount = only one in stock - /// Set automatically, allows coin use - var/has_premium = FALSE - var/list/prices = list() // Prices for each item, list(/type/path = price), items not in the list don't have a price. - /// Set automatically, enables pricing - var/has_prices = FALSE - // This one is used for refill cartridge use. - var/list/refill = list() // For each, use the following pattern: - // Enables refilling with appropriate cartridges - var/refillable = TRUE - var/obj/item/coin/coin - var/list/log = list() - var/has_logs = 0 - var/list/product_records = list() - - -/mob/living/simple_mob/humanoid/starhunter/trader/Initialize(mapload) - . = ..() - build_inventory() - - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/build_inventory() - var/list/all_products = list( - list(products, CAT_NORMAL), - list(contraband, CAT_HIDDEN), - list(premium, CAT_COIN)) - - for(var/current_list in all_products) - var/category = current_list[2] - - for(var/entry in current_list[1]) - var/datum/stored_item/vending_product/product = new/datum/stored_item/vending_product(src, entry) - - product.price = (entry in prices) ? prices[entry] : 0 - product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 - product.category = category - - GLOB.vending_products[entry] = 1 - - if(LAZYLEN(prices)) - has_prices = TRUE - if(LAZYLEN(premium)) - has_premium = TRUE - - - LAZYCLEARLIST(products) - LAZYCLEARLIST(contraband) - LAZYCLEARLIST(premium) - LAZYCLEARLIST(prices) - all_products.Cut() - - -/mob/living/simple_mob/humanoid/starhunter/trader/attackby(obj/item/W as obj, mob/user as mob) - var/obj/item/card/id/I = W.GetID() - - if(I || istype(W, /obj/item/spacecash)) - attack_hand(user) - return - else if(istype(W, /obj/item/coin) && has_premium) - user.drop_item() - W.forceMove(src) - coin = W - categories |= CAT_COIN - to_chat(user, span_notice("You insert \the [W] into \the [src].")) - SStgui.update_uis(src) - return - else - - for(var/datum/stored_item/vending_product/R in product_records) - if(istype(W, R.item_path) && (W.name == R.item_name)) - stock(W, R, user) - return - ..() - - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_cash(var/obj/item/spacecash/cashmoney, mob/user) - if(currently_vending.price > cashmoney.worth) - - // This is not a status display message, since it's something the character - // themselves is meant to see BEFORE putting the money in - to_chat(usr, "[icon2html(cashmoney,user.client)] " + span_warning("That is not enough money.")) - return 0 - - if(istype(cashmoney, /obj/item/spacecash)) - - visible_message(span_info("\The [usr] inserts some cash into \the [src].")) - cashmoney.worth -= currently_vending.price - - if(cashmoney.worth <= 0) - usr.drop_from_inventory(cashmoney) - qdel(cashmoney) - else - cashmoney.update_icon() - - // Vending machines have no idea who paid with cash - credit_purchase("(cash)") - return 1 - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/credit_purchase(var/target as text) - GLOB.vendor_account.money += currently_vending.price - - var/datum/transaction/T = new() - T.target_name = target - T.purpose = "Purchase of [currently_vending.item_name]" - T.amount = "[currently_vending.price]" - T.source_terminal = name - T.date = GLOB.current_date_string - T.time = stationtime2text() - GLOB.vendor_account.transaction_log.Add(T) - -/mob/living/simple_mob/humanoid/starhunter/trader/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "Vending", name) - ui.open() - -/mob/living/simple_mob/humanoid/starhunter/trader/tgui_data(mob/user) - var/list/data = list() - var/list/listed_products = list() - - data["chargesMoney"] = has_prices ? TRUE : FALSE - - data["products"] = listed_products - - if(coin) - data["coin"] = coin.name - else - data["coin"] = FALSE - - if(currently_vending) - data["actively_vending"] = currently_vending.item_name - else - data["actively_vending"] = null - - var/mob/living/carbon/human/H - var/obj/item/card/id/C - - data["guestNotice"] = "Please present cash."; - data["userMoney"] = 0 - data["user"] = null - if(ishuman(user)) - H = user - C = H.GetIdCard() - var/obj/item/spacecash/S = H.get_active_hand() - if(istype(S)) - data["userMoney"] = S.worth - data["guestNotice"] = "Accepting [S.initial_name]. You have: [S.worth]â‚®." - else if(istype(C)) - var/datum/money_account/A = get_account(C.associated_account_number) - if(istype(A)) - data["user"] = list() - data["user"]["name"] = A.owner_name - data["userMoney"] = A.money - data["user"]["job"] = (istype(C) && C.rank) ? C.rank : "No Job" - else - data["guestNotice"] = "Unlinked ID detected. Present cash to pay."; - - return data - - - -/mob/living/simple_mob/humanoid/starhunter/trader/tgui_act(action, params) - if(usr.stat || usr.restrained()) - return - if(..()) - return TRUE - - . = TRUE - switch(action) - if("remove_coin") - if(issilicon(usr)) - return FALSE - - if(!coin) - to_chat(usr, span_filter_notice("There is no coin in this machine.")) - return - - coin.forceMove(src.loc) - if(!usr.get_active_hand()) - usr.put_in_hands(coin) - - to_chat(usr, span_notice("You remove \the [coin] from \the [src].")) - coin = null - categories &= ~CAT_COIN - return TRUE - if("vend") - if(!vend_ready) - to_chat(usr, span_warning("[src] is busy!")) - return - - var/key = text2num(params["vend"]) - var/datum/stored_item/vending_product/R = product_records[key] - - // This should not happen unless the request from NanoUI was bad - if(!(R.category & categories)) - return - - if(!can_buy(R, usr)) - return - - if(R.price <= 0) - vend(R, usr) - add_fingerprint(usr) - return TRUE - - if(issilicon(usr)) //If the item is not free, provide feedback if a synth is trying to buy something. - to_chat(usr, span_danger("Lawed unit recognized. Lawed units cannot complete this transaction. Purchase canceled.")) - return - if(!ishuman(usr)) - return - - vend_ready = FALSE // From this point onwards, vendor is locked to performing this transaction only, until it is resolved. - - var/mob/living/carbon/human/H = usr - var/obj/item/card/id/C = H.GetIdCard() - - if(!GLOB.vendor_account || GLOB.vendor_account.suspended) - to_chat(usr, span_filter_notice("Vendor account offline. Unable to process transaction.")) - flick("[icon_state]-deny",src) - vend_ready = TRUE - return - - currently_vending = R - - var/paid = FALSE - - if(istype(usr.get_active_hand(), /obj/item/spacecash)) - var/obj/item/spacecash/cash = usr.get_active_hand() - paid = pay_with_cash(cash, usr) - else if(istype(usr.get_active_hand(), /obj/item/spacecash/ewallet)) - var/obj/item/spacecash/ewallet/wallet = usr.get_active_hand() - paid = pay_with_ewallet(wallet) - else if(istype(C, /obj/item/card)) - paid = pay_with_card(C, usr) - /*else if(usr.can_advanced_admin_interact()) - to_chat(usr, span_notice("Vending object due to admin interaction.")) - paid = TRUE*/ - else - to_chat(usr, span_warning("Payment failure: you have no ID or other method of payment.")) - vend_ready = TRUE - flick("[icon_state]-deny",src) - return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update. - if(paid) - vend(currently_vending, usr) // vend will handle vend_ready - . = TRUE - else - to_chat(usr, span_warning("Payment failure: unable to process payment.")) - vend_ready = TRUE - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/vend(datum/stored_item/vending_product/R, mob/user) - if(!can_buy(R, user)) - return - - if(!R.amount) - to_chat(user, span_warning("[src] has ran out of that product.")) - vend_ready = TRUE - return - - vend_ready = FALSE //One thing at a time!! - SStgui.update_uis(src) - - if(R.category & CAT_COIN) - if(!coin) - to_chat(user, span_notice("You need to insert a coin to get this item.")) - return - else - qdel(coin) - coin = null - categories &= ~CAT_COIN - - flick("[icon_state]-vend",src) - addtimer(CALLBACK(src, PROC_REF(delayed_vend), R, user), vend_delay) - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/delayed_vend(datum/stored_item/vending_product/R, mob/user) - R.get_product(get_turf(src)) - - playsound(src, "sound/[vending_sound]", 100, 1, 1) - - GLOB.items_sold_shift_roundstat++ - - vend_ready = 1 - currently_vending = null - SStgui.update_uis(src) - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/stock(obj/item/W, var/datum/stored_item/vending_product/R, var/mob/user) - if(!user.unEquip(W)) - return - - to_chat(user, span_notice("You insert \the [W] in the product receptor.")) - R.add_product(W) - if(has_logs) - do_logging(R, user) - - SStgui.update_uis(src) - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_ewallet(var/obj/item/spacecash/ewallet/wallet) - visible_message(span_info("\The [usr] swipes \the [wallet] through \the [src].")) - playsound(src, 'sound/machines/id_swipe.ogg', 50, 1) - if(currently_vending.price > wallet.worth) - to_chat(usr, span_warning("Insufficient funds on chargecard.")) - return 0 - else - wallet.worth -= currently_vending.price - credit_purchase("[wallet.owner_name] (chargecard)") - return 1 - -/** - * Scan a card and attempt to transfer payment from associated account. - * - * Takes payment for whatever is the currently_vending item. Returns 1 if - * successful, 0 if failed - */ -/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_card(obj/item/card/id/I, mob/M) - visible_message(span_info("[M] swipes a card through [src].")) - playsound(src, 'sound/machines/id_swipe.ogg', 50, 1) - - var/datum/money_account/customer_account = get_account(I.associated_account_number) - if(!customer_account) - to_chat(M, span_warning("Error: Unable to access account. Please contact technical support if problem persists.")) - return FALSE - - if(customer_account.suspended) - to_chat(M, span_warning("Unable to access account: account suspended.")) - return FALSE - - // Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is - // empty at high security levels - if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2) - var/attempt_pin = tgui_input_number(usr, "Enter pin code", "Vendor transaction") - customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2) - - if(!customer_account) - to_chat(M, span_warning("Unable to access account: incorrect credentials.")) - return FALSE - - if(currently_vending.price > customer_account.money) - to_chat(M, span_warning("Insufficient funds in account.")) - return FALSE - - // Okay to move the money at this point - - // debit money from the purchaser's account - customer_account.money -= currently_vending.price - - // create entry in the purchaser's account log - var/datum/transaction/T = new() - T.target_name = "[GLOB.vendor_account.owner_name] (via [name])" - T.purpose = "Purchase of [currently_vending.item_name]" - if(currently_vending.price > 0) - T.amount = "([currently_vending.price])" - else - T.amount = "[currently_vending.price]" - T.source_terminal = name - T.date = GLOB.current_date_string - T.time = stationtime2text() - customer_account.transaction_log.Add(T) - - // Give the vendor the money. We use the account owner name, which means - // that purchases made with stolen/borrowed card will look like the card - // owner made them - credit_purchase(customer_account.owner_name) - return 1 - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/do_logging(datum/stored_item/vending_product/R, mob/user, var/vending = 0) - if(user.GetIdCard()) - var/obj/item/card/id/tempid = user.GetIdCard() - var/list/list_item = list() - if(vending) - list_item += "vend" - else - list_item += "stock" - list_item += tempid.registered_name - list_item += stationtime2text() - list_item += R.item_name - log[++log.len] = list_item - -/mob/living/simple_mob/humanoid/starhunter/trader/proc/can_buy(datum/stored_item/vending_product/R, mob/user) - return TRUE diff --git a/modular_chomp/code/modules/projectiles/precursor/eclipse.dm b/modular_chomp/code/modules/projectiles/precursor/eclipse.dm index 6057606ba0..497a5583ea 100644 --- a/modular_chomp/code/modules/projectiles/precursor/eclipse.dm +++ b/modular_chomp/code/modules/projectiles/precursor/eclipse.dm @@ -27,37 +27,52 @@ list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/frostshotgun, charge_cost = 240), ) -/obj/item/gun/energy/flamegun - name = "Flame Crystal Projector" - desc = "A strange gun pulsing with energy, it's touch warming you up." - icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi' - icon_state = "flamegun" - item_state = "flamegun" - wielded_item_state = "flame-wielded" +/obj/item/grenade/chem_grenade/frost + name = "frost grenade" + desc = "Currently in the testing phase, pratical purposes are unknown." + icon_state = "foam" + path = 1 + stage = 2 + sealed = TRUE - w_class = ITEMSIZE_LARGE +/obj/item/grenade/chem_grenade/frost/Initialize(mapload) + . = ..() + var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src) + var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src) - accept_cell_type = /obj/item/cell/device - cell_type = /obj/item/cell/device/weapon - projectile_type = /obj/item/projectile/energy/flamecrystal + B1.reagents.add_reagent(REAGENT_ID_CRYOSLURRY, 150) + B1.reagents.add_reagent(REAGENT_ID_POTASSIUM, 150) + B2.reagents.add_reagent(REAGENT_ID_PHOSPHORUS, 150) + B2.reagents.add_reagent(REAGENT_ID_SUGAR, 150) - matter = list(MAT_DURASTEEL = 1000, MAT_MORPHIUM = 500) - origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3) + detonator = new/obj/item/assembly_holder/timer_igniter(src) - recoil_mode = 0 - charge_meter = 1 + beakers += B1 - move_delay = 0 +/obj/item/projectile/bullet/frostshotgun + use_submunitions = 1 + only_submunitions = 1 + range = 0 + embed_chance = 0 + submunition_spread_max = 1200 + submunition_spread_min = 500 + submunitions = list(/obj/item/projectile/energy/frostsphere = 4) - charge_cost = 80 + hud_state = "plasma_sphere" - reload_time = 10 +/obj/item/projectile/bullet/frostshotgun/on_range() + qdel(src) - firemodes = list( - list(mode_name="normal", fire_delay=5, projectile_type=/obj/item/projectile/energy/flamecrystal, charge_cost = 80), - list(mode_name="shotgun", fire_delay=15, projectile_type=/obj/item/projectile/bullet/flamegun, charge_cost = 240), - list(mode_name="explosive", fire_delay=10, projectile_type=/obj/item/projectile/energy/fireball, charge_cost = 160), - ) +/obj/item/projectile/energy/frostsphere + name = "frost sphere" + icon_state = "ice_2" + fire_sound = 'sound/weapons/pulse3.ogg' + damage = 20 + modifier_type_to_apply = /datum/modifier/cryogelled + modifier_duration = 0.25 MINUTE + speed = 2.5 + range = 12 + hud_state = "water" /obj/item/projectile/energy/mechahack name = "remote hack" @@ -95,72 +110,68 @@ else target_mob.electrocute_act(power, src, 0.75, BP_TORSO) -/obj/item/projectile/bullet/crystaline - name = "crystal bullet" - icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi' - icon_state = "crystal" - damage = 30 - armor_penetration = 20 - embed_chance = 0 - speed = 2 - -/obj/item/projectile/energy/eclipse +/obj/item/projectile/energy/eclipse_boss name = "experimental laser" icon = 'modular_chomp/icons/obj/guns/precursor/eclipse.dmi' icon_state = "laser" check_armour = "laser" - damage = 30 - armor_penetration = 20 - penetrating = 2 - speed = 2 + speed = 10 crawl_destroy = TRUE -//The normal laser respects more armor, but deals more damage if you don't have it.precursor will thwack folks equally. -/obj/item/projectile/energy/eclipse/lorge - damage = 60 - armor_penetration = 30 - icon_state = "mega_laser" - speed = 10 - -/obj/item/projectile/energy/eclipse/lorgealien - damage = 20 - armor_penetration = 60 - icon_state = "mega_laser_p" - speed = 10 - -/obj/item/projectile/bullet/crystalineburst - use_submunitions = 1 - range = 0 - embed_chance = 0 - spread_submunition_damage = FALSE - submunition_spread_max = 120 - submunition_spread_min = 60 - submunitions = list(/obj/item/projectile/bullet/crystaline = 5) - -/obj/item/projectile/energy/eclipse/janusjavelin //This will end you - name = "energy javelin" - icon_state = "javelin" - damage_type = SEARING - check_armour = "bullet" - damage = 45 - armor_penetration = 95 - speed = 10 - -/obj/item/projectile/energy/eclipse/chillingwind +/obj/item/projectile/energy/eclipse_boss/chillingwind name = "ice winds" icon_state = "ice_wind" damage = 15 armor_penetration = 70 - speed = 10 modifier_type_to_apply = /datum/modifier/cryogelled modifier_duration = 0.25 MINUTE -/obj/item/projectile/energy/eclipse/mining - name = "drill" - icon_state = "drill" +/obj/item/projectile/energy/eclipse_boss/metalsphere + name = "metal sphere" + icon_state = "metal_sphere" damage_type = BRUTE check_armour = "bullet" + damage = 20 + agony = 10 + armor_penetration = 50 + +/obj/item/projectile/energy/eclipse_boss/energyjavelin + name = "searing javelin" + icon_state = "javelin" + damage_type = SEARING damage = 40 armor_penetration = 30 - speed = 10 - excavation_amount = 100 + +//projectiles +/obj/item/projectile/energy/astral_collective + name = "abnormal energy" + speed = 2 + damage = 28 //roughly 25 with intended armour + damage_type = BURN //BRUTE, BURN, TOX, OXY, CLONE, HALLOSS, ELECTROCUTE, BIOACID, SEARING are the only things that should be in here + check_armour = "laser" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid + +/obj/item/projectile/energy/astral_collective/anti_mecha + damage_type = BIOACID + icon_state = "declone" + +/obj/item/projectile/energy/astral_collective/armour_breaker + damage = 10 + dephasing = TRUE + hits_phased = TRUE + icon_state = "fuel-deuterium" + penetrating = 10 + armor_penetration = 100 + +/obj/item/projectile/energy/astral_collective/searing + damage_type = SEARING + icon_state = "bolter" + +/obj/item/projectile/energy/astral_collective/green + icon_state = "energy" + irradiate = 40 + +/obj/item/projectile/energy/astral_collective/particle + icon_state = "particle" + damage_type = ELECTROMAG + incendiary = 1 + flammability = 1 diff --git a/modular_chomp/icons/mob/eclipse.dmi b/modular_chomp/icons/mob/eclipse.dmi index 8508c646b80818b68f0bdbbf0c2c1652e3a0e35b..981efe3705add98212459faaa605d3f5d9d48f18 100644 GIT binary patch literal 38769 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

jUrsPpTSdK-^eLYzbatD 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 Jez`6#?0?STT^|4d literal 140506 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 SatG%J00?1ZX;`W69{WFn8ttS2 diff --git a/modular_chomp/maps/common_submaps/gateway/hiddeneclipse.dmm b/modular_chomp/maps/common_submaps/gateway/hiddeneclipse.dmm index 5cd95afe24..262bafaee9 100644 --- a/modular_chomp/maps/common_submaps/gateway/hiddeneclipse.dmm +++ b/modular_chomp/maps/common_submaps/gateway/hiddeneclipse.dmm @@ -34,6 +34,14 @@ /obj/structure/table/reinforced, /turf/simulated/floor/lino, /area/awaymission/hiddeneclipse/miningzonea/depature) +"aj" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, +/turf/simulated/floor/wmarble, +/area/awaymission/hiddeneclipse/baseneon) +"ak" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf, +/turf/simulated/floor/bmarble, +/area/awaymission/hiddeneclipse/baseneon) "al" = ( /obj/machinery/door/airlock, /turf/simulated/floor/lino, @@ -46,6 +54,10 @@ /obj/structure/table/standard, /turf/simulated/floor/lino, /area/awaymission/hiddeneclipse/miningzonea/depature) +"ao" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf, +/turf/simulated/floor/tiled/dark, +/area/awaymission/hiddeneclipse/baseneon) "ap" = ( /obj/machinery/appliance/cooker/oven, /turf/simulated/floor/tiled/freezer, @@ -58,6 +70,10 @@ /mob/living/simple_mob/humanoid/possessed/industrial, /turf/simulated/floor/lino, /area/awaymission/hiddeneclipse/miningzonea/depature) +"as" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/tesh, +/turf/simulated/floor/wmarble, +/area/awaymission/hiddeneclipse/baseneon) "at" = ( /obj/machinery/appliance/cooker/fryer, /turf/simulated/floor/tiled/freezer, @@ -77,6 +93,10 @@ /obj/machinery/gateway, /turf/simulated/floor/lino, /area/awaymission/hiddeneclipse/miningzonea/depature) +"ax" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle, +/turf/simulated/floor/wmarble, +/area/awaymission/hiddeneclipse/baseneon) "ay" = ( /obj/machinery/gateway{ density = 0; @@ -108,12 +128,20 @@ }, /turf/simulated/floor/lino, /area/awaymission/hiddeneclipse/miningzonea/depature) +"aD" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle, +/turf/simulated/floor/carpet/tealcarpet, +/area/awaymission/hiddeneclipse/baseneon) "aE" = ( /obj/machinery/gateway{ dir = 5 }, /turf/simulated/floor/lino, /area/awaymission/hiddeneclipse/miningzonea/depature) +"aF" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, +/turf/simulated/floor/bmarble, +/area/awaymission/hiddeneclipse/baseneon) "aG" = ( /turf/simulated/floor/water/ocean{ nitrogen = 63.4124; @@ -164,6 +192,10 @@ /obj/random/cash/big, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) +"aT" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf, +/turf/simulated/floor/concrete, +/area/awaymission/hiddeneclipse/baseneon) "aU" = ( /obj/machinery/light/small, /turf/simulated/floor/tiled/dark, @@ -184,16 +216,20 @@ /obj/random/cash/huge, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) +"aX" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur, +/turf/simulated/floor/wmarble, +/area/awaymission/hiddeneclipse/baseneon) "aY" = ( /obj/random/obstruction, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"aZ" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic, +"ba" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, /turf/simulated/floor/carpet/tealcarpet, /area/awaymission/hiddeneclipse/baseneon) "bb" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, /turf/simulated/floor/carpet/tealcarpet, /area/awaymission/hiddeneclipse/baseneon) "bc" = ( @@ -213,10 +249,6 @@ /obj/machinery/light/small, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) -"bh" = ( -/mob/living/simple_mob/mechanical/mecha/eclipse/antipersonal_unit, -/turf/simulated/floor/outdoors/grass/forest/thor, -/area/awaymission/hiddeneclipse/baseneon) "bi" = ( /obj/machinery/door/airlock/hatch, /turf/simulated/floor, @@ -241,6 +273,10 @@ /obj/random/mega_nukies, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) +"bl" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, +/turf/simulated/floor/concrete, +/area/awaymission/hiddeneclipse/baseneon) "bm" = ( /obj/structure/closet/secure_closet/guncabinet{ req_one_access = null @@ -251,12 +287,8 @@ /obj/random/mega_nukies, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) -"bn" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/bmarble, -/area/awaymission/hiddeneclipse/baseneon) "bo" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) "bp" = ( @@ -281,13 +313,9 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/carpet, /area/awaymission/hiddeneclipse/baseneon) -"bt" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) -"bu" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/tiled/dark, +"bv" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, +/turf/simulated/floor/concrete, /area/awaymission/hiddeneclipse/baseneon) "bw" = ( /obj/structure/closet/secure_closet/guncabinet{ @@ -306,6 +334,23 @@ }, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) +"by" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lightorange, +/mob/living/simple_mob/humanoid/astral_collective/ranged/tesh, +/turf/simulated/floor/tiled/techmaint, +/area/awaymission/hiddeneclipse/baseneon) +"bz" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/effect/floor_decal/corner/yellow{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lightorange, +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf, +/turf/simulated/floor/tiled/techmaint, +/area/awaymission/hiddeneclipse/baseneon) "bA" = ( /obj/machinery/light/small{ dir = 1 @@ -315,6 +360,18 @@ }, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) +"bB" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lightorange, +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur, +/turf/simulated/floor/tiled/techmaint, +/area/awaymission/hiddeneclipse/baseneon) +"bC" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, +/turf/simulated/floor/tiled/red, +/area/awaymission/hiddeneclipse/baseneon) "bD" = ( /obj/effect/floor_decal/corner/yellow/border{ dir = 1 @@ -365,6 +422,14 @@ }, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) +"bM" = ( +/obj/effect/floor_decal/corner/yellow{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lightorange, +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, +/turf/simulated/floor/tiled/techmaint, +/area/awaymission/hiddeneclipse/baseneon) "bN" = ( /obj/effect/floor_decal/corner/lime/border{ dir = 4 @@ -421,6 +486,11 @@ }, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) +"bY" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur, +/turf/simulated/floor/tiled/white, +/area/awaymission/hiddeneclipse/baseneon) "bZ" = ( /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/dark, @@ -441,6 +511,11 @@ /obj/machinery/light/small, /turf/simulated/floor/tiled/hydro, /area/awaymission/hiddeneclipse/baseneon) +"cd" = ( +/obj/effect/floor_decal/corner/white/diagonal, +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle, +/turf/simulated/floor/tiled/white, +/area/awaymission/hiddeneclipse/baseneon) "ce" = ( /obj/item/shovel/spade, /obj/item/shovel/spade, @@ -450,6 +525,10 @@ /obj/item/seeds/random, /turf/simulated/floor/tiled/hydro, /area/awaymission/hiddeneclipse/baseneon) +"cf" = ( +/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/ufo, +/turf/simulated/floor/reinforced, +/area/awaymission/hiddeneclipse/baseneon) "cg" = ( /obj/structure/table/standard, /obj/machinery/reagentgrinder, @@ -548,14 +627,6 @@ }, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) -"cz" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/clocksgun, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) -"cA" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) "cB" = ( /obj/machinery/light/small{ dir = 4 @@ -662,11 +733,6 @@ }, /turf/simulated/floor/tiled/hydro, /area/awaymission/hiddeneclipse/baseneon) -"cV" = ( -/obj/effect/floor_decal/corner/lime/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/tiled/hydro, -/area/awaymission/hiddeneclipse/baseneon) "cW" = ( /obj/effect/floor_decal/corner/lime/diagonal, /obj/machinery/light/small{ @@ -697,10 +763,6 @@ /obj/structure/closet, /turf/simulated/floor/tiled/old_tile/yellow, /area/awaymission/hiddeneclipse/baseneon) -"db" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/bmarble, -/area/awaymission/hiddeneclipse/baseneon) "dc" = ( /obj/machinery/power/rtg/advanced, /turf/simulated/floor, @@ -783,11 +845,6 @@ /obj/machinery/light/small, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"ds" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "dt" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/floor_decal/corner/lime/diagonal, @@ -905,11 +962,6 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"dT" = ( -/obj/effect/floor_decal/corner/lime/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/tiled/hydro, -/area/awaymission/hiddeneclipse/baseneon) "dU" = ( /obj/effect/floor_decal/corner/orange/border{ dir = 1 @@ -931,42 +983,10 @@ }, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) -"dX" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/carpet, -/area/awaymission/hiddeneclipse/baseneon) -"dY" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/carpet, -/area/awaymission/hiddeneclipse/baseneon) "dZ" = ( /obj/effect/floor_decal/corner/yellow/diagonal, /turf/simulated/floor/tiled/yellow, /area/awaymission/hiddeneclipse/baseneon) -"ea" = ( -/obj/effect/floor_decal/corner/yellow/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/tiled/yellow, -/area/awaymission/hiddeneclipse/baseneon) -"eb" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/hiddeneclipse/baseneon) -"ec" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/obj/machinery/light/small{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/hiddeneclipse/baseneon) "ed" = ( /turf/simulated/floor/carpet/turcarpet, /area/awaymission/hiddeneclipse/baseneon) @@ -1158,11 +1178,6 @@ /obj/effect/floor_decal/corner/white/diagonal, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"eI" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "eJ" = ( /obj/machinery/artifact, /turf/simulated/floor/reinforced, @@ -1362,10 +1377,6 @@ }, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) -"fk" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/carpet/tealcarpet, -/area/awaymission/hiddeneclipse/baseneon) "fl" = ( /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/old_tile/purple, @@ -1458,7 +1469,7 @@ /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) "fy" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) "fz" = ( @@ -1505,10 +1516,6 @@ /obj/structure/bed/chair/bar_stool, /turf/simulated/floor/concrete, /area/awaymission/hiddeneclipse/baseneon) -"fF" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "fG" = ( /obj/structure/fans/hardlight/colorable/abductor{ color = "#FF3300" @@ -1564,15 +1571,6 @@ }, /turf/simulated/floor/tiled/old_tile/gray, /area/awaymission/hiddeneclipse/baseneon) -"fL" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/carpet, -/area/awaymission/hiddeneclipse/baseneon) -"fM" = ( -/obj/effect/floor_decal/corner/yellow/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/tiled/yellow, -/area/awaymission/hiddeneclipse/baseneon) "fN" = ( /obj/effect/floor_decal/corner/lime/border, /turf/simulated/floor/bmarble, @@ -1605,20 +1603,6 @@ }, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) -"fV" = ( -/obj/structure/bed/chair/backed_grey{ - dir = 1 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) -"fW" = ( -/obj/structure/bed/chair/backed_grey{ - dir = 1 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) "fX" = ( /obj/structure/table/standard, /obj/random/maintenance/foodstuff, @@ -1799,11 +1783,6 @@ /obj/effect/floor_decal/corner/purple/diagonal, /turf/simulated/floor/tiled/old_tile/purple, /area/awaymission/hiddeneclipse/baseneon) -"gv" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/tiled/old_tile/purple, -/area/awaymission/hiddeneclipse/baseneon) "gw" = ( /obj/machinery/light/small{ dir = 4 @@ -1832,26 +1811,14 @@ }, /turf/simulated/floor/tiled/yellow, /area/awaymission/hiddeneclipse/baseneon) -"gz" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) "gA" = ( /obj/structure/table/marble, /obj/item/storage/box/monkeycubes/farwacubes, /obj/item/storage/box/monkeycubes/sarucubes, /turf/simulated/floor/carpet/turcarpet, /area/awaymission/hiddeneclipse/baseneon) -"gB" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/carpet/turcarpet, -/area/awaymission/hiddeneclipse/baseneon) "gC" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/bmarble, -/area/awaymission/hiddeneclipse/baseneon) -"gD" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) "gE" = ( @@ -1896,25 +1863,6 @@ /obj/effect/floor_decal/corner/white/diagonal, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"gN" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) -"gO" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) -"gP" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) -"gQ" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "gR" = ( /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor, @@ -1950,11 +1898,6 @@ "hb" = ( /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) -"hc" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter, -/turf/simulated/floor/tiled/old_tile/purple, -/area/awaymission/hiddeneclipse/baseneon) "hd" = ( /obj/effect/floor_decal/corner/purple/bordercorner{ dir = 4 @@ -2031,11 +1974,6 @@ /obj/item/grenade/flashbang, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) -"hr" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "hs" = ( /obj/structure/closet, /obj/structure/window/plastitanium{ @@ -2119,10 +2057,6 @@ /obj/structure/closet, /turf/simulated/floor/tiled/old_tile/gray, /area/awaymission/hiddeneclipse/baseneon) -"hB" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/tiled/old_tile/yellow, -/area/awaymission/hiddeneclipse/baseneon) "hC" = ( /obj/effect/floor_decal/corner/orange/bordercorner, /turf/simulated/floor/bmarble, @@ -2205,16 +2139,6 @@ }, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) -"hW" = ( -/obj/structure/bed/chair/backed_grey, -/mob/living/simple_mob/humanoid/eclipse/solar/clocksgun, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) -"hX" = ( -/obj/structure/bed/chair/backed_grey, -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) "hY" = ( /obj/structure/closet, /obj/random/maintenance/foodstuff, @@ -2244,16 +2168,12 @@ /obj/structure/window/basic, /turf/simulated/floor/concrete, /area/awaymission/hiddeneclipse/baseneon) -"ib" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat, -/turf/simulated/floor/tiled/old_tile/gray, -/area/awaymission/hiddeneclipse/baseneon) "ic" = ( /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/old_tile/gray, /area/awaymission/hiddeneclipse/baseneon) "id" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, +/mob/living/simple_mob/humanoid/astral_collective/ranged/tesh, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) "ie" = ( @@ -2302,14 +2222,6 @@ /obj/machinery/recharger, /turf/simulated/floor/tiled/old_tile/purple, /area/awaymission/hiddeneclipse/baseneon) -"ik" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) -"il" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter, -/turf/simulated/floor/carpet/turcarpet, -/area/awaymission/hiddeneclipse/baseneon) "im" = ( /obj/machinery/recharge_station, /obj/machinery/light/small, @@ -2322,11 +2234,6 @@ /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/awaymission/hiddeneclipse/baseneon) -"io" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "ip" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/closet, @@ -2418,18 +2325,10 @@ }, /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) -"iD" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/carpet/bcarpet, -/area/awaymission/hiddeneclipse/baseneon) "iF" = ( /obj/structure/table/reinforced, /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) -"iG" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/carpet/bcarpet, -/area/awaymission/hiddeneclipse/baseneon) "iH" = ( /obj/machinery/vending/loadout/gadget, /obj/machinery/light/small{ @@ -2488,10 +2387,6 @@ /obj/random/meat, /turf/simulated/floor/tiled/dark, /area/awaymission/hiddeneclipse/baseneon) -"iV" = ( -/mob/living/simple_mob/humanoid/eclipse/head/security, -/turf/simulated/floor/tiled/dark, -/area/awaymission/hiddeneclipse/baseneon) "iW" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/machinery/light/small{ @@ -2499,22 +2394,8 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"iX" = ( -/obj/effect/floor_decal/corner/white/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) -"iY" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) -"iZ" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) "ja" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) "jb" = ( @@ -2541,7 +2422,6 @@ dir = 8; icon_state = "pipe-c" }, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) "jg" = ( @@ -2580,11 +2460,6 @@ /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/awaymission/hiddeneclipse/baseneon) -"jm" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) "jn" = ( /obj/effect/floor_decal/corner/orange/bordercorner{ dir = 8 @@ -2744,10 +2619,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"jS" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/bmarble, -/area/awaymission/hiddeneclipse/baseneon) "jT" = ( /obj/structure/closet, /obj/item/clothing/under/swimsuit/black, @@ -2776,11 +2647,6 @@ /obj/effect/floor_decal/corner/white/diagonal, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"jW" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "jX" = ( /obj/machinery/vending/boozeomat, /turf/simulated/floor/wood, @@ -2796,10 +2662,6 @@ "kb" = ( /turf/simulated/floor/tiled/freezer, /area/awaymission/hiddeneclipse/baseneon) -"kc" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) "kd" = ( /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/old_tile/green, @@ -2809,10 +2671,6 @@ /obj/item/storage/box/monkeycubes/farwacubes, /turf/simulated/floor/tiled/old_tile/beige, /area/awaymission/hiddeneclipse/baseneon) -"kg" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat, -/turf/simulated/floor/tiled/old_tile/green, -/area/awaymission/hiddeneclipse/baseneon) "kh" = ( /obj/structure/grille, /obj/structure/window/plastitanium{ @@ -2904,11 +2762,6 @@ /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/awaymission/hiddeneclipse/baseneon) -"kx" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) "ky" = ( /obj/effect/floor_decal/corner/lime/bordercorner{ dir = 4 @@ -2919,25 +2772,11 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) -"kA" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) -"kC" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "kD" = ( /obj/item/beach_ball, /obj/structure/table/gold, /turf/simulated/floor/wood, /area/awaymission/hiddeneclipse/baseneon) -"kE" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/wood, -/area/awaymission/hiddeneclipse/baseneon) "kF" = ( /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/freezer, @@ -3092,14 +2931,6 @@ "ld" = ( /turf/simulated/floor/wood, /area/awaymission/hiddeneclipse/baseneon) -"le" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/carpet/tealcarpet, -/area/awaymission/hiddeneclipse/baseneon) -"lf" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/carpet/tealcarpet, -/area/awaymission/hiddeneclipse/baseneon) "lh" = ( /obj/structure/table/standard, /obj/item/storage/box/monkeycubes/farwacubes, @@ -3170,11 +3001,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"lt" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/tiled/old_tile/purple, -/area/awaymission/hiddeneclipse/baseneon) "lu" = ( /obj/structure/toilet, /obj/machinery/light/small{ @@ -3189,20 +3015,6 @@ /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/awaymission/hiddeneclipse/baseneon) -"lw" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) -"lx" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) -"ly" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "lz" = ( /obj/random/multiple/gun/projectile/shotgun, /obj/structure/table/gold, @@ -3371,10 +3183,6 @@ /obj/structure/stasis_cage, /turf/simulated/floor/tiled/old_tile/green, /area/awaymission/hiddeneclipse/baseneon) -"ma" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/tiled/old_tile/green, -/area/awaymission/hiddeneclipse/baseneon) "md" = ( /obj/structure/grille, /obj/structure/window/plastitanium{ @@ -3442,14 +3250,6 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/carpet/tealcarpet, /area/awaymission/hiddeneclipse/baseneon) -"mq" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish, -/turf/simulated/floor/carpet/tealcarpet, -/area/awaymission/hiddeneclipse/baseneon) -"mr" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/carpet/tealcarpet, -/area/awaymission/hiddeneclipse/baseneon) "ms" = ( /obj/structure/reagent_dispensers/watertank/high, /obj/machinery/light/small{ @@ -3545,10 +3345,6 @@ /obj/machinery/vending/sovietvend, /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) -"mK" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "mL" = ( /obj/machinery/chemical_dispenser/bar_coffee/full, /obj/structure/table/hardwoodtable, @@ -3767,10 +3563,6 @@ /obj/structure/table/rack/shelf, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"nC" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/wood, -/area/awaymission/hiddeneclipse/baseneon) "nE" = ( /obj/machinery/power/tesla_coil/recaster, /turf/simulated/floor, @@ -3786,10 +3578,6 @@ /obj/effect/floor_decal/corner/orange/border, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) -"nI" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/bmarble, -/area/awaymission/hiddeneclipse/baseneon) "nJ" = ( /turf/simulated/floor/water/deep/ocean{ nitrogen = 63.4124; @@ -3830,7 +3618,6 @@ /area/awaymission/hiddeneclipse/baseneon) "nR" = ( /obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) "nT" = ( @@ -3838,11 +3625,6 @@ /obj/item/mecha_parts/mecha_equipment/weapon/honker, /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) -"nV" = ( -/obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/carpet/bcarpet, -/area/awaymission/hiddeneclipse/baseneon) "nW" = ( /obj/structure/bed/double, /obj/item/bedsheet/yellowdouble, @@ -3906,10 +3688,6 @@ /obj/machinery/power/rad_collector, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"oi" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) "oj" = ( /obj/machinery/light/small{ dir = 1 @@ -3995,10 +3773,6 @@ }, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) -"oG" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "oH" = ( /obj/structure/table/standard, /obj/item/holosign_creator/medical, @@ -4066,10 +3840,6 @@ /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp/safety, /turf/simulated/floor/carpet/bcarpet, /area/awaymission/hiddeneclipse/baseneon) -"oR" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) "oS" = ( /obj/structure/window/plastitanium{ dir = 1 @@ -4117,10 +3887,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"pa" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) "pb" = ( /obj/machinery/light/small{ dir = 1 @@ -4163,10 +3929,6 @@ /obj/random/cash/huge, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) -"pm" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) "pn" = ( /obj/machinery/light/small, /turf/simulated/floor/carpet/oracarpet, @@ -4197,10 +3959,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"ps" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "pt" = ( /obj/machinery/dna_scannernew, /obj/machinery/light/small{ @@ -4277,7 +4035,6 @@ /obj/structure/bed/chair/wood{ dir = 4 }, -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish, /turf/simulated/floor/carpet/sblucarpet, /area/awaymission/hiddeneclipse/baseneon) "pI" = ( @@ -4285,13 +4042,6 @@ /obj/item/flame/candle, /turf/simulated/floor/carpet/sblucarpet, /area/awaymission/hiddeneclipse/baseneon) -"pJ" = ( -/obj/structure/bed/chair/sofa/black{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/carpet/purcarpet, -/area/awaymission/hiddeneclipse/baseneon) "pK" = ( /obj/structure/table/fancyblack, /obj/structure/stripper_pole, @@ -4310,11 +4060,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"pP" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "pR" = ( /obj/machinery/the_singularitygen/tesla, /turf/simulated/floor, @@ -4349,10 +4094,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"pY" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) "pZ" = ( /obj/effect/floor_decal/corner/purple/bordercorner, /turf/simulated/floor/wmarble, @@ -4374,22 +4115,12 @@ /obj/structure/curtain/bed, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) -"qf" = ( -/obj/structure/table/fancyblack, -/obj/structure/stripper_pole, -/mob/living/simple_mob/humanoid/eclipse/head/scientist, -/turf/simulated/floor/carpet/purcarpet, -/area/awaymission/hiddeneclipse/baseneon) "qg" = ( /obj/effect/floor_decal/corner/lime/border{ dir = 10 }, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) -"qh" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/reinforced, -/area/awaymission/hiddeneclipse/baseneon) "qk" = ( /obj/structure/window/plastitanium{ dir = 8 @@ -4447,13 +4178,6 @@ /obj/effect/floor_decal/corner/orange/border, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) -"qs" = ( -/obj/structure/bed/chair/wood{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/carpet/sblucarpet, -/area/awaymission/hiddeneclipse/baseneon) "qt" = ( /obj/structure/table/woodentable, /obj/item/flame/candle, @@ -4476,20 +4200,12 @@ /obj/random/material, /turf/simulated/floor/carpet/oracarpet, /area/awaymission/hiddeneclipse/baseneon) -"qw" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) "qx" = ( /obj/machinery/light/small{ dir = 1 }, /turf/simulated/floor/carpet/oracarpet, /area/awaymission/hiddeneclipse/baseneon) -"qy" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/wmarble, -/area/awaymission/hiddeneclipse/baseneon) "qz" = ( /obj/structure/window/plastitanium{ dir = 8 @@ -4560,7 +4276,6 @@ /obj/structure/bed/chair/sofa/corner/black{ dir = 4 }, -/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) "qJ" = ( @@ -4574,10 +4289,6 @@ }, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) -"qM" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) "qN" = ( /obj/effect/floor_decal/corner/grey{ dir = 1 @@ -4604,13 +4315,6 @@ }, /turf/simulated/floor/wmarble, /area/awaymission/hiddeneclipse/baseneon) -"qS" = ( -/obj/structure/bed/chair/wood{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/carpet/sblucarpet, -/area/awaymission/hiddeneclipse/baseneon) "qU" = ( /obj/machinery/light/small{ dir = 8 @@ -4661,13 +4365,6 @@ }, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) -"rb" = ( -/obj/structure/bed/chair/sofa/black{ - dir = 1 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic, -/turf/simulated/floor/carpet/purcarpet, -/area/awaymission/hiddeneclipse/baseneon) "rc" = ( /obj/structure/bed/chair/sofa/corner/black{ dir = 8 @@ -4775,13 +4472,6 @@ }, /turf/simulated/floor/carpet/oracarpet, /area/awaymission/hiddeneclipse/baseneon) -"rv" = ( -/obj/structure/bed/chair/sofa/black{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/carpet/purcarpet, -/area/awaymission/hiddeneclipse/baseneon) "rw" = ( /obj/structure/bed/chair/sofa/black{ dir = 8 @@ -4858,17 +4548,6 @@ }, /turf/simulated/floor/carpet/sblucarpet, /area/awaymission/hiddeneclipse/baseneon) -"rH" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) -"rJ" = ( -/obj/structure/bed/chair/sofa/black{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/carpet/purcarpet, -/area/awaymission/hiddeneclipse/baseneon) "rK" = ( /obj/structure/sink{ dir = 1 @@ -4941,14 +4620,6 @@ }, /turf/simulated/floor/tiled/old_tile/blue, /area/awaymission/hiddeneclipse/baseneon) -"rU" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/obj/machinery/light/small{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) "rW" = ( /obj/effect/floor_decal/corner/blue/diagonal, /obj/machinery/light/small{ @@ -4956,10 +4627,6 @@ }, /turf/simulated/floor/tiled/old_tile/blue, /area/awaymission/hiddeneclipse/baseneon) -"rX" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic, -/turf/simulated/floor/carpet/oracarpet, -/area/awaymission/hiddeneclipse/baseneon) "rZ" = ( /obj/machinery/light/small{ dir = 1 @@ -5002,16 +4669,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"sh" = ( -/obj/effect/floor_decal/corner/pink{ - dir = 8 - }, -/obj/effect/floor_decal/corner/red{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "si" = ( /obj/machinery/light/small, /turf/simulated/floor/tiled/freezer, @@ -5066,31 +4723,6 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"sr" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) -"ss" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish, -/turf/simulated/floor/tiled/old_tile/gray, -/area/awaymission/hiddeneclipse/baseneon) -"st" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) -"su" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat, -/turf/simulated/floor/tiled/old_tile/gray, -/area/awaymission/hiddeneclipse/baseneon) -"sv" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) "sw" = ( /obj/structure/bed/chair/bay/chair/padded/red/bignest, /obj/item/toy/plushie/carp, @@ -5132,11 +4764,6 @@ }, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) -"sE" = ( -/obj/structure/bed/chair/sofa/black, -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/carpet/purcarpet, -/area/awaymission/hiddeneclipse/baseneon) "sF" = ( /obj/structure/bed/chair/sofa/corner/black, /obj/machinery/light/small{ @@ -5144,31 +4771,11 @@ }, /turf/simulated/floor/carpet/purcarpet, /area/awaymission/hiddeneclipse/baseneon) -"sG" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) "sI" = ( /obj/machinery/shower, /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/awaymission/hiddeneclipse/baseneon) -"sJ" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) -"sL" = ( -/obj/effect/floor_decal/corner/pink{ - dir = 8 - }, -/obj/effect/floor_decal/corner/red{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "sM" = ( /obj/structure/curtain/medical, /turf/simulated/floor/tiled/freezer, @@ -5196,30 +4803,6 @@ }, /turf/simulated/shuttle/floor/alien, /area/awaymission/hiddeneclipse/baseneon) -"sR" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) -"sS" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) -"sT" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "sU" = ( /obj/machinery/atmospherics/pipe/simple/visible/yellow, /obj/effect/floor_decal/corner/yellow{ @@ -5235,30 +4818,6 @@ /mob/living/simple_mob/vore/spacecritter/livingice/iceberg, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"sX" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/obj/machinery/light/small{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/zaddat, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) -"sY" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/obj/machinery/light/small{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) -"sZ" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/obj/machinery/light/small{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/tiled/old_tile/blue, -/area/awaymission/hiddeneclipse/baseneon) "ta" = ( /obj/structure/bed/chair/bay/chair/padded/red/bignest, /obj/item/toy/plushie/carp/candy, @@ -5348,14 +4907,6 @@ /obj/structure/foamedmetal, /turf/simulated/shuttle/floor/alien, /area/awaymission/hiddeneclipse/baseneon) -"tn" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/nuclear, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "to" = ( /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 10 @@ -5364,7 +4915,6 @@ dir = 1 }, /obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/nuclear, /turf/simulated/floor/tiled/techmaint, /area/awaymission/hiddeneclipse/baseneon) "tp" = ( @@ -5438,38 +4988,6 @@ }, /turf/simulated/floor/tiled/freezer, /area/awaymission/hiddeneclipse/baseneon) -"tz" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) -"tA" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) -"tB" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/lunar/servicesquish, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) -"tC" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "tD" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 5 @@ -5520,13 +5038,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"tK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "tL" = ( /obj/machinery/atmospherics/pipe/manifold/hidden, /turf/simulated/floor, @@ -5624,10 +5135,6 @@ /obj/item/storage/toolbox/lunchbox, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"uc" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "ud" = ( /obj/structure/window/plastitanium{ dir = 4 @@ -5652,10 +5159,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"uh" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/heavyshark, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "ui" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/machinery/atmospherics/pipe/simple/hidden, @@ -5720,16 +5223,6 @@ /obj/machinery/light/small, /turf/simulated/floor/tiled/red, /area/awaymission/hiddeneclipse/baseneon) -"uu" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) -"uv" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) "ux" = ( /obj/structure/window/plastitanium{ dir = 1 @@ -5800,11 +5293,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"uJ" = ( -/obj/structure/curtain, -/mob/living/simple_mob/humanoid/eclipse/head/medical, -/turf/simulated/floor/carpet/tealcarpet, -/area/awaymission/hiddeneclipse/baseneon) "uK" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan, /obj/effect/floor_decal/corner/yellow{ @@ -5885,10 +5373,6 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/monotile, /area/awaymission/hiddeneclipse/baseneon) -"uZ" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "va" = ( /obj/structure/curtain, /obj/item/toy/plushie, @@ -5917,10 +5401,6 @@ /obj/machinery/appliance/cooker/grill, /turf/simulated/floor/carpet/green, /area/awaymission/hiddeneclipse/baseneon) -"vg" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/carpet, -/area/awaymission/hiddeneclipse/baseneon) "vi" = ( /obj/machinery/appliance/cooker/fryer, /turf/simulated/floor/carpet/green, @@ -5937,11 +5417,6 @@ /obj/effect/floor_decal/corner_steel_grid/diagonal, /turf/simulated/floor/tiled/freezer, /area/awaymission/hiddeneclipse/baseneon) -"vm" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) "vo" = ( /obj/machinery/computer/arcade/battle{ dir = 1 @@ -5964,10 +5439,6 @@ }, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"vs" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "vt" = ( /obj/machinery/atmospherics/pipe/simple/hidden, /obj/machinery/door/airlock/silver, @@ -5993,17 +5464,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/awaymission/hiddeneclipse/baseneon) -"vw" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/nuclear, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "vy" = ( /obj/machinery/atmospherics/pipe/manifold/visible/yellow{ dir = 4 @@ -6071,14 +5531,6 @@ "vL" = ( /turf/simulated/floor/carpet/green, /area/awaymission/hiddeneclipse/baseneon) -"vM" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/carpet/green, -/area/awaymission/hiddeneclipse/baseneon) -"vN" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/carpet/green, -/area/awaymission/hiddeneclipse/baseneon) "vO" = ( /obj/structure/fans/hardlight/colorable/abductor{ color = "#FF3300" @@ -6100,19 +5552,9 @@ /obj/machinery/light/small, /turf/simulated/floor/carpet/geo, /area/awaymission/hiddeneclipse/baseneon) -"vS" = ( -/obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/carpet/geo, -/area/awaymission/hiddeneclipse/baseneon) "vU" = ( /turf/simulated/floor/carpet/geo, /area/awaymission/hiddeneclipse/baseneon) -"vV" = ( -/obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/carpet/geo, -/area/awaymission/hiddeneclipse/baseneon) "vW" = ( /obj/structure/window/plastitanium{ dir = 1 @@ -6169,14 +5611,6 @@ /obj/machinery/atmospherics/binary/pump, /turf/simulated/floor/tiled/techmaint, /area/awaymission/hiddeneclipse/baseneon) -"wf" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "wg" = ( /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 6 @@ -6328,11 +5762,6 @@ }, /turf/simulated/floor/carpet/green, /area/awaymission/hiddeneclipse/baseneon) -"wH" = ( -/obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/carpet/geo, -/area/awaymission/hiddeneclipse/baseneon) "wI" = ( /turf/simulated/floor/carpet/purple, /area/awaymission/hiddeneclipse/baseneon) @@ -6359,13 +5788,6 @@ /obj/machinery/atmospherics/pipe/manifold4w/hidden, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"wS" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/medicalsquish, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "wT" = ( /obj/machinery/light/small{ dir = 4 @@ -6414,11 +5836,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/yellow, /turf/simulated/floor/wood, /area/awaymission/hiddeneclipse/baseneon) -"xd" = ( -/obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/carpet/geo, -/area/awaymission/hiddeneclipse/baseneon) "xf" = ( /obj/structure/casino_table/craps, /obj/structure/casino_table/roulette_chart, @@ -6434,13 +5851,6 @@ /obj/structure/casino_table/roulette_table/long, /turf/simulated/floor/carpet/geo, /area/awaymission/hiddeneclipse/baseneon) -"xi" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor, -/area/awaymission/hiddeneclipse/baseneon) "xj" = ( /obj/structure/window/plastitanium, /obj/machinery/atmospherics/pipe/simple/hidden{ @@ -6467,11 +5877,6 @@ phoron = 500 }, /area/awaymission/hiddeneclipse/baseneon) -"xm" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "xn" = ( /obj/machinery/atmospherics/binary/circulator{ anchored = 1; @@ -6534,11 +5939,6 @@ /obj/structure/casino_table/blackjack_r, /turf/simulated/floor/carpet/geo, /area/awaymission/hiddeneclipse/baseneon) -"xB" = ( -/obj/structure/table/bench/padded, -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic, -/turf/simulated/floor/carpet/geo, -/area/awaymission/hiddeneclipse/baseneon) "xC" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 6 @@ -6586,13 +5986,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"xP" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "xQ" = ( /obj/structure/fans/hardlight/colorable/abductor{ color = "#FF3300" @@ -6615,10 +6008,6 @@ }, /turf/simulated/floor/wood, /area/awaymission/hiddeneclipse/baseneon) -"xV" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/clockspear, -/turf/simulated/floor/carpet/green, -/area/awaymission/hiddeneclipse/baseneon) "xW" = ( /obj/machinery/door/airlock/silver, /turf/simulated/floor/carpet/geo, @@ -6643,7 +6032,7 @@ /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) "ya" = ( -/obj/effect/map_helper/no_phaseshift/area, +/mob/living/simple_mob/mechanical/mecha/eclipse/janus, /turf/simulated/shuttle/floor/alien, /area/awaymission/hiddeneclipse/baseneon) "yb" = ( @@ -6729,10 +6118,6 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/carpet/green, /area/awaymission/hiddeneclipse/baseneon) -"yu" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic, -/turf/simulated/floor/carpet/green, -/area/awaymission/hiddeneclipse/baseneon) "yv" = ( /turf/simulated/floor/carpet/blue, /area/awaymission/hiddeneclipse/baseneon) @@ -6742,13 +6127,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"yy" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "yz" = ( /obj/effect/floor_decal/corner/paleblue/diagonal{ dir = 8 @@ -6760,10 +6138,6 @@ "yA" = ( /turf/simulated/wall/r_concrete, /area/awaymission/hiddeneclipse) -"yB" = ( -/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/armored, -/turf/simulated/shuttle/floor/alien, -/area/awaymission/hiddeneclipse/baseneon) "yC" = ( /obj/structure/bed/chair/bay/chair/padded{ dir = 8 @@ -6851,20 +6225,10 @@ /obj/machinery/vending/boozeomat, /turf/simulated/floor/carpet/green, /area/awaymission/hiddeneclipse/baseneon) -"yR" = ( -/obj/structure/bed/double, -/mob/living/simple_mob/humanoid/eclipse/head/tyrlead, -/turf/simulated/floor/carpet/blue2, -/area/awaymission/hiddeneclipse/baseneon) "yS" = ( /obj/structure/bed/double, /turf/simulated/floor/carpet/blue2, /area/awaymission/hiddeneclipse/baseneon) -"yU" = ( -/obj/effect/floor_decal/corner/grey/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/tiled/monotile, -/area/awaymission/hiddeneclipse/baseneon) "yV" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/effect/floor_decal/corner/green{ @@ -6922,25 +6286,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"zb" = ( -/obj/effect/floor_decal/corner/blue/diagonal, -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) -"zc" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/froststalker, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) -"zd" = ( -/mob/living/simple_mob/mechanical/mecha/eclipse/engimecha, -/turf/simulated/floor/reinforced, -/area/awaymission/hiddeneclipse/baseneon) "ze" = ( /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ dir = 8 @@ -6998,17 +6343,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"zk" = ( -/obj/effect/floor_decal/corner/green{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lime, -/obj/effect/floor_decal/corner/white{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "zl" = ( /obj/effect/floor_decal/corner/green{ dir = 1 @@ -7091,13 +6425,6 @@ /obj/machinery/biogenerator, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"zw" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "zx" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 4 @@ -7109,17 +6436,6 @@ /obj/structure/closet, /turf/simulated/floor/wood, /area/awaymission/hiddeneclipse/baseneon) -"zz" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/nuclear, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "zC" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 10 @@ -7177,13 +6493,6 @@ }, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"zJ" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "zK" = ( /obj/effect/floor_decal/corner/paleblue/diagonal{ dir = 8 @@ -7209,14 +6518,6 @@ "zM" = ( /turf/simulated/mineral/light/tyr, /area/awaymission/hiddeneclipse/baseneon) -"zN" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lightorange, -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/tiled/techmaint, -/area/awaymission/hiddeneclipse/baseneon) "zO" = ( /obj/machinery/door/airlock/highsecurity, /obj/structure/fans/hardlight/colorable/abductor{ @@ -7224,24 +6525,6 @@ }, /turf/simulated/floor/carpet, /area/awaymission/hiddeneclipse/baseneon) -"zQ" = ( -/obj/effect/floor_decal/corner/green{ - dir = 1 - }, -/obj/effect/floor_decal/corner/lime, -/obj/effect/floor_decal/corner/white{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/lunar/changeling, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) -"zR" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "zS" = ( /obj/effect/floor_decal/corner/paleblue/diagonal{ dir = 8 @@ -7251,13 +6534,6 @@ /obj/item/gun/energy/sizegun, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"zT" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/mob/living/simple_mob/humanoid/eclipse/solar/plant, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "zU" = ( /obj/machinery/door/blast/puzzle/tyrdoor/finale, /turf/simulated/shuttle/floor/alien, @@ -7302,10 +6578,6 @@ /obj/machinery/door/airlock/silver, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"zZ" = ( -/mob/living/simple_mob/mechanical/mecha/eclipse/mining_guard, -/turf/simulated/floor/reinforced, -/area/awaymission/hiddeneclipse/baseneon) "Aa" = ( /obj/effect/floor_decal/corner/paleblue/diagonal{ dir = 8 @@ -7373,14 +6645,6 @@ /obj/item/reagent_containers/glass/beaker/large, /turf/simulated/floor/tiled/white, /area/awaymission/hiddeneclipse/baseneon) -"Ak" = ( -/obj/effect/floor_decal/corner/paleblue/diagonal{ - dir = 8 - }, -/obj/effect/floor_decal/corner/blue/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle, -/turf/simulated/floor/tiled/white, -/area/awaymission/hiddeneclipse/baseneon) "Am" = ( /obj/effect/floor_decal/corner/paleblue/diagonal{ dir = 8 @@ -7457,11 +6721,6 @@ /obj/machinery/appliance/cooker/grill, /turf/simulated/floor/tiled/freezer, /area/awaymission/hiddeneclipse/miningzonea/depature) -"MR" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/solar/clocksgun, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "Nv" = ( /obj/machinery/light/small, /obj/effect/floor_decal/corner/lime/border, @@ -7474,18 +6733,13 @@ /mob/living/simple_mob/vore/spacecritter/livingice/iceberg, /turf/simulated/floor, /area/awaymission/hiddeneclipse/baseneon) -"PA" = ( -/obj/structure/bed/chair/bar_stool, -/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver, -/turf/simulated/floor/concrete, -/area/awaymission/hiddeneclipse/baseneon) "Sc" = ( /obj/machinery/microwave/advanced, /obj/structure/table/standard, /turf/simulated/floor/tiled/freezer, /area/awaymission/hiddeneclipse/miningzonea/depature) "SO" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter, +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, /turf/simulated/floor/bmarble, /area/awaymission/hiddeneclipse/baseneon) "UM" = ( @@ -8402,7 +7656,7 @@ aQ aQ aQ aQ -fk +aQ aR aL aK @@ -8635,9 +7889,9 @@ aL rG ot ot -qS +pH ot -qs +pH ot pH ot @@ -9176,6 +8430,7 @@ hJ aL aL aQ +aD aQ aQ aQ @@ -9187,7 +8442,6 @@ aQ aQ aQ aQ -aZ aR aL aH @@ -9425,10 +8679,10 @@ aL lP hb hb -iG hb hb -iD +hb +hb hb hb gZ @@ -9639,7 +8893,7 @@ aK aK aL aQ -fk +aQ aQ aQ aQ @@ -9923,7 +9177,6 @@ aQ sC aL aQ -bb aQ aQ aQ @@ -9935,7 +9188,8 @@ aQ aQ aQ aQ -aZ +aQ +aQ aQ gt hb @@ -10199,10 +9453,10 @@ aL lP hb hb -iD hb hb -iG +hb +hb hb hb gZ @@ -10211,7 +9465,7 @@ aQ aQ aQ aL -dX +gq bI bI bI @@ -10685,11 +9939,11 @@ vL vL vL vL -vM +vL vf aL aQ -fk +aQ aQ aQ aQ @@ -10937,7 +10191,7 @@ vL vL yb yb -xV +vL vL xv UV @@ -10993,7 +10247,7 @@ bH bI aL aQ -bb +aQ aQ aL aH @@ -11192,7 +10446,7 @@ aQ aL yQ vL -yu +vL yb yb vL @@ -11218,14 +10472,15 @@ aL aL oB oB -pY +oB oB oB oB oB aL aQ -fk +aQ +ba aQ aQ aQ @@ -11240,10 +10495,9 @@ aQ aQ aQ aQ -bb aQ aL -dY +gq bI bI bI @@ -11459,7 +10713,7 @@ vL vL vL vL -vN +vL vf aL aQ @@ -11736,7 +10990,7 @@ oB oB oB oB -pa +oB oB oB aL @@ -11986,7 +11240,7 @@ oB oB oB oB -rH +oB oB oB aL @@ -12219,7 +11473,7 @@ aQ aQ aQ aQ -aQ +aD aQ aQ bq @@ -12261,8 +11515,6 @@ aQ aQ aL ho -db -be bd be bd @@ -12278,6 +11530,8 @@ be bd be bd +aj +bd be bd be @@ -12474,10 +11728,6 @@ aK aK aL aQ -fk -aQ -aQ -bb aQ aQ aQ @@ -12486,7 +11736,11 @@ aQ aQ aQ aQ -bb +aQ +aQ +aQ +aQ +aQ aQ aL vl @@ -12501,7 +11755,7 @@ nO oB oB oB -rX +oB oB oB oB @@ -13023,7 +12277,7 @@ nW qY aL bd -qw +be bd be bd @@ -13031,7 +12285,7 @@ be bd be bd -iZ +be bd be bd @@ -13559,7 +12813,7 @@ aP aP dM fm -hc +fm fm fm fn @@ -13784,7 +13038,7 @@ aQ aQ aQ bq -aQ +ba aQ aQ aQ @@ -13830,7 +13084,7 @@ aN aN aN aN -bh +aN aN aN aN @@ -14034,7 +13288,6 @@ yh yh aL aQ -bb aQ aQ aQ @@ -14045,7 +13298,8 @@ aQ aQ aQ aQ -fk +aQ +aQ aQ aQ aQ @@ -14334,7 +13588,7 @@ aL aL hL fm -gv +fm fm fn aL @@ -15318,7 +14572,7 @@ aL yj yv pg -yR +yS pg yv yj @@ -15341,7 +14595,7 @@ aL sD ph ph -rv +ph qZ aL be @@ -15618,10 +14872,6 @@ ku ku aL hm -jS -be -bd -ik bd be bd @@ -15633,6 +14883,10 @@ be bd be bd +ax +bd +be +bd be bd aL @@ -15845,7 +15099,7 @@ aQ aL lv iL -uv +iL iL iL in @@ -15854,7 +15108,7 @@ aQ aQ aQ aL -sE +qJ pi pK pi @@ -16116,7 +15370,7 @@ qJ pi pK pi -rb +ra aL bd be @@ -16620,7 +15874,7 @@ aL lv iL iL -vm +iL iL in aL @@ -16630,7 +15884,7 @@ aQ aL sF rw -rJ +rw rw rc aL @@ -17151,8 +16405,8 @@ pg pg aL bd -oi -bd +be +SO be bd be @@ -17177,7 +16431,7 @@ dZ dZ dZ dZ -ea +dZ dG aL bD @@ -17431,7 +16685,7 @@ bd hP aL dG -fM +dZ dZ dZ dZ @@ -17919,7 +17173,7 @@ aQ aQ aL ho -nI +bd be bd be @@ -17931,7 +17185,7 @@ aL aY aL es -SO +bd be bd be @@ -17943,7 +17197,7 @@ bd be bd be -db +bd hP aL dG @@ -18201,7 +17455,7 @@ ct bR eL er -be +bo hO aL dG @@ -18420,7 +17674,7 @@ aQ aQ aQ aQ -fk +aQ aQ aQ aQ @@ -18933,7 +18187,7 @@ aP aP aL tX -aQ +ba aQ aL aL @@ -18978,7 +18232,7 @@ es bd be bd -gz +be bd be bd @@ -19461,13 +18715,13 @@ vR aL aL ho -SO -be bd be bd be -gC +bd +be +bd qb aL re @@ -19715,7 +18969,7 @@ xx vQ vU vU -vS +vQ vp aL bd @@ -19757,7 +19011,7 @@ fP aL bP bP -eb +bP bP bP bP @@ -19968,9 +19222,9 @@ aQ aQ aQ aL -vV +vQ xy -xd +vQ vU vU vU @@ -19991,7 +19245,7 @@ pg qI ph ph -pJ +ph ph aL es @@ -20001,7 +19255,7 @@ aL fm fm fm -lt +fm fm fm fm @@ -20472,7 +19726,6 @@ aQ aQ aQ aQ -fk aQ aQ aQ @@ -20481,7 +19734,8 @@ aQ aQ aQ aQ -bb +aQ +aQ aQ aL hj @@ -20506,7 +19760,7 @@ pg pg qJ pj -qf +pK pK pj aL @@ -20520,7 +19774,7 @@ fm fm fm fm -hc +fm fm fm fn @@ -20789,7 +20043,7 @@ fP aL bP bP -ec +vP bP bP bP @@ -21246,7 +20500,7 @@ aQ aQ aL iL -yU +iL th iL iL @@ -21259,9 +20513,9 @@ aQ aQ aL vU -xB +vQ xg -wH +vQ vU vQ vo @@ -21300,7 +20554,7 @@ cv bX di eu -bd +aF be fx cs @@ -21509,7 +20763,7 @@ iL iL iL iL -vm +iL iL aL aQ @@ -21549,7 +20803,7 @@ bd be bd be -db +bd be bd be @@ -22299,7 +21553,7 @@ vQ vq aL bd -iZ +be bd be bd @@ -22548,9 +21802,9 @@ aQ aQ aQ aL -vS +vQ xy -xd +vQ vU vU vU @@ -22794,7 +22048,7 @@ aQ aQ mp iL -vm +iL iL iL iL @@ -22811,7 +22065,7 @@ xz vQ vU vU -vV +vQ vp aL aL @@ -22830,9 +22084,9 @@ aL mJ hb hb -nV nR -nV +nR +nR nR hb hb @@ -22845,7 +22099,7 @@ aL ed ed ed -il +ed ed ed ed @@ -23058,7 +22312,7 @@ iL iL ti iL -yU +iL mp aQ aQ @@ -23331,12 +22585,12 @@ vQ vo aL iL -uu iL iL iL iL -sG +iL +iL iL aL hm @@ -23347,9 +22601,9 @@ if hb hb nR -nV nR -nV +nR +nR hb hb mJ @@ -23622,7 +22876,7 @@ ed ed ed ed -gB +ed ed aL ed @@ -24621,12 +23875,12 @@ aL aY aL iL -uv iL iL iL iL -sJ +iL +iL iL aL hk @@ -24642,7 +23896,7 @@ be bd be bd -kc +aj bd be bd @@ -24654,7 +23908,7 @@ be bd be bd -gz +be fS aL eO @@ -25411,7 +24665,7 @@ qx oB oB oB -oR +oB oB nW aL @@ -25926,7 +25180,7 @@ aL qx oB oB -pm +oB oB oB nY @@ -26954,7 +26208,7 @@ aL nW oB oB -qM +oB oB oB aL @@ -26969,7 +26223,7 @@ fP aL lv iL -kx +iL iL iL iL @@ -27202,7 +26456,7 @@ uQ uN uP uy -uc +aP aP aL bd @@ -27727,7 +26981,7 @@ fN aL nY oB -pY +oB oB oB oB @@ -27735,7 +26989,7 @@ oB oB nO hm -id +bd be bd be @@ -27745,7 +26999,7 @@ lu iK iL iL -jm +iL iK im aL @@ -27968,12 +27222,12 @@ do aL aP aP -xi +uG ug ug tI tM -uZ +aP uQ ue ue @@ -28493,7 +27747,7 @@ ug uR uF uf -tK +tM aL be bd @@ -28746,7 +28000,7 @@ uQ uU uU tJ -vs +aP aP aP uG @@ -28754,7 +28008,7 @@ ug tL aL hp -oi +bo bd be bd @@ -28999,7 +28253,7 @@ do do aL aP -uZ +aP aP uf uf @@ -29008,7 +28262,7 @@ aP uM uM uH -uh +aP tM aL be @@ -29244,11 +28498,11 @@ do do yH yY -zQ yY yY yY -zk +yY +yY yY yY yH @@ -29283,7 +28537,7 @@ yX hV yX mW -bd +ak nj fx cs @@ -29519,7 +28773,7 @@ ue xl ux aP -uh +aP uQ uU uU @@ -29535,8 +28789,6 @@ aY aY aL hp -qy -bd be bd be @@ -29556,7 +28808,9 @@ bd be bd be -gC +bd +be +bd fT aL ed @@ -29814,7 +29068,7 @@ be bp be bd -be +ax fS aL ed @@ -30285,7 +29539,7 @@ do iW do do -do +bY do do do @@ -30318,10 +29572,10 @@ nl ob nk mX -mK aP aP -lw +aP +aP aL hk be @@ -30810,7 +30064,7 @@ do do og do -do +cd do tO do @@ -31113,7 +30367,7 @@ aL aL aL bd -be +aj bd aL aK @@ -31335,7 +30589,7 @@ rg rg rL rg -sh +rg rL rg rg @@ -31820,7 +31074,7 @@ aK aK aL An -Ak +Ab Ab Ac aL @@ -31830,7 +31084,7 @@ dp aL zn za -zb +za yL aL oe @@ -32130,7 +31384,7 @@ bd be bd be -gC +bd be aL aY @@ -32366,7 +31620,7 @@ aL rg rg rN -sL +rg rg rN rg @@ -32609,10 +31863,10 @@ aL aL oe oe -oG +oe xN wu -xm +wu wP wu vZ @@ -32868,10 +32122,10 @@ aL oe oe oe -xP +wb oe oe -wS +wb oe wb aL @@ -32890,7 +32144,7 @@ do do aL en -qh +en en en aL @@ -33924,10 +33178,10 @@ dS oe oe oe -ps +oe aL be -bd +SO be bd be @@ -33942,7 +33196,7 @@ be bd be bd -gD +bd bd be bd @@ -33951,7 +33205,7 @@ bd be bd be -bd +ak be aL aK @@ -34146,7 +33400,7 @@ do do aL yw -zR +yw yw zs zs @@ -34682,7 +33936,7 @@ do do do do -do +bY do aL tS @@ -34921,7 +34175,7 @@ do aL yw yw -zJ +yw zs zs aL @@ -35230,10 +34484,10 @@ aY aL iP bc -hW +cN gK gE -fV +cM bc aL cy @@ -35958,7 +35212,7 @@ yz ym aL yn -zc +yw yw yw ym @@ -36210,15 +35464,15 @@ do do aL ym -zT yw -zw +yw +yw ym aL ym yw yw -yy +yw ym aL ek @@ -36231,7 +35485,7 @@ aQ aQ va uW -uJ +tU tU tU aQ @@ -36245,7 +35499,7 @@ do dS oe oe -ps +oe oe oe oe @@ -36506,7 +35760,7 @@ oe oe oe oe -oG +oe oe nr aL @@ -36520,10 +35774,10 @@ aY aL iP bc -hX +cN gF gK -fW +cM bc aL cy @@ -37543,7 +36797,7 @@ do do na be -bd +aF be bc bc @@ -37801,7 +37055,7 @@ og do na hp -kc +be bd bc bc @@ -37822,7 +37076,7 @@ bc bc bc bc -bu +bc bc aL aK @@ -40143,9 +39397,9 @@ eh dd dm cQ -cz bc -bt +bc +bc aL aO aO @@ -40604,7 +39858,7 @@ uk uk uk sP -yB +uk uk uk ya @@ -40631,22 +39885,22 @@ bd be bd be -jS -be +bd +as bd be bd be bd be -gC +bd be aL lb bc bc iT -iV +bc bc bc bZ @@ -40659,7 +39913,7 @@ bc bc bc bc -bc +ao bc bc aL @@ -41175,9 +40429,9 @@ eh dd dm cR -cA bc -bu +bc +bc bi aO aO @@ -42168,7 +41422,7 @@ sP aK aK aL -tz +nz nz nz nz @@ -42427,8 +41681,8 @@ aK aK aL nz -tn nz +by nz nz nz @@ -42445,7 +41699,7 @@ nz nz nb bd -bo +aX bd be bd @@ -42686,7 +41940,7 @@ aK aL nz nz -sR +nz nz nz nz @@ -43746,7 +43000,7 @@ do do do do -gN +do do do eS @@ -44000,7 +43254,7 @@ jV do jV do -iX +do do do do @@ -44266,7 +43520,7 @@ do do do do -eI +do do do dp @@ -44766,7 +44020,7 @@ eT eT eT eT -eT +bl eT eT eT @@ -45043,7 +44297,7 @@ eT aL do do -ds +do aL aL aL @@ -45263,10 +44517,10 @@ nz nz nz nz +bB +nz nz nz -tn -sS aL aP aP @@ -45275,25 +44529,25 @@ aP aP aL eT -pP +fE fX fE eT fE fX fE -PA -fX -fE -lx -fX -kA fE fX fE fE fX -hr +fE +fE +fX +fE +fE +fX +fE fE fX fE @@ -45522,7 +44776,7 @@ nz nz nz nz -tA +nz nz nz aL @@ -46051,24 +45305,24 @@ aL eT fE fX -gO +fE eT fE fX fE -jW +fE +fX +fE +fE fX fE fE fX fE -MR +fE fX fE -io -fX fE -gO fX fE eU @@ -46848,7 +46102,7 @@ fE eT ry dt -dT +cE dt cE cE @@ -47084,7 +46338,7 @@ eT eT fX eT -eT +bv eT fD eT @@ -47094,7 +46348,7 @@ eT eT fD eT -eT +aT fD eT eT @@ -47343,24 +46597,24 @@ fE fX fE eT -MR -fX -fE -kA -fX -fE -lx -fX -kC -fE -fX -iY fE fX fE -gP +fE fX -PA +fE +fE +fX +fE +fE +fX +fE +fE +fX +fE +fE +fX +fE eT ry dt @@ -47882,7 +47136,7 @@ ry dt cE dt -cV +cE cE ci aL @@ -48084,7 +47338,7 @@ en en en en -zd +en en en en @@ -48115,7 +47369,7 @@ aL eT fE fX -gP +fE eT fE fX @@ -48123,10 +47377,10 @@ fE fE fX fE -ly +fE fX fE -jW +fE fX fE fE @@ -49415,7 +48669,7 @@ ld aL ld ld -kE +ld jZ aL be @@ -49924,7 +49178,7 @@ be aL ld ld -nC +ld ld ld ld @@ -50168,7 +49422,7 @@ nz nz nz nz -sS +nz nz nz nz @@ -50419,13 +49673,13 @@ aL aL nz nz +bM +nz nz nz nz nz nz -tB -tn nz nz nz @@ -50435,7 +49689,7 @@ nz nz nb be -bd +ak be aL oJ @@ -51497,7 +50751,7 @@ aN aN aN aN -bh +aN aN aN aN @@ -51734,14 +50988,14 @@ bd be bd be -db -be bd be bd be +aF +be bd -ik +as bg aL aP @@ -51965,7 +51219,7 @@ nz nz nz nz -wf +nz vv nz aL @@ -52224,7 +51478,7 @@ nz nz nz nz -vw +vv nz aL aP @@ -52483,7 +51737,7 @@ nz nz nz vv -sT +nz aL qD aP @@ -53233,7 +52487,7 @@ aK aK aK aL -zN +nz nz nz nz @@ -53292,7 +52546,7 @@ aL hy aP aP -gQ +aP aP aP aP @@ -53492,7 +52746,7 @@ aK aK aL nz -tn +nz nz nz nz @@ -53544,7 +52798,7 @@ be bd be bd -kc +be hH aL is @@ -53751,7 +53005,7 @@ aK aL nz nz -tz +nz nz nz nz @@ -54068,7 +53322,7 @@ aP aP aP aP -fF +aP aP aP aL @@ -54812,7 +54066,7 @@ nz nz nz so -sT +nz nz nz nz @@ -54825,7 +54079,7 @@ nz nz nb bd -oi +as bd be bd @@ -55070,7 +54324,7 @@ nz nz nz to -sU +bz sn nz nz @@ -55326,7 +54580,7 @@ nz nz nz nz -tC +nz nz nz so @@ -55610,8 +54864,8 @@ aQ kG aL dA -iZ -bd +be +SO be bd be @@ -56380,7 +55634,7 @@ kG aQ kH kH -le +aQ kJ aL dB @@ -56853,7 +56107,7 @@ nz nz nz ur -tz +nz aL aP tE @@ -57110,7 +56364,7 @@ nz nz nz nz -zz +ur nz aL aP @@ -57151,7 +56405,7 @@ bd hD aL kH -mq +aQ kH kH aQ @@ -57367,7 +56621,7 @@ nz nz nz nz -zN +nz ur nz aL @@ -57903,7 +57157,7 @@ nz nz nz nz -nz +bM ur aL rp @@ -57928,7 +57182,7 @@ kI aQ kH kH -lf +aQ kG aL dB @@ -58173,7 +57427,7 @@ rD px aL be -db +bd be bd be @@ -58441,7 +57695,7 @@ cp nH aL kH -mr +aQ aQ aQ aQ @@ -59463,7 +58717,7 @@ rs rr kz dA -be +as fN aL jA @@ -59480,8 +58734,8 @@ jA jA kd hm -ja -be +bd +aj bd be bd @@ -59492,7 +58746,7 @@ bd be bd be -db +bd be aL aP @@ -60514,7 +59768,7 @@ aL jt go gn -ib +go gn go gn @@ -60782,7 +60036,7 @@ en en aL dA -be +as bd aL aP @@ -61004,7 +60258,7 @@ tW tW rr rs -sX +rT rs rT rs @@ -61263,7 +60517,7 @@ tW rs rr rs -sr +rr rs rr rs @@ -61522,7 +60776,7 @@ rr rs rW rs -rU +rW rs rr aL @@ -61547,7 +60801,7 @@ jt go gn go -hB +gn go gn fK @@ -62559,14 +61813,14 @@ rE rr aL dA -kc +bo bd be bd be bd be -nI +bd hI aL lY @@ -63602,11 +62856,11 @@ bd hD aL jC -ma +jA jC jA jC -kg +jA jC aL dB @@ -63872,7 +63126,7 @@ be hH aL gq -vg +bI bI bI bJ @@ -65420,7 +64674,7 @@ be hH aL gq -fL +bI bI bI bJ @@ -65621,7 +64875,7 @@ tW tW en en -zZ +en en en en @@ -65649,7 +64903,7 @@ tW rr rs rT -ss +rs rT rs rr @@ -65662,7 +64916,7 @@ aY aY aL dB -ja +bd be bd be @@ -65688,7 +64942,7 @@ bd be bd be -bn +bd be aL aK @@ -65881,7 +65135,7 @@ en en en en -en +cf en en en @@ -65907,7 +65161,7 @@ tW rs rr rs -st +rr rs rr rs @@ -66160,12 +65414,12 @@ en en en tW -tW +bC tW rr rs rW -su +rs rW rs rr @@ -69026,7 +68280,7 @@ aP kS kn jG -ik +be bd be bd @@ -70292,7 +69546,7 @@ tW tW rr rs -sY +rT rs rT rs @@ -70551,7 +69805,7 @@ tW rs rr rs -sv +rr rs rr rs @@ -70808,7 +70062,7 @@ tW tW rr rs -sZ +rW rs rW rs @@ -71331,7 +70585,7 @@ rs rr aL dA -gz +aj bd be bd diff --git a/modular_chomp/maps/common_submaps/overmap/planets/tyr/tyr.dmm b/modular_chomp/maps/common_submaps/overmap/planets/tyr/tyr.dmm index 623dfda1ae..8e56183ff4 100644 --- a/modular_chomp/maps/common_submaps/overmap/planets/tyr/tyr.dmm +++ b/modular_chomp/maps/common_submaps/overmap/planets/tyr/tyr.dmm @@ -163,7 +163,7 @@ /turf/simulated/shuttle/floor/black, /area/planet/tyr/precursorruins/swarm_boss) "aH" = ( -/turf/simulated/wall/iron, +/turf/simulated/floor/tiled/red, /area/planet/tyr/eclipse_refinery) "aI" = ( /obj/structure/grille, @@ -173,84 +173,40 @@ /obj/structure/window/plastitanium, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/three) +"aJ" = ( +/obj/effect/anomaly/flux{ + move_chance = 0; + immortal = 1 + }, +/turf/simulated/shuttle/floor/voidcraft/tyr, +/area/planet/tyr/shuttles/nine) "aK" = ( /obj/structure/table/steel, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/three) -"aL" = ( -/obj/machinery/power/rtg/advanced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) "aM" = ( -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) -"aN" = ( -/obj/machinery/power/rtg/advanced, -/obj/structure/cable{ - icon_state = "0-8" +/obj/machinery/hyperpad/centre{ + map_pad_id = "tyr_1_station"; + map_pad_link_id = "tyr_1_away" }, -/turf/simulated/floor, +/turf/simulated/floor/tiled, /area/planet/tyr/eclipse_refinery) -"aO" = ( -/obj/item/circuitboard/industrial_reagent_waste_processor, -/obj/item/circuitboard/industrial_reagent_vat, -/obj/item/circuitboard/industrial_reagent_reactor, -/obj/item/circuitboard/industrial_reagent_pump, -/obj/item/circuitboard/industrial_reagent_pipe, -/obj/item/circuitboard/industrial_reagent_pipe, -/obj/item/circuitboard/industrial_reagent_pipe, -/obj/item/circuitboard/industrial_reagent_pipe, -/obj/item/circuitboard/industrial_reagent_pipe, -/obj/item/circuitboard/industrial_reagent_mixer, -/obj/item/circuitboard/industrial_reagent_hub, -/obj/item/circuitboard/industrial_reagent_grinder, -/obj/item/circuitboard/industrial_reagent_furnace, -/obj/item/circuitboard/industrial_reagent_filter, -/obj/structure/table/rack{ - dir = 8; - layer = 2.6 +"aS" = ( +/obj/effect/anomaly/hallucination{ + immortal = 1; + move_chance = 0 }, -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) -"aP" = ( -/obj/item/stock_parts/manipulator/pico, -/obj/item/stock_parts/manipulator/pico, -/obj/item/stock_parts/manipulator/pico, -/obj/item/stock_parts/matter_bin/super, -/obj/item/stock_parts/matter_bin/super, -/obj/item/stock_parts/matter_bin/super, -/obj/item/stock_parts/micro_laser/ultra, -/obj/item/stock_parts/micro_laser/ultra, -/obj/item/stock_parts/micro_laser/ultra, -/obj/item/stock_parts/scanning_module/phasic, -/obj/item/stock_parts/scanning_module/phasic, -/obj/item/stock_parts/scanning_module/phasic, -/obj/item/stack/cable_coil/silver, -/obj/item/stack/cable_coil/silver, -/obj/item/stack/cable_coil/silver, -/obj/structure/table/rack{ - dir = 8; - layer = 2.6 - }, -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) -"aQ" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/clocksgun, -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) -"aR" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/cultfanatic, -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) +/turf/simulated/shuttle/floor/voidcraft/tyr, +/area/planet/tyr/shuttles/nine) "aT" = ( /obj/structure/fans/hardlight/colorable/abductor{ color = "#FF3300" }, -/turf/simulated/floor, +/turf/simulated/floor/tiled, /area/planet/tyr/eclipse_refinery) +"aU" = ( +/turf/simulated/wall/r_wall, +/area/planet/tyr/caverns) "aV" = ( /turf/simulated/floor/lava/tyr, /area/planet/tyr/eclipse_refinery) @@ -356,6 +312,9 @@ /obj/structure/table/steel, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/eight) +"bs" = ( +/turf/simulated/wall/r_wall, +/area/planet/tyr/eclipse_refinery) "bt" = ( /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/three) @@ -387,6 +346,10 @@ /obj/item/stack/medical/splint, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/eight) +"bA" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "bB" = ( /obj/structure/sink/kitchen{ dir = 1 @@ -496,6 +459,9 @@ /obj/machinery/biogenerator, /turf/simulated/floor, /area/planet/tyr/shuttles/one) +"bV" = ( +/turf/simulated/floor/tiled, +/area/planet/tyr/eclipse_refinery) "bW" = ( /obj/structure/frame, /turf/simulated/shuttle/floor/voidcraft/tyr, @@ -524,6 +490,10 @@ /obj/structure/frame, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/eleven) +"cc" = ( +/obj/machinery/door/airlock, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "cd" = ( /obj/item/circuitboard/teleporter_station, /obj/structure/frame, @@ -828,6 +798,29 @@ /mob/living/simple_mob/mechanical/hivebot/tyr/swarm, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/three) +"db" = ( +/obj/structure/closet/crate, +/obj/random/material, +/obj/random/material/precious, +/obj/random/material/refined, +/obj/random/maintenance/medical, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/turf/simulated/floor/tiled, +/area/planet/tyr/eclipse_refinery) "dc" = ( /obj/machinery/power/rtg/fake_reactor, /obj/structure/cable{ @@ -860,12 +853,40 @@ "dh" = ( /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/ship_graveyard) +"di" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/taur, +/turf/simulated/floor/tiled, +/area/planet/tyr/eclipse_refinery) "dj" = ( /obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor, /area/planet/tyr/shuttles/one) +"dk" = ( +/obj/structure/closet/crate, +/obj/random/material, +/obj/random/material/precious, +/obj/random/material/refined, +/obj/random/maintenance/medical, +/obj/item/pickaxe/jackhammer, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "dl" = ( /obj/structure/table/woodentable, /obj/random/contraband, @@ -879,6 +900,30 @@ /obj/structure/window/plastitanium, /turf/simulated/floor, /area/planet/tyr/shuttles/one) +"dn" = ( +/obj/structure/closet/crate, +/obj/random/material, +/obj/random/material/precious, +/obj/random/material/refined, +/obj/random/maintenance/medical, +/obj/item/pickaxe/jackhammer, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/turf/simulated/floor/tiled, +/area/planet/tyr/eclipse_refinery) "do" = ( /obj/structure/prop/tyr_elevator{ descendx = 26; @@ -896,6 +941,29 @@ }, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/seven) +"dr" = ( +/obj/structure/closet/crate, +/obj/random/material, +/obj/random/material/precious, +/obj/random/material/refined, +/obj/random/maintenance/medical, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/manipulator/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/matter_bin/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/micro_laser/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/scanning_module/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/obj/item/stock_parts/capacitor/hyper, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "ds" = ( /turf/simulated/shuttle/floor/alien, /area/planet/tyr/precursorruins/engi_boss) @@ -918,6 +986,10 @@ }, /turf/simulated/shuttle/floor/alienplating, /area/planet/tyr/precursorruins/stairwell) +"dx" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/wolf, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "dy" = ( /obj/structure/prop/tyr_elevator{ descendx = 177; @@ -931,6 +1003,10 @@ }, /turf/simulated/shuttle/floor/alien, /area/planet/tyr/precursorruins/stairwell) +"dA" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/tesh, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "dB" = ( /obj/effect/floor_decal/stairs/dark_stairs{ dir = 4 @@ -1147,6 +1223,10 @@ }, /turf/simulated/shuttle/floor/black, /area/planet/tyr/precursorruins) +"el" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/lizard, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "em" = ( /obj/structure/prop/tyr_elevator{ descendx = 115; @@ -1315,6 +1395,10 @@ /obj/structure/barricade, /turf/simulated/tyracid, /area/planet/tyr/precursorruins/checkpoint) +"eL" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/noodle, +/turf/simulated/floor/tiled/red, +/area/planet/tyr/eclipse_refinery) "eQ" = ( /obj/structure/prop/tyr_elevator{ descendx = 119; @@ -1523,7 +1607,10 @@ /turf/simulated/shuttle/floor/alienplating, /area/planet/tyr/precursorruins/science_branch) "fz" = ( -/obj/effect/anomaly/bluespace/big, +/obj/effect/anomaly/grav{ + move_chance = 0; + immortal = 1 + }, /turf/simulated/shuttle/floor/voidcraft/tyr, /area/planet/tyr/shuttles/nine) "fA" = ( @@ -1956,29 +2043,6 @@ /obj/item/gun/energy/tyr_rifle, /turf/simulated/shuttle/floor/alien, /area/planet/tyr/ancient_ruins/five) -"hl" = ( -/obj/item/stock_parts/manipulator/pico, -/obj/item/stock_parts/manipulator/pico, -/obj/item/stock_parts/manipulator/pico, -/obj/item/stock_parts/matter_bin/super, -/obj/item/stock_parts/matter_bin/super, -/obj/item/stock_parts/matter_bin/super, -/obj/item/stock_parts/micro_laser/ultra, -/obj/item/stock_parts/micro_laser/ultra, -/obj/item/stock_parts/micro_laser/ultra, -/obj/item/stock_parts/scanning_module/phasic, -/obj/item/stock_parts/scanning_module/phasic, -/obj/item/stock_parts/scanning_module/phasic, -/obj/item/stack/cable_coil/silver, -/obj/item/stack/cable_coil/silver, -/obj/item/stack/cable_coil/silver, -/obj/structure/table/rack{ - dir = 8; - layer = 2.6 - }, -/obj/item/paper/tyr_hint, -/turf/simulated/floor, -/area/planet/tyr/eclipse_refinery) "hm" = ( /obj/structure/table/rack, /obj/item/tool/crowbar/hybrid/alien, @@ -6315,13 +6379,13 @@ dZ gl ef ef +aS ef ef ef ef ef -ef -ef +aJ ef ef gl @@ -7863,13 +7927,13 @@ dZ gl ef ef +aJ ef ef ef ef ef -ef -ef +aS ef ef gl @@ -11245,7 +11309,7 @@ dZ dZ dZ dZ -dZ +jL dZ dZ dZ @@ -11501,12 +11565,12 @@ dZ dZ dZ dZ +jL dZ dZ dZ dZ -dZ -dZ +jL dZ dZ dZ @@ -12015,16 +12079,16 @@ dZ dZ dZ dZ +jL +dZ +jL dZ dZ dZ +jL dZ dZ -dZ -dZ -dZ -dZ -dZ +jL dZ dZ dZ @@ -12278,7 +12342,7 @@ dZ dZ dZ dZ -dZ +jL dZ dZ dZ @@ -12539,7 +12603,7 @@ dZ dZ dZ dZ -dZ +jL dZ dZ dZ @@ -12790,13 +12854,13 @@ dZ dZ dZ dZ +jL dZ dZ dZ dZ -dZ -dZ -dZ +jL +jL dZ dZ dZ @@ -13046,18 +13110,18 @@ dZ dZ dZ dZ +jL +dZ +dZ +dZ +jL +jL dZ dZ dZ dZ dZ -dZ -dZ -dZ -dZ -dZ -dZ -dZ +jL dZ dZ dZ @@ -13303,7 +13367,7 @@ dZ dZ dZ dZ -dZ +jL cT cT cT @@ -13316,7 +13380,7 @@ cT cT cT cT -dZ +jL dZ dZ dZ @@ -13574,7 +13638,7 @@ dU de de cT -dZ +jL dZ dZ dZ @@ -13832,7 +13896,7 @@ dV de df cT -dZ +jL dZ dZ dZ @@ -14077,7 +14141,7 @@ dZ dZ dZ dZ -dZ +jL cT dl de @@ -63487,13 +63551,13 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz +bs +bs +bs +bs +bs +bs +bs gz gz gz @@ -63743,16 +63807,16 @@ gz gz gz gz -aH -aH -aH -aH -aH -aH -aH -aH gz gz +bs +dx +aH +aH +aH +aH +bs +gz gz gz gz @@ -64001,16 +64065,16 @@ OQ gz gz gz -aH -aL -aL -aL -aL -aL -aL -aH gz gz +bs +aH +bV +bV +bV +aH +bs +gz gz gz gz @@ -64259,16 +64323,16 @@ vI OQ gz gz -aH -aM -aM -aM -aM -aM -aM -aH gz gz +bs +aH +bV +aM +bV +aH +bs +gz gz gz gz @@ -64517,16 +64581,16 @@ vI OQ gz gz -aH -aM -aN -aN -aN -aN -aM -aH gz gz +bs +aH +bV +bV +bV +aH +bs +gz gz gz gz @@ -64773,19 +64837,19 @@ vI vI vI OQ -aH -aH -aH -aM -aH -aH -aH -aH -aM -aH +bs gz gz gz +bs +aH +aH +aH +aH +bA +bs +gz +gz gz gz gz @@ -65031,19 +65095,19 @@ vI vI vI vI -aH -aM -aM -aM -aM -aM -aM -aM -aM -aH -gz -gz -gz +bs +bs +bs +bs +bs +bs +bs +bV +bs +bs +bs +aU +aU gz gz gz @@ -65289,17 +65353,17 @@ vI vI vI vI -aT -aM -aM -aM -aO -aM -aM -aO -aM +bs aH -gz +bV +aH +bs +aH +bV +aH +bV +aH +bs gz gz gz @@ -65548,16 +65612,16 @@ vI vI vI aT -aM -aM -aQ -aP -aM -aM -aP -aM +bV +el +bV +bs +bV aH -gz +bV +aH +bV +bs gz gz gz @@ -65805,17 +65869,17 @@ vI vI vI vI +bs aH -aM -aM -aM -aP -aM -aM -aP -aM +bV aH -gz +bV +aH +bV +aH +bV +aH +bs gz gz gz @@ -66063,17 +66127,17 @@ vI vI vI vI +bs +bs +bs +bV aH -aM -aM -aM -aM -aM -aM -aM -aM +bV aH -gz +bV +aH +bV +bs gz gz gz @@ -66321,17 +66385,17 @@ aV vI vI vI +bs aH -aM -aM -aM -aP -aM -aM -aP -aM +bV aH -gz +bV +aH +bV +aH +bV +aH +bs gz gz gz @@ -66580,16 +66644,16 @@ vI vI vI aT -aM -aM -aR -aP -aM -aM -hl -aM +bV +eL +bV +bs +bV aH -gz +bV +aH +bV +bs gz gz gz @@ -66837,17 +66901,17 @@ aV vI vI vI -aT -aM -aM -aM -aO -aM -aM -aO -aM +bs aH -gz +bV +aH +bs +aH +bV +aH +bV +aH +bs gz gz gz @@ -67095,17 +67159,17 @@ aV aV vI OQ +bs +bs +bs +bs +bs +bV aH -aM -aM -aM -aM -aM -aM -aM -aM +bV aH -gz +bV +bs gz gz gz @@ -67353,20 +67417,20 @@ OQ OQ OQ OQ -aH -aH -aH -aH -aH -aH -aH -aH -aH -aH -gz -gz -gz -gz +OQ +OQ +OQ +OQ +bs +cc +bs +bs +bs +cc +bs +aU +aU +aU gz gz gz @@ -67615,13 +67679,13 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz +bs +bV +aH +bV +aH +bV +bs gz gz gz @@ -67873,13 +67937,13 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz +bs +dA +bV +aH +di +aH +bs gz gz gz @@ -68131,13 +68195,13 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz +bs +dn +dr +dn +dk +db +bs gz gz gz @@ -68389,13 +68453,13 @@ gz gz gz gz -gz -gz -gz -gz -gz -gz -gz +bs +bs +bs +bs +bs +bs +bs gz gz gz diff --git a/modular_chomp/maps/overmap/space_pois/starhuntersarena_70x70.dmm b/modular_chomp/maps/overmap/space_pois/starhuntersarena_70x70.dmm index a51a5d422c..7f76cbcf8f 100644 --- a/modular_chomp/maps/overmap/space_pois/starhuntersarena_70x70.dmm +++ b/modular_chomp/maps/overmap/space_pois/starhuntersarena_70x70.dmm @@ -9,8 +9,8 @@ "c" = ( /turf/simulated/shuttle/floor/alien, /area/submap/starhunterarena) -"g" = ( -/mob/living/simple_mob/humanoid/eclipse/head/stargazer, +"d" = ( +/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/ufo, /turf/simulated/floor/grass, /area/submap/starhunterarena) "j" = ( @@ -2664,7 +2664,7 @@ U U U U -U +d U U U @@ -2739,7 +2739,7 @@ U U U U -g +U U U U diff --git a/modular_chomp/maps/southern_cross/southern_cross-6.dmm b/modular_chomp/maps/southern_cross/southern_cross-6.dmm index 64a0328533..f57aae5f58 100644 --- a/modular_chomp/maps/southern_cross/southern_cross-6.dmm +++ b/modular_chomp/maps/southern_cross/southern_cross-6.dmm @@ -1761,10 +1761,6 @@ }, /turf/simulated/floor/plating, /area/surface/outpost/research/xenoarcheology/anomaly) -"dI" = ( -/obj/machinery/light/small, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "dJ" = ( /obj/structure/table/steel, /obj/effect/floor_decal/industrial/warning/dust{ @@ -3979,12 +3975,6 @@ }, /turf/simulated/floor/plating, /area/surface/outpost/research/xenoarcheology/smes) -"iv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "iw" = ( /obj/machinery/power/apc{ name = "south bump"; @@ -4013,12 +4003,6 @@ temperature = 243.15 }, /area/surface/outpost/mining_main/cave) -"iy" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "iz" = ( /obj/effect/floor_decal/industrial/warning/dust, /obj/structure/ore_box, @@ -4046,25 +4030,6 @@ }, /turf/simulated/floor/plating, /area/surface/outpost/research/xenoarcheology/smes) -"iD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) -"iE" = ( -/obj/structure/cable/blue{ - icon_state = "0-4" - }, -/obj/machinery/power/rtg/advanced, -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) -"iF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) "iG" = ( /turf/simulated/wall/r_wall, /area/surface/outpost/engineering/refinery/smes) @@ -4677,11 +4642,6 @@ }, /turf/simulated/floor/tiled, /area/surface/outpost/engineering/refinery/lobby) -"jU" = ( -/obj/structure/table/marble, -/obj/item/reagent_containers/food/drinks/bottle/specialwhiskey, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "jV" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled, @@ -4951,10 +4911,6 @@ }, /turf/simulated/floor/plating, /area/surface/outpost/engineering/refinery/smes) -"kx" = ( -/obj/structure/table/marble, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "ky" = ( /turf/simulated/shuttle/floor/voidcraft/external, /area/surface/cave/explored/deep) @@ -4987,6 +4943,11 @@ temperature = 243.15 }, /area/surface/outpost/mining_main/cave) +"kD" = ( +/turf/simulated/floor/water{ + outdoors = 0 + }, +/area/surface/cave/explored/trader) "kE" = ( /obj/effect/zone_divider, /turf/simulated/wall/r_wall, @@ -5033,6 +4994,9 @@ temperature = 243.15 }, /area/surface/outpost/engineering/refinery) +"kJ" = ( +/turf/simulated/mineral/floor/ignore_mapgen/sif, +/area/surface/cave/explored/trader) "kK" = ( /obj/effect/zone_divider, /obj/effect/floor_decal/industrial/warning/dust{ @@ -5243,6 +5207,57 @@ temperature = 243.15 }, /area/surface/outpost/engineering/refinery) +"ll" = ( +/turf/simulated/wall/r_wall, +/area/surface/cave/explored/trader) +"lm" = ( +/obj/structure/bed/pillowpile/teal, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"ln" = ( +/obj/structure/bed/pillowpile/teal, +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lo" = ( +/obj/structure/bed/pillowpile/teal, +/mob/living/simple_mob/humanoid/astral_collective/purity, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lp" = ( +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lq" = ( +/obj/machinery/door/airlock, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lr" = ( +/mob/living/simple_mob/humanoid/astral_collective/purity, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"ls" = ( +/obj/structure/fans/hardlight/colorable/abductor{ + color = "#FF3300" + }, +/obj/machinery/door/airlock, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lt" = ( +/obj/structure/table/reinforced, +/obj/random/maintenance/foodstuff, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lu" = ( +/obj/machinery/hyperpad/centre{ + map_pad_id = "tyr_1_away"; + map_pad_link_id = "tyr_1_station" + }, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) +"lv" = ( +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, +/turf/simulated/floor/tiled, +/area/surface/cave/explored/trader) "lV" = ( /obj/effect/zone_divider, /obj/effect/zone_divider, @@ -5281,10 +5296,6 @@ /obj/effect/zone_divider, /turf/simulated/mineral/floor/ignore_mapgen/sif, /area/surface/cave/explored/deep) -"oO" = ( -/obj/item/stool, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "pQ" = ( /obj/effect/zone_divider, /turf/simulated/floor/water{ @@ -5320,11 +5331,6 @@ outdoors = 0 }, /area/surface/outpost/wall/checkpoint) -"rc" = ( -/obj/structure/simple_door/sandstone, -/obj/structure/simple_door/sandstone, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "rd" = ( /obj/effect/map_effect/portal/line/side_a, /turf/simulated/wall/solidrock, @@ -5333,16 +5339,6 @@ /obj/effect/map_effect/portal/master/side_a/caves_to_wilderness, /turf/simulated/wall/solidrock, /area/surface/outpost/wall) -"st" = ( -/obj/effect/map_effect/portal/line/side_b{ - dir = 1 - }, -/turf/simulated/wall/solidrock, -/area/surface/cave/explored/trader) -"sH" = ( -/obj/structure/simple_door/sandstone, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "tf" = ( /obj/effect/zone_divider, /turf/simulated/mineral/floor/ignore_mapgen/sif, @@ -5363,12 +5359,6 @@ temperature = 243.15 }, /area/surface/outpost/research/xenoarcheology/exterior) -"tS" = ( -/obj/structure/cable/blue{ - icon_state = "1-8" - }, -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) "xh" = ( /obj/effect/zone_divider, /turf/simulated/floor/plating{ @@ -5378,11 +5368,6 @@ temperature = 243.15 }, /area/surface/outpost/mining_main/cave) -"xS" = ( -/obj/structure/table/marble, -/obj/item/reagent_containers/food/drinks/cans/nukie_lemon, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "zJ" = ( /obj/machinery/light/small{ dir = 8 @@ -5410,12 +5395,6 @@ temperature = 243.15 }, /area/surface/outpost/mining_main/cave) -"BX" = ( -/obj/structure/bed, -/obj/item/bedsheet/cosmos, -/mob/living/simple_mob/humanoid/starhunter/trader/farmer, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "Co" = ( /obj/machinery/light{ dir = 8 @@ -5427,12 +5406,6 @@ temperature = 243.15 }, /area/surface/outpost/mining_main/cave) -"Cv" = ( -/obj/structure/bed, -/obj/item/bedsheet/cosmos, -/mob/living/simple_mob/humanoid/starhunter/trader/miner, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "Cx" = ( /obj/effect/map_effect/portal/line/side_b{ dir = 1 @@ -5484,21 +5457,10 @@ }, /turf/simulated/wall/solidrock, /area/surface/cave/unexplored/normal) -"HL" = ( -/obj/structure/table/marble, -/obj/item/reagent_containers/food/snacks/breakfast_wrap, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) -"In" = ( -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) "Jk" = ( /obj/effect/map_effect/portal/line/side_a, /turf/simulated/wall/solidrock, /area/surface/outpost/wall/checkpoint) -"LO" = ( -/turf/simulated/wall/solidrock, -/area/surface/cave/explored/trader) "Nm" = ( /obj/effect/map_effect/portal/line/side_b{ dir = 1 @@ -5543,15 +5505,6 @@ temperature = 243.15 }, /area/surface/outpost/research/xenoarcheology/exterior) -"Qd" = ( -/obj/machinery/vending/starhunter_farmer, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) -"Qs" = ( -/obj/structure/table/marble, -/obj/item/book/manual/engineering_singularity_safety, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "Qy" = ( /obj/effect/zone_divider, /turf/simulated/floor/plating{ @@ -5561,19 +5514,6 @@ temperature = 243.15 }, /area/surface/outpost/research/xenoarcheology/exterior) -"QY" = ( -/obj/machinery/power/apc/alarms_hidden{ - dir = 1; - pixel_y = 24 - }, -/obj/structure/cable/blue{ - icon_state = "0-2" - }, -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) -"RM" = ( -/turf/simulated/wall/sandstone, -/area/surface/cave/explored/trader) "RX" = ( /obj/structure/cable/ender{ icon_state = "1-2"; @@ -5589,26 +5529,10 @@ temperature = 243.15 }, /area/surface/outpost/mining_main/cave) -"St" = ( -/obj/machinery/vending/starhunter_miner, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) -"SI" = ( -/obj/structure/table/marble, -/obj/item/reagent_containers/food/snacks/bacon_and_eggs, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "Ug" = ( /obj/effect/map_effect/portal/master/side_a/caves_to_wilderness/river, /turf/simulated/wall/solidrock, /area/surface/outpost/wall) -"UB" = ( -/obj/machinery/power/rtg/advanced, -/obj/structure/cable/blue{ - icon_state = "0-4" - }, -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) "VK" = ( /obj/structure/cable/heavyduty{ icon_state = "4-8" @@ -5628,23 +5552,6 @@ outdoors = 0 }, /area/surface/cave/explored/normal) -"WQ" = ( -/obj/structure/table/marble, -/obj/item/book/manual/anomaly_testing, -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) -"Xk" = ( -/obj/structure/cable/blue{ - icon_state = "1-2" - }, -/obj/structure/cable/blue{ - icon_state = "1-8" - }, -/turf/simulated/floor/plating, -/area/surface/cave/explored/trader) -"YU" = ( -/turf/simulated/floor/concrete, -/area/surface/cave/explored/trader) "YY" = ( /obj/machinery/light/small{ dir = 1 @@ -5922,30 +5829,30 @@ aa "} (2,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +ll +nr +nr +kD +kD +kD +kD +kD ab ab ab @@ -6180,30 +6087,30 @@ aa "} (3,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ll +lp +lp +lp +ll +lp +lp +lp +lp +lp +lp +ll +lp +lm +lm +lm +ll +kJ +kJ +kJ +kD +kD +kD +nr ab ab ab @@ -6438,30 +6345,30 @@ aa "} (4,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ll +lp +lu +lp +lq +lr +lp +lp +lp +lp +lp +lq +lp +lm +ln +lm +ll +kJ +kJ +kJ +kD +kD +nr +nr ab ab ab @@ -6696,30 +6603,30 @@ aa "} (5,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ll +lp +lp +lp +ll +lp +lp +lp +lp +lp +lp +ll +lp +lm +lm +lm +ll +kJ +kJ +kJ +kD +kD +nr +nr ab ab ab @@ -6954,30 +6861,30 @@ aa "} (6,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ll +ll +ll +ll +ll +ll +ll +ll +lp +lp +lp +ll +ll +ll +ll +ll +ll +kJ +kJ +kJ +kD +kD +kD +nr ab ab ab @@ -7212,30 +7119,30 @@ aa "} (7,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lp +lp +lp +lp +lp +lq +lp +lp +lp +ll +lp +lm +lm +lm +ll +kJ +kJ +kJ +kD +kD +kD +nr ab ab ab @@ -7470,30 +7377,30 @@ aa "} (8,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lp +lt +lp +lt +lr +ll +lp +lp +lp +lq +lp +lm +lo +lm +ll +kJ +kJ +kJ +kD +kD +kD +nr ab ab ab @@ -7728,30 +7635,30 @@ aa "} (9,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lv +lt +lp +lt +lp +ll +lp +lp +lp +ll +lp +lm +lm +lm +ll +kJ +kJ +kJ +kJ +kD +kD +nr ab ab ab @@ -7986,30 +7893,30 @@ aa "} (10,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lp +lt +lp +lt +lp +ll +lr +lp +lr +ll +ll +ll +ll +ll +ll +kJ +kJ +kJ +kJ +kD +kD +nr ab ab ab @@ -8244,30 +8151,30 @@ aa "} (11,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lp +lt +lr +lt +lp +ll +lp +lp +lp +ll +lp +lm +lm +lm +ll +kJ +kJ +kJ +kD +kD +kD +nr ab ab ab @@ -8502,30 +8409,30 @@ aa "} (12,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lp +lt +lp +lt +lp +ll +lp +lp +lp +lq +lp +lm +lo +lm +ll +kJ +kJ +kJ +kD +kD +kD +nr ab ab ab @@ -8760,30 +8667,30 @@ aa "} (13,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +lp +lp +lp +lp +lp +lq +lp +lp +lp +ll +lp +lm +lm +lm +ll +kJ +kJ +kD +kD +kD +kD +nr ab ab ab @@ -9018,30 +8925,30 @@ aa "} (14,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +ll +ll +ll +ll +ll +ll +ll +lp +lp +lp +ll +ll +ll +ll +ll +ll +kJ +kJ +kD +kD +kD +kD +nr ab ab ab @@ -9276,30 +9183,30 @@ aa "} (15,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +kJ +kJ +kJ +kJ +kJ +kJ +ll +ll +ls +ll +ll +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +nr ab ab ab @@ -9534,30 +9441,30 @@ aa "} (16,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +nr ab ab ab @@ -9792,30 +9699,30 @@ aa "} (17,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +nr ab ab ab @@ -10050,30 +9957,30 @@ aa "} (18,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +nr +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +nr +nr ab ab ab @@ -10308,30 +10215,30 @@ aa "} (19,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +kD +kD +nr +nr +nr ab ab ab @@ -10566,30 +10473,30 @@ aa "} (20,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +kD +kD +kD +nr +nr +nr +nr ab ab ab @@ -10824,28 +10731,28 @@ aa "} (21,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kD +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +kD +kD +kD +kD +nr +nr +nr ab ab ab @@ -11082,28 +10989,28 @@ aa "} (22,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kD +kD +kJ +kJ +kJ +kJ +kJ +kD +kD +kD +kD +kD +kD +kD +kD +nr +nr +nr +nr +nr +nr +nr ab ab ab @@ -11340,22 +11247,22 @@ aa "} (23,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +nr +nr +nr ab ab ab @@ -11598,22 +11505,22 @@ aa "} (24,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +kD +nr +nr +nr +nr +nr ab ab ab @@ -11856,22 +11763,22 @@ aa "} (25,1,1) = {" aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +kD +kD +kD +kD +kD +nr +nr +nr +nr +nr +nr +nr +nr +nr +nr +nr ab ab ab @@ -12114,12 +12021,12 @@ aa "} (26,1,1) = {" aa -ab -ab -ab -ab -ab -ab +kD +kD +nr +nr +nr +nr ab ab ab @@ -12372,12 +12279,12 @@ aa "} (27,1,1) = {" aa -ab -ab -ab -ab -ab -ab +nr +nr +nr +nr +nr +nr ab ab ab @@ -69372,20 +69279,20 @@ ae ae ae ae -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -rc -RM -LO -st +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +md +Cx aa "} (248,1,1) = {" @@ -69630,20 +69537,20 @@ ae ae ae ae -RM -BX -WQ -kx -RM -YU -YU -iv -YU -YU -YU -RM -LO -st +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +md +Cx aa "} (249,1,1) = {" @@ -69888,20 +69795,20 @@ ae ae ae ae -RM -iD -YU -YU -sH -YU -YU -YU -YU -YU -YU -RM -LO -st +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +md +Cx aa "} (250,1,1) = {" @@ -70146,20 +70053,20 @@ ae ae ae ae -RM -Cv -Qs -kx -RM -Qd -oO -xS -SI -oO -YU -RM -LO -LO +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +md +md aa "} (251,1,1) = {" @@ -70404,20 +70311,20 @@ ae ae ae ae -RM -RM -RM -RM -RM -iD -YU -kx -kx -YU -dI -RM -nr -nr +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae aa "} (252,1,1) = {" @@ -70662,20 +70569,20 @@ ae ae ae ae -RM -In -iE -UB -RM -St -oO -HL -jU -oO -YU -RM -nr -nr +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae aa "} (253,1,1) = {" @@ -70920,20 +70827,20 @@ ae ae ae ae -RM -QY -Xk -tS -RM -YU -YU -YU -YU -YU -YU -RM -nr -nr +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae aa "} (254,1,1) = {" @@ -71178,20 +71085,20 @@ ae ae ae ae -RM -In -iF -In -sH -YU -YU -iy -YU -YU -YU -RM -nr -nr +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae aa "} (255,1,1) = {" @@ -71436,20 +71343,20 @@ ae ae ae ae -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -RM -nr -nr +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae aa "} (256,1,1) = {" diff --git a/modular_chomp/maps/submaps/surface_submaps/wilderness/bountyhunters2.dmm b/modular_chomp/maps/submaps/surface_submaps/wilderness/bountyhunters2.dmm index 594bd74689..3a38216c95 100644 --- a/modular_chomp/maps/submaps/surface_submaps/wilderness/bountyhunters2.dmm +++ b/modular_chomp/maps/submaps/surface_submaps/wilderness/bountyhunters2.dmm @@ -209,8 +209,8 @@ /turf/simulated/floor/concrete, /area/submap/BountyHunters) "tM" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, /obj/effect/floor_decal/corner/grey/diagonal, +/mob/living/simple_mob/humanoid/astral_collective/ranged/zaddat, /turf/simulated/floor/concrete, /area/submap/BountyHunters) "uh" = ( @@ -287,8 +287,8 @@ /turf/simulated/floor/concrete, /area/submap/BountyHunters) "DA" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, /obj/effect/floor_decal/corner/grey/diagonal, +/mob/living/simple_mob/humanoid/astral_collective/purity, /turf/simulated/floor/concrete, /area/submap/BountyHunters) "Ej" = ( diff --git a/vorestation.dme b/vorestation.dme index aaabc985ff..dd175a4ad4 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -5449,16 +5449,7 @@ #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\cultist_ch.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\mercenary.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\pirate.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\eclipse\eclipse.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\eclipse\heads.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\eclipse\lore.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\eclipse\noms.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\starhunters\avatar.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\starhunters\base.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\starhunters\food.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\starhunters\hunters.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\starhunters\passive.dm" -#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\starhunters\tradercode.dm" +#include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\humanoid\eclipse\astral_collective.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\mechanical\cyber_horror.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\mechanical\disbot.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\subtypes\mechanical\drones\combat_drone.dm"