Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/48x96.dmi
Binary file not shown.
2 changes: 1 addition & 1 deletion ModularTegustation/ego_weapons/melee/_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ GLOBAL_LIST_INIT(small_ego, list (
//EGO weapons
/obj/item/ego_weapon/ranged/pistol,
/obj/item/ego_weapon/mini,
/obj/item/ego_weapon/warp/knife,
/obj/item/ego_weapon/dimension_shredder,
/obj/item/ego_weapon/support/letter_opener,
/obj/item/ego_weapon/warring,
/obj/item/ego_weapon/feather,
Expand Down
105 changes: 71 additions & 34 deletions ModularTegustation/ego_weapons/melee/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1044,23 +1044,22 @@
T.throw_at(throw_target, range, whack_speed, firer, spin = FALSE)
return TRUE

/obj/item/ego_weapon/warp
name = "dimensional ripple"
desc = "They should've died after bleeding so much. You usually don't quarantine a corpse...."
/obj/item/ego_weapon/dimension_shredder
name = "dimension shredder"
desc = "The path is intent on thwarting all attempts to memorize it."
special = "This weapon builds charge every 10 steps you've taken."
icon_state = "warp2"
force = 16 //Spears get increased damage, but this one has an ability
lefthand_file = 'icons/mob/inhands/weapons/ego_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/ego_righthand.dmi'
inhand_x_dimension = 32
inhand_y_dimension = 32
hitsound = 'sound/abnormalities/wayward_passenger/attack1.ogg'
reach = 2
stuntime = 5 //Longer reach, gives you a short stun.
icon_state = "warp"
lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
inhand_x_dimension = 64
inhand_y_dimension = 64
force = 13
hitsound = 'sound/abnormalities/wayward_passenger/attack2.ogg'
damtype = RED_DAMAGE
swingstyle = WEAPONSWING_LARGESWEEP
attack_speed = 0.8
attack_verb_continuous = list("stabs", "slashes", "attacks")
attack_verb_simple = list("stab", "slash", "attack")
hitsound = 'sound/abnormalities/wayward_passenger/attack2.ogg'
attribute_requirements = list(
JUSTICE_ATTRIBUTE = 40
)
Expand All @@ -1070,35 +1069,40 @@
charge_cost = 10
var/accumulated_charge = 0
charge_effect = "Teleport and create a temporary two-way portal."
ability_type = ABILITY_UNIQUE
successfull_activation = "You will now create a dimensional rift at your target!"
cancel_activation = "You will no longer teleport through a rift."
failed_activation = "You fail to produce a dimensional rift."


var/current_holder

/obj/item/ego_weapon/warp/equipped(mob/living/carbon/human/user, slot)
/obj/item/ego_weapon/dimension_shredder/equipped(mob/living/carbon/human/user, slot)
. = ..()
if(!user)
return
RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(UserMoved))
current_holder = user

/obj/item/ego_weapon/warp/Destroy(mob/user)
/obj/item/ego_weapon/dimension_shredder/Destroy(mob/user)
if(!user)
return ..()
UnregisterSignal(current_holder, COMSIG_MOVABLE_MOVED)
current_holder = null
return ..()

/obj/item/ego_weapon/warp/dropped(mob/user)
/obj/item/ego_weapon/dimension_shredder/dropped(mob/user)
. = ..()
if(!user)
return
UnregisterSignal(current_holder, COMSIG_MOVABLE_MOVED)
UnregisterSignal(current_holder, COMSIG_MOVABLE_MOVED)//these cause runtimes
current_holder = null

/obj/item/ego_weapon/warp/proc/UserMoved()
/obj/item/ego_weapon/dimension_shredder/proc/UserMoved()
SIGNAL_HANDLER
HandleCharge(0.1)

/obj/item/ego_weapon/warp/afterattack(atom/target, mob/living/user, proximity_flag, clickparams)
/obj/item/ego_weapon/dimension_shredder/afterattack(atom/target, mob/living/user, proximity_flag, clickparams)
if(!CanUseEgo(user))
to_chat(user, span_notice("You cannot use this!"))
return
Expand All @@ -1124,7 +1128,7 @@
P2.link_portal(P1)
P1.teleport(user)

/obj/item/ego_weapon/warp/HandleCharge(added_charge) // Proc override so that charge icon appears every 1 charge gained
/obj/item/ego_weapon/dimension_shredder/HandleCharge(added_charge) // Proc override so that charge icon appears every 1 charge gained
if(charge_amount < 0) // ???
charge_amount = initial(charge_amount)
CRASH("[src] has somehow aquired a negative charge amount, automatically reset it to the initial charge amount")
Expand All @@ -1144,26 +1148,59 @@
teleport_channel = TELEPORT_CHANNEL_FREE

/obj/effect/portal/warp/Crossed(atom/movable/AM, oldloc, force_stop = 0)
playsound(src, 'sound/abnormalities/wayward_passenger/teleport2.ogg', 50, TRUE)//doesn't work
playsound(src, 'sound/abnormalities/wayward_passenger/teleport2.ogg', 50, TRUE)
..()

/obj/effect/portal/warp/Initialize()
QDEL_IN(src, 3 SECONDS)
return ..()

/obj/item/ego_weapon/warp/knife // knife subtype of the above. knife has to be the subtype because it fits in a belt
name = "dimension shredder"
desc = "The path is intent on thwarting all attempts to memorize it."
icon_state = "warp"
lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
inhand_x_dimension = 64
inhand_y_dimension = 64
force = 13
swingstyle = WEAPONSWING_LARGESWEEP
attack_speed = 0.8
reach = 1
stuntime = 0
/obj/item/ego_weapon/dimension_spear
name = "dimension shredder MK II"
desc = "They should've died after bleeding so much. You usually don't quarantine a corpse...."
icon_state = "warp2"
force = 20
reach = 2
stuntime = 5 //Longer reach, gives you a short stun.
attack_verb_continuous = list("stabs", "slashes", "attacks")
attack_verb_simple = list("stab", "slash", "attack")
hitsound = 'sound/abnormalities/wayward_passenger/attack1.ogg'
attribute_requirements = list(
JUSTICE_ATTRIBUTE = 40
)

charge = TRUE
charge_cost = 0
charge_effect = "Dump all charge into a distant strike. Performs an additional attack for every 2 charge spent."
ability_type = ABILITY_UNIQUE
successfull_activation = "You will now cleave your target through a rift!"
cancel_activation = "You will no longer attack your target through a rift."
failed_activation = "You fail to produce a dimensional rift."

/obj/item/ego_weapon/dimension_spear/afterattack(atom/target, mob/living/user, proximity_flag, clickparams)
if(!CanUseEgo(user))
to_chat(user, span_notice("You cannot use this!"))
return
if(!currently_charging)
return
if(!proximity_flag)
currently_charging = FALSE
ChargeAttack(target, user)

/obj/item/ego_weapon/dimension_spear/ChargeAttack(mob/living/target, mob/living/user)
if(!isliving(target))
return
var/mob/living/carbon/human/H = user
var/justice_mod = 1 + (get_modified_attribute_level(H, JUSTICE_ATTRIBUTE)/100)
var/hit_damage = ((force * justice_mod)/2)
for(charge_amount, charge_amount >= 0, charge_amount -= 2)
var/turf/T = get_turf(target)
playsound(src, 'sound/abnormalities/wayward_passenger/attack2.ogg', 50, TRUE)
new /obj/effect/temp_visual/dimshredder_in(get_turf(src))
new /obj/effect/temp_visual/dimshredder_out(T)
user.HurtInTurf(T, list(), hit_damage, RED_DAMAGE, check_faction = TRUE)
sleep(0.1 SECONDS)
charge_amount = 0

/obj/item/ego_weapon/marionette
name = "marionette"
Expand Down
12 changes: 6 additions & 6 deletions code/datums/abnormality/_ego_datum/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -336,18 +336,18 @@
cost = 35

//Wayward Passenger - Dimension Shredder
/datum/ego_datum/armor/warp
item_path = /obj/item/clothing/suit/armor/ego_gear/he/warp
/datum/ego_datum/armor/dimension_shredder
item_path = /obj/item/clothing/suit/armor/ego_gear/he/dimension_shredder
cost = 35

/datum/ego_datum/weapon/warp
/datum/ego_datum/weapon/dimension_shredder
item_category = "Weapon (Knife)"
item_path = /obj/item/ego_weapon/warp/knife
item_path = /obj/item/ego_weapon/dimension_shredder
cost = 35

/datum/ego_datum/weapon/warp/spear
/datum/ego_datum/weapon/dimension_spear
item_category = "Weapon (Spear)"
item_path = /obj/item/ego_weapon/warp
item_path = /obj/item/ego_weapon/dimension_spear
cost = 35

//Missed Reaper - Grasp
Expand Down
31 changes: 31 additions & 0 deletions code/game/objects/effects/temporary_visuals/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1121,3 +1121,34 @@
icon = 'ModularTegustation/Teguicons/32x32.dmi'
icon_state = "seasons_wisp_death"
duration = 15

/obj/effect/temp_visual/dimshredder_in
icon = 'ModularTegustation/Teguicons/32x32.dmi'
icon_state = "ripper_in"
duration = 20
pixel_y = 10
pixel_x = 20

/obj/effect/temp_visual/dimshredder_in/Initialize()
. = ..()
var/matrix/M = matrix()
if(prob(50))
pixel_x = -20
transform = M.Turn(rand(-30, -90))
else
transform = M.Turn(rand(30, 90))
animate(src, transform = transform, time = 2)

/obj/effect/temp_visual/dimshredder_out
icon = 'ModularTegustation/Teguicons/32x32.dmi'
icon_state = "ripper_out"
duration = 20
layer = ABOVE_MOB_LAYER

/obj/effect/temp_visual/dimshredder_out/Initialize()
. = ..()
var/matrix/M = matrix()
pixel_y = rand(10, 30)
transform = M.Turn(180)
transform = M.Turn(rand(-60, 60))
animate(src, transform = transform, time = 2)
2 changes: 1 addition & 1 deletion code/modules/clothing/suits/ego_gear/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@
JUSTICE_ATTRIBUTE = 40
)

/obj/item/clothing/suit/armor/ego_gear/he/warp
/obj/item/clothing/suit/armor/ego_gear/he/dimension_shredder
name = "dimension shredder"
desc = "I thought WARP trains were supposed to arrive in just ten seconds?"
icon_state = "warp"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
/obj/item/clothing/suit/armor/ego_gear/he/logging = /obj/item/clothing/suit/armor/ego_gear/realization/empathy,
/obj/item/clothing/suit/armor/ego_gear/he/courage = /obj/item/clothing/suit/armor/ego_gear/realization/valor,
/obj/item/clothing/suit/armor/ego_gear/he/homing_instinct = /obj/item/clothing/suit/armor/ego_gear/realization/home,
/obj/item/clothing/suit/armor/ego_gear/he/warp = /obj/item/clothing/suit/armor/ego_gear/realization/dimension_ripper,
/obj/item/clothing/suit/armor/ego_gear/he/dimension_shredder = /obj/item/clothing/suit/armor/ego_gear/realization/dimension_ripper,
// WAW
/obj/item/clothing/suit/armor/ego_gear/waw/goldrush = /obj/item/clothing/suit/armor/ego_gear/realization/goldexperience,
/obj/item/clothing/suit/armor/ego_gear/waw/despair = /obj/item/clothing/suit/armor/ego_gear/realization/quenchedblood,
Expand Down
Loading
Loading