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

Adds our last two Wonderlab Abnormalities #2519

Merged
merged 1 commit into from
Nov 19, 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
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/32x64.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.
12 changes: 12 additions & 0 deletions ModularTegustation/ego_weapons/melee/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -586,3 +586,15 @@
attack_verb_continuous = list("smashes", "bludgeons", "crushes")
attack_verb_simple = list("smash", "bludgeon", "crush")
hitsound = 'sound/weapons/fixer/generic/club3.ogg'

/obj/item/ego_weapon/rapunzel
name = "rapunzel"
desc = "Scissors long since lost to time. Packs a punch while being unwieldy."
icon_state = "rapunzel"
force = 32
stuntime = 5 //Mucho damage, bit more stun
damtype = BLACK_DAMAGE
attack_verb_continuous = list("pokes", "jabs", "tears", "lacerates", "gores")
attack_verb_simple = list("poke", "jab", "tear", "lacerate", "gore")
hitsound = 'sound/weapons/fixer/generic/knife2.ogg'

22 changes: 22 additions & 0 deletions ModularTegustation/ego_weapons/ranged/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -307,3 +307,25 @@

shotsleft = 6 //Based off a colt Single Action Navy
reloadtime = 0.8 SECONDS


/obj/item/ego_weapon/ranged/havana
name = "havana"
desc = "Within it's simple design lies a lot of struggle"
icon_state = "havana"
inhand_icon_state = "havana"
force = 20
damtype = PALE_DAMAGE
projectile_path = /obj/projectile/ego_bullet/ego_hookah
weapon_weight = WEAPON_HEAVY
spread = 20
fire_sound = 'sound/effects/smoke.ogg'
autofire = 0.04 SECONDS
fire_sound_volume = 5
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 80,
PRUDENCE_ATTRIBUTE = 80,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 100
)
shotsleft = 200
8 changes: 8 additions & 0 deletions ModularTegustation/ego_weapons/ranged/ego_bullets/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,11 @@
name = "arcadia"
damage = 140 // VERY high damage
damage_type = RED_DAMAGE

/obj/projectile/ego_bullet/ego_hookah
name = "havana"
icon_state = "smoke"
damage = 6
damage_type = PALE_DAMAGE
speed = 2
range = 6
8 changes: 0 additions & 8 deletions ModularTegustation/ego_weapons/ranged/ego_bullets/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -312,14 +312,6 @@
var/mob/living/L = target
L.apply_status_effect(/datum/status_effect/wrath_burning)

/obj/projectile/ego_bullet/ego_hookah
name = "lethargy"
icon_state = "smoke"
damage = 2
damage_type = PALE_DAMAGE
speed = 2
range = 6

/obj/projectile/ego_bullet/ego_innocence
name = "innocence"
icon_state = "energy"
Expand Down
19 changes: 0 additions & 19 deletions ModularTegustation/ego_weapons/ranged/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -593,25 +593,6 @@
FORTITUDE_ATTRIBUTE = 80
)

/obj/item/ego_weapon/ranged/hookah //TODO: Seems like lots of these are placeholder. remind me to finish this weapon if you are reading this.
name = "lethargy"
desc = "Courtesy of the 16th Ego rifleman's brigade."
icon_state = "loyalty"
inhand_icon_state = "loyalty"
force = 20
damtype = PALE_DAMAGE
projectile_path = /obj/projectile/ego_bullet/ego_hookah
weapon_weight = WEAPON_HEAVY
spread = 20
special = "This weapon fires 750 rounds per minute. \
This weapon has IFF capabilities.\
Use in hand to turn off IFF."
fire_sound = 'sound/effects/smoke.ogg'
autofire = 0.04 SECONDS
fire_sound_volume = 5
attribute_requirements = list(
JUSTICE_ATTRIBUTE = 80
)

/obj/item/ego_weapon/ranged/pistol/innocence
name = "childhood memories"
Expand Down
3 changes: 2 additions & 1 deletion ModularTegustation/lc13_structures.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
var/last_expand = 0 //last world.time this weed expanded
var/expand_cooldown = 1.5 SECONDS
var/can_expand = TRUE
var/bypass_density = FALSE
var/static/list/blacklisted_turfs

/obj/structure/spreading/Initialize()
Expand Down Expand Up @@ -42,7 +43,7 @@
for(var/turf/T in spread_turfs)
var/obj/machinery/M = locate(/obj/machinery) in T
if(M)
if(M.density)
if(M.density && !bypass_density)
continue
var/obj/structure/spreading/S = locate(/obj/structure/spreading) in T
if(S)
Expand Down
5 changes: 5 additions & 0 deletions code/datums/abnormality/_ego_datum/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -202,3 +202,8 @@
/datum/ego_datum/weapon/darkcarnival
item_path = /obj/item/ego_weapon/wield/darkcarnival
cost = 100 //This weapon is normally a result of fusion but is treated as ALEPH for certain purposes

//Hookah Caterpillar - Havana
/datum/ego_datum/weapon/havana
item_path = /obj/item/ego_weapon/ranged/havana
cost = 100
6 changes: 3 additions & 3 deletions code/datums/abnormality/_ego_datum/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,13 +228,13 @@
cost = 20

// Tangle - Rapunzel
/* /datum/ego_datum/armor/rapunzel
/datum/ego_datum/armor/rapunzel
item_path = /obj/item/clothing/suit/armor/ego_gear/teth/rapunzel
cost = 20

/datum/ego_datum/weapon/rapunzel
item_path = /obj/item/ego_weapon/ranged/rapunzel
cost = 20 */
item_path = /obj/item/ego_weapon/rapunzel
cost = 20

// Someone's Portrait - Snapshot
/datum/ego_datum/armor/snapshot
Expand Down
6 changes: 6 additions & 0 deletions code/datums/abnormality/_ego_datum/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -500,3 +500,9 @@
/datum/ego_datum/armor/effervescent
item_path = /obj/item/clothing/suit/armor/ego_gear/waw/effervescent
cost = 50

// Hookah Caterpillar - Havana
//Weapon is aleph
/datum/ego_datum/armor/havana
item_path = /obj/item/clothing/suit/armor/ego_gear/waw/havana
cost = 50
6 changes: 6 additions & 0 deletions code/modules/clothing/suits/ego_gear/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -256,3 +256,9 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
desc = "Spare a thought for the poor employees at the branches that fail, trapped and abandoned - buried alive."
icon_state = "denial"
armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = -20, BLACK_DAMAGE = 0, PALE_DAMAGE = 20)

/obj/item/clothing/suit/armor/ego_gear/teth/rapunzel
name = "rapunzel"
desc = "When you have no means of escape, you must forge your own path."
icon_state = "tangle"
armor = list(RED_DAMAGE = 0, WHITE_DAMAGE = 20, BLACK_DAMAGE = 0, PALE_DAMAGE = 0)
9 changes: 9 additions & 0 deletions code/modules/clothing/suits/ego_gear/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -490,3 +490,12 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
)

/obj/item/clothing/suit/armor/ego_gear/waw/havana
name = "havana"
desc = "Sit down, relax and take a deep breath."
icon_state = "havana"
armor = list(RED_DAMAGE = 30, WHITE_DAMAGE = 20, BLACK_DAMAGE = 30, PALE_DAMAGE = 60) // 140
attribute_requirements = list(
JUSTICE_ATTRIBUTE = 80
)
128 changes: 128 additions & 0 deletions code/modules/mob/living/simple_animal/abnormality/teth/tangle.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
/mob/living/simple_animal/hostile/abnormality/tangle
name = "Tangle"
desc = "What seems to be a severed head laying in a tangle of hair."
icon = 'ModularTegustation/Teguicons/32x32.dmi'
icon_state = "tangle"
icon_living = "tangle"
portrait = "tangle"
maxHealth = 1600
health = 1600
damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1, PALE_DAMAGE = 2)
melee_damage_lower = 0 //Doesn't attack
melee_damage_upper = 0
rapid_melee = 2
melee_damage_type = WHITE_DAMAGE
stat_attack = HARD_CRIT
faction = list("hostile")
can_breach = TRUE
threat_level = TETH_LEVEL
start_qliphoth = 2
work_chances = list(
ABNORMALITY_WORK_INSTINCT = 80,
ABNORMALITY_WORK_INSIGHT = list(50, 50, 40, 40, 40),
ABNORMALITY_WORK_ATTACHMENT = list(50, 50, 40, 40, 40),
ABNORMALITY_WORK_REPRESSION = list(50, 50, 40, 40, 40),
)
work_damage_amount = 5
work_damage_type = WHITE_DAMAGE
ego_list = list(
/datum/ego_datum/weapon/rapunzel,
/datum/ego_datum/armor/rapunzel,
)
// gift_type = /datum/ego_gifts/rapunzel
abnormality_origin = ABNORMALITY_ORIGIN_WONDERLAB

var/chosen
var/instinct_count
var/list/hair_list = list()

/mob/living/simple_animal/hostile/abnormality/tangle/Move()
return FALSE

/mob/living/simple_animal/hostile/abnormality/tangle/CanAttack(atom/the_target)
return FALSE

//Grab a list of all agents and picks one
/mob/living/simple_animal/hostile/abnormality/tangle/Initialize()
. = ..()
var/list/potentialmarked = list()
for(var/mob/living/carbon/human/L in GLOB.player_list)
if(L.stat >= HARD_CRIT || L.sanity_lost || z != L.z) // Dead or in hard crit, insane, or on a different Z level.
continue
if(HAS_TRAIT(usr, TRAIT_WORK_FORBIDDEN)) //Don't get non agents
continue
potentialmarked += L

if(length(potentialmarked) <= 1) //If there's only one or none of you, then don't do it. I'm not that evil.
return
chosen = pick(potentialmarked)
Kitsunemitsu marked this conversation as resolved.
Show resolved Hide resolved



/mob/living/simple_animal/hostile/abnormality/tangle/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time)
// If your'e the chosen, lower
if(user == chosen)
datum_reference.qliphoth_change(-1)
icon_state = "tangleawake"
return

if(work_type == ABNORMALITY_WORK_INSTINCT)
instinct_count+=1
if((instinct_count==3) || (instinct_count == 6))
datum_reference.qliphoth_change(-1)
icon_state = "tangleawake"

/mob/living/simple_animal/hostile/abnormality/tangle/BreachEffect()
..()
icon_state = "tangle"
icon = 'ModularTegustation/Teguicons/32x64.dmi'
new /obj/structure/spreading/tangle_hair (src)


/mob/living/simple_animal/hostile/abnormality/tangle/death()
for(var/V in hair_list)
qdel(V)
hair_list-=V
..()


// Hair turf
/obj/structure/spreading/tangle_hair
gender = PLURAL
name = "blonde hair"
desc = "a patch of blonde hair."
icon = 'icons/effects/effects.dmi'
icon_state = "tanglehair"
anchored = TRUE
density = FALSE
layer = TURF_LAYER
plane = FLOOR_PLANE
max_integrity = 20
base_icon_state = "tanglehair"
var/mob/living/simple_animal/hostile/abnormality/tangle/connected_abno

/obj/structure/spreading/tangle_hair/Initialize()
. = ..()

//Stolen from Snow White's. Thanks Para!
if(!connected_abno)
connected_abno = locate(/mob/living/simple_animal/hostile/abnormality/tangle) in GLOB.abnormality_mob_list
if(connected_abno)
connected_abno.hair_list += src
expand()


/obj/structure/spreading/tangle_hair/expand()
addtimer(CALLBACK(src, PROC_REF(expand)), 5 SECONDS)
// if(connected_abno.hair_list.len>=150)
// return
..()

/obj/structure/spreading/tangle_hair/Crossed(atom/movable/AM)
. = ..()
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
H.apply_damage(1, WHITE_DAMAGE, null, H.run_armor_check(null, RED_DAMAGE), spread_damage = TRUE)
if(prob(10))
H.Immobilize(5)
to_chat(H, span_warning("You get caught in the hair!"))
Loading
Loading