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

reworks beanstalk without jack #2403

Open
wants to merge 1 commit 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/128x128.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/abno_cores/aleph.dmi
Binary file not shown.
4 changes: 4 additions & 0 deletions code/datums/abnormality/_ego_datum/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,10 @@
cost = 100//appears in wishing well

//The Giant Atop the Beanstalk - Giant
/datum/ego_datum/weapon/bonecrusher
item_path = /obj/item/ego_weapon/bonecrusher
cost = 100

/datum/ego_datum/armor/giant
item_path = /obj/item/clothing/suit/armor/ego_gear/aleph/giant
cost = 100
Expand Down
22 changes: 22 additions & 0 deletions code/game/objects/effects/temporary_visuals/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1064,3 +1064,25 @@
icon = 'icons/obj/manager_bullets.dmi'
icon_state = "execution"
duration = 10

/obj/effect/temp_visual/tile_broken
name = "damaged floor"
icon = 'icons/turf/floors.dmi'
icon_state = "platingdmg3"
layer = TURF_LAYER
density = FALSE
duration = 8 SECONDS

/obj/effect/temp_visual/tile_broken/Initialize()
. = ..()
addtimer(CALLBACK(src, PROC_REF(FadeOut)), 6 SECONDS)

/obj/effect/temp_visual/tile_broken/proc/FadeOut()
animate(src, alpha = 0, time = 2 SECONDS)

/obj/effect/temp_visual/tile_broken/type_2
icon_state = "damaged5"

/obj/effect/temp_visual/tile_broken/type_3
icon_state = "damaged3"
layer = ABOVE_NORMAL_TURF_LAYER
73 changes: 73 additions & 0 deletions code/game/objects/items/ego_weapons/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1591,3 +1591,76 @@
A.attackby(src,user)
playsound(src, 'sound/abnormalities/clownsmiling/jumpscare.ogg', 50, FALSE, 9)
to_chat(user, "<span class='warning'>You dash to [A]!")

/obj/item/ego_weapon/bonecrusher
name = "bone crusher"
desc = "A heavy, dirty millstone attached to a chain. Though it looks unwieldy, it feels completely natural in your hands."
special = "This weapon has a ranged attack."
icon_state = "bone_crusher"
force = 90
damtype = RED_DAMAGE
attack_speed = 1.5
attack_verb_continuous = list("crushes", "cracks", "smacks")
attack_verb_simple = list("crush", "crack", "smack")
hitsound = 'sound/abnormalities/foresaken_murderer/regret_hori.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 100,
PRUDENCE_ATTRIBUTE = 80,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 80,
)
var/pvp_enabled = FALSE
var/throw_cooldown_time = 10 SECONDS
var/throw_cooldown

/obj/item/ego_weapon/bonecrusher/attack_self(mob/living/carbon/user)
if(!CanUseEgo(user))
return
if(!do_after(user, 7, src))
return
if(pvp_enabled)
pvp_enabled = FALSE
to_chat(user, span_danger("Your ranged attack will no longer target other humans."))
return
to_chat(user, span_danger("Your ranged attack will now target other humans."))
pvp_enabled = TRUE

/obj/item/ego_weapon/bonecrusher/afterattack(atom/A, mob/living/user, proximity_flag, params)
..()
MillThrow(A, user)

/obj/item/ego_weapon/bonecrusher/proc/MillThrow(target, mob/living/user)//Basically a player hello
if(throw_cooldown > world.time)
to_chat(user, span_danger("Ability under cooldown!"))
return
var/aoe = 150
var/userjust = (get_modified_attribute_level(user, JUSTICE_ATTRIBUTE))
var/justicemod = 1 + userjust / 100
aoe *= justicemod
aoe *= force_multiplier
var/turf/target_turf = get_turf(target)
for(var/i = 1 to 3)
target_turf = get_step(target, get_dir(get_turf(user), target_turf))
var/throw_delay = (get_dist(user, target_turf) <= 2) ? (0.5 SECONDS) : (2 SECONDS)
if(!do_after(user, throw_delay, src))
return
throw_cooldown = world.time + throw_cooldown_time
var/broken = FALSE
var/been_hit = list()
for(var/turf/T in getline(get_turf(user), target_turf))
if(T.density)
if(broken)
break
broken = TRUE
for(var/turf/TF in range(1, T))
new /obj/effect/temp_visual/smash_effect(TF)
for(var/mob/living/L in hearers(1, T))
if(L in been_hit)
continue
if(L == user)
continue
if(ishuman(L) && ! pvp_enabled)
continue
L.apply_damage(aoe, RED_DAMAGE, null, L.run_armor_check(null, RED_DAMAGE), spread_damage = TRUE)
been_hit += L
playsound(get_turf(user), 'sound/abnormalities/foresaken_murderer/regret_vert.ogg', 75, 0, 3)
39 changes: 38 additions & 1 deletion code/modules/mob/living/simple_animal/abnormality/abno_cores.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,44 @@

/obj/machinery/abno_core_extractor
name = "abnormality core containment unit"
desc = "A device used to transfer abnormalities into containment cells."
desc = "A device used to transfer abnormality cores into containment cells."
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
density = FALSE

/obj/item/abno_core_key
name = "enkephalin agitation matrix"
desc = "A single-use gadget used to transfer abnormality cores into containment cells."
icon = 'ModularTegustation/Teguicons/teguitems.dmi'
icon_state = "key_active"

/obj/item/abno_core_key/pre_attack(atom/A, mob/living/user, params)
. = ..()
if(istype(A, /obj/structure/abno_core))
var/obj/structure/abno_core/target = A
user.playsound_local(user, 'sound/machines/terminal_prompt.ogg', 50, FALSE)
var/response = alert(user,"Will you really extract [A]?","This cannot be reversed.","Yes","No")
if(response == "Yes" && do_after(user, 10, A))
qdel(src)
target.Extract()
to_chat(user, span_nicegreen("[src] succesfully applied!"))
return
to_chat(user, "You decide not to extract [A].")
user.playsound_local(user, 'sound/machines/terminal_error.ogg', 50, FALSE)

/obj/effect/temp_visual/abnocore_spiral
icon = 'icons/effects/96x96.dmi'
icon_state = "clockwork_gateway_active"
layer = ABOVE_NORMAL_TURF_LAYER
pixel_x = -32
base_pixel_x = -32
pixel_y = -32
base_pixel_y = -32
color = "#8F00FF"
duration = 2 SECONDS

/obj/effect/temp_visual/abnocore_spiral/Initialize()
. = ..()
var/matrix/M = matrix()
M *= 0.1
animate(src, alpha = 0, transform = M, time = (duration - 5))
Loading
Loading