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

Burrowing Heaven #1160

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
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
Binary file modified ModularTegustation/Teguicons/96x96.dmi
Binary file not shown.
9 changes: 9 additions & 0 deletions code/datums/abnormality/_ego_datum/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,15 @@
item_path = /obj/item/ego_weapon/rimeshank
cost = 50

//Burrowing Heaven - Heaven
/datum/ego_datum/armor/heaven
item_path = /obj/item/clothing/suit/armor/ego_gear/waw/heaven
cost = 50

/datum/ego_datum/weapon/heaven
item_path = /obj/item/ego_weapon/heaven
cost = 50

// Parasite Tree - Hypocrisy
/datum/ego_datum/armor/hypocrisy
item_path = /obj/item/clothing/suit/armor/ego_gear/waw/hypocrisy
Expand Down
18 changes: 18 additions & 0 deletions code/modules/clothing/suits/ego_gear/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,24 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
FORTITUDE_ATTRIBUTE = 80
)

/obj/item/clothing/suit/armor/ego_gear/waw/heaven
name = "burrowing heaven"
desc = "As it spreads its wings for an old god, a heaven just for you burrows its way."
icon_state = "heaven"
armor = list(RED_DAMAGE = 30, WHITE_DAMAGE = 40, BLACK_DAMAGE = 40, PALE_DAMAGE = 30) // 140
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

holy shit WAW magic bullet

attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80
)

/obj/item/clothing/suit/armor/ego_gear/waw/faith
name = "untainted faith"
desc = "To have absolute faith on something that gives you salvation."
icon_state = "faith"
armor = list(RED_DAMAGE = -10, WHITE_DAMAGE = 50, BLACK_DAMAGE = 70, PALE_DAMAGE = 30) //140
attribute_requirements = list(
PRUDENCE_ATTRIBUTE = 80
)

/obj/item/clothing/suit/armor/ego_gear/waw/innocence
name = "childhood memories"
desc = "In my dreams as child, Peter Pan would reach out a hand for me to hold and take me to Neverland. I had forgotten all of that, until I went into that room."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
/mob/living/simple_animal/hostile/abnormality/burrowingheaven
name = "Burrowing Heaven"
desc = "A giant, bloody red tree."
icon = 'ModularTegustation/Teguicons/96x96.dmi'
icon_state = "burrowingheaven_contained"
icon_living = "burrowingheaven_contained"
pixel_x = -32
base_pixel_x = -32
del_on_death = TRUE
maxHealth = 600 //It normally just counters
health = 600
move_to_delay = 0
damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 0.5, PALE_DAMAGE = 1.5)
stat_attack = HARD_CRIT
melee_damage_lower = 99
melee_damage_upper = 97
Comment on lines +15 to +16
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

th... these are backwards???

melee_damage_type = BLACK_DAMAGE
attack_verb_continuous = "stabs"
attack_verb_simple = "stabs"
faction = list("hostile")
can_breach = TRUE
threat_level = WAW_LEVEL
start_qliphoth = 4
wander = 0
work_chances = list(
ABNORMALITY_WORK_INSTINCT = 0,
ABNORMALITY_WORK_INSIGHT = list(30, 40, 40, 50, 50),
ABNORMALITY_WORK_ATTACHMENT = list(40, 40, 40, 30, 20),
ABNORMALITY_WORK_REPRESSION = list(40, 45, 50, 55, 60)
)
work_damage_amount = 10
work_damage_type = BLACK_DAMAGE

ego_list = list(
/datum/ego_datum/weapon/heaven,
/datum/ego_datum/armor/heaven
)
// gift_type = /datum/ego_gifts/heaven

var/seen //Are you being looked at right now?
var/solo_punish //Are you alone?
var/abno_seen //Is an abnormality in view?
abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY

//Sight Check
/mob/living/simple_animal/hostile/abnormality/burrowingheaven/Life()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming you used code from the animated wizard statues, so is there a reason you added the sight check to Life() rather than calling a proc when needed? This applies to Schaden code too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Schad it's used for movement, was also used for movement on BH too.

. = ..()
solo_punish = FALSE
for(var/mob/living/carbon/human/H in GLOB.player_list)
if(H.stat != DEAD) //Someone else is alive, just not on the Z level. Probably a manager. Thus, someone else COULD see this thing
solo_punish = TRUE

//Who is watching us
var/people_watching
for(var/mob/living/carbon/human/L in viewers(world.view + 1, src))
if(L.client && CanAttack(L) && L.stat != DEAD)
if(!L.is_blind())
people_watching += 1


//Only gets mad if you are NOT alone.
if(people_watching > 1)
seen = TRUE
else
seen = FALSE

//Checking for abnos.
abno_seen = FALSE
for(var/mob/living/simple_animal/hostile/abnormality/B in view(10))
abno_seen = TRUE
break


//Stuff that needs sight check
/mob/living/simple_animal/hostile/abnormality/burrowingheaven/Move()
return FALSE

/mob/living/simple_animal/hostile/abnormality/burrowingheaven/AttackingTarget()
return FALSE



//Counter
//Ranged stuff
/mob/living/simple_animal/hostile/abnormality/burrowingheaven/bullet_act(obj/projectile/Proj)
..()
var/mob/living/carbon/human/H = Proj.firer
if(abno_seen)
Punishment(H)


/mob/living/simple_animal/hostile/abnormality/burrowingheaven/attacked_by(obj/item/I, mob/living/user)
..()
if(!user)
return
if(abno_seen)
Punishment(user)

/mob/living/simple_animal/hostile/abnormality/burrowingheaven/proc/Punishment(mob/living/sinner)
to_chat(sinner, span_userdanger("Burrowing Heaven sears into your skull!"))
sinner.apply_damage(30, BLACK_DAMAGE, null, sinner.run_armor_check(null, BLACK_DAMAGE), spread_damage = TRUE)
new /obj/effect/temp_visual/dir_setting/bloodsplatter(get_turf(sinner), pick(GLOB.alldirs))

//Chufflin around
/mob/living/simple_animal/hostile/abnormality/burrowingheaven/BreachEffect(mob/living/carbon/human/user, breach_type)
. = ..()
teleport()

/mob/living/simple_animal/hostile/abnormality/burrowingheaven/proc/teleport()
var/turf/T = pick(GLOB.department_centers)
forceMove(T)
addtimer(CALLBACK(src, .PROC_REF(aoe), 2 SECONDS))

//The actual attack
/mob/living/simple_animal/hostile/abnormality/burrowingheaven/proc/aoe()
for(var/mob/living/carbon/human/H in view(7))
to_chat(H, span_userdanger("Burrowing Heaven burns into your skull!"))
H.apply_damage(70, BLACK_DAMAGE, null, H.run_armor_check(null, BLACK_DAMAGE), spread_damage = TRUE)
new /obj/effect/temp_visual/dir_setting/bloodsplatter(get_turf(H), pick(GLOB.alldirs))
addtimer(CALLBACK(src, PROC_REF(teleport), 50 SECONDS))

//Work stuff
//Need 2 people to actually work on it
/mob/living/simple_animal/hostile/abnormality/burrowingheaven/ChanceWorktickOverride(mob/living/carbon/human/user, work_chance, init_work_chance, work_type)
if(!seen) //If you're only considered "seen" because the other living player(s) are all on another Z level, disregard it during work specifically.
to_chat(user, "<span class='warning'>You are injured by [src]!</span>") // Keeping it clear that the bad work is from being seen and not just luck.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could use some flavor text to make it more obvious Burrowing's gimmick is active.

new /obj/effect/temp_visual/dir_setting/bloodsplatter(get_turf(user), pick(GLOB.alldirs))
datum_reference.qliphoth_change(-1)
return 0
return init_work_chance

/mob/living/simple_animal/hostile/abnormality/burrowingheaven/BreachEffect(mob/living/carbon/human/user)
..()
icon_living = "burrowingheaven_breach"
icon_state = icon_living
GiveTarget(user)
10 changes: 9 additions & 1 deletion code/modules/paperwork/records/info/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,6 @@
"NOTICE: Employees preforming repression work to destroy D-04-108's flowers prevented the transformation of employees who were transforming into D-04-108-1.") //yes i did put this hint in twice.

//Dream of Black Swan
//Parasite Tree
/obj/item/paper/fluff/info/waw/black_swan
abno_type = /mob/living/simple_animal/hostile/abnormality/black_swan
abno_code = "F-02-70"
Expand Down Expand Up @@ -569,3 +568,12 @@
)
abno_breach_damage_type = "Pale"
abno_breach_damage_count = "Very High"

//Burrowing Heaven
/obj/item/paper/fluff/info/waw/heaven
abno_type = /mob/living/simple_animal/hostile/abnormality/burrowingheaven
abno_code = "O-04-72"
abno_info = list(
"Work with The Burrowing Heaven must proceed while the Containment Unit is viewable by more than two people.",
"Commencing work while in the view of only one person will cause The Burrowing Heaven's counter to decrease.",
"Burrowing Heaven must be attacked with another abnormality in sight.",)
1 change: 1 addition & 0 deletions lobotomy-corp13.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2905,6 +2905,7 @@
#include "code\modules\mob\living\simple_animal\abnormality\waw\big_bird.dm"
#include "code\modules\mob\living\simple_animal\abnormality\waw\big_wolf.dm"
#include "code\modules\mob\living\simple_animal\abnormality\waw\black_swan.dm"
#include "code\modules\mob\living\simple_animal\abnormality\waw\burrowing_heaven.dm"
#include "code\modules\mob\living\simple_animal\abnormality\waw\caterpillar.dm"
#include "code\modules\mob\living\simple_animal\abnormality\waw\clouded_monk.dm"
#include "code\modules\mob\living\simple_animal\abnormality\waw\clown_smiling.dm"
Expand Down
Loading