Skip to content

Commit

Permalink
Makes QoH Compatible for LCL (And Some Bugfixes+Balancing) (#2110)
Browse files Browse the repository at this point in the history
* Adds QoH to LCL

* Balancing and KoD Bugfix

* Added in a line I forgot to add
  • Loading branch information
tile4 authored May 10, 2024
1 parent a03f647 commit b8689de
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 18 deletions.
12 changes: 12 additions & 0 deletions ModularTegustation/tegu_items/limbus_labs/!abno_overwrites.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,15 @@
ChangeResistances(0.7, 0.6, 0.8, 1)
melee_damage_lower = 35
melee_damage_upper = 47

/mob/living/simple_animal/hostile/abnormality/hatred_queen/Initialize()
..()
if(SSmaptype.maptype == "limbus_labs")
beam_damage = 4
beats_damage = 80
faction = list("neutral")

/mob/living/simple_animal/hostile/abnormality/steam/Initialize()
..()
if(SSmaptype.maptype == "limbus_labs")
ChangeResistances(1, 1, 2, 1.5)
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@
/mob/living/simple_animal/hostile/abnormality/Login()
. = ..()
if(SSmaptype.maptype == "limbus_labs")
faction = list("hostile")
if(client == /mob/living/simple_animal/hostile/abnormality/hatred_queen)
return
else
faction = list("hostile")


/mob/living/simple_animal/hostile/abnormality/Logout()
. = ..()
Expand Down
8 changes: 5 additions & 3 deletions ModularTegustation/tegu_items/limbus_labs/spawners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,20 @@ GLOBAL_LIST_INIT(low_security, list(
/mob/living/simple_animal/hostile/abnormality/eris,
/mob/living/simple_animal/hostile/abnormality/schadenfreude,
/mob/living/simple_animal/hostile/abnormality/galaxy_child,
/mob/living/simple_animal/hostile/abnormality/woodsman
/mob/living/simple_animal/hostile/abnormality/woodsman,
/mob/living/simple_animal/hostile/abnormality/steam

))

GLOBAL_LIST_INIT(high_security, list(
/mob/living/simple_animal/hostile/abnormality/clouded_monk,
/mob/living/simple_animal/hostile/abnormality/clown,
/mob/living/simple_animal/hostile/abnormality/nothing_there,
/mob/living/simple_animal/hostile/abnormality/steam,
/mob/living/simple_animal/hostile/abnormality/mountain,
/mob/living/simple_animal/hostile/abnormality/despair_knight,
/mob/living/simple_animal/hostile/abnormality/red_hood,
/mob/living/simple_animal/hostile/abnormality/general_b
/mob/living/simple_animal/hostile/abnormality/general_b,
/mob/living/simple_animal/hostile/abnormality/hatred_queen

))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,29 @@

/mob/living/simple_animal/hostile/abnormality/steam/proc/UpdateStats()
src.set_light(3, (gear * 2), "D4FAF37")
ChangeResistances(list(
RED_DAMAGE = (0.5 - (gear * 0.1)),
WHITE_DAMAGE = (1 - (gear * 0.1)),
BLACK_DAMAGE = (2 - (gear * 0.1)),
PALE_DAMAGE = (1.5 - (gear * 0.1)),
))
if(SSmaptype.maptype == "limbus_labs")
ChangeResistances(list(
RED_DAMAGE = (1 - (gear * 0.1)),
WHITE_DAMAGE = (1 - (gear * 0.1)),
BLACK_DAMAGE = (2 - (gear * 0.1)),
PALE_DAMAGE = (1.5 - (gear * 0.1)),
))
melee_damage_lower = (20 + (4 * gear))
melee_damage_upper = (35 + (4 * gear))
steam_damage = (5 + (1.5 * gear))
else
ChangeResistances(list(
RED_DAMAGE = (0.5 - (gear * 0.1)),
WHITE_DAMAGE = (1 - (gear * 0.1)),
BLACK_DAMAGE = (2 - (gear * 0.1)),
PALE_DAMAGE = (1.5 - (gear * 0.1)),
))
melee_damage_lower = (20 + (10 * gear))
melee_damage_upper = (35 + (10 * gear))
steam_damage = (5 + (3 * gear))
var/oldhealth = maxHealth
maxHealth = (1600 + (400 * gear))
adjustBruteLoss(oldhealth - maxHealth) //Heals 400 health in a gear shift if it's already breached
melee_damage_lower = (20 + (10 * gear))
melee_damage_upper = (35 + (10 * gear))
steam_damage = (5 + (3 * gear))
work_damage_amount = (9 + (2 * gear))
ranged_cooldown_time = (40 - (5 * gear))
start_qliphoth = (max(1,(4 - gear)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,17 @@

/datum/action/innate/change_icon_kod
name = "Toggle Icon"
desc = "Toggle your icon between breached and contained. (Works only for Limbus Company Labratories)"
desc = "Toggle your icon between breached and friendly. (Works only for Limbus Company Labratories)"

/datum/action/innate/change_icon_kod/Activate()
. = ..()
if(SSmaptype.maptype == "limbus_labs")
owner.icon = 'ModularTegustation/Teguicons/48x48.dmi'
owner.icon_state = "despair"
owner.icon_state = "despair_friendly"
active = 1

/datum/action/innate/change_icon_kod/Deactivate()
. = ..()
if(SSmaptype.maptype == "limbus_labs")
owner.icon = 'ModularTegustation/Teguicons/64x64.dmi'
owner.icon_state = "despair_breach"
active = 0

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#define HATRED_COOLDOWN (15 SECONDS)
/mob/living/simple_animal/hostile/abnormality/hatred_queen
name = "Queen of Hatred"
desc = "An abnormality resembling pale-skinned girl in a rather bizzare outfit. \
Expand Down Expand Up @@ -87,14 +88,63 @@
//Nihil Related
var/nihil_present = FALSE


var/hysteric_ability = 0
var/hatred_cooldown
var/hatred_cooldown_time = 15 SECONDS


//PLAYABLES ATTACKS
attack_action_types = list(
/datum/action/innate/abnormality_attack/qoh_beam,
/datum/action/innate/abnormality_attack/qoh_beats,
/datum/action/innate/abnormality_attack/qoh_teleport,
/datum/action/innate/abnormality_attack/qoh_normal,
/datum/action/cooldown/toggle_hysteria,
)


/datum/action/cooldown/toggle_hysteria
name = "Toggle Hysteria"
desc = "Toggle your Hysteria with your other forms. (Works only for Limbus Company Labratories)"
check_flags = AB_CHECK_CONSCIOUS
transparent_when_unavailable = TRUE
cooldown_time = HATRED_COOLDOWN


/datum/action/cooldown/toggle_hysteria/Trigger()
if(!..())
return FALSE
if(!istype(owner, /mob/living/simple_animal/hostile/abnormality/hatred_queen))
return FALSE
if(!SSmaptype.maptype == "limbus_labs")
return FALSE
var/mob/living/simple_animal/hostile/abnormality/hatred_queen/hatred_queen = owner
StartCooldown()
hatred_queen.hysteria_change()

/mob/living/simple_animal/hostile/abnormality/hatred_queen/proc/hysteria_change()
if(hysteric_ability == 0)
icon = 'ModularTegustation/Teguicons/32x48.dmi'
icon_state = "hatred_psycho"
threat_level = TETH_LEVEL
faction = "netrual"
hysteric_ability = 1
return
if(hysteric_ability == 1)
var/hysteria_choice = alert(src, "Do you want to change into your friendly or hostile form?", "Choose Form", "Friendly", "Hostile")
if(hysteria_choice == "Friendly")
icon = 'ModularTegustation/Teguicons/32x48.dmi'
icon_state = "hatred"
friendly = TRUE
threat_level = TETH_LEVEL
faction = "neutral"
if(hysteria_choice == "Hostile")
addtimer(CALLBACK(src, PROC_REF(HostileTransform)), 10 SECONDS)
hysteric_ability = 0
return


/datum/action/innate/abnormality_attack/qoh_beam
name = "Arcana Slave"
button_icon_state = "qoh_beam"
Expand Down Expand Up @@ -239,7 +289,7 @@
return FALSE
death_counter += 1
//if BREACHED, check if death_counter over the death limit
if(!IsContained() && breach_max_death && (death_counter >= breach_max_death))
if(!IsContained() && breach_max_death && (death_counter >= breach_max_death) && !SSmaptype.maptype == "limbus_labs")
GoHysteric()
//if CONTAINED and lots of death before qliphoth triggers (TEMP)
if(IsContained() && (death_counter > 3)) // Omagah a lot of dead people!
Expand Down Expand Up @@ -377,6 +427,12 @@
beamloop.start()
var/beam_stage = 1
var/beam_damage_final = beam_damage
if(SSmaptype.maptype == "limbus_labs")
for(var/turf/TF in hit_line) //checks if that line has anything in the way, resets TT as the new beam end location
if(TF.density)
TT = TF
break
hit_line = getline(my_turf, TT) //old hit_line is discarded with hit_line which respects walls
if(friendly)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, say), "ARCANA SLAVE!"))
else
Expand Down Expand Up @@ -444,6 +500,8 @@
TryTeleport(TRUE)

/mob/living/simple_animal/hostile/abnormality/hatred_queen/proc/TryTeleport(forced = FALSE)
if(SSmaptype.maptype == "limbus_labs")
return FALSE
if(!forced)
if(teleport_cooldown > world.time)
return FALSE
Expand Down Expand Up @@ -698,3 +756,13 @@
death()
return FALSE
return ..()


//LCL stuff
/mob/living/simple_animal/hostile/abnormality/hatred_queen/Login()
. = ..()
if(SSmaptype.maptype == "limbus_labs")
if(friendly == FALSE)
faction = list("hatredqueen")
else
faction = list("neutral")

0 comments on commit b8689de

Please sign in to comment.