Skip to content

Commit

Permalink
Adds distorted form (#1435)
Browse files Browse the repository at this point in the history
adds some basic features

new 1% sprite dropped

text update

Finished work mechanics

adds basic breaching

should fix linters a bit

It works!!!! Kinda...

adds crumbling armor and hammer of light (beta)

adds cool and important stuff

does a thing

adds apostle and tutorial abnorms

adds the stuff

might fix linters

adds a console proc

adds crumbling armor's proper attack and red queen

does some things

should fix linters

adds a blubbering toad transformation

adds more attacks

brings the tier up

adds big boy attacks

updates some sfx, fixes bugs

adds jump attacks

why does linters care about indentation on comments?

adds suggested changes

should fix some stuff

adds info

adjusts damage numbers

updates an effects and fixes transformations

updates blacklist

lowers stack damage

lowers max qlip to 3

adds bloodbath

adds a new AOE attack

adds halberd apostle

blacklists DF from pink midnight

fixes weirdness

requested changes and sound design improvement

removes armortype

removes armortype for real

damage coeff update

makes suggested changes

updates comments

adds procs

adds stuff
  • Loading branch information
Coxswain-Navigator authored Nov 8, 2023
1 parent e2bf57d commit 294f764
Show file tree
Hide file tree
Showing 33 changed files with 1,844 additions and 22 deletions.
Binary file modified ModularTegustation/Teguicons/128x128.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/48x64.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/64x64.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/64x96.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1055,6 +1055,7 @@
#define COMSIG_WORK_COMPLETED "work_completed" // Work Complete
#define COMSIG_GLOB_WORK_COMPLETED "!work_completed" // Ditto
#define COMSIG_MELTDOWN_FINISHED "meltdown_finished"
#define COMSIG_GLOB_MELTDOWN_FINISHED "!meltdown_finished"

// General Abnormality Signals

Expand Down
1 change: 1 addition & 0 deletions code/controllers/subsystem/lobotomy_corp.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#define MELTDOWN_GOLD 3
#define MELTDOWN_PURPLE 4
#define MELTDOWN_CYAN 5
#define MELTDOWN_BLACK 6

// TODO: Do something about it, idk
SUBSYSTEM_DEF(lobotomy_corp)
Expand Down
6 changes: 3 additions & 3 deletions code/datums/abnormality/_ego_datum/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -123,11 +123,11 @@
// Distorted Form - Distortion
/datum/ego_datum/armor/distortion
item_path = /obj/item/clothing/suit/armor/ego_gear/aleph/distortion
cost = 100
cost = 200

/datum/ego_datum/weapon/distortion
/datum/ego_datum/weapon/distortion // not able to be extracted
item_path = /obj/item/ego_weapon/shield/distortion
cost = 100
cost = 300

// Dongrang Personal E.G.O - Farmwatch
/datum/ego_datum/weapon/farmwatch
Expand Down
10 changes: 10 additions & 0 deletions code/datums/abnormality/datum/abnormality.dm
Original file line number Diff line number Diff line change
Expand Up @@ -258,3 +258,13 @@
SSlobotomy_corp.work_stats[user_name]["pe"] += pe
if(attribute_type != "N/A" && attribute_given)
SSlobotomy_corp.work_stats[user_name]["gain"][attribute_type] += attribute_given

/datum/abnormality/proc/GetName()
if(current)
return current.GetName()
return name

/datum/abnormality/proc/GetRiskLevel()
if(current)
return current.GetRiskLevel()
return threat_level
6 changes: 6 additions & 0 deletions code/datums/looping_sounds/abnormalities.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,12 @@
volume = 15
extra_range = -4

/datum/looping_sound/distortedform
mid_sounds = 'sound/abnormalities/distortedform/DF_soundloop.ogg'
mid_length = 15 SECONDS
volume = 75
extra_range = -4

// Ordeals
/datum/looping_sound/amberdusk
mid_sounds = 'sound/effects/ordeals/amber/dusk_ambience.ogg'
Expand Down
10 changes: 7 additions & 3 deletions code/game/machinery/computer/abnormality_work.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
. = ..()
if(!datum_reference)
return
. += "<span class='info'>This console is connected to [datum_reference.name]'s containment unit.</span>"
var/threat_level = "<span style='color: [THREAT_TO_COLOR[datum_reference.threat_level]]'>[THREAT_TO_NAME[datum_reference.threat_level]]</span>"
. += "<span class='info'>This console is connected to [datum_reference.GetName()]'s containment unit.</span>"
var/threat_level = "<span style='color: [THREAT_TO_COLOR[datum_reference.GetRiskLevel()]]'>[THREAT_TO_NAME[datum_reference.GetRiskLevel()]]</span>"
. += "<span class='info'>Risk Level:</span> [threat_level]<span class='info'>.</span>" // Professionals have standards
if(datum_reference.qliphoth_meter_max > 0)
. += "<span class='info'>Current Qliphoth Counter: [datum_reference.qliphoth_meter].</span>"
Expand All @@ -58,6 +58,8 @@
melt_text = " of Waves. Upon clearing the meltdown the dark waves will disappear"
if(MELTDOWN_CYAN)
melt_text = " of Pillars. Success rates reduced by 20%. Failing to clear it will cause Arbiter to perform their deadly attack"
if(MELTDOWN_BLACK)
melt_text = " of Lunacy. Failure to clear the meltdown will cause another abnormality to breach"
. += "<span class='warning'>The containment unit is currently affected by a Qliphoth Meltdown[melt_text]. Time left: [meltdown_time].</span>"

/obj/machinery/computer/abnormality/ui_interact(mob/user)
Expand All @@ -68,7 +70,7 @@
to_chat(user, "<span class='boldannounce'>The console has no information stored!</span>")
return
var/dat
dat += "<b><span style='color: [THREAT_TO_COLOR[datum_reference.threat_level]]'>\[[THREAT_TO_NAME[datum_reference.threat_level]]\]</span> [datum_reference.name]</b><br>"
dat += "<b><span style='color: [THREAT_TO_COLOR[datum_reference.GetRiskLevel()]]'>\[[THREAT_TO_NAME[datum_reference.GetRiskLevel()]]\]</span> [datum_reference.GetName()]</b><br>"
if(datum_reference.overload_chance[user.ckey])
dat += "<span style='color: [COLOR_VERY_SOFT_YELLOW]'>Personal Work Success Rates are modified by [datum_reference.overload_chance[user.ckey]]%.</span><br>"
if(datum_reference.overload_chance_limit < 0 && datum_reference.overload_chance[user.ckey] <= datum_reference.overload_chance_limit) // How the fuck did you hit the limit..?
Expand Down Expand Up @@ -163,6 +165,7 @@
meltdown = FALSE // Reset meltdown
if(was_melting)
SEND_SIGNAL(src, COMSIG_MELTDOWN_FINISHED, datum_reference, TRUE)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MELTDOWN_FINISHED, datum_reference, TRUE)
update_icon()
datum_reference.working = TRUE
var/work_chance = datum_reference.get_work_chance(work_type, user)
Expand Down Expand Up @@ -286,6 +289,7 @@
update_icon()
datum_reference.qliphoth_change(-999)
SEND_SIGNAL(src, COMSIG_MELTDOWN_FINISHED, datum_reference, FALSE)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MELTDOWN_FINISHED, datum_reference, FALSE)
return TRUE

// Scrambles work types for this specific console
Expand Down
5 changes: 5 additions & 0 deletions code/game/objects/effects/temporary_visuals/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1020,3 +1020,8 @@
name = "heavenly blessing"
icon_state = "onesin_blessing"
duration = 12

/obj/effect/temp_visual/distortedform_shift
name = "shift"
icon_state = "shift"
duration = 3
22 changes: 15 additions & 7 deletions code/game/objects/items/ego_weapons/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -718,8 +718,8 @@
desc = "The fragile human mind is fated to twist and distort."
special = "This weapon requires two hands to use and always blocks ranged attacks."
icon_state = "distortion"
force = 180 //Just make sure you don't hit anyone!
attack_speed = 3
force = 35 //Twilight but lower in terms of damage
attack_speed = 1.8
damtype = RED_DAMAGE
attack_verb_continuous = list("pulverizes", "bashes", "slams", "blockades")
attack_verb_simple = list("pulverize", "bash", "slam", "blockade")
Expand All @@ -731,21 +731,29 @@
block_sound = 'sound/weapons/ego/heavy_guard.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 100,
PRUDENCE_ATTRIBUTE = 80,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 80
PRUDENCE_ATTRIBUTE = 100,
TEMPERANCE_ATTRIBUTE = 100,
JUSTICE_ATTRIBUTE = 100
)

attacking = TRUE //ALWAYS blocking ranged attacks


/obj/item/ego_weapon/shield/distortion/EgoAttackInfo(mob/user)
return "<span class='notice'>It deals [force * 4] red, white, black and pale damage combined.</span>"

/obj/item/ego_weapon/shield/distortion/attack(mob/living/target, mob/living/user)
. = ..()
if(!.)
return FALSE
for(var/damage_type in list(WHITE_DAMAGE, BLACK_DAMAGE, PALE_DAMAGE))
damtype = damage_type
target.attacked_by(src, user)
damtype = initial(damtype)
var/atom/throw_target = get_edge_target_turf(target, user.dir)
if(!target.anchored)
var/whack_speed = (prob(60) ? 4 : 8)
target.throw_at(throw_target, rand(3, 4), whack_speed, user)
var/whack_speed = (prob(60) ? 3 : 6)
target.throw_at(throw_target, rand(2, 3), whack_speed, user)

/obj/item/ego_weapon/shield/distortion/CanUseEgo(mob/living/user)
. = ..()
Expand Down
8 changes: 4 additions & 4 deletions code/modules/clothing/suits/ego_gear/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -364,12 +364,12 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
name = "distortion"
desc = "To my eyes, I’m the only one who doesn’t appear distorted. In a world full of distorted people, could the one person who remains unchanged be the \"distorted\" one?"
icon_state = "distortion"
armor = list(RED_DAMAGE = 70, WHITE_DAMAGE = 70, BLACK_DAMAGE = 70, PALE_DAMAGE = 30) // 240
armor = list(RED_DAMAGE = 80, WHITE_DAMAGE = 70, BLACK_DAMAGE = 80, PALE_DAMAGE = 50) // 280
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 100,
PRUDENCE_ATTRIBUTE = 80,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 80
PRUDENCE_ATTRIBUTE = 100,
TEMPERANCE_ATTRIBUTE = 100,
JUSTICE_ATTRIBUTE = 100
)

/obj/item/clothing/suit/armor/ego_gear/aleph/willing
Expand Down
24 changes: 24 additions & 0 deletions code/modules/mob/living/carbon/human/ego_gifts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1285,3 +1285,27 @@
/datum/ego_gifts/blessing/Remove(mob/living/carbon/human/user)
user.physiology.pale_mod /= 0.8
.=..()

/datum/ego_gifts/fervor
name = "Fervor"
desc = "Provides the user with 5% resistance to all damage types."
icon_state = "fervor"
fortitude_bonus = 4
prudence_bonus = 4
temperance_bonus = 4
justice_bonus = 4
slot = SPECIAL

/datum/ego_gifts/fervor/Initialize(mob/living/carbon/human/user) // Lowered Stats but grants resistance
.=..()
user.physiology.red_mod *= 0.95
user.physiology.white_mod *= 0.95
user.physiology.black_mod *= 0.95
user.physiology.pale_mod *= 0.95

/datum/ego_gifts/fervor/Remove(mob/living/carbon/human/user)
user.physiology.red_mod /= 0.95
user.physiology.white_mod /= 0.95
user.physiology.black_mod /= 0.95
user.physiology.pale_mod /= 0.95
.=..()
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,12 @@
return TRUE
return FALSE

/mob/living/simple_animal/hostile/abnormality/proc/GetName()
return name

/mob/living/simple_animal/hostile/abnormality/proc/GetRiskLevel()
return threat_level

// Actions
/datum/action/innate/abnormality_attack
name = "Abnormality Attack"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

var/list/exceptions = list( //It only affects abnormalities and ordeals, so claw and arbiter are not even included.
/mob/living/simple_animal/hostile/abnormality/white_night,
/mob/living/simple_animal/hostile/abnormality/distortedform,
/mob/living/simple_animal/hostile/abnormality/nihil
)

Expand Down
Loading

0 comments on commit 294f764

Please sign in to comment.