Skip to content

Commit

Permalink
reworks beanstalk without jack
Browse files Browse the repository at this point in the history
abnocores finished

goose stuff

golden goose completed

harp finished

visual touch-up

stuff

push and pull aoe

jump attack

giant core stuff

stuff

stuff

work mechanics

harp spawn fix

new ego
  • Loading branch information
vampirebat74 committed Sep 24, 2024
1 parent 55b61b3 commit 55579a6
Show file tree
Hide file tree
Showing 22 changed files with 608 additions and 1 deletion.
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

0 comments on commit 55579a6

Please sign in to comment.