Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Makes QoH Compatible for LCL (And Some Bugfixes+Balancing) #2110

Merged
merged 4 commits into from
May 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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")
Loading