makes tar king more bearable (#21953)

* idont care anymore

* Update jungle_status_effects.dm

* Update jungle_items.dm

* Update jungle_megafauna.dm

* Update jungle_megafauna.dm

* Update yogstation/code/modules/jungleland/jungle_items.dm

Co-authored-by: Byemoh <baiomurang@gmail.com>

* Update jungle_megafauna.dm

---------

Co-authored-by: Byemoh <baiomurang@gmail.com>
This commit is contained in:
LazennG
2024-04-29 17:40:20 -07:00
committed by GitHub
parent 29ecb8fbca
commit a18d3822f6
2 changed files with 20 additions and 30 deletions

View File

@@ -364,8 +364,8 @@
icon_state = "slime_sling_0" icon_state = "slime_sling_0"
/obj/item/clothing/head/yogs/tar_king_crown /obj/item/clothing/head/yogs/tar_king_crown
name = "Crown of the Tar King" name = "crown of the tar king"
desc = "And old and withered crown made out of bone of unknown origin, there is a vibrant pinkish crystal embedded in it, it is warm to the touch..." desc = "An old and withered crown from bones of unknown origin with a vibrant pinkish crystal embedded in the central spike. It is warm to the touch."
icon = 'yogstation/icons/obj/jungle.dmi' icon = 'yogstation/icons/obj/jungle.dmi'
icon_state = "tar_king_crown" icon_state = "tar_king_crown"
armor = list(MELEE = 80, BULLET = 40, LASER = 60, ENERGY = 50, BOMB = 80, BIO = 70, RAD = 60, FIRE = 100, ACID = 100) armor = list(MELEE = 80, BULLET = 40, LASER = 60, ENERGY = 50, BOMB = 80, BIO = 70, RAD = 60, FIRE = 100, ACID = 100)
@@ -662,7 +662,7 @@
/obj/item/gem/tarstone /obj/item/gem/tarstone
name = "primal tarstone" name = "primal tarstone"
desc = "An incredibly dense and tough chunk of ancient tar. Millions of microscopic runes subtly line the surface, and probably make this artifact worth thousands." desc = "A dense, tough chunk of ancient tar. Millions of microscopic runes subtly line the surface."
icon = 'yogstation/icons/obj/jungle.dmi' icon = 'yogstation/icons/obj/jungle.dmi'
icon_state = "targem" icon_state = "targem"
point_value = 3000 point_value = 3000

View File

@@ -3,13 +3,12 @@
#define RUNE_ATTACK "rune" #define RUNE_ATTACK "rune"
#define TAR_ATTACK "tar" #define TAR_ATTACK "tar"
#define TELEPORT_ATTACK "teleport" #define TELEPORT_ATTACK "teleport"
#define SPAWN_ATTACK "spawn"
#define DIRECTION_MATRIX list("NORTH" = 0 , "EAST" = 0, "SOUTH" = 0, "WEST" = 0, "NORTHEAST" = 0 , "SOUTHEAST" = 0 , "SOUTHWEST" = 0, "NORTHWEST" = 0) #define DIRECTION_MATRIX list("NORTH" = 0 , "EAST" = 0, "SOUTH" = 0, "WEST" = 0, "NORTHEAST" = 0 , "SOUTHEAST" = 0 , "SOUTHWEST" = 0, "NORTHWEST" = 0)
#define ATTACK_MATRIX list(SLASH_ATTACK = DIRECTION_MATRIX, RUNE_ATTACK = DIRECTION_MATRIX, IMPALE_ATTACK = DIRECTION_MATRIX) #define ATTACK_MATRIX list(SLASH_ATTACK = DIRECTION_MATRIX, RUNE_ATTACK = DIRECTION_MATRIX, IMPALE_ATTACK = DIRECTION_MATRIX)
/mob/living/simple_animal/hostile/megafauna/tar_king /mob/living/simple_animal/hostile/megafauna/tar_king
name = "king of tar" name = "King of Tar"
desc = "A hunking mass of tar resembling a human, a shining gem glows from within. It yearns for the end of its agony..." desc = "A hunking mass of tar resembling a human, a shining gem glows from within. It yearns for the end of its agony..."
health = 2000 health = 2000
maxHealth = 2000 maxHealth = 2000
@@ -20,9 +19,10 @@
mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mob_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
light_color = "#dd35d5" light_color = "#dd35d5"
a_intent = INTENT_HARM a_intent = INTENT_HARM
melee_damage_lower = 25 melee_damage_lower = 40
melee_damage_upper = 50 melee_damage_upper = 40
movement_type = GROUND movement_type = GROUND
gps_name = "Murky Signal"
ranged = TRUE ranged = TRUE
faction = list("tar", "boss") faction = list("tar", "boss")
speak_emote = list("roars") speak_emote = list("roars")
@@ -35,7 +35,7 @@
deathsound = "bodyfall" deathsound = "bodyfall"
do_footstep = TRUE do_footstep = TRUE
ranged_cooldown_time = 10 SECONDS ranged_cooldown_time = 10 SECONDS
armour_penetration = 50 armour_penetration = 40
dodge_prob = 0 dodge_prob = 0
loot = list(/obj/item/clothing/head/yogs/tar_king_crown = 1, /obj/item/gem/tarstone = 1, /obj/item/demon_core = 1) loot = list(/obj/item/clothing/head/yogs/tar_king_crown = 1, /obj/item/gem/tarstone = 1, /obj/item/demon_core = 1)
crusher_loot = list(/obj/item/crusher_trophy/jungleland/aspect_of_tar = 1,/obj/item/clothing/head/yogs/tar_king_crown = 1, /obj/item/gem/tarstone = 1, /obj/item/demon_core = 1) crusher_loot = list(/obj/item/crusher_trophy/jungleland/aspect_of_tar = 1,/obj/item/clothing/head/yogs/tar_king_crown = 1, /obj/item/gem/tarstone = 1, /obj/item/demon_core = 1)
@@ -133,8 +133,6 @@
rune_attack_chain() rune_attack_chain()
if(TELEPORT_ATTACK) if(TELEPORT_ATTACK)
teleport_attack_chain() teleport_attack_chain()
if(SPAWN_ATTACK)
spawn_attack_chain()
attack_stack -= move attack_stack -= move
Goto(target,move_to_delay,minimum_distance) Goto(target,move_to_delay,minimum_distance)
SLEEP_CHECK_DEATH(1 SECONDS) SLEEP_CHECK_DEATH(1 SECONDS)
@@ -189,7 +187,7 @@
/mob/living/simple_animal/hostile/megafauna/tar_king/proc/forge_combo() /mob/living/simple_animal/hostile/megafauna/tar_king/proc/forge_combo()
var/list/combo = list() var/list/combo = list()
var/list/possible_moves = list(SLASH_ATTACK,IMPALE_ATTACK,RUNE_ATTACK,TELEPORT_ATTACK,SPAWN_ATTACK) var/list/possible_moves = list(SLASH_ATTACK,IMPALE_ATTACK,RUNE_ATTACK,TELEPORT_ATTACK)
for(var/i = 0 ; i < 3; i++) for(var/i = 0 ; i < 3; i++)
combo += pick_n_take(possible_moves) combo += pick_n_take(possible_moves)
return combo return combo
@@ -261,7 +259,7 @@
SLEEP_CHECK_DEATH(8) SLEEP_CHECK_DEATH(8)
for(var/mob/living/carbon/C in (range(2,src) - range(1,src))) for(var/mob/living/carbon/C in (range(2,src) - range(1,src)))
var/limb_to_hit = C.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) var/limb_to_hit = C.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
C.apply_damage(45, BURN, limb_to_hit, C.run_armor_check(limb_to_hit, MAGIC, null, null, armour_penetration), wound_bonus = CANT_WOUND) C.apply_damage(25, BURN, limb_to_hit, C.run_armor_check(limb_to_hit, MAGIC, null, null, armour_penetration), wound_bonus = CANT_WOUND)
/mob/living/simple_animal/hostile/megafauna/tar_king/proc/teleport_attack_chain() /mob/living/simple_animal/hostile/megafauna/tar_king/proc/teleport_attack_chain()
new /obj/effect/tar_king/orb_in(get_turf(src),src,dir) new /obj/effect/tar_king/orb_in(get_turf(src),src,dir)
@@ -288,21 +286,6 @@
visible_message(span_colossus("Atyr!")) visible_message(span_colossus("Atyr!"))
throw_at(target,get_dist(target,src),4, spin = FALSE) throw_at(target,get_dist(target,src),4, spin = FALSE)
/mob/living/simple_animal/hostile/megafauna/tar_king/proc/spawn_attack_chain()
if(!GLOB.tar_pits.len)
return
visible_message(span_colossus("At-Karan!"))
var/list/spawnable = list(/mob/living/simple_animal/hostile/asteroid/hivelordbrood/tar)
for(var/TP in GLOB.tar_pits)
if(prob(50))
continue
var/obj/structure/tar_pit/pit = TP
var/picked = pick(spawnable)
var/mob/living/simple_animal/hostile/H = new picked(pit.loc)
H.GiveTarget(target)
H.friends = friends
H.faction = faction.Copy()
/mob/living/simple_animal/hostile/megafauna/tar_king/proc/process_orbitals() /mob/living/simple_animal/hostile/megafauna/tar_king/proc/process_orbitals()
var/orbitals_shown = 3 var/orbitals_shown = 3
switch(maxHealth - health) switch(maxHealth - health)
@@ -321,13 +304,14 @@
var/ycoord = loc.y + orbital_range * sin(orbitals[i]) var/ycoord = loc.y + orbital_range * sin(orbitals[i])
var/turf/located = locate(xcoord,ycoord,loc.z) var/turf/located = locate(xcoord,ycoord,loc.z)
var/obj/effect/better_animated_temp_visual/tar_king_chaser_impale/T = new(located, src) var/obj/effect/better_animated_temp_visual/tar_king_chaser_impale/T = new(located, src)
T.damage = 25 T.damage = 10
/mob/living/simple_animal/hostile/megafauna/tar_king/proc/sword_hit(list/turfs) /mob/living/simple_animal/hostile/megafauna/tar_king/proc/sword_hit(list/turfs)
for(var/turf/T as anything in turfs) for(var/turf/T as anything in turfs)
for(var/mob/living/carbon/C in T.contents) for(var/mob/living/carbon/C in T.contents)
var/limb_to_hit = C.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) var/limb_to_hit = C.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
C.apply_damage(35, BRUTE, limb_to_hit, C.run_armor_check(limb_to_hit, MELEE, null, null, armour_penetration), wound_bonus = CANT_WOUND) C.apply_damage(15, BRUTE, limb_to_hit, C.run_armor_check(limb_to_hit, MELEE, null, null, armour_penetration), wound_bonus = CANT_WOUND)
/mob/living/simple_animal/hostile/megafauna/tar_king/proc/stage_transition() /mob/living/simple_animal/hostile/megafauna/tar_king/proc/stage_transition()
walk(src,0) walk(src,0)
@@ -383,7 +367,7 @@
to_chat(L, span_userdanger("You're struck by a [name]!")) to_chat(L, span_userdanger("You're struck by a [name]!"))
var/limb_to_hit = L.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) var/limb_to_hit = L.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
var/armor = L.run_armor_check(limb_to_hit, MELEE, "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 50, "Your armor was penetrated by [src]!") var/armor = L.run_armor_check(limb_to_hit, MELEE, "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 50, "Your armor was penetrated by [src]!")
L.apply_damage(damage, BRUTE, limb_to_hit, armor) L.apply_damage(damage, BRUTE, limb_to_hit, armor, wound_bonus = CANT_WOUND)
if(caster) if(caster)
log_combat(caster, L, "struck with a [name]") log_combat(caster, L, "struck with a [name]")
@@ -427,6 +411,7 @@
. = pick(cardinal_copy) . = pick(cardinal_copy)
/obj/effect/temp_visual/tar_king_chaser/proc/seek_target() /obj/effect/temp_visual/tar_king_chaser/proc/seek_target()
if(!currently_seeking) if(!currently_seeking)
currently_seeking = TRUE currently_seeking = TRUE
targetturf = get_turf(target) targetturf = get_turf(target)
@@ -458,3 +443,8 @@
var/obj/effect/better_animated_temp_visual/tar_king_chaser_impale/T = new(loc, caster) var/obj/effect/better_animated_temp_visual/tar_king_chaser_impale/T = new(loc, caster)
T.damage = damage T.damage = damage
/obj/item/gps/internal/tar_king
icon_state = null
gpstag = "Murky Signal"
desc = "There's something flickering in the dark."
invisibility = 100