Small Tyr Update (#9193)

This commit is contained in:
FluffMedic
2024-10-10 18:47:36 -04:00
committed by GitHub
parent c5b84fcea5
commit 9114bb5514
8 changed files with 559 additions and 189 deletions

View File

@@ -1257,147 +1257,60 @@
//Phase three 2 wierd patterns, and 1 strange attack.
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/proc/phasethree_cycleone(atom/target)
specialattackprojectile = /obj/item/projectile/energy/darkspike
upfour_leftthree(target)
upfour_lefttwo(target)
upfour_leftone(target)
upfour_rightone(target)
upfour_righttwo(target)
upfour_rightthree(target)
upthree_rightfour(target)
uptwo_rightfour(target)
upone_rightfour(target)
downone_rightfour(target)
downtwo_rightfour(target)
downthree_rightfour(target)
downfour_rightthree(target)
downfour_righttwo(target)
downfour_rightone(target)
downfour_leftone(target)
downfour_lefttwo(target)
downfour_leftthree(target)
downthree_leftfour(target)
downtwo_leftfour(target)
downone_leftfour(target)
upone_leftfour(target)
uptwo_leftfour(target)
upthree_leftfour(target)
sleep(15)
upfour_leftfour(target)
upfour(target)
upfour_rightfour(target)
rightfour(target)
downfour_rightfour(target)
downfour(target)
downfour_leftfour(target)
leftfour(target)
sleep(15)
upfour_leftthree(target)
upfour_lefttwo(target)
sleep(2.5)
upfour_leftone(target)
upfour_rightone(target)
upfour_righttwo(target)
upfour_rightthree(target)
upthree_rightfour(target)
uptwo_rightfour(target)
upone_rightfour(target)
downone_rightfour(target)
downtwo_rightfour(target)
downthree_rightfour(target)
downfour_rightthree(target)
downfour_righttwo(target)
downfour_rightone(target)
downfour_leftone(target)
downfour_rightone(target)
sleep(2.5)
upfour_lefttwo(target)
upfour_righttwo(target)
downfour_lefttwo(target)
downfour_righttwo(target)
sleep(2.5)
upfour_leftthree(target)
upfour_rightthree(target)
downfour_leftthree(target)
downthree_leftfour(target)
downtwo_leftfour(target)
downone_leftfour(target)
upone_leftfour(target)
uptwo_leftfour(target)
downfour_rightthree(target)
sleep(2.5)
upfour_leftfour(target)
upfour_rightfour(target)
downfour_leftfour(target)
downfour_rightfour(target)
sleep(2.5)
upthree_leftfour(target)
upthree_rightfour(target)
downthree_leftfour(target)
downthree_rightfour(target)
sleep(2.5)
uptwo_leftfour(target)
uptwo_rightfour(target)
downtwo_leftfour(target)
downtwo_rightfour(target)
sleep(2.5)
upone_leftfour(target)
upone_rightfour(target)
downone_leftfour(target)
downone_rightfour(target)
sleep(8)
specialattackprojectile = /obj/item/projectile/scatter/shotgun
leftfour(target)
rightfour(target)
attackcycle = 2
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/proc/phasethree_cycletwo(atom/target)
specialattackprojectile = /obj/item/projectile/energy/darkspike
specialattackprojectile = /obj/item/projectile/energy/homing_bolt
upfour_leftfour(target)
upfour_rightfour(target)
upfour_rightthree(target)
upfour_righttwo(target)
upfour_rightone(target)
downfour_leftfour(target)
downfour_rightfour(target)
sleep(5)
upfour(target)
upfour_leftone(target)
upfour_lefttwo(target)
upfour_leftthree(target)
upfour_leftfour(target)
sleep(5)
upfour_rightfour(target)
upthree_rightfour(target)
uptwo_rightfour(target)
upone_rightfour(target)
rightfour(target)
downone_rightfour(target)
downtwo_rightfour(target)
downthree_rightfour(target)
downfour_rightfour(target)
sleep(5)
downfour_rightfour(target)
downfour_rightthree(target)
downfour_righttwo(target)
downfour_rightone(target)
downfour(target)
downfour_leftone(target)
downfour_lefttwo(target)
downfour_leftthree(target)
downfour_leftfour(target)
sleep(5)
downfour_leftfour(target)
downthree_leftfour(target)
downtwo_leftfour(target)
downone_leftfour(target)
leftfour(target)
upone_leftfour(target)
uptwo_leftfour(target)
upthree_leftfour(target)
upfour_leftfour(target)
sleep(5)
upfour_rightfour(target)
upfour_rightthree(target)
upfour_righttwo(target)
upfour_rightone(target)
upfour(target)
upfour_leftone(target)
upfour_lefttwo(target)
upfour_leftthree(target)
upfour_leftfour(target)
sleep(15)
upfour_rightfour(target)
upthree_rightfour(target)
uptwo_rightfour(target)
upone_rightfour(target)
rightfour(target)
downone_rightfour(target)
downtwo_rightfour(target)
downthree_rightfour(target)
downfour_rightfour(target)
sleep(5)
downfour_rightfour(target)
downfour_rightthree(target)
downfour_righttwo(target)
downfour_rightone(target)
downfour(target)
downfour_leftone(target)
downfour_lefttwo(target)
downfour_leftthree(target)
downfour_leftfour(target)
sleep(5)
downfour_leftfour(target)
downthree_leftfour(target)
downtwo_leftfour(target)
downone_leftfour(target)
leftfour(target)
upone_leftfour(target)
uptwo_leftfour(target)
upthree_leftfour(target)
upfour_leftfour(target)
attackcycle = 3
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/proc/phasethree_cyclethree(atom/target) //eight spinning death beams
@@ -1406,84 +1319,305 @@
upfour_rightfour(target)
downfour_rightfour(target)
downfour_leftfour(target)
sleep(5)
sleep(2.5)
upfour_leftthree(target)
upthree_rightfour(target)
downfour_rightthree(target)
downthree_leftfour(target)
sleep(5)
sleep(2.5)
upfour_lefttwo(target)
uptwo_rightfour(target)
downfour_righttwo(target)
downtwo_leftfour(target)
sleep(5)
sleep(2.5)
upfour_leftone(target)
upone_rightfour(target)
downfour_rightone(target)
downone_leftfour(target)
sleep(5)
sleep(2.5)
upfour(target)
rightfour(target)
downfour(target)
leftfour(target)
sleep(5)
sleep(2.5)
upfour_rightone(target)
downone_rightfour(target)
downfour_leftone(target)
upone_leftfour(target)
sleep(5)
sleep(2.5)
upfour_righttwo(target)
downtwo_rightfour(target)
downfour_lefttwo(target)
uptwo_leftfour(target)
sleep(5)
sleep(2.5)
upfour_rightthree(target)
downthree_rightfour(target)
downfour_leftthree(target)
upthree_leftfour(target)
sleep(5)
sleep(2.5)
upfour_rightfour(target)
downfour_rightfour(target)
downfour_leftfour(target)
upfour_leftfour(target)
sleep(5) //Now we reverse
sleep(2.5) //Now we reverse
upfour_rightthree(target)
downthree_rightfour(target)
downfour_leftthree(target)
upthree_leftfour(target)
sleep(5)
sleep(2.5)
upfour_righttwo(target)
downtwo_rightfour(target)
downfour_lefttwo(target)
uptwo_leftfour(target)
sleep(5)
sleep(2.5)
upfour_rightone(target)
downone_rightfour(target)
downfour_leftone(target)
upone_leftfour(target)
sleep(5)
sleep(2.5)
upfour(target)
rightfour(target)
downfour(target)
leftfour(target)
sleep(5)
sleep(2.5)
upfour_leftone(target)
upone_rightfour(target)
downfour_rightone(target)
downone_leftfour(target)
sleep(5)
sleep(2.5)
upfour_lefttwo(target)
uptwo_rightfour(target)
downfour_righttwo(target)
downtwo_leftfour(target)
sleep(5)
sleep(2.5)
upfour_leftthree(target)
upthree_rightfour(target)
downfour_rightthree(target)
downthree_leftfour(target)
sleep(5)
sleep(2.5)
upfour_leftfour(target)
upfour_rightfour(target)
downfour_rightfour(target)
downfour_leftfour(target)
attackcycle = 1
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss
name = "Tyr Guard Drone"
armor = list(melee = 40, bullet = 40, laser = 40, energy = 40, bomb = 80, bio = 100, rad = 100)
specialattackprojectile = /obj/item/projectile/energy/plasma/vepr
icon_state = "secert_boss"
hovering = TRUE
health = 1000
maxHealth = 1000
shock_resist = 1
loot_list = list(/obj/item/gun/energy/weatherbombardment = 100)
var/attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/do_special_attack(atom/A)
if(attackcycle == 1)
attackone(A)
else if(attackcycle == 2)
attacktwo(A)
else if(attackcycle == 3)
attackthree(A)
else if(attackcycle == 4)
attackfour(A)
else if(attackcycle == 5)
attackfive(A)
else if(attackcycle == 6)
attacksix(A)
else if(attackcycle == 7)
attackseven(A)
else if(attackcycle == 8)
attackeight(A)
else
if(prob(50))
attackcycle = 8
else
attackcycle = 1
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attackone(atom/target) //get behind a pillar or suffer
Beam(target, icon_state = "solar_beam", time = 2.5 SECONDS, maxdistance = INFINITY)
var/obj/item/projectile/P = new /obj/item/projectile/beam/heavylaser(get_turf(src))
sleep(30)
P.launch_projectile(target, BP_TORSO, src)
if(prob(50))
attackcycle = 2
else
attackcycle = 3
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attacktwo(atom/target) //Fires off artlillery in cross
specialattackprojectile = /obj/item/projectile/arc/fragmentation/metoerstrike
upfour(target)
downfour(target)
leftfour(target)
rightfour(target)
if(prob(50))
attackcycle = 4
else
attackcycle = 5
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attackthree(atom/target) //Fires off artlillery in an X
specialattackprojectile = /obj/item/projectile/arc/fragmentation/metoerstrike
upfour_leftfour(target)
upfour_rightfour(target)
downfour_rightfour(target)
downfour_leftfour(target)
if(prob(50))
attackcycle = 4
else
attackcycle = 5
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attackfour(atom/target)
Beam(target, icon_state = "solar_beam", time = 2.5 SECONDS, maxdistance = INFINITY)
var/obj/item/projectile/P = new /obj/item/projectile/bullet/dragon(get_turf(src))
sleep(30)
P.launch_projectile(target, BP_TORSO, src)
if(prob(50))
attackcycle = 6
else
attackcycle = 7
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attackfive(atom/target)
Beam(target, icon_state = "solar_beam", time = 2.5 SECONDS, maxdistance = INFINITY)
var/obj/item/projectile/P = new /obj/item/projectile/arc/fragmentation/metoerstrike(get_turf(src))
sleep(30)
P.launch_projectile(target, BP_TORSO, src)
if(prob(50))
attackcycle = 6
else
attackcycle = 7
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attacksix(atom/target)
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/slow
upfour(target)
downfour(target)
sleep(5)
upfour_rightone(target)
downfour_leftone(target)
sleep(5)
upfour_righttwo(target)
downfour_lefttwo(target)
sleep(5)
upfour_rightthree(target)
downfour_leftthree(target)
sleep(5)
upfour_rightfour(target)
downfour_leftfour(target)
specialattackprojectile = /obj/item/projectile/arc/fragmentation/metoerstrike
upfour_leftfour(target)
downfour_rightfour(target)
sleep(5)
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/slow
upthree_rightfour(target)
downthree_leftfour(target)
sleep(5)
uptwo_rightfour(target)
downtwo_leftfour(target)
sleep(5)
upone_rightfour(target)
downone_leftfour(target)
sleep(5)
rightfour(target)
leftfour(target)
specialattackprojectile = /obj/item/projectile/arc/fragmentation/metoerstrike
upfour(target)
downfour(target)
sleep(5)
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/slow
downone_rightfour(target)
upone_leftfour(target)
sleep(5)
downtwo_rightfour(target)
uptwo_leftfour(target)
sleep(5)
downthree_rightfour(target)
upthree_leftfour(target)
sleep(5)
downfour_rightfour(target)
upfour_leftfour(target)
specialattackprojectile = /obj/item/projectile/arc/fragmentation/metoerstrike
upfour_rightfour(target)
downfour_leftfour(target)
sleep(5)
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/slow
downfour_rightthree(target)
upfour_leftthree(target)
sleep(5)
downfour_righttwo(target)
upfour_lefttwo(target)
sleep(5)
downfour_rightone(target)
upfour_leftone(target)
sleep(5)
upfour(target)
downfour(target)
leftfour(target)
rightfour(target)
if(prob(50))
attackcycle = 8
else
attackcycle = 1
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attackseven(atom/target)
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/slow
for(var/i =1 to 3)
upfour_leftfour(target)
upfour_rightfour(target)
downfour_rightfour(target)
downfour_leftfour(target)
sleep(2.5)
upfour_leftthree(target)
upthree_rightfour(target)
downfour_rightthree(target)
downthree_leftfour(target)
sleep(2.5)
upfour_lefttwo(target)
uptwo_rightfour(target)
downfour_righttwo(target)
downtwo_leftfour(target)
sleep(2.5)
upfour_leftone(target)
upone_rightfour(target)
downfour_rightone(target)
downone_leftfour(target)
sleep(2.5)
upfour(target)
rightfour(target)
downfour(target)
leftfour(target)
sleep(2.5)
upfour_rightone(target)
downone_rightfour(target)
downfour_leftone(target)
upone_leftfour(target)
sleep(2.5)
upfour_righttwo(target)
downtwo_rightfour(target)
downfour_lefttwo(target)
uptwo_leftfour(target)
sleep(2.5)
upfour_rightthree(target)
downthree_rightfour(target)
downfour_leftthree(target)
upthree_leftfour(target)
sleep(2.5)
upfour_rightfour(target)
downfour_rightfour(target)
downfour_leftfour(target)
upfour_leftfour(target)
if(prob(50))
attackcycle = 8
else
attackcycle = 1
/mob/living/simple_mob/mechanical/mecha/eclipse/precursor_boss/proc/attackeight(atom/target) //very fast beam but low punishment
Beam(target, icon_state = "sat_beam", time = 2 SECONDS, maxdistance = INFINITY)
var/obj/item/projectile/P = new /obj/item/projectile/scatter/laser(get_turf(src))
sleep(25)
P.launch_projectile(target, BP_TORSO, src)
if(prob(50))
attackcycle = 2
else
attackcycle = 3

View File

@@ -1,7 +1,7 @@
var/datum/planet/tyr/planet_tyr = null
/datum/time/tyr
seconds_in_day = 24 HOURS
seconds_in_day = 12 HOURS
/datum/planet/tyr
name = "Tyr"
@@ -117,13 +117,13 @@ var/datum/planet/tyr/planet_tyr = null
name = "tyr"
temp_high = 323.15
temp_low = 300.15
light_modifier = 1
/datum/weather/tyr/clear
name = "clear"
transition_chances = list(
WEATHER_FIRESTART = 20,
WEATHER_CLEAR = 45,
WEATHER_SANDSTORM = 30
WEATHER_CLEAR = 50,
WEATHER_SANDSTORM = 50
)
transition_messages = list(
"The sky clears up.",
@@ -189,10 +189,9 @@ var/datum/planet/tyr/planet_tyr = null
name = "sandstorm"
icon_state = "sandstorm"
transition_chances = list(
WEATHER_FIRESTART = 15,
WEATHER_CLEAR = 55,
WEATHER_SANDSTORM = 15,
WEATHER_HEAVYSANDSTORM = 15)
WEATHER_CLEAR = 60,
WEATHER_SANDSTORM = 20,
WEATHER_HEAVYSANDSTORM = 20)
transition_messages = list(
"The sky is engulfed by sand."
)
@@ -213,7 +212,7 @@ var/datum/planet/tyr/planet_tyr = null
var/amount_blocked = H.run_armor_check(target_zone, "melee")
var/amount_soaked = H.get_armor_soak(target_zone, "melee")
var/damage = rand(1,2)
var/damage = rand(2,2)
if(amount_blocked >= 10)
continue
@@ -229,10 +228,9 @@ var/datum/planet/tyr/planet_tyr = null
name = "fierce sandstorm"
icon_state = "sandstorm"
transition_chances = list(
WEATHER_FIRESTART = 15,
WEATHER_CLEAR = 55,
WEATHER_SANDSTORM = 15,
WEATHER_HEAVYSANDSTORM = 15)
WEATHER_CLEAR = 60,
WEATHER_SANDSTORM = 20,
WEATHER_HEAVYSANDSTORM = 20)
transition_messages = list(
"The sky is engulfed by sand."
)
@@ -255,7 +253,7 @@ var/datum/planet/tyr/planet_tyr = null
var/amount_blocked = H.run_armor_check(target_zone, "melee")
var/amount_soaked = H.get_armor_soak(target_zone, "melee")
var/damage = rand(7,7)
var/damage = rand(5,5)
if(amount_blocked >= 40)
continue
@@ -289,8 +287,8 @@ var/datum/planet/tyr/planet_tyr = null
/datum/weather/tyr/blizzard
name = "blizzard"
icon_state = "snowfall_heavy_old"
temp_high = 123.15
temp_low = 100.15
temp_high = 153.15
temp_low = 130.15
transition_chances = list(
WEATHER_CLEAR = 50,
WEATHER_BLIZZARD = 50)
@@ -303,6 +301,8 @@ var/datum/planet/tyr/planet_tyr = null
icon_state = "fallout"
light_modifier = 0.7
light_color = "#CCFFCC"
temp_high = 233.15
temp_low = 200.15
transition_chances = list(
WEATHER_CLEAR = 50,
WEATHER_STORM = 50)
@@ -348,6 +348,8 @@ var/datum/planet/tyr/planet_tyr = null
/datum/weather/tyr/fog
light_modifier = 0.5
light_color = "#FF0000"
temp_high = 183.15
temp_low = 160.15
transition_chances = list(
WEATHER_CLEAR = 50,
WEATHER_FOG = 50)

View File

@@ -19,7 +19,7 @@
icon_state = "spikeenergyball"
damage = 60 //after remebering throwing things into walls deals bonus damage. Will that wall thwacking out damage this 5 bonus...yes. But shotgun likly wins most DPS tests anyway
armor_penetration = 60 //damage and AP matching makes brain happy for some reason. No real logic here, just brain saying yes, this is right
range = 7
range = 8
speed = 5
check_armour = "melee"
damage_type = BRUTE
@@ -28,8 +28,8 @@
name = "laser blast"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "shotgun_blast"
damage = 45
range = 3
damage = 50
range = 4
check_armour = "laser"
/obj/item/projectile/energy/wp_shotgun/on_hit(var/atom/movable/target, var/blocked = 0)
@@ -44,7 +44,7 @@
name = "laser blast"
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "blaster_blast"
damage = 30
damage = 40
range = 5
check_armour = "laser"
@@ -54,7 +54,7 @@
damage = 30
damage_type = BURN
check_armour = "laser"
range = 4
range = 5
eyeblur = 0 //no no no no no
hitscan = 1
hud_state = "laser"
@@ -69,11 +69,11 @@
wielded_item_state = "placeholder"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 5000 //Uses all it's charge in a single shot.
charge_cost = 2500 //Uses all it's charge in a single shot.
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
projectile_type = /obj/item/projectile/energy/spikeenergy_ball
force = 30 //functions as a melee weapon too! Ain't great, but still works.
@@ -93,11 +93,11 @@
wielded_item_state = "placeholder"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 1000 //Five shots
charge_cost = 500 //Five shots
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
projectile_type = /obj/item/projectile/energy/wp_shotgun
recoil_mode = 0
@@ -119,7 +119,7 @@
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
projectile_type = /obj/item/projectile/energy/wp_blaster
recoil_mode = 0
@@ -136,11 +136,11 @@
item_state = "crystal_blaster"
origin_tech = list(TECH_COMBAT = 6, TECH_POWER = 5, TECH_PRECURSOR = 3)
charge_cost = 250 //twenty shots
charge_cost = 250 //10 shots
battery_lock = 1 //No changing
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
projectile_type = /obj/item/projectile/beam/precursor_tyr
recoil_mode = 0
@@ -148,3 +148,48 @@
move_delay = 0
one_handed_penalty = 50
/obj/item/cell/device/weapon/recharge/alien/tyr
name = "odd cell"
icon = 'icons/obj/abductor.dmi'
icon_state = "cell"
maxcharge = 2500
charge_amount = 250 // 10%.
charge_delay = 50 // Every five seconds, bit faster than the default.
/obj/item/gun/energy/weatherbombardment
name = "prototype cannon - Weather Bombardment"
desc = "A massive weapon torn of a precursor mech."
icon = 'modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "ultima"
item_state = "ultima"
w_class = ITEMSIZE_HUGE // This thing is big.
slot_flags = SLOT_BACK
one_handed_penalty = 70
accept_cell_type = /obj/item/cell/device
cell_type = /obj/item/cell/device/weapon/recharge/alien/tyr
battery_lock = 1
recoil_mode = 0
charge_meter = 1
move_delay = 0
firemodes = list(
list(mode_name="lighting storm", burst=1, fire_delay=15, projectile_type=/obj/item/projectile/beam/chain_lightning, charge_cost = 500),
list(mode_name="acid rain", burst=5, fire_delay=15, projectile_type=/obj/item/projectile/energy/neurotoxin/toxic, charge_cost = 50),
list(mode_name="meteor shower", burst=1, fire_delay=15, projectile_type=/obj/item/projectile/arc/fragmentation/metoerstrike, charge_cost = 500),
list(mode_name="starry night", burst=5, fire_delay=15, projectile_type=/obj/item/projectile/beam/medical_cell/omni, charge_cost = 50),
)
/obj/item/projectile/arc/fragmentation/metoerstrike
name = "fragmentation shot"
icon_state = "shell"
fragment_types = list(/obj/item/projectile/energy/spikeenergy_ball/slow)
fragment_amount = 10 // Same as a grenade.
spread_range = 60
/obj/item/projectile/energy/spikeenergy_ball/slow
speed = 15
range = 20