From 4c1b2e9a20d8cb90ca2faf778cf4484921f68679 Mon Sep 17 00:00:00 2001 From: Dahlular Date: Mon, 5 Sep 2022 10:29:31 -0600 Subject: [PATCH 1/7] working on aspects and more smoothing --- code/game/objects/structures/window.dm | 129 ++++++++++-------- .../modules/jobs/job_types/lambent_aspect.dm | 74 ++++++++++ .../code/modules/jobs/job_types/security.dm | 4 +- tgstation.dme | 1 + 4 files changed, 147 insertions(+), 61 deletions(-) create mode 100644 hyperstation/code/modules/jobs/job_types/lambent_aspect.dm diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index ca698d444..afb21b10a 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -485,65 +485,6 @@ /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, - /obj/machinery/door, - /obj/machinery/door/airlock/, - /obj/machinery/door/airlock/mining, - /obj/machinery/door/airlock/mining/glass, - /obj/machinery/door/airlock/medical, - /obj/machinery/door/airlock/medical/glass, - /obj/machinery/door/airlock/public, - /obj/machinery/door/airlock/public/glass, - /obj/machinery/door/airlock/research, - /obj/machinery/door/airlock/research/glass, - /obj/machinery/door/airlock/maintenance, - /obj/machinery/door/airlock/maintenance/glass, - /obj/machinery/door/airlock/command/, - /obj/machinery/door/airlock/command/glass, - /obj/machinery/door/airlock/engineering, - /obj/machinery/door/airlock/engineering/glass, - /obj/machinery/door/airlock/engineering/abandoned, - /obj/machinery/door/airlock/security, - /obj/machinery/door/airlock/security/glass, - /obj/machinery/door/airlock/maintenance/abandoned, - /obj/machinery/door/poddoor/shutters/preopen, - /obj/machinery/door/poddoor/shutters, - /obj/machinery/door/window/eastright, - /obj/machinery/door/window/eastleft, - /obj/machinery/door/window/northleft, - /obj/machinery/door/window/northright, - /obj/machinery/door/airlock/external, - /obj/machinery/door/airlock, - /obj/machinery/door/airlock/hatch, - /obj/machinery/door/airlock/engineering/glass/critical, - /obj/machinery/door/airlock/atmos, - /obj/machinery/door/airlock/highsecurity, - /turf/closed/wall/mineral/sandstone, - /obj/structure/falsewall/sandstone,) -// canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) - glass_amount = 2 - -/obj/structure/window/fulltile/unanchored - anchored = FALSE - -/obj/structure/window/plasma/fulltile - icon = 'icons/obj/smooth_structures/plasma_window.dmi' - icon_state = "plasmawindow" - dir = FULLTILE_WINDOW_DIR - max_integrity = 300 - fulltile = TRUE - flags_1 = PREVENT_CLICK_UNDER_1 - smooth = SMOOTH_TRUE - //canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) - - canSmoothWith = list( - /turf/closed/wall, - /turf/closed/wall/r_wall, - /obj/structure/falsewall, - /obj/structure/falsewall/brass, - /obj/structure/falsewall/reinforced, - /turf/closed/wall/rust, - /turf/closed/wall/r_wall/rust, - /turf/closed/wall/clockwork, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile, /obj/machinery/door, @@ -578,6 +519,76 @@ /obj/machinery/door/airlock/engineering/glass/critical, /obj/machinery/door/airlock/atmos, /obj/machinery/door/airlock/highsecurity, + /obj/machinery/door/firedoor, + /turf/closed/wall/mineral/lead, + /turf/closed/wall/mineral/sandstone, + /obj/structure/falsewall/sandstone) +// canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + glass_amount = 2 + +/obj/structure/window/fulltile/unanchored + anchored = FALSE + +/obj/structure/window/plasma/fulltile + icon = 'icons/obj/smooth_structures/plasma_window.dmi' + icon_state = "plasmawindow" + dir = FULLTILE_WINDOW_DIR + max_integrity = 300 + fulltile = TRUE + flags_1 = PREVENT_CLICK_UNDER_1 + smooth = SMOOTH_TRUE + //canSmoothWith = list(/obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/plasma/reinforced/fulltile) + + canSmoothWith = list( + /turf/closed/wall, + /turf/closed/wall/r_wall, + /obj/structure/falsewall, + /obj/structure/falsewall/brass, + /obj/structure/falsewall/reinforced, + /turf/closed/wall/rust, + /turf/closed/wall/r_wall/rust, + /turf/closed/wall/clockwork, + /turf/closed/indestructible/riveted/, + /turf/closed/indestructible/riveted/uranium, + /obj/structure/window/fulltile, + /obj/structure/window/reinforced/fulltile, + /obj/structure/window/reinforced/tinted/fulltile, + /obj/structure/window/plasma/fulltile, + /obj/structure/window/plasma/reinforced/fulltile, + /obj/machinery/door, + /obj/machinery/door/airlock/, + /obj/machinery/door/airlock/mining, + /obj/machinery/door/airlock/mining/glass, + /obj/machinery/door/airlock/medical, + /obj/machinery/door/airlock/medical/glass, + /obj/machinery/door/airlock/public, + /obj/machinery/door/airlock/public/glass, + /obj/machinery/door/airlock/research, + /obj/machinery/door/airlock/research/glass, + /obj/machinery/door/airlock/maintenance, + /obj/machinery/door/airlock/maintenance/glass, + /obj/machinery/door/airlock/command/, + /obj/machinery/door/airlock/command/glass, + /obj/machinery/door/airlock/engineering, + /obj/machinery/door/airlock/engineering/glass, + /obj/machinery/door/airlock/engineering/abandoned, + /obj/machinery/door/airlock/security, + /obj/machinery/door/airlock/security/glass, + /obj/machinery/door/airlock/maintenance/abandoned, + /obj/machinery/door/poddoor/shutters/preopen, + /obj/machinery/door/poddoor/shutters, + /obj/machinery/door/window/eastright, + /obj/machinery/door/window/eastleft, + /obj/machinery/door/window/northleft, + /obj/machinery/door/window/northright, + /obj/machinery/door/airlock/external, + /obj/machinery/door/airlock, + /obj/machinery/door/airlock/hatch, + /obj/machinery/door/airlock/engineering/glass/critical, + /obj/machinery/door/airlock/atmos, + /obj/machinery/door/airlock/highsecurity, + /obj/machinery/door/firedoor, + /turf/closed/wall/mineral/lead, /turf/closed/indestructible/, /turf/closed/indestructible/riveted, /turf/closed/indestructible/fakeglass) diff --git a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm new file mode 100644 index 000000000..9ebffe686 --- /dev/null +++ b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm @@ -0,0 +1,74 @@ +//I'll be honest I have no clue where to put lambent aspects, so this will just be here for now. I'm not the best at modularization, nor coding. +//This will be mostly commented out until I can sort out how this works. I preferably want to use an innate action, not a spell or anything attached to items. +//But it's proving to be difficult. + +//Innate powers, without attuning to a specific aspect +/datum/action/innate/lambent + name = "Dahl's a dumbass" + desc = "Yell at her if you see this" + + background_icon_state = "bg_agent" + + icon_icon = 'icons/mob/actions/actions_spells.dmi' //Using this for now until I sprite some action buttons + button_icon_state = "spell_default" + + check_flags = AB_CHECK_STUN|AB_CHECK_CONSCIOUS + + //cooldown_time = 10 + +/* Finish this when I understand the code a bit more +/datum/action/cooldown/lambent/locate + name = "Weave Locate" + desc = "Plunge into the weave to teleport to a target of your choosing. Be aware of your end result." + button_icon_state = "emp" + cooldown_time = 120 + + /var/mob/living/carbon/human/target_human = target + +/datum/action/innate/lambent/dash + name = "Surge Dash" + desc = "Imbue yourself with weave energy to dash forwards." + + var/current_charges = 3 + var/max_charges = 3 + var/charge_rate = 250 + var/mob/living/carbon/human/holder + + var/dash_sound = 'sound/magic/blink.ogg' + var/recharge_sound = 'sound/magic/charge.ogg' + + var/phasein = /obj/effect/temp_visual/dir_setting/ninja/phase + var/phaseout = /obj/effect/temp_visual/dir_setting/ninja/phase/out + var/beam_effect = "blur" + +/datum/action/innate/lambent/dash/Grant(mob/user) + . = ..() + holder = user + +/datum/action/innate/lambent/dash/IsAvailable() + if(current_charges > 0) + return TRUE + else + return FALSE + +/datum/action/innate/lambent/dash/proc/Teleport(mob/user, atom/target) + if(!IsAvailable()) + return + var/turf/T = get_turf(target) + if(target in view(user.client.view, user)) + var/obj/spot1 = new phaseout(get_turf(user), user.dir) + user.forceMove(T) + playsound(T, dash_sound, 25, 1) + var/obj/spot2 = new phasein(get_turf(user), user.dir) + spot1.Beam(spot2,beam_effect,time=20) + current_charges-- + holder.update_action_buttons_icon() + addtimer(CALLBACK(src, .proc/charge), charge_rate) + +/datum/action/innate/lambent/dash/proc/charge() + current_charges = CLAMP(current_charges + 1, 0, max_charges) + holder.update_action_buttons_icon() + if(recharge_sound) + playsound(src, recharge_sound, 50, 1) + to_chat(holder, "[src] now has [current_charges]/[max_charges] charges.") +*/ diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index 0360b5423..c991282ff 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -30,9 +30,9 @@ Lambent ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) - mind_traits = list(TRAIT_CAPTAIN_METABOLISM) + mind_traits = list(TRAIT_CAPTAIN_METABOLISM, TRAIT_AUTO_CATCH_ITEM, TRAIT_DISK_VERIFIER, TRAIT_NOSLIPALL) - blacklisted_quirks = list(/datum/quirk/brainproblems, /datum/quirk/insanity, /datum/quirk/nonviolent) + blacklisted_quirks = list(/datum/quirk/brainproblems, /datum/quirk/insanity) /datum/outfit/job/lambent name = "Lambent" diff --git a/tgstation.dme b/tgstation.dme index 3408788ef..6e439d0a3 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3198,6 +3198,7 @@ #include "hyperstation\code\modules\jobs\job_types\_job.dm" #include "hyperstation\code\modules\jobs\job_types\civilian.dm" #include "hyperstation\code\modules\jobs\job_types\job_alt_titles.dm" +#include "hyperstation\code\modules\jobs\job_types\lambent_aspect.dm" #include "hyperstation\code\modules\jobs\job_types\roleplay.dm" #include "hyperstation\code\modules\jobs\job_types\security.dm" #include "hyperstation\code\modules\mining\shelters.dm" From bf84a1ce50d3a36b170ab5fd5c550470902b99ee Mon Sep 17 00:00:00 2001 From: Dahlular Date: Mon, 5 Sep 2022 10:46:19 -0600 Subject: [PATCH 2/7] this too --- .../dynamic/dynamic_rulesets_events.dm | 2 +- .../code/modules/jobs/job_types/security.dm | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index 758f3b168..0fb121fec 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -437,7 +437,7 @@ repeatable = TRUE //property_weights = list("extended" = -1, "chaos" = 1) occurances_max = 1 - chaos_min = 1.8 + chaos_min = 2.5 //Increased due to how big the station is /datum/dynamic_ruleset/event/carp_migration name = "Carp Migration" diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index c991282ff..a14d973e7 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -21,6 +21,8 @@ Lambent outfit = /datum/outfit/job/lambent + //var/datum/action/innate/lambent/dash = new + access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_LAMBENT, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_BARISTA, ACCESS_BARBER, ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, @@ -54,3 +56,22 @@ Lambent box = /obj/item/storage/box/security implants = list(/obj/item/implant/mindshield) + +/* +/datum/job/lambent/after_spawn(mob/living/H, mob/M) + apply_innate_effects() + +/datum/job/lambent/proc/on_body_transfer(mob/living/old_body, mob/living/new_body) + remove_innate_effects(old_body) + apply_innate_effects(new_body) + +//This handles the application of antag huds/special abilities +/datum/job/lambent/proc/apply_innate_effects(mob/living/H) + . = ..() + dash.Grant() + +//This handles the removal of antag huds/special abilities +/datum/job/lambent/proc/remove_innate_effects(mob/living/H) + . = ..() + dash.Remove(H) +*/ From 08475e64d6df1dcb5777f9ca5095d8a02a811bed Mon Sep 17 00:00:00 2001 From: Dahlular Date: Mon, 5 Sep 2022 11:23:22 -0600 Subject: [PATCH 3/7] MOLTOV HELPPPP --- hyperstation/code/modules/jobs/job_types/lambent_aspect.dm | 3 ++- hyperstation/code/modules/jobs/job_types/security.dm | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm index 9ebffe686..634acd6f9 100644 --- a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm +++ b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm @@ -24,6 +24,7 @@ cooldown_time = 120 /var/mob/living/carbon/human/target_human = target +*/ /datum/action/innate/lambent/dash name = "Surge Dash" @@ -71,4 +72,4 @@ if(recharge_sound) playsound(src, recharge_sound, 50, 1) to_chat(holder, "[src] now has [current_charges]/[max_charges] charges.") -*/ + diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index a14d973e7..d57d757cb 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -1,6 +1,9 @@ /* Lambent */ +/datum/job/lambent/New() + var/datum/action/innate/lambent/dash/dash = new + /datum/job/lambent title = "Lambent" flag = LAMBENT @@ -21,8 +24,6 @@ Lambent outfit = /datum/outfit/job/lambent - //var/datum/action/innate/lambent/dash = new - access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_LAMBENT, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_BARISTA, ACCESS_BARBER, ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, From bdbff7a90a56ff89d9f6512dfc2d6372ffe698d3 Mon Sep 17 00:00:00 2001 From: Moltov <61367602+Moltovz@users.noreply.github.com> Date: Mon, 5 Sep 2022 14:24:50 -0400 Subject: [PATCH 4/7] Im helping removed applyinateeffects, after_spawn grants dash instead. Dash is not working, --- .../code/modules/jobs/job_types/lambent_aspect.dm | 2 +- hyperstation/code/modules/jobs/job_types/security.dm | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm index 634acd6f9..c9d833a59 100644 --- a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm +++ b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm @@ -52,7 +52,7 @@ else return FALSE -/datum/action/innate/lambent/dash/proc/Teleport(mob/user, atom/target) +/datum/action/innate/lambent/dash/proc/Teleport(mob/user, atom/target) //Mordecai and Rigby get this code working or you are FIRED! if(!IsAvailable()) return var/turf/T = get_turf(target) diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index d57d757cb..687000caf 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -1,9 +1,10 @@ /* Lambent */ +/* /datum/job/lambent/New() var/datum/action/innate/lambent/dash/dash = new - +*/ //we dont need this -V /datum/job/lambent title = "Lambent" flag = LAMBENT @@ -58,10 +59,11 @@ Lambent implants = list(/obj/item/implant/mindshield) -/* -/datum/job/lambent/after_spawn(mob/living/H, mob/M) - apply_innate_effects() +/datum/job/lambent/after_spawn(mob/living/H, mob/M) + var/datum/action/innate/lambent/dash/dash = new + dash.Grant(H) +/* /datum/job/lambent/proc/on_body_transfer(mob/living/old_body, mob/living/new_body) remove_innate_effects(old_body) apply_innate_effects(new_body) @@ -76,3 +78,4 @@ Lambent . = ..() dash.Remove(H) */ +//these are for antagonist -V From d716d437d2a658ea73695ef8269d14c591bf32cc Mon Sep 17 00:00:00 2001 From: Dahlular Date: Mon, 5 Sep 2022 19:16:47 -0600 Subject: [PATCH 5/7] I'll finish this later --- .../modules/jobs/job_types/lambent_aspect.dm | 44 ++++++++++++++++--- .../code/modules/jobs/job_types/security.dm | 22 +--------- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm index c9d833a59..0bc5dc372 100644 --- a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm +++ b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm @@ -12,10 +12,16 @@ icon_icon = 'icons/mob/actions/actions_spells.dmi' //Using this for now until I sprite some action buttons button_icon_state = "spell_default" - check_flags = AB_CHECK_STUN|AB_CHECK_CONSCIOUS + var/mob/living/carbon/human/holder + + //check_flags = AB_CHECK_STUN|AB_CHECK_CONSCIOUS //cooldown_time = 10 +/datum/action/innate/lambent/Grant(mob/user) + . = ..() + holder = user + /* Finish this when I understand the code a bit more /datum/action/cooldown/lambent/locate name = "Weave Locate" @@ -33,7 +39,6 @@ var/current_charges = 3 var/max_charges = 3 var/charge_rate = 250 - var/mob/living/carbon/human/holder var/dash_sound = 'sound/magic/blink.ogg' var/recharge_sound = 'sound/magic/charge.ogg' @@ -42,16 +47,43 @@ var/phaseout = /obj/effect/temp_visual/dir_setting/ninja/phase/out var/beam_effect = "blur" -/datum/action/innate/lambent/dash/Grant(mob/user) - . = ..() - holder = user +/* Potentially not needed +/obj/item/dash_energy + name = "Weave Energy" + desc = "A buzzing centerpiece of Weave falloff, unstable and ready to manifest itself." +*/ +/* +/obj/effect/proc_holder/lambent/dash + name = "Lambent Dash" +*/ +/datum/action/innate/lambent/dash/Trigger() + holder.visible_message("PH Trigger Initial") + switch(active) + if(0) //Start off + holder.visible_message("PH Trigger to Activate") + Activate() + active = 1 //set to 1 so we can toggle off + if(1) + holder.visible_message("PH Trigger to Deactivate") + Deactivate() + active = 0 //set to 0 so we can toggle on +/datum/action/innate/lambent/dash/Activate() + holder.visible_message("PH Activation") + +/datum/action/innate/lambent/dash/Deactivate() + holder.visible_message("PH Deactivation") + +/* /datum/action/innate/lambent/dash/IsAvailable() if(current_charges > 0) return TRUE else return FALSE +*/ +//something something dash.Teleport(user,) +/* /datum/action/innate/lambent/dash/proc/Teleport(mob/user, atom/target) //Mordecai and Rigby get this code working or you are FIRED! if(!IsAvailable()) return @@ -72,4 +104,4 @@ if(recharge_sound) playsound(src, recharge_sound, 50, 1) to_chat(holder, "[src] now has [current_charges]/[max_charges] charges.") - +*/ diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index 687000caf..4bd193a8a 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -1,10 +1,7 @@ /* Lambent */ -/* -/datum/job/lambent/New() - var/datum/action/innate/lambent/dash/dash = new -*/ //we dont need this -V + /datum/job/lambent title = "Lambent" flag = LAMBENT @@ -59,23 +56,8 @@ Lambent implants = list(/obj/item/implant/mindshield) - +//innate abilities will go here /datum/job/lambent/after_spawn(mob/living/H, mob/M) var/datum/action/innate/lambent/dash/dash = new dash.Grant(H) -/* -/datum/job/lambent/proc/on_body_transfer(mob/living/old_body, mob/living/new_body) - remove_innate_effects(old_body) - apply_innate_effects(new_body) -//This handles the application of antag huds/special abilities -/datum/job/lambent/proc/apply_innate_effects(mob/living/H) - . = ..() - dash.Grant() - -//This handles the removal of antag huds/special abilities -/datum/job/lambent/proc/remove_innate_effects(mob/living/H) - . = ..() - dash.Remove(H) -*/ -//these are for antagonist -V From bc9bd3c53fc55bef2178e1cc37961944929b4160 Mon Sep 17 00:00:00 2001 From: Dahlular Date: Tue, 6 Sep 2022 15:08:52 -0600 Subject: [PATCH 6/7] putting this aside, map fixes --- .../LayeniaStation/LayeniaStation.dmm | 24 ++--- .../modules/jobs/job_types/lambent_aspect.dm | 93 ++++++++++++++++--- .../code/modules/jobs/job_types/security.dm | 3 +- 3 files changed, 89 insertions(+), 31 deletions(-) diff --git a/_maps/map_files/LayeniaStation/LayeniaStation.dmm b/_maps/map_files/LayeniaStation/LayeniaStation.dmm index 55181a120..24948c9f5 100644 --- a/_maps/map_files/LayeniaStation/LayeniaStation.dmm +++ b/_maps/map_files/LayeniaStation/LayeniaStation.dmm @@ -18482,6 +18482,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{ name = "air supply pipe" }, +/obj/structure/fans/tiny, /turf/open/floor/wood{ icon_state = "wood_tile"; name = "tile" @@ -20028,6 +20029,7 @@ /obj/machinery/status_display{ pixel_x = -32 }, +/obj/structure/dresser, /turf/open/floor/wood{ icon_state = "wood_parquet"; name = "parquet" @@ -32035,6 +32037,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, +/obj/structure/dresser, /turf/open/floor/wood{ icon_state = "wood_parquet"; name = "parquet" @@ -50321,6 +50324,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ name = "scrubbers pipe" }, +/obj/structure/fans/tiny, /turf/open/floor/wood{ icon_state = "wood_tile"; name = "tile" @@ -52219,6 +52223,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, +/obj/structure/dresser, /turf/open/floor/wood{ icon_state = "wood_parquet"; name = "parquet" @@ -71636,6 +71641,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, +/obj/structure/dresser, /turf/open/floor/wood{ icon_state = "wood_parquet"; name = "parquet" @@ -73542,20 +73548,6 @@ }, /turf/open/indestructible/layenia/crystal, /area/layenia/cave) -"lzh" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer3{ - dir = 9; - name = "air supply pipe" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 9; - name = "scrubbers pipe" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/central/upper) "lzj" = ( /obj/structure/window/reinforced/tinted{ dir = 8 @@ -83584,6 +83576,7 @@ /obj/machinery/status_display{ pixel_x = -32 }, +/obj/structure/dresser, /turf/open/floor/wood{ icon_state = "wood_parquet"; name = "parquet" @@ -134989,6 +134982,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, +/obj/structure/dresser, /turf/open/floor/wood{ icon_state = "wood_parquet"; name = "parquet" @@ -261678,7 +261672,7 @@ xrc xrc xrc xrc -lzh +aGg qMG qzm qMG diff --git a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm index 0bc5dc372..839298633 100644 --- a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm +++ b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm @@ -1,6 +1,5 @@ //I'll be honest I have no clue where to put lambent aspects, so this will just be here for now. I'm not the best at modularization, nor coding. -//This will be mostly commented out until I can sort out how this works. I preferably want to use an innate action, not a spell or anything attached to items. -//But it's proving to be difficult. +//This will be finished lader. //Innate powers, without attuning to a specific aspect /datum/action/innate/lambent @@ -31,7 +30,7 @@ /var/mob/living/carbon/human/target_human = target */ - +/* /datum/action/innate/lambent/dash name = "Surge Dash" desc = "Imbue yourself with weave energy to dash forwards." @@ -47,15 +46,77 @@ var/phaseout = /obj/effect/temp_visual/dir_setting/ninja/phase/out var/beam_effect = "blur" -/* Potentially not needed -/obj/item/dash_energy - name = "Weave Energy" - desc = "A buzzing centerpiece of Weave falloff, unstable and ready to manifest itself." -*/ -/* -/obj/effect/proc_holder/lambent/dash - name = "Lambent Dash" -*/ + var/obj/item/lambent/dash + +/obj/item/lambent/dash + name = "condensed Weave energy" + desc = "Bundling energy straight from the Weave. It hurts your head just to comprehend." + block_chance = 50 + w_class = WEIGHT_CLASS_HUGE + force = 0 + throwforce = 0 + attack_verb = list("resonated", "harmonized") + var/datum/action/innate/lambent/dash/ability + + icon_state = "energy_katana" //PH + + interaction_flags_item = 0 //Prevent it from being clicked on, just in case. + //item_flags = DROPDEL //Deletes itself when dropped, but I may need to call some code and qdel instead. + +/obj/item/lambent/dash/Initialize() + . = ..() + ability = new(src) + +/obj/item/lambent/dash/attack_self(mob/user) + visible_message("[user] dissipates a flickering energy in their palm.") + src.dropped() + +/obj/item/lambent/dash/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + ability.Teleport(user, target) + +/obj/item/lambent/dash/pickup(mob/living/user) + . = ..() + ability.Grant(user) + user.update_icons() + +/obj/item/lambent/dash/dropped(mob/user) + . = ..() + ability.Remove(user) + user.update_icons() + QDEL_IN(src, 1) + +//datum/action/innate/lambent/dash/ability //This is what poor planning with code gets you. Use a proc_holder next time -Dahl + +/datum/action/innate/lambent/dash/Trigger() + //This is effectively an on/off state of the ability. + holder.visible_message("PH Trigger Initial") + if(holder.get_active_held_item() == null) + if(var/active == 0) //Start off + holder.visible_message("PH Trigger to Activate") + Activate() + active = 1 //set to 1 so we can toggle off + return + if(var/active == 1) + holder.visible_message("PH Trigger to Deactivate") + Deactivate() + active = 0 //set to 0 so we can toggle on + return + holder.visible_message("PH active held item return") + return + + +/datum/action/innate/lambent/dash/Activate() + holder.visible_message("PH Activation") + holder.equip_to_slot_if_possible(new/obj/item/lambent/dash(null), SLOT_HANDS) + +/datum/action/innate/lambent/dash/Deactivate() + holder.visible_message("PH Deactivation") + if(holder.get_item_by_slot(SLOT_HANDS) == /obj/item/lambent/dash) + holder.dropItemToGround(/obj/item/lambent/dash) + + +/* Leaving this here as a toggled ability to reference later. /datum/action/innate/lambent/dash/Trigger() holder.visible_message("PH Trigger Initial") switch(active) @@ -73,6 +134,7 @@ /datum/action/innate/lambent/dash/Deactivate() holder.visible_message("PH Deactivation") +*/ /* /datum/action/innate/lambent/dash/IsAvailable() @@ -83,8 +145,9 @@ */ //something something dash.Teleport(user,) -/* -/datum/action/innate/lambent/dash/proc/Teleport(mob/user, atom/target) //Mordecai and Rigby get this code working or you are FIRED! + + +/datum/action/innate/lambent/dash/proc/Teleport(mob/user, atom/target) if(!IsAvailable()) return var/turf/T = get_turf(target) @@ -102,6 +165,6 @@ current_charges = CLAMP(current_charges + 1, 0, max_charges) holder.update_action_buttons_icon() if(recharge_sound) - playsound(src, recharge_sound, 50, 1) + playsound(holder, recharge_sound, 50, 1) to_chat(holder, "[src] now has [current_charges]/[max_charges] charges.") */ diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index 4bd193a8a..a479a01bb 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -57,7 +57,8 @@ Lambent implants = list(/obj/item/implant/mindshield) //innate abilities will go here +/* /datum/job/lambent/after_spawn(mob/living/H, mob/M) var/datum/action/innate/lambent/dash/dash = new dash.Grant(H) - +*/ From 671e01b0738a1f2f4209b642ee9255eb5d1d397e Mon Sep 17 00:00:00 2001 From: Dahlular Date: Tue, 6 Sep 2022 15:39:45 -0600 Subject: [PATCH 7/7] I HATE ACTIONS IM USING SPELLS NEXT TIME --- .../modules/jobs/job_types/lambent_aspect.dm | 34 +++++++++++++++++++ .../code/modules/jobs/job_types/security.dm | 10 +++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm index 839298633..aeb5c913b 100644 --- a/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm +++ b/hyperstation/code/modules/jobs/job_types/lambent_aspect.dm @@ -20,6 +20,40 @@ /datum/action/innate/lambent/Grant(mob/user) . = ..() holder = user +/* +//FLIGHT +/datum/action/innate/lambent/flight(mob/user) + name = "Toggle free-flight" + desc = "Displace the weave locally to propell yourself in any direction." + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUN + + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "flight" + + +/datum/action/innate/lambent/flight/Trigger() + switch(active) + if(0) //Start off + Activate() + active = 1 + return + if(1) + Deactivate() + active = 0 + return //can't help but feel like I'm doing things terribly wrong. + +/datum/action/innate/lambent/flight/Activate() + holder.movement_type |= FLYING + holder.override_float = TRUE + holder.pass_flags |= PASSTABLE + holder.visible_message("Reality begins to distort around [holder], bringing them into the air!") + +/datum/action/innate/lambent/flight/Deactivate() + holder.movement_type &= ~FLYING + holder.override_float = FALSE + holder.pass_flags &= ~PASSTABLE + holder.visible_message("Flickering reality fades as [holder] settles to the ground.") +*/ /* Finish this when I understand the code a bit more /datum/action/cooldown/lambent/locate diff --git a/hyperstation/code/modules/jobs/job_types/security.dm b/hyperstation/code/modules/jobs/job_types/security.dm index a479a01bb..61d4e087f 100644 --- a/hyperstation/code/modules/jobs/job_types/security.dm +++ b/hyperstation/code/modules/jobs/job_types/security.dm @@ -57,8 +57,10 @@ Lambent implants = list(/obj/item/implant/mindshield) //innate abilities will go here -/* + /datum/job/lambent/after_spawn(mob/living/H, mob/M) - var/datum/action/innate/lambent/dash/dash = new - dash.Grant(H) -*/ + //var/datum/action/innate/lambent/dash/dash = new + //dash.Grant(H) + //var/datum/action/innate/lambent/flight/flight = new + //flight.Grant(H) +