-
Notifications
You must be signed in to change notification settings - Fork 70
PK Anomaly Modkits #367
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
Open
keygenpie
wants to merge
39
commits into
Monkestation:master
Choose a base branch
from
keygenpie:anomaly-modkits
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
PK Anomaly Modkits #367
Changes from 25 commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
e7d4624
modkit sprites
keygenpie d5c7998
modularization
keygenpie dd11b59
blank modkit
keygenpie 6f3dde7
Anomaly interaction code
keygenpie 0f485c5
gravitic pulverizer modkit
keygenpie 06f6b42
failsafe
keygenpie ee6971b
storm capacitor modkit
keygenpie a451978
gravitic mob check bugfix
keygenpie af25ea2
geist projector
keygenpie e7ad3cd
description clarity
keygenpie 8bad0a6
cost unification
keygenpie a40be31
bluespace aberrator
keygenpie 4297b8b
small description touchup
keygenpie a2f658b
vortex attractor
keygenpie 4b4ab3f
flux charger
keygenpie b037737
stormcaller buff
keygenpie d1755a7
rift cleaver
keygenpie e7dd1f7
storm capacitor bugfix
keygenpie 41a0a0e
rift cleaver is now safe
keygenpie 6a67a17
genetic inducer
keygenpie 4feed91
rift cleaver alteration
keygenpie 4063dbf
researchable and lathable blank-kits
keygenpie 5b1e53c
small balance alterations
keygenpie 5e2be39
cut the rift cleaver
keygenpie 2290ae0
poltergeist projector (geist projector update)
keygenpie ca68ba2
complete modularization
keygenpie 7e815d2
tiny correction to readme file location
keygenpie 0767330
maxed all kit types at 1 max
keygenpie fd36121
spacing
keygenpie 551bc28
small notation adjustment
keygenpie 199265d
QDELETED check removal
keygenpie 0ffc3c5
removed mob checks from grav and vortex kits
keygenpie 57d60ee
ok well obviously there should be turf/anchored checks
keygenpie 3435008
cleaned up storm code a bit
keygenpie f48eff9
removed mob check from poltergeist
keygenpie 399530b
changed check on bluespace aberrator
keygenpie 9b6c330
more modifier scaling
keygenpie 924abe4
storm capacitor changes
keygenpie 0b10cfa
oops
keygenpie File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -679,6 +679,187 @@ | |
| KA.trigger_guard = TRIGGER_GUARD_NORMAL | ||
| ..() | ||
|
|
||
| //OCULIS EDIT ADDITION START - ANOMALY_KITS | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. move this to its own modular files please |
||
|
|
||
| //Blank PK modkit, able to be fit with an anomaly core | ||
| /obj/item/borg/upgrade/modkit/blank | ||
| name = "blank anomaly kit" | ||
| desc = "A specialized PK anomaly modkit. This one is currently empty, awaiting an anomaly core for completion." | ||
| cost = 10 | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykitempty" | ||
|
|
||
| /obj/item/borg/upgrade/modkit/blank/item_interaction(mob/living/user, obj/item/tool, list/modifiers) | ||
| . = ..() | ||
| var/static/list/anomaly_kit_types = list( | ||
| /obj/effect/anomaly/grav = /obj/item/borg/upgrade/modkit/cooldown/gravity, | ||
| /obj/effect/anomaly/weather = /obj/item/borg/upgrade/modkit/weather, | ||
| /obj/effect/anomaly/ectoplasm = /obj/item/borg/upgrade/modkit/ectoplasm, | ||
| /obj/effect/anomaly/bluespace = /obj/item/borg/upgrade/modkit/cooldown/bluespace, | ||
| /obj/effect/anomaly/bhole = /obj/item/borg/upgrade/modkit/vortex, | ||
| /obj/effect/anomaly/flux = /obj/item/borg/upgrade/modkit/flux, | ||
| /obj/effect/anomaly/bioscrambler = /obj/item/borg/upgrade/modkit/bioscrambler, | ||
| ) | ||
|
|
||
| if(istype(tool, /obj/item/assembly/signaler/anomaly)) | ||
| var/obj/item/assembly/signaler/anomaly/anomaly = tool | ||
| var/anomkit_path = is_path_in_list(anomaly.anomaly_type, anomaly_kit_types, TRUE) | ||
| if(!anomkit_path) | ||
| anomkit_path = /obj/item/borg/upgrade/modkit/cooldown/gravity //If an anomaly is inserted without a specifically coded modifier, give the gravity one so that the player isn't unrewarded | ||
| to_chat(user, span_notice("You insert [anomaly] into the modkit, and it gently hums to life.")) | ||
| new anomkit_path(get_turf(src)) | ||
| qdel(src) | ||
| qdel(anomaly) | ||
| return ITEM_INTERACT_SUCCESS | ||
|
|
||
| /datum/design/anomaly_mod | ||
| name = "Kinetic Accelerator Blank Anomaly Mod" | ||
| desc = "Ask Research to slot an anomaly core into this for a specialized proto-kinetic accelerator upgrade." | ||
| id = "anomalymod" | ||
| build_type = PROTOLATHE | AWAY_LATHE | ||
| materials = list( | ||
| /datum/material/iron =SHEET_MATERIAL_AMOUNT * 3, | ||
| /datum/material/glass =SHEET_MATERIAL_AMOUNT * 2, | ||
| /datum/material/silver =SHEET_MATERIAL_AMOUNT * 2, | ||
| /datum/material/gold =SHEET_MATERIAL_AMOUNT * 2, | ||
| /datum/material/uranium =SHEET_MATERIAL_AMOUNT, | ||
| /datum/material/diamond =SHEET_MATERIAL_AMOUNT, | ||
| ) | ||
| build_path = /obj/item/borg/upgrade/modkit/blank | ||
| category = list( | ||
| RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_PKA_MODS | ||
| ) | ||
| departmental_flags = DEPARTMENT_BITFLAG_CARGO | ||
|
|
||
| /obj/item/borg/upgrade/modkit/cooldown/gravity | ||
| name = "gravitic pulverizer" | ||
| desc = "A specialized PK anomaly modkit. This one vastly increases the weapon's damage at the cost of cooldown, as well as allowing it to knock targets back." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| modifier = -10 | ||
| cost = 35 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/cooldown/gravity/modify_projectile(obj/projectile/kinetic/K) | ||
| K.damage -= modifier * 5 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/cooldown/gravity/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/movable/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) | ||
| var/relative_direction = get_cardinal_dir(src, target) | ||
| var/atom/throw_target = get_edge_target_turf(target, relative_direction) | ||
| . = ..() | ||
| if(!QDELETED(target) && istype(target, /mob)) | ||
| var/whack_speed = (2) | ||
| target.throw_at(throw_target, 2, whack_speed, K, gentle = TRUE) | ||
|
|
||
| /obj/item/borg/upgrade/modkit/weather | ||
| name = "storm capacitor" | ||
| desc = "A specialized PK anomaly modkit. This one allows the weapon to call lightning from above, electrocuting targets." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| cost = 35 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/weather/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) | ||
| new /obj/effect/temp_visual/telegraphing/thunderbolt(target_turf) | ||
| addtimer(CALLBACK(src, PROC_REF(shock_turf), target_turf), 1 SECONDS) | ||
|
|
||
| /obj/item/borg/upgrade/modkit/weather/proc/shock_turf(turf/target) | ||
| playsound(target, 'sound/effects/magic/lightningbolt.ogg', 66, TRUE) | ||
| new /obj/effect/temp_visual/thunderbolt(target) | ||
| for(var/turf/open/adjacent_turf in oview(1, target)) | ||
| new /obj/effect/temp_visual/electricity(adjacent_turf) | ||
|
|
||
| for(var/mob/living/hit_mob in target) | ||
| to_chat(hit_mob, span_userdanger("You've been struck by lightning!")) | ||
| hit_mob.electrocute_act(30, src, flags = SHOCK_TESLA|SHOCK_NOSTUN) | ||
| hit_mob.Knockdown(1 SECONDS, 5 SECONDS) | ||
|
|
||
| for(var/mob/living/nearby_target in oview(1, target)) | ||
| to_chat(nearby_target, span_userdanger("You've been struck by an arc of lightning!")) | ||
| nearby_target.electrocute_act(10, src, flags = SHOCK_TESLA|SHOCK_NOSTUN) | ||
|
|
||
| for(var/obj/hit_thing in target) | ||
| hit_thing.take_damage(20, BURN, ENERGY, FALSE) | ||
|
|
||
| for(var/obj/nearby_thing in oview(1, target)) | ||
| nearby_thing.take_damage(10, BURN, ENERGY, FALSE) | ||
|
|
||
| /obj/item/borg/upgrade/modkit/ectoplasm | ||
| name = "poltergeist projector" | ||
| desc = "A specialized PK anomaly modkit. This one grants the weapon a chance to haunt nearby objects, throwing them at the target. Comes with a large range increase." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| cost = 35 | ||
| modifier = 3 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/ectoplasm/modify_projectile(obj/projectile/kinetic/K) | ||
| K.range += modifier | ||
|
|
||
| /obj/item/borg/upgrade/modkit/ectoplasm/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/movable/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) | ||
| if(!QDELETED(target) && istype(target, /mob)) | ||
| for(var/obj/item/throwable in view(modifier, target)) | ||
| if(prob(30)) | ||
| playsound(target_turf,'sound/effects/hallucinations/veryfar_noise.ogg', 50, TRUE) | ||
| var/relative_direction = get_cardinal_dir(throwable, target) | ||
| var/atom/throw_target = get_edge_target_turf(target, relative_direction) | ||
| var/whack_speed = (2) | ||
| throwable.throw_at(throw_target, modifier, whack_speed, K, gentle = TRUE) | ||
|
|
||
| /obj/item/borg/upgrade/modkit/cooldown/bluespace | ||
| name = "bluespace aberrator" | ||
| desc = "A specialized PK anomaly modkit. This one allows the weapon to chaotically teleport targets, alongside increased cooling rates." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| cost = 35 | ||
| modifier = 4 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/cooldown/bluespace/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/movable/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) | ||
| if(!QDELETED(target) && istype(target, /mob)) | ||
| do_teleport(target, target_turf, 1, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) | ||
|
|
||
| /obj/item/borg/upgrade/modkit/vortex | ||
| name = "vortex attractor" | ||
| desc = "A specialized PK anomaly modkit. This one allows the weapon to pull enemies in, along with an increase to force output." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| modifier = 10 | ||
| cost = 35 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/vortex/modify_projectile(obj/projectile/kinetic/K) | ||
| K.damage += modifier | ||
|
|
||
| /obj/item/borg/upgrade/modkit/vortex/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/movable/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) | ||
| var/relative_direction = get_cardinal_dir(target, src) | ||
| var/atom/throw_target = get_edge_target_turf(target, relative_direction) | ||
| . = ..() | ||
| if(!QDELETED(target) && istype(target, /mob)) | ||
| var/whack_speed = (2) | ||
| target.throw_at(throw_target, 2, whack_speed, K, gentle = TRUE) | ||
|
|
||
| /obj/item/borg/upgrade/modkit/flux | ||
| name = "flux charger" | ||
| desc = "A specialized PK anomaly modkit. This one gives the weapon a slight damage and range increase at no modularity cost. Push the limit." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| modifier = 10 | ||
| cost = 0 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/flux/modify_projectile(obj/projectile/kinetic/K) | ||
| K.damage += modifier | ||
| K.range += 1 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/bioscrambler | ||
| name = "genetic inducer" | ||
| desc = "A specialized PK anomaly modkit. This one allows the weapon to genetically batter its opponent, giving it a chance to deal critical internal damage." | ||
| icon = 'modular_oculis/modules/anomalykits/icons/obj/anomalykits.dmi' | ||
| icon_state = "anomalykit" | ||
| modifier = 20 | ||
| cost = 35 | ||
|
|
||
| /obj/item/borg/upgrade/modkit/bioscrambler/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/movable/target, obj/item/gun/energy/recharge/kinetic_accelerator/KA) | ||
| if(!QDELETED(target) && istype(target, /mob) && prob(modifier)) | ||
| playsound(target, 'sound/items/weapons/zapbang.ogg', 100, TRUE) | ||
| if(target.uses_integrity) | ||
| target.take_damage(60, BRUTE, ENERGY, FALSE) | ||
| //OCULIS EDIT ADDITION END | ||
|
|
||
| //Cosmetic | ||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.