mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Tyr Update Again (#9531)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/mob/living/simple_mob/animal/tyr/rainbow_fly/proc/painbow_aura()
|
/mob/living/simple_mob/animal/tyr/rainbow_fly/proc/painbow_aura()
|
||||||
for(var/mob/living/L in view(src, 4))
|
for(var/mob/living/L in view(src, 5))
|
||||||
L.druggy = max(L.druggy, 10)
|
L.druggy = max(L.druggy, 10)
|
||||||
|
|
||||||
/mob/living/simple_mob/animal/tyr/groundpitcher
|
/mob/living/simple_mob/animal/tyr/groundpitcher
|
||||||
@@ -145,9 +145,6 @@
|
|||||||
var/mob/living/L = A
|
var/mob/living/L = A
|
||||||
A.emp_act(4) //The weakest strength of EMP
|
A.emp_act(4) //The weakest strength of EMP
|
||||||
playsound(src, 'sound/weapons/Egloves.ogg', 75, 1)
|
playsound(src, 'sound/weapons/Egloves.ogg', 75, 1)
|
||||||
L.Weaken(4)
|
|
||||||
L.Stun(4)
|
|
||||||
L.stuttering = max(L.stuttering, 4)
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(5, 1, L)
|
s.set_up(5, 1, L)
|
||||||
s.start()
|
s.start()
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
needs_reload = TRUE
|
needs_reload = TRUE
|
||||||
reload_max = 7 // Not the best default, but it fits the pistol
|
reload_max = 7 // Not the best default, but it fits the pistol
|
||||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged
|
ai_holder_type = /datum/ai_holder/hostile/ranged/robust/eclipse
|
||||||
|
|
||||||
loot_list = list(/obj/item/slime_extract/sepia = 1,
|
loot_list = list(/obj/item/slime_extract/sepia = 1,
|
||||||
/obj/item/bone/skull = 100
|
/obj/item/bone/skull = 100
|
||||||
@@ -66,6 +66,7 @@
|
|||||||
special_attack_min_range = 2
|
special_attack_min_range = 2
|
||||||
special_attack_max_range = 7
|
special_attack_max_range = 7
|
||||||
var/has_heal_droid = FALSE
|
var/has_heal_droid = FALSE
|
||||||
|
var/specialattackprojectile = /obj/item/projectile/energy/phase/bolt
|
||||||
|
|
||||||
//Want a self heal for a spefic dude, and to increase diffculty of some POIs
|
//Want a self heal for a spefic dude, and to increase diffculty of some POIs
|
||||||
/mob/living/simple_mob/humanoid/eclipse/handle_special()
|
/mob/living/simple_mob/humanoid/eclipse/handle_special()
|
||||||
@@ -85,9 +86,12 @@
|
|||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// Stealing Merc AI Types
|
// Stealing Merc AI Types
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
/datum/ai_holder/simple_mob/merc/eclipse
|
/datum/ai_holder/hostile/ranged/robust/eclipse
|
||||||
threaten = FALSE
|
|
||||||
vision_range = 7
|
vision_range = 7
|
||||||
|
conserve_ammo = TRUE
|
||||||
|
intelligence_level = AI_SMART
|
||||||
|
use_astar = TRUE
|
||||||
|
pointblank = TRUE
|
||||||
|
|
||||||
/datum/ai_holder/simple_mob/merc/eclipse/hunter
|
/datum/ai_holder/simple_mob/merc/eclipse/hunter
|
||||||
vision_range = 7
|
vision_range = 7
|
||||||
@@ -802,35 +806,12 @@
|
|||||||
special_attack_max_range = 7
|
special_attack_max_range = 7
|
||||||
|
|
||||||
projectiletype = /obj/item/projectile/energy/electrode
|
projectiletype = /obj/item/projectile/energy/electrode
|
||||||
|
specialattackprojectile = /obj/item/projectile/energy/flash
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle/do_special_attack(atom/A)
|
||||||
visible_message(span_critical("\The [src] pulls out a flash!"))
|
visible_message(span_warning("\The [src] begins to aim a flare gun!"))
|
||||||
if(isliving(A))
|
Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY)
|
||||||
var/mob/living/L = A
|
addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME)
|
||||||
if(iscarbon(L))
|
|
||||||
var/mob/living/carbon/C = L
|
|
||||||
if(C.stat != DEAD)
|
|
||||||
var/safety = C.eyecheck()
|
|
||||||
if(safety <= 0)
|
|
||||||
var/flash_strength = 8
|
|
||||||
if(ishuman(C))
|
|
||||||
var/mob/living/carbon/human/H = C
|
|
||||||
flash_strength *= H.species.flash_mod
|
|
||||||
if(flash_strength > 0)
|
|
||||||
to_chat(H, span_critical("You are disoriented by \the [src]!"))
|
|
||||||
H.eye_blurry = max(H.eye_blurry, flash_strength + 5)
|
|
||||||
H.flash_eyes()
|
|
||||||
H.apply_damage(flash_strength * H.species.flash_burn/5, BURN, BP_HEAD, 0, 0, "Photon burns")
|
|
||||||
|
|
||||||
else if(issilicon(L))
|
|
||||||
if(isrobot(L))
|
|
||||||
var/flashfail = FALSE
|
|
||||||
var/mob/living/silicon/robot/R = L
|
|
||||||
if(!flashfail)
|
|
||||||
to_chat(R, span_critical("Your optics are scrambled by \the [src]!"))
|
|
||||||
R.Confuse(10)
|
|
||||||
R.flash_eyes()
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle //Bouncing bullet extreme
|
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle //Bouncing bullet extreme
|
||||||
name = "Lunar Eclipse Silver Serpent"
|
name = "Lunar Eclipse Silver Serpent"
|
||||||
@@ -847,13 +828,12 @@
|
|||||||
special_attack_cooldown = 30 SECONDS
|
special_attack_cooldown = 30 SECONDS
|
||||||
special_attack_min_range = 1
|
special_attack_min_range = 1
|
||||||
special_attack_max_range = 7
|
special_attack_max_range = 7
|
||||||
|
specialattackprojectile = /obj/item/projectile/beam/energy_net
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/solar/disablernoodle/do_special_attack(atom/A) //I am bringing back the netgun attack. 4 seconds
|
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle/do_special_attack(atom/A) //I am bringing back the netgun attack. 4 seconds
|
||||||
visible_message(span_warning("\The [src] begins to create an energy net!"))
|
visible_message(span_warning("\The [src] begins to create an energy net!"))
|
||||||
Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY)
|
Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY)
|
||||||
sleep(40)
|
addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME)
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/beam/energy_net(get_turf(src))
|
|
||||||
P.launch_projectile(A, BP_TORSO, src)
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/solar/plant
|
/mob/living/simple_mob/humanoid/eclipse/solar/plant
|
||||||
@@ -873,12 +853,20 @@
|
|||||||
special_attack_max_range = 7
|
special_attack_max_range = 7
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/solar/plant/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/solar/plant/do_special_attack(atom/A)
|
||||||
var/mob/living/carbon/human/H = A
|
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/proc/itemyoink(mob/living/carbon/human/H)
|
||||||
|
if(!H)
|
||||||
|
return
|
||||||
var/obj/item/I = H.get_active_hand()
|
var/obj/item/I = H.get_active_hand()
|
||||||
H.drop_item()
|
H.drop_item()
|
||||||
if(I)
|
if(I)
|
||||||
I.throw_at(src, 2, 4) // Just yoinked.
|
I.throw_at(src, 2, 4) // Just yoinked.
|
||||||
src.visible_message(span_danger("The [name] heaves, pulling \the [A]'s weapon from their hands!"))
|
src.visible_message(span_danger("The [name] heaves, pulling \the [H]'s weapon from their hands!"))
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter
|
/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter
|
||||||
name = "Lunar Eclipse Experimenter"
|
name = "Lunar Eclipse Experimenter"
|
||||||
@@ -894,16 +882,17 @@
|
|||||||
special_attack_min_range = 1
|
special_attack_min_range = 1
|
||||||
special_attack_max_range = 7
|
special_attack_max_range = 7
|
||||||
|
|
||||||
projectiletype = /obj/item/projectile/energy/spikeenergy_ball //using the weapon found upon tyr
|
projectiletype = /obj/item/projectile/energy/wp_shotgun //using the weapon found upon tyr
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/lunar/experimenter/do_special_attack(atom/A)
|
||||||
visible_message(span_danger("The [src]'s gauntlet glows silver!"))
|
visible_message(span_danger("The [src]'s gauntlet glows silver!"))
|
||||||
addtimer(CALLBACK(src, PROC_REF(gravity_pull), A), 1 SECOND, TIMER_DELETE_ME)
|
if(isliving(A))
|
||||||
|
addtimer(CALLBACK(src, PROC_REF(gravity_pull), A), 3 SECOND, TIMER_DELETE_ME)
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/proc/gravity_pull(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/proc/gravity_pull(mob/living/L)
|
||||||
var/D = src
|
if(!L)
|
||||||
var/mob/living/carbon/human/H = A
|
return
|
||||||
H.throw_at(D, 2, 4) // Just yoinked.
|
L.throw_at(src, 2, 4) // Just yoinked.
|
||||||
|
|
||||||
//The Precursor intative big folks
|
//The Precursor intative big folks
|
||||||
/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter //lunar melee unit
|
/mob/living/simple_mob/humanoid/eclipse/lunar/titanhunter //lunar melee unit
|
||||||
@@ -945,6 +934,7 @@
|
|||||||
special_attack_cooldown = 15 SECONDS
|
special_attack_cooldown = 15 SECONDS
|
||||||
special_attack_min_range = 1
|
special_attack_min_range = 1
|
||||||
special_attack_max_range = 9
|
special_attack_max_range = 9
|
||||||
|
specialattackprojectile = /obj/item/projectile/arc/radioactive/weak
|
||||||
|
|
||||||
|
|
||||||
/obj/item/projectile/arc/radioactive/weak
|
/obj/item/projectile/arc/radioactive/weak
|
||||||
@@ -953,9 +943,8 @@
|
|||||||
/mob/living/simple_mob/humanoid/eclipse/solar/nuclear/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/solar/nuclear/do_special_attack(atom/A)
|
||||||
visible_message(span_warning("\The [src] begins to glow green!"))
|
visible_message(span_warning("\The [src] begins to glow green!"))
|
||||||
Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY)
|
Beam(A, icon_state = "sat_beam", time = 3 SECONDS, maxdistance = INFINITY)
|
||||||
sleep(30)
|
addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 3 SECONDS, TIMER_DELETE_ME)
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/beam/energy_net(get_turf(src))
|
|
||||||
P.launch_projectile(A, BP_TORSO, src)
|
|
||||||
|
|
||||||
//Vistors of the other
|
//Vistors of the other
|
||||||
//One is a familiar shape from Sif, the other is new and anomalous based.
|
//One is a familiar shape from Sif, the other is new and anomalous based.
|
||||||
@@ -978,47 +967,7 @@
|
|||||||
melee_attack_delay = 1.5
|
melee_attack_delay = 1.5
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/solar/froststalker/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/solar/froststalker/do_special_attack(atom/A)
|
||||||
// Teleport attack.
|
teleport(A)
|
||||||
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/smoke_spread/frost
|
|
||||||
s1.set_up(5, 1, T)
|
|
||||||
var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/smoke_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/lunar/abyssdiver
|
/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver
|
||||||
name = "Lunar Eclipse Abyss Diver"
|
name = "Lunar Eclipse Abyss Diver"
|
||||||
@@ -1027,19 +976,31 @@
|
|||||||
desc = "A strange being wearing a blunt resistaint coat."
|
desc = "A strange being wearing a blunt resistaint coat."
|
||||||
projectiletype = /obj/item/projectile/scatter/shotgun
|
projectiletype = /obj/item/projectile/scatter/shotgun
|
||||||
icon_state = "eclipse_diver" //note to self try to redo this sprite sometime
|
icon_state = "eclipse_diver" //note to self try to redo this sprite sometime
|
||||||
reload_count = 1
|
reload_max = 1
|
||||||
|
reload_time = 2 SECONDS
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/lunar/abyssdiver/do_special_attack(atom/A)
|
||||||
var/mob/living/L = A
|
|
||||||
visible_message(span_danger("\The [src] begins to mess with a wrist mounted device."))
|
visible_message(span_danger("\The [src] begins to mess with a wrist mounted device."))
|
||||||
sleep(30)
|
if(isrobot(A))
|
||||||
if(isliving(A))
|
addtimer(CALLBACK(src, PROC_REF(remote_shutdown), A), 3 SECONDS, TIMER_DELETE_ME)
|
||||||
if(iscarbon(L))
|
|
||||||
return
|
|
||||||
else if(issilicon(L))
|
|
||||||
if(isrobot(L))
|
|
||||||
L.Weaken(10)
|
|
||||||
else if(istype(A, /obj/mecha))
|
else if(istype(A, /obj/mecha))
|
||||||
var/obj/mecha/M = A
|
addtimer(CALLBACK(src, PROC_REF(remote_eject), A), 3 SECONDS, TIMER_DELETE_ME)
|
||||||
visible_message(span_critical("\The [M] is remotly hacked and ejects [M.occupant]!"))
|
|
||||||
M.go_out()
|
/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)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
projectile_dispersion = 8
|
projectile_dispersion = 8
|
||||||
projectile_accuracy = 0
|
projectile_accuracy = 0
|
||||||
ranged_cooldown = 5
|
ranged_cooldown = 5
|
||||||
|
grab_resist = 100
|
||||||
|
|
||||||
damage_fatigue_mult = 0
|
damage_fatigue_mult = 0
|
||||||
|
|
||||||
@@ -124,7 +125,8 @@
|
|||||||
/mob/living/simple_mob/humanoid/eclipse/head/scientist
|
/mob/living/simple_mob/humanoid/eclipse/head/scientist
|
||||||
name = "Eclipse Lead Researcher"
|
name = "Eclipse Lead Researcher"
|
||||||
icon_state = "fleetsci"
|
icon_state = "fleetsci"
|
||||||
health = 30
|
maxHealth = 60
|
||||||
|
health = 60
|
||||||
special_attack_cooldown = 5 SECONDS
|
special_attack_cooldown = 5 SECONDS
|
||||||
special_attack_min_range = 1
|
special_attack_min_range = 1
|
||||||
special_attack_max_range = 10
|
special_attack_max_range = 10
|
||||||
@@ -168,31 +170,6 @@
|
|||||||
size_x = 3
|
size_x = 3
|
||||||
size_y = 3
|
size_y = 3
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/scientist/updatehealth()
|
|
||||||
. = ..()
|
|
||||||
|
|
||||||
if(vore_fullness == 1)
|
|
||||||
special_attack_cooldown = 10 SECONDS
|
|
||||||
else if(vore_fullness > 1)
|
|
||||||
special_attack_cooldown = 20 SECONDS
|
|
||||||
else
|
|
||||||
special_attack_cooldown = 5 SECONDS
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/scientist/do_special_attack(atom/A)
|
|
||||||
visible_message(span_warning("\The [src] begins to fabricate drones!"))
|
|
||||||
sleep(3)
|
|
||||||
if(vore_fullness == 1)
|
|
||||||
new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse (src.loc)
|
|
||||||
else if(vore_fullness > 1)
|
|
||||||
new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse (src.loc)
|
|
||||||
new /mob/living/simple_mob/mechanical/mining_drone/scavenger/eclipse (src.loc)
|
|
||||||
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
|
|
||||||
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
|
|
||||||
else
|
|
||||||
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
|
|
||||||
new /mob/living/simple_mob/mechanical/hivebot/swarm/eclipse (src.loc)
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/simple_mob/mechanical/hivebot/swarm/eclipse
|
/mob/living/simple_mob/mechanical/hivebot/swarm/eclipse
|
||||||
faction = FACTION_ECLIPSE
|
faction = FACTION_ECLIPSE
|
||||||
|
|
||||||
@@ -374,15 +351,21 @@
|
|||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead
|
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead
|
||||||
name = "Eclipse Precursor Overseer"
|
name = "Eclipse Precursor Overseer"
|
||||||
icon_state = "overseer_shield"
|
icon_state = "overseer_shield"
|
||||||
health = 300
|
special_attack_cooldown = 4 SECONDS
|
||||||
maxHealth = 300
|
special_attack_min_range = 1
|
||||||
grab_resist = 100
|
special_attack_max_range = 8
|
||||||
var/fullshield = 6
|
projectiletype = /obj/item/projectile/energy/homing_bolt
|
||||||
var/shieldrage = 6
|
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||||
|
var/fullshield = 4
|
||||||
|
var/shieldrage = 4
|
||||||
|
|
||||||
/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. 10 hits to remove
|
/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)
|
if(fullshield > 0)
|
||||||
fullshield--
|
fullshield--
|
||||||
|
if(P == /obj/item/projectile/ion)
|
||||||
|
fullshield = 0
|
||||||
|
visible_message(span_boldwarning(span_orange("[P] breaks the shield!!.")))
|
||||||
|
icon_state = "overseer"
|
||||||
if(fullshield > 0)
|
if(fullshield > 0)
|
||||||
visible_message(span_boldwarning(span_orange("[P] is absorbed by the shield!.")))
|
visible_message(span_boldwarning(span_orange("[P] is absorbed by the shield!.")))
|
||||||
else
|
else
|
||||||
@@ -392,109 +375,133 @@
|
|||||||
..()
|
..()
|
||||||
shieldrage--
|
shieldrage--
|
||||||
if(shieldrage == 0)
|
if(shieldrage == 0)
|
||||||
shieldrage = 6
|
shieldrage = 4
|
||||||
fullshield = 6
|
fullshield = 4
|
||||||
visible_message(span_boldwarning(span_orange("The shield reactivates!!.")))
|
visible_message(span_boldwarning(span_orange("The shield reactivates!!.")))
|
||||||
icon_state = "overseer_shield"
|
icon_state = "overseer_shield"
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/do_special_attack(atom/A)
|
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/do_special_attack(atom/A)
|
||||||
if(vore_fullness > 2) //If they nompf someone already
|
var/deathdir = rand(1,3)
|
||||||
fullsummon(A)
|
switch(deathdir)
|
||||||
var/mob/living/L = A
|
if(1)
|
||||||
|
teleport(A)
|
||||||
|
if(2)
|
||||||
|
bomb_chaos(A)
|
||||||
|
if(3)
|
||||||
|
bomb_lines(A)
|
||||||
|
|
||||||
if(istype(A, /obj/mecha))//if target is a mecha
|
/mob/living/simple_mob/humanoid/eclipse/head/engineer //teshari
|
||||||
switch(a_intent)
|
name = "Eclipse Chief Engineer"
|
||||||
if(I_DISARM) // Phase 3
|
health = 50
|
||||||
mech_three(A)
|
maxHealth = 50
|
||||||
if(I_HURT) // Phase 1
|
melee_damage_lower = 60 //Durasteel fireaxe
|
||||||
mech_one(A)
|
melee_damage_upper = 60
|
||||||
if(I_GRAB) // Phase 2
|
projectiletype = null
|
||||||
mech_two(A)
|
|
||||||
|
|
||||||
if(!L.devourable || !L.allowmobvore || !L.can_be_drop_prey || !L.throw_vore) //if they aren't edible
|
/mob/living/simple_mob/humanoid/eclipse/head/engineer/Initialize()
|
||||||
if(fullshield > 0)
|
add_modifier(/datum/modifier/technomancer/haste, null, src) // tesh goes nyooooom
|
||||||
switch(a_intent)
|
return ..()
|
||||||
if(I_DISARM) // Phase 3
|
|
||||||
shield_three(A)
|
|
||||||
if(I_HURT) // Phase 1
|
|
||||||
shield_one(A)
|
|
||||||
if(I_GRAB) // Phase 2
|
|
||||||
shield_two(A)
|
|
||||||
else
|
|
||||||
switch(a_intent)
|
|
||||||
if(I_DISARM) // Phase 3
|
|
||||||
phase_three(A)
|
|
||||||
if(I_HURT) // Phase 1
|
|
||||||
phase_one(A)
|
|
||||||
if(I_GRAB) // Phase 2
|
|
||||||
phase_two(A)
|
|
||||||
else
|
|
||||||
visible_message(span_danger("The [src]'s gauntlet glows silver!"))
|
|
||||||
addtimer(CALLBACK(src, PROC_REF(gravity_pull), A), 1 SECOND, TIMER_DELETE_ME)
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/fullsummon(atom/target) //Summons a wall whilst the boss tries to enjoy their meal
|
/mob/living/simple_mob/humanoid/eclipse/head/medical //noodl
|
||||||
visible_message(span_warning("\The [src] calls in drone support!"))
|
name = "Eclipse Chief Medical Officer"
|
||||||
new /mob/living/simple_mob/mechanical/combat_drone/artillery (src.loc)
|
health = 150
|
||||||
sleep(30)
|
maxHealth = 150
|
||||||
new /mob/living/simple_mob/mechanical/combat_drone/artillery (src.loc)
|
special_attack_cooldown = 5 SECONDS
|
||||||
sleep(30)
|
special_attack_min_range = 0
|
||||||
new /mob/living/simple_mob/mechanical/combat_drone/artillery (src.loc)
|
special_attack_max_range = 7
|
||||||
|
melee_damage_lower = 15 //Durasteel fireaxe
|
||||||
|
melee_damage_upper = 15
|
||||||
|
attack_armor_pen = 60
|
||||||
|
projectiletype = null
|
||||||
|
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 = "stoxin"
|
||||||
|
var/poison_per_bite = 8
|
||||||
|
var/poison_chance = 80
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/mech_two(atom/target) //Forces the mecha user in a strange dance, being forced out, likly dodging one projectile and getting back in
|
/mob/living/simple_mob/humanoid/eclipse/head/medical/apply_melee_effects(var/atom/A)
|
||||||
var/obj/mecha/M = target
|
if(isliving(A))
|
||||||
visible_message(span_critical("\The [M] is remotly hacked and ejects [M.occupant]!"))
|
var/mob/living/L = A
|
||||||
M.go_out()
|
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/tyrlead/proc/mech_one(atom/target) //might alter this one to a machine gun esque ion fire
|
/mob/living/simple_mob/humanoid/eclipse/head/medical/proc/inject_poison(mob/living/L, target_zone)
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/ion(get_turf(src))
|
if(prob(poison_chance))
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
to_chat(L, span_warning("You feel a tiny prick."))
|
||||||
sleep(5)
|
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
|
||||||
sleep(5)
|
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
|
||||||
sleep(5)
|
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
|
||||||
sleep(5)
|
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/mech_three(atom/target) //did we ever fix fire bypassing mechas?
|
/mob/living/simple_mob/humanoid/eclipse/head/medical/cloak()
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/scatter/flamethrower(get_turf(src))
|
if(cloaked)
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
return
|
||||||
|
animate(src, alpha = cloaked_alpha, time = 1 SECOND)
|
||||||
|
cloaked = TRUE
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/phase_one(atom/target) //Simply tries to disable you
|
|
||||||
visible_message(span_alien("\The [src] pulls out a flash!"))
|
|
||||||
if(isliving(target))
|
|
||||||
var/mob/living/L = target
|
|
||||||
if(iscarbon(L))
|
|
||||||
var/mob/living/carbon/C = L
|
|
||||||
if(C.stat != DEAD)
|
|
||||||
var/safety = C.eyecheck()
|
|
||||||
if(safety <= 0)
|
|
||||||
var/flash_strength = 8
|
|
||||||
if(ishuman(C))
|
|
||||||
var/mob/living/carbon/human/H = C
|
|
||||||
flash_strength *= H.species.flash_mod
|
|
||||||
if(flash_strength > 0)
|
|
||||||
to_chat(H, span_alien("You are disoriented by \the [src]!"))
|
|
||||||
H.eye_blurry = max(H.eye_blurry, flash_strength + 5)
|
|
||||||
H.flash_eyes()
|
|
||||||
H.apply_damage(flash_strength * H.species.flash_burn/5, BURN, BP_HEAD, 0, 0, "Photon burns")
|
|
||||||
|
|
||||||
else if(issilicon(L))
|
/mob/living/simple_mob/humanoid/eclipse/head/medical/uncloak()
|
||||||
if(isrobot(L))
|
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.
|
||||||
var/flashfail = FALSE
|
if(!cloaked)
|
||||||
var/mob/living/silicon/robot/R = L
|
return
|
||||||
if(!flashfail)
|
animate(src, alpha = initial(alpha), time = 1 SECOND)
|
||||||
to_chat(R, span_alien("Your optics are scrambled by \the [src]!"))
|
cloaked = FALSE
|
||||||
R.Confuse(10)
|
|
||||||
R.flash_eyes()
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/phase_two(atom/target)
|
// 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)
|
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
|
||||||
|
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."))
|
to_chat(src, span_warning("There's nothing to teleport to."))
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
var/list/nearby_things = range(1, target)
|
var/list/nearby_things = range(4, A)
|
||||||
var/list/valid_turfs = list()
|
var/list/valid_turfs = list()
|
||||||
|
|
||||||
// All this work to just go to a non-dense tile.
|
// All this work to just go to a non-dense tile.
|
||||||
@@ -521,7 +528,7 @@
|
|||||||
s2.set_up(5, 1, target_turf)
|
s2.set_up(5, 1, target_turf)
|
||||||
|
|
||||||
|
|
||||||
T.visible_message(span_notice("\The [src] vanishes!"))
|
T.visible_message(span_warning("\The [src] vanishes!"))
|
||||||
s1.start()
|
s1.start()
|
||||||
|
|
||||||
forceMove(target_turf)
|
forceMove(target_turf)
|
||||||
@@ -531,31 +538,151 @@
|
|||||||
target_turf.visible_message(span_warning("\The [src] appears!"))
|
target_turf.visible_message(span_warning("\The [src] appears!"))
|
||||||
s2.start()
|
s2.start()
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/phase_three(atom/target) //This might friendly fire itself, but funny and final phase
|
/mob/living/simple_mob/humanoid/eclipse/head/cargomaster //Naga
|
||||||
Beam(target, icon_state = "sat_beam", time = 2.5 SECONDS, maxdistance = INFINITY)
|
name = "Eclipse Cargo Master"
|
||||||
sleep(30)
|
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/beam/chain_lightning(get_turf(src))
|
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/shield_one(atom/target)
|
/mob/living/simple_mob/humanoid/eclipse/proc/bomb_lines(atom/A)
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/temp/hot(get_turf(src))
|
if(!A)
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
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/head/tyrlead/proc/shield_two(atom/target)
|
|
||||||
if(prob(50))
|
|
||||||
visible_message(span_alien("\The [src] begins to bandage their wounds."))
|
|
||||||
sleep(30)
|
|
||||||
adjustBruteLoss(-25.0)
|
|
||||||
visible_message(span_alien("\The [src] begins to salve their burns."))
|
|
||||||
sleep(30)
|
|
||||||
adjustFireLoss(-25.0)
|
|
||||||
else
|
|
||||||
visible_message(span_alien("\The [src] consumes an odd pill."))
|
|
||||||
add_modifier(/datum/modifier/aura/slime_heal, 15, src)
|
|
||||||
|
|
||||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/proc/shield_three(atom/target)
|
/mob/living/simple_mob/humanoid/eclipse/proc/spawn_lines(atom/target)
|
||||||
Beam(target, icon_state = "sat_beam", time = 2.5 SECONDS, maxdistance = INFINITY)
|
var/alignment = rand(1,2) // 1 for vertical, 2 for horizontal
|
||||||
sleep(30)
|
var/list/line_range = list()
|
||||||
var/obj/item/projectile/P = new /obj/item/projectile/beam/lightning(get_turf(src))
|
var/turf/T = get_turf(target)
|
||||||
P.launch_projectile(target, BP_TORSO, src)
|
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 /obj/effect/artillery_attack(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 /obj/effect/artillery_attack(dropspot)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/effect/artillery_attack
|
||||||
|
anchored = TRUE
|
||||||
|
density = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
|
mouse_opacity = 0
|
||||||
|
icon = 'icons/effects/effects.dmi'
|
||||||
|
icon_state = "drop_marker"
|
||||||
|
|
||||||
|
/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 /obj/effect/falling_effect/callstrike_bomb(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")
|
||||||
|
var/soaked = L.get_armor_soak(target_zone, "laser")
|
||||||
|
|
||||||
|
if(!L.apply_damage(70, BURN, target_zone, blocked, soaked))
|
||||||
|
break
|
||||||
|
playsound(src, 'sound/effects/clang2.ogg', 50, 1)
|
||||||
|
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.25 SECONDS, TIMER_DELETE_ME)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -59,7 +59,7 @@
|
|||||||
/area/surface/tyr/town
|
/area/surface/tyr/town
|
||||||
name = "Lost Town"
|
name = "Lost Town"
|
||||||
icon_state = "green"
|
icon_state = "green"
|
||||||
outdoors = OUTDOORS_NO
|
outdoors = OUTDOORS_YES
|
||||||
|
|
||||||
/area/surface/tyr/medical_center
|
/area/surface/tyr/medical_center
|
||||||
name = "Lost Toww Medical Center"
|
name = "Lost Toww Medical Center"
|
||||||
@@ -84,10 +84,13 @@
|
|||||||
/area/surface/tyr/northern_wilderness
|
/area/surface/tyr/northern_wilderness
|
||||||
name = "Tyr Wilderness"
|
name = "Tyr Wilderness"
|
||||||
icon_state = "green"
|
icon_state = "green"
|
||||||
|
outdoors = OUTDOORS_YES
|
||||||
|
|
||||||
|
|
||||||
/area/surface/tyr/southern_wilderness
|
/area/surface/tyr/southern_wilderness
|
||||||
name = "Tyr Wilderness"
|
name = "Tyr Wilderness"
|
||||||
icon_state = "green"
|
icon_state = "green"
|
||||||
|
outdoors = OUTDOORS_YES
|
||||||
|
|
||||||
/area/surface/tyr/tar_lake
|
/area/surface/tyr/tar_lake
|
||||||
name = "Tar Lake"
|
name = "Tar Lake"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user