Merge pull request #14160 from keronshb/motivation
Adds a new traitor item, Motivation (Part 1)
This commit is contained in:
@@ -378,6 +378,12 @@
|
||||
icon_state = "shieldsparkles"
|
||||
duration = 6
|
||||
|
||||
/obj/effect/temp_visual/impact_effect/judgement_cut
|
||||
name = "judgement cut impact"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "impact_judgement"
|
||||
duration = 6
|
||||
|
||||
/obj/effect/temp_visual/heart
|
||||
name = "heart"
|
||||
icon = 'icons/mob/animal.dmi'
|
||||
@@ -535,3 +541,7 @@
|
||||
/obj/effect/temp_visual/slime_puddle/reverse
|
||||
icon_state = "from_puddle"
|
||||
duration = 7
|
||||
|
||||
/obj/effect/temp_visual/gib_animation
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
duration = 15
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
/obj/item/ammo_casing/magic/spellblade
|
||||
projectile_type = /obj/item/projectile/magic/spellblade
|
||||
|
||||
/obj/item/ammo_casing/magic/judgement_cut
|
||||
projectile_type = /obj/item/projectile/judgement_cut
|
||||
|
||||
/obj/item/ammo_casing/magic/arcane_barrage
|
||||
projectile_type = /obj/item/projectile/magic/arcane_barrage
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
/obj/item/gun/magic/staff/motivation
|
||||
name = "Motivation"
|
||||
desc = "Rumored to have the ability to open up a portal the depths of Lavaland."
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "motivation"
|
||||
item_state = "motivation"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
||||
fire_sound = 'sound/weapons/judgementhit.ogg'
|
||||
ammo_type = /obj/item/ammo_casing/magic/judgement_cut
|
||||
force = 20 //so it's worth that 20 tc
|
||||
armour_penetration = 50
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
sharpness = SHARP_EDGED
|
||||
max_integrity = 200
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
max_charges = 3
|
||||
recharge_rate = 5
|
||||
var/datum/action/judgement_cut/judgementcut = new/datum/action/judgement_cut()
|
||||
block_parry_data = /datum/block_parry_data/motivation
|
||||
|
||||
//to get this to toggle correctly
|
||||
/obj/item/gun/magic/staff/motivation/Initialize()
|
||||
. = ..()
|
||||
judgementcut = new(src)
|
||||
|
||||
//lets the user know that their judgment cuts are recharging
|
||||
/obj/item/gun/magic/staff/motivation/shoot_with_empty_chamber(mob/living/user as mob|obj)
|
||||
to_chat(user, "<span class='warning'>Judgment Cut is recharging.</span>")
|
||||
|
||||
//action button to toggle judgement cuts on/off
|
||||
/datum/action/judgement_cut
|
||||
name = "Judgement Cut - Allows Motivation to slash at a longer distance."
|
||||
icon_icon = 'icons/obj/projectiles.dmi'
|
||||
button_icon_state = "judgement_fire"
|
||||
var/judgement_toggled = TRUE
|
||||
|
||||
//lets the user know that you toggled them on/off
|
||||
/datum/action/judgement_cut/Trigger()
|
||||
judgement_toggled = !judgement_toggled
|
||||
to_chat(owner, "<span class='notice'>You [judgement_toggled ? "enable" : "disable"] Judgement Cuts with Motivation.</span>")
|
||||
|
||||
//Prevents "firing" the judgement cuts if toggled off and lets the user know
|
||||
/obj/item/gun/magic/staff/motivation/can_trigger_gun(mob/living/user)
|
||||
. = ..()
|
||||
if(!judgementcut.judgement_toggled)
|
||||
to_chat(user, "<span class='notice'> Judgment Cut is disabled.</span>")
|
||||
return FALSE
|
||||
|
||||
//adds/removes judgement cut and judgement cut end upon pickup/drop
|
||||
/obj/item/gun/magic/staff/motivation/pickup(mob/living/user)
|
||||
. = ..()
|
||||
judgementcut.Grant(user, src)
|
||||
user.update_icons()
|
||||
playsound(src, 'sound/items/unsheath.ogg', 25, 1)
|
||||
|
||||
/obj/item/gun/magic/staff/motivation/dropped(mob/user)
|
||||
. = ..()
|
||||
judgementcut.Remove(user)
|
||||
user.update_icons()
|
||||
|
||||
//A parry tight enough to stagger, but not to counter attack
|
||||
/datum/block_parry_data/motivation
|
||||
parry_time_windup = 0.5
|
||||
parry_time_active = 5
|
||||
parry_time_spindown = 0
|
||||
parry_attack_types = ALL
|
||||
parry_time_active_visual_override = 3
|
||||
parry_time_spindown_visual_override = 2
|
||||
parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING
|
||||
parry_time_perfect = 0
|
||||
parry_time_perfect_leeway = 3
|
||||
parry_time_perfect_leeway_override = list(
|
||||
TEXT_ATTACK_TYPE_PROJECTILE = 1
|
||||
)
|
||||
parry_imperfect_falloff_percent_override = list(
|
||||
TEXT_ATTACK_TYPE_PROJECTILE = 50 // useless after 3rd decisecond
|
||||
)
|
||||
parry_imperfect_falloff_percent = 30
|
||||
parry_efficiency_to_counterattack = 100
|
||||
parry_efficiency_considered_successful = 1
|
||||
parry_efficiency_perfect = 100
|
||||
parry_data = list(
|
||||
PARRY_STAGGER_ATTACKER = 10
|
||||
)
|
||||
parry_failed_stagger_duration = 2 SECONDS
|
||||
parry_failed_clickcd_duration = CLICK_CD_RANGE
|
||||
parry_cooldown = 0
|
||||
@@ -0,0 +1,15 @@
|
||||
/obj/item/projectile/judgement_cut
|
||||
name = "judgement cut"
|
||||
icon_state = "judgement_fire"
|
||||
hitsound = 'sound/weapons/judgementfire.ogg'
|
||||
damage = 10
|
||||
damage_type = BRUTE
|
||||
range = 30
|
||||
is_reflectable = FALSE
|
||||
sharpness = SHARP_EDGED
|
||||
impact_effect_type = /obj/effect/temp_visual/impact_effect/judgement_cut
|
||||
|
||||
/obj/item/projectile/judgement_cut/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
if(ishuman(target))
|
||||
new /obj/effect/temp_visual/impact_effect/judgement_cut(src)
|
||||
@@ -286,3 +286,13 @@
|
||||
item = /obj/item/gun/ballistic/automatic/toy/pistol/riot
|
||||
cost = 3
|
||||
surplus = 10
|
||||
|
||||
/datum/uplink_item/dangerous/motivation
|
||||
name = "Motivation"
|
||||
desc = "An ancient blade said to have ties with Lavaland's most inner demons. \
|
||||
Allows you to cut from a far distance!"
|
||||
item = /obj/item/gun/magic/staff/motivation
|
||||
cost = 20
|
||||
player_minimum = 20
|
||||
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs)
|
||||
cant_discount = TRUE
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 888 KiB After Width: | Height: | Size: 888 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 130 KiB |
Binary file not shown.
Binary file not shown.
@@ -3131,6 +3131,7 @@
|
||||
#include "code\modules\projectiles\guns\energy\pulse.dm"
|
||||
#include "code\modules\projectiles\guns\energy\special.dm"
|
||||
#include "code\modules\projectiles\guns\energy\stun.dm"
|
||||
#include "code\modules\projectiles\guns\magic\motivation.dm"
|
||||
#include "code\modules\projectiles\guns\magic\spell_book.dm"
|
||||
#include "code\modules\projectiles\guns\magic\staff.dm"
|
||||
#include "code\modules\projectiles\guns\magic\wand.dm"
|
||||
@@ -3176,6 +3177,7 @@
|
||||
#include "code\modules\projectiles\projectile\special\gravity.dm"
|
||||
#include "code\modules\projectiles\projectile\special\hallucination.dm"
|
||||
#include "code\modules\projectiles\projectile\special\ion.dm"
|
||||
#include "code\modules\projectiles\projectile\special\judgement_cut.dm"
|
||||
#include "code\modules\projectiles\projectile\special\meteor.dm"
|
||||
#include "code\modules\projectiles\projectile\special\mindflayer.dm"
|
||||
#include "code\modules\projectiles\projectile\special\neurotoxin.dm"
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user