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 8508c646b8..981efe3705 100644 Binary files a/modular_chomp/icons/mob/eclipse.dmi and b/modular_chomp/icons/mob/eclipse.dmi differ diff --git a/modular_chomp/icons/mob/starhunters.dmi b/modular_chomp/icons/mob/starhunters.dmi deleted file mode 100644 index c27cd45c58..0000000000 Binary files a/modular_chomp/icons/mob/starhunters.dmi and /dev/null differ diff --git a/modular_chomp/icons/obj/guns/precursor/eclipse.dmi b/modular_chomp/icons/obj/guns/precursor/eclipse.dmi index 4325ba002b..66e9ecafa9 100644 Binary files a/modular_chomp/icons/obj/guns/precursor/eclipse.dmi and b/modular_chomp/icons/obj/guns/precursor/eclipse.dmi differ 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"