-
Notifications
You must be signed in to change notification settings - Fork 262
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
176 additions
and
3 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 2 additions & 2 deletions
4
monkestation/code/modules/new_antagonists/slasher/abilities/_slasher_base.dm
This file contains 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 |
---|---|---|
@@ -1,13 +1,13 @@ | ||
/datum/action/cooldown/slasher | ||
name = "Slasher Possession" | ||
desc = "You've been possessed by the Slasher" | ||
button_icon = 'goon/icons/mob/slasher.dmi' | ||
background_icon = 'goon/icons/mob/slasher.dmi' | ||
background_icon_state = "slasher_background" | ||
button_icon = 'goon/icons/mob/slasher.dmi' | ||
button_icon_state = "slasher_template" | ||
buttontooltipstyle = "cult" | ||
transparent_when_unavailable = TRUE | ||
|
||
click_to_activate = FALSE | ||
|
||
/datum/action/cooldown/slasher/IsAvailable(feedback = FALSE) | ||
return next_use_time <= world.time |
This file contains 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
54 changes: 54 additions & 0 deletions
54
monkestation/code/modules/new_antagonists/slasher/abilities/recall_machette.dm
This file contains 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 |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/datum/action/cooldown/slasher/summon_machette | ||
name = "Summon Machette" | ||
desc = "Summon your machete to your active hand, or create one if it doesn't exist. This machete deals 15 BRUTE on hit, and stuns on throw." | ||
|
||
button_icon_state = "summon_machete" | ||
|
||
cooldown_time = 15 SECONDS | ||
|
||
var/obj/item/slasher_machette/stored_machette | ||
|
||
|
||
/datum/action/cooldown/slasher/summon_machette/Destroy() | ||
. = ..() | ||
qdel(stored_machette) | ||
stored_machette = null | ||
|
||
/datum/action/cooldown/slasher/summon_machette/Activate(atom/target) | ||
. = ..() | ||
if(!stored_machette) | ||
stored_machette = new /obj/item/slasher_machette | ||
var/datum/antagonist/slasher/slasherdatum = owner.mind.has_antag_datum(/datum/antagonist/slasher) | ||
if(!slasherdatum) | ||
return | ||
slasherdatum.linked_machette = stored_machette | ||
|
||
if(!owner.put_in_hands(stored_machette)) | ||
stored_machette.forceMove(get_turf(owner)) | ||
|
||
/obj/item/slasher_machette | ||
name = "slasher's machete" | ||
desc = "An old machete, clearly showing signs of wear and tear due to its age." | ||
|
||
icon = 'goon/icons/obj/items/weapons.dmi' | ||
icon_state = "welder_machete" | ||
hitsound = 'goon/sounds/impact_sounds/Flesh_Cut_1.ogg' | ||
|
||
inhand_icon_state = "PKMachete0" | ||
lefthand_file = 'monkestation/icons/mob/inhands/weapons/melee_lefthand.dmi' | ||
righthand_file = 'monkestation/icons/mob/inhands/weapons/melee_righthand.dmi' | ||
|
||
force = 15 //damage increases by 2.5 for every soul they take | ||
throwforce = 15 //damage goes up by 2.5 for every soul they take | ||
|
||
sharpness = SHARP_EDGED | ||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | ||
|
||
|
||
/obj/item/slasher_machette/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) | ||
. = ..() | ||
if(iscarbon(hit_atom)) | ||
var/mob/living/carbon/hit_carbon = hit_atom | ||
hit_carbon.blood_volume -= throwforce | ||
hit_carbon.Knockdown(1.5 SECONDS) | ||
playsound(src, 'goon/sounds/impact_sounds/Flesh_Stab_3.ogg', 25, 1) |
14 changes: 14 additions & 0 deletions
14
monkestation/code/modules/new_antagonists/slasher/abilities/slasher_regenerate.dm
This file contains 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 |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/datum/action/cooldown/slasher/regenerate | ||
name = "Regenerate" | ||
desc = "Quickly regenerate your being, restoring most if not all lost health, repairing wounds, and removing all stuns." | ||
|
||
button_icon_state = "regenerate" | ||
|
||
cooldown_time = 75 SECONDS | ||
|
||
|
||
/datum/action/cooldown/slasher/regenerate/Activate(atom/target) | ||
. = ..() | ||
if(isliving(target)) | ||
var/mob/living/mob_target = target | ||
mob_target.set_timed_status_effect(5 SECONDS, /datum/status_effect/bloody_heal) // should heal most damage over 5 seconds |
50 changes: 50 additions & 0 deletions
50
monkestation/code/modules/new_antagonists/slasher/abilities/soul_steal.dm
This file contains 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 |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/mob/living/carbon/human | ||
/// Has our soul been sucked, this makes us pale white. | ||
var/soul_sucked = FALSE | ||
///sucked precent | ||
var/sucked_precent = 0 | ||
|
||
/datum/action/cooldown/slasher/soul_steal | ||
name = "Soul Steal" | ||
desc = " Use on a corpse who has a full soul to steal theirs. Stealing a soul gives your current machete an extra 2.5 BRUTE on hit, and on throw." | ||
|
||
button_icon_state = "soul_steal" | ||
|
||
click_to_activate = TRUE | ||
|
||
cooldown_time = 15 SECONDS | ||
|
||
/datum/action/cooldown/slasher/soul_steal/PreActivate(atom/target) | ||
. = ..() | ||
var/mob/living/human_target = target | ||
if(human_target.stat != DEAD) | ||
to_chat(owner, span_notice("This target is not dead. You can't steal their soul.")) | ||
if(human_target.soul_sucked) | ||
to_chat(owner, span_warning("Their soul has already been sucked.")) | ||
if(!human_target.mind) | ||
to_chat(owner, span_warning("This target doesn't seem to have a soul to suck.")) | ||
|
||
/datum/action/cooldown/slasher/soul_steal/Activate(atom/target) | ||
. = ..() | ||
if(!ishuman(target)) | ||
return | ||
var/mob/living/carbon/human/human_owner = owner | ||
var/mob/living/carbon/human/human_target = target | ||
while(do_after(owner, 1 SECONDS, target) && !human_target.soul_sucked) | ||
human_target.sucked_precent += 20 | ||
if(human_target.sucked_precent >= 100) | ||
human_target.soul_sucked = TRUE | ||
if(human_target.dna.species.use_skintones) | ||
human_target.skin_tone = "albino" | ||
human_target.dna.update_ui_block(DNA_SKIN_TONE_BLOCK) | ||
else | ||
human_target.dna.features["mcolor"] = "#FFFFFF" | ||
human_target.dna.update_uf_block(DNA_MUTANT_COLOR_BLOCK) | ||
|
||
affected_human.update_body(is_creating = TRUE) | ||
|
||
var/datum/antagonist/slasher/slasherdatum = human_owner.mind.has_antag_datum(/datum/antagonist/slasher) | ||
if(!slasherdatum) | ||
return | ||
slasherdatum.linked_machette.force += 2.5 | ||
slasherdatum.linked_machette.throwforce += 2.5 |
27 changes: 27 additions & 0 deletions
27
monkestation/code/modules/new_antagonists/slasher/slasher_datum.dm
This file contains 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 |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/datum/antagonist/slasher | ||
name = "\improper Slasher" | ||
show_in_antagpanel = TRUE | ||
roundend_category = "slashers" | ||
antagpanel_category = "Slasher" | ||
job_rank = ROLE_SLASHER | ||
antag_hud_name = "slasher" | ||
show_name_in_check_antagonists = TRUE | ||
hud_icon = 'monkestation/icons/mob/slasher.dmi' | ||
|
||
var/obj/item/slasher_machette/linked_machette | ||
|
||
/datum/antagonist/slasher/apply_innate_effects(mob/living/mob_override) | ||
. = ..() | ||
var/mob/living/current_mob = mob_override || owner.current | ||
|
||
ADD_TRAIT(current_mob, TRAIT_BATON_RESISTANCE, "slasher") | ||
|
||
///abilities galore | ||
var/datum/action/cooldown/slasher/summon_machette/machete = new | ||
machete.Grant(current_mob) | ||
var/datum/action/cooldown/slasher/blood_walk/blood_walk = new | ||
blood_walk.Grant(current_mob) | ||
var/datum/action/cooldown/slasher/incorporealize/incorporealize = new | ||
incorporealize.Grant(current_mob) | ||
var/datum/action/cooldown/slasher/soul_steal/soul_steal = new | ||
soul_steal.Grant(current_mob) |
Binary file not shown.
This file contains 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