Skip to content

Commit

Permalink
Minor abnormality fixes and adjustments (vlggms#1559)
Browse files Browse the repository at this point in the history
Minor abnormality adjustments

A few needed fixes, particularly for playable abnormality

perch added

new weapon

sprites

axe stuff

excessive volume fix

removes armortype

more sound

correction

Co-authored-by: Mr.Heavenly <[email protected]>
  • Loading branch information
vampirebat74 and vampirebat74 authored Oct 22, 2023
1 parent 1bf1f7c commit 3def25c
Show file tree
Hide file tree
Showing 13 changed files with 146 additions and 37 deletions.
Binary file modified ModularTegustation/Teguicons/64x64.dmi
Binary file not shown.
3 changes: 2 additions & 1 deletion ModularTegustation/tegu_items/rcorp/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ GLOBAL_LIST_INIT(easysupport, list(/mob/living/simple_animal/hostile/abnormality
/mob/living/simple_animal/hostile/abnormality/voiddream,
/mob/living/simple_animal/hostile/abnormality/pisc_mermaid,
/mob/living/simple_animal/hostile/abnormality/rudolta,
/mob/living/simple_animal/hostile/abnormality/redblooded))
/mob/living/simple_animal/hostile/abnormality/redblooded,
/mob/living/simple_animal/hostile/abnormality/wayward))

GLOBAL_LIST_INIT(easytank, list(/mob/living/simple_animal/hostile/abnormality/jangsan,
/mob/living/simple_animal/hostile/abnormality/scarecrow,
Expand Down
4 changes: 4 additions & 0 deletions code/datums/abnormality/_ego_datum/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,10 @@
item_path = /obj/item/gun/ego_gun/warring
cost = 50

/datum/ego_datum/weapon/warring2
item_path = /obj/item/ego_weapon/charge/warring
cost = 50

// Clown Smiling at Me - Dark Carnival
/datum/ego_datum/armor/darkcarnival
item_path = /obj/item/clothing/suit/armor/ego_gear/waw/darkcarnival
Expand Down
70 changes: 70 additions & 0 deletions code/game/objects/items/ego_weapons/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1627,3 +1627,73 @@
force_cap = 70 //double base damage
force_per_tile = 5 //if I can read, this means you need to cross 14 tiles for max damage
pierce_force_cost = 20

/obj/item/ego_weapon/charge/warring
name = "warring"
desc = "It was a good day to die, but everybody did."
special = "Upon throwing, this weapon returns to the user. Throwing will activate the charge effect."
icon_state = "warring2"
force = 30
attack_speed = 0.8
throwforce = 65
throw_speed = 1
throw_range = 7
damtype = BLACK_DAMAGE
hitsound = 'sound/weapons/bladeslice.ogg'
release_message = "You release your charge!"
charge_effect = "expend all charge stacks in a powerful burst."
charge_cost = 5
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
JUSTICE_ATTRIBUTE = 60
)

/obj/item/ego_weapon/charge/warring/Initialize()
..()
AddElement(/datum/element/update_icon_updates_onmob)

/obj/item/ego_weapon/charge/warring/attack(mob/living/target, mob/living/user)
if(charge == 19)//max power, get ready to throw!
playsound(src, 'sound/magic/lightningshock.ogg', 50, TRUE)
. = ..()
if(charge == 5)
playsound(src, 'sound/magic/lightningshock.ogg', 50, TRUE)
icon_state = "warring2_firey"
hitsound = 'sound/abnormalities/thunderbird/tbird_peck.ogg'
if(user)
user.update_inv_hands()

/obj/item/ego_weapon/charge/warring/release_charge(mob/living/target, mob/living/user)
playsound(src, 'sound/abnormalities/thunderbird/tbird_bolt.ogg', 50, TRUE)
var/turf/T = get_turf(src)
for(var/mob/living/L in view(1, T))
var/aoe = charge * 5
var/userjust = (get_modified_attribute_level(user, JUSTICE_ATTRIBUTE))
var/justicemod = 1 + userjust/100
aoe*=justicemod
if(L == user || ishuman(L))
continue
L.apply_damage(aoe, BLACK_DAMAGE, null, L.run_armor_check(null, BLACK_DAMAGE), spread_damage = TRUE)
new /obj/effect/temp_visual/tbirdlightning(get_turf(L))
icon_state = initial(icon_state)
hitsound = initial(hitsound)
charge = 0

/obj/item/ego_weapon/charge/warring/on_thrown(mob/living/carbon/user, atom/target)//No, clerks cannot hilariously kill themselves with this
if(!CanUseEgo(user))
return
return ..()

/obj/item/ego_weapon/charge/warring/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum)
if(thrownby && !caught)
if(charge >= charge_cost && isliving(hit_atom))
release_charge(hit_atom)
addtimer(CALLBACK(src, /atom/movable.proc/throw_at, thrownby, throw_range+2, throw_speed, null, TRUE), 1)
if(caught)
return
else
return ..()

/obj/item/ego_weapon/charge/warring/get_clamped_volume()
return 40
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@
if(!LAZYLEN(GLOB.department_centers))
heart = TRUE
else
damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.3, WHITE_DAMAGE = 0.2, BLACK_DAMAGE = 0.2, PALE_DAMAGE = 0.2)//In regular gamemodes you are now esentially forced to suppress the heart
var/X = pick(GLOB.department_centers)
var/mob/living/simple_animal/hostile/kqe_heart/H = new(get_turf(X))
heart = H
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
name = "Teleport"
icon_icon = 'icons/effects/effects.dmi'
button_icon_state = "rift"
chosen_message = "<span class='colossus'>You will now teleport to a random target.</span>"
chosen_message = "<span class='colossus'>You will now teleport to your target.</span>"
chosen_attack_num = 1

/datum/action/innate/abnormality_attack/wayward_dash
Expand Down Expand Up @@ -108,7 +108,7 @@
if(!LAZYLEN(get_path_to(src,target, /turf/proc/Distance, 0, 30)))
to_chat(src, "<span class='notice'>Invalid target.</span>")
return
TryTeleport(target)
TryTeleport(get_turf(target))
if(2)
Dash(target)
return
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
GLOBAL_LIST_EMPTY(zombies)

/mob/living/simple_animal/hostile/abnormality/thunder_bird
name = "Thunderbird Altar"
desc = "An ominous totem built from the corpses of unusual creatures, crowned with the visage of its namesake in wood."
Expand All @@ -23,7 +21,7 @@ GLOBAL_LIST_EMPTY(zombies)
light_power = 0

pixel_x = -16
base_pixel_x = -8
base_pixel_x = -16

//suppression info
maxHealth = 2000
Expand All @@ -48,6 +46,7 @@ GLOBAL_LIST_EMPTY(zombies)
//change the E.G.O to "warring"
ego_list = list(
/datum/ego_datum/weapon/warring,
/datum/ego_datum/weapon/warring2,
/datum/ego_datum/armor/warring
)
gift_type = /datum/ego_gifts/warring
Expand All @@ -68,6 +67,9 @@ GLOBAL_LIST_EMPTY(zombies)
aggro_vision_range = 30
ranged = TRUE//allows it to attempt charging without being in melee range

//Zombie list
var/list/spawned_mobs = list()

//range and attack speed for thunder bombs, taken from general bee
var/fire_cooldown_time = 3 SECONDS
var/fireball_range = 7
Expand All @@ -82,6 +84,12 @@ GLOBAL_LIST_EMPTY(zombies)
var/list/been_hit = list() // Don't get hit twice.

/*---Simple Mob Procs---*/
/mob/living/simple_animal/hostile/abnormality/thunder_bird/PostSpawn()
..()
if(locate(/obj/structure/tbird_perch) in get_turf(src))
return
new /obj/structure/tbird_perch(get_turf(src))

//attempts to charge its target regardless of distance with a short cooldown. Can be spammed if distant enough.
/mob/living/simple_animal/hostile/abnormality/thunder_bird/AttackingTarget()
if(charging)
Expand Down Expand Up @@ -138,9 +146,9 @@ GLOBAL_LIST_EMPTY(zombies)
//delete the zombies on death
/mob/living/simple_animal/hostile/abnormality/thunder_bird/Destroy()
..()
for(var/mob/living/simple_animal/hostile/thunder_zombie/Z in GLOB.zombies)
for(var/mob/living/simple_animal/hostile/thunder_zombie/Z in spawned_mobs)
QDEL_IN(Z, rand(3) SECONDS)
GLOB.zombies -= Z
spawned_mobs -= Z

/*---Dash Stuff ---*/
/mob/living/simple_animal/hostile/abnormality/thunder_bird/proc/thunder_bird_dash(target)
Expand Down Expand Up @@ -250,7 +258,8 @@ GLOBAL_LIST_EMPTY(zombies)
continue
if (targetAmount <= 2)
++targetAmount
new /obj/effect/thunderbolt(get_turf(L))//do this for the # of targets + 1
var/obj/effect/thunderbolt/E = new(get_turf(L))//do this for the # of targets + 1
E.master = src
targetAmount = 0

//thunderbolt objects
Expand All @@ -265,6 +274,7 @@ GLOBAL_LIST_EMPTY(zombies)
movement_type = PHASING | FLYING
var/boom_damage = 50
layer = POINT_LAYER //Sprite should always be visible
var/mob/living/simple_animal/hostile/abnormality/thunder_bird/master

/obj/effect/thunderbolt/Initialize()
. = ..()
Expand All @@ -280,6 +290,8 @@ GLOBAL_LIST_EMPTY(zombies)
can_act = FALSE
playsound(src, 'sound/abnormalities/thunderbird/tbird_zombify.ogg', 45, FALSE, 5)
var/mob/living/simple_animal/hostile/thunder_zombie/C = new(get_turf(src))
master.spawned_mobs += C
C.master = master
if(!QDELETED(H))
C.name = "[H.real_name]"//applies the target's name and adds the name to its description
C.icon_state = "human_thunderbolt"
Expand Down Expand Up @@ -332,34 +344,10 @@ GLOBAL_LIST_EMPTY(zombies)
stat_attack = HARD_CRIT
del_on_death = FALSE
density = TRUE
guaranteed_butcher_results = list(/obj/item/food/badrecipe = 1)
var/list/breach_affected = list()
var/can_act = TRUE

//Zombie conversion from other zombies
/mob/living/simple_animal/hostile/thunder_zombie/proc/Convert(mob/living/carbon/human/H)
if(!istype(H))
return
if(!can_act)
return
can_act = FALSE
forceMove(get_turf(H))
playsound(src, 'sound/abnormalities/thunderbird/tbird_zombify.ogg', 45, FALSE, 5)
SLEEP_CHECK_DEATH(3)
for(var/i = 1 to 4)
new /obj/effect/temp_visual/sparks(get_turf(src))
SLEEP_CHECK_DEATH(5.5)
if(!QDELETED(H))
if(!H.real_name)
return FALSE
var/mob/living/simple_animal/hostile/thunder_zombie/C = new(get_turf(src))
C.name = "[H.real_name]"//applies the target's name and adds the name to its description
C.icon_state = "human_thunderbolt"
C.icon_living = "human_thunderbolt"
C.desc = "What appears to be [H.real_name], only charred and screaming incoherently..."
C.gender = H.gender
C.faction = src.faction
H.gib()
can_act = TRUE
var/mob/living/simple_animal/hostile/abnormality/thunder_bird/master

//Zombie conversion from zombie kills
/mob/living/simple_animal/hostile/thunder_zombie/AttackingTarget()
Expand All @@ -374,7 +362,6 @@ GLOBAL_LIST_EMPTY(zombies)

/mob/living/simple_animal/hostile/thunder_zombie/Initialize()
. = ..()
GLOB.zombies += src
playsound(get_turf(src), 'sound/abnormalities/thunderbird/tbird_charge.ogg', 50, 1, 4)
base_pixel_x = rand(-6,6)
pixel_x = base_pixel_x
Expand All @@ -399,3 +386,47 @@ GLOBAL_LIST_EMPTY(zombies)
revive(full_heal = TRUE, admin_revive = FALSE)
visible_message("<span class='boldwarning'>[src] staggers back on their feet!</span>")
playsound(get_turf(src), 'sound/abnormalities/thunderbird/tbird_bolt.ogg', 50, 0, 8)

//Zombie conversion from other zombies
/mob/living/simple_animal/hostile/thunder_zombie/proc/Convert(mob/living/carbon/human/H)
if(!istype(H))
return
if(!can_act)
return
can_act = FALSE
forceMove(get_turf(H))
playsound(src, 'sound/abnormalities/thunderbird/tbird_zombify.ogg', 45, FALSE, 5)
SLEEP_CHECK_DEATH(3)
for(var/i = 1 to 4)
new /obj/effect/temp_visual/sparks(get_turf(src))
SLEEP_CHECK_DEATH(5.5)
if(!QDELETED(H))
if(!H.real_name)
return FALSE
var/mob/living/simple_animal/hostile/thunder_zombie/C = new(get_turf(src))
if(master)
master.spawned_mobs += C
C.master = master
C.name = "[H.real_name]"//applies the target's name and adds the name to its description
C.icon_state = "human_thunderbolt"
C.icon_living = "human_thunderbolt"
C.desc = "What appears to be [H.real_name], only charred and screaming incoherently..."
C.gender = H.gender
C.faction = src.faction
H.gib()
can_act = TRUE

//The perch
/obj/structure/tbird_perch
name = "thunderbird altar"
desc = "An idol bloodied by the creature who stood upon it.."
icon = 'ModularTegustation/Teguicons/64x64.dmi'
icon_state = "thunderbird_altar"
pixel_x = -16
base_pixel_x = -16
anchored = TRUE
density = FALSE
layer = TURF_LAYER
plane = FLOOR_PLANE
resistance_flags = INDESTRUCTIBLE
mouse_opacity = 0
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,7 @@
C.desc = "What appears to be [H.real_name], only charred and screaming incoherently..."
C.gender = H.gender
C.faction = src.faction
C.master = src
spawned_mobs += C
H.gib()

Expand Down
3 changes: 2 additions & 1 deletion code/modules/projectiles/projectile/magic/abnormality.dm
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,8 @@
/obj/projectile/thunder_tomahawk
name = "tomahawk"
desc = "Look out!"
icon_state = "thunder_tomahawk"
icon = 'icons/obj/ego_weapons.dmi'
icon_state = "warring2_firey"
damage_type = BLACK_DAMAGE

damage = 45
Expand Down
Binary file modified icons/mob/inhands/weapons/ego_lefthand.dmi
Binary file not shown.
Binary file modified icons/mob/inhands/weapons/ego_righthand.dmi
Binary file not shown.
Binary file modified icons/obj/ego_weapons.dmi
Binary file not shown.
Binary file modified icons/obj/projectiles.dmi
Binary file not shown.

0 comments on commit 3def25c

Please sign in to comment.