diff --git a/code/datums/abnormality/_ego_datum/aleph.dm b/code/datums/abnormality/_ego_datum/aleph.dm index 28beb5f54f20..cc87d2ac2ba9 100644 --- a/code/datums/abnormality/_ego_datum/aleph.dm +++ b/code/datums/abnormality/_ego_datum/aleph.dm @@ -174,3 +174,12 @@ /datum/ego_datum/weapon/iron_maiden item_path = /obj/item/ego_weapon/iron_maiden cost = 1000 + +//Nobody Is - Mockery +/datum/ego_datum/armor/mockery + item_path = /obj/item/clothing/suit/armor/ego_gear/aleph/mockery + cost = 100 + +/datum/ego_datum/weapon/mockery + item_path = /obj/item/ego_weapon/mockery + cost = 100 diff --git a/code/datums/abnormality/_ego_datum/teth.dm b/code/datums/abnormality/_ego_datum/teth.dm index 973eccef8703..50638963a074 100644 --- a/code/datums/abnormality/_ego_datum/teth.dm +++ b/code/datums/abnormality/_ego_datum/teth.dm @@ -209,6 +209,10 @@ item_path = /obj/item/clothing/suit/armor/ego_gear/teth/curfew cost = 20 +/datum/ego_datum/weapon/curfew + item_path = /obj/item/ego_weapon/lance/curfew + cost = 20 + //Lady facing the Wall - Wedge /datum/ego_datum/armor/wedge item_path = /obj/item/clothing/suit/armor/ego_gear/teth/wedge diff --git a/code/game/objects/items/ego_weapons/aleph.dm b/code/game/objects/items/ego_weapons/aleph.dm index c72a29af3814..a8b8a7b32b3c 100644 --- a/code/game/objects/items/ego_weapons/aleph.dm +++ b/code/game/objects/items/ego_weapons/aleph.dm @@ -1131,3 +1131,113 @@ if(B.safety) user.remove_status_effect(STATUS_EFFECT_LCBURN) +/obj/item/ego_weapon/mockery + name = "mockery" + desc = "...If I earned a name, will I get to receive love and hate from you? \ + Will you remember me as that name, as someone whom you cared for?" + special = "Use this weapon in hand to swap between forms. The whip has higher reach, the hammer deals damage in an area, and the bat knocks back enemies." + icon_state = "mockery_whip" + force = 35 + attack_speed = 0.5 + reach = 3 + damtype = BLACK_DAMAGE + armortype = BLACK_DAMAGE + attack_verb_continuous = list("lacerates", "disciplines") + attack_verb_simple = list("lacerate", "discipline") + hitsound = 'sound/weapons/whip.ogg' + attribute_requirements = list( + FORTITUDE_ATTRIBUTE = 100, + PRUDENCE_ATTRIBUTE = 80, + TEMPERANCE_ATTRIBUTE = 80, + JUSTICE_ATTRIBUTE = 80 + ) + var/mob/current_holder + var/form = "whip" + var/list/weapon_list = list( + "whip" = list(35, 0.5, 3, list("lacerates", "disciplines"), list("lacerate", "discipline"), 'sound/weapons/whip.ogg'), + "sword" = list(80, 1, 1, list("tears", "slices", "mutilates"), list("tear", "slice","mutilate"), 'sound/weapons/fixer/generic/blade4.ogg'), + "hammer" = list(40, 1.4, 1, list("crushes"), list("crush"), 'sound/weapons/fixer/generic/baton2.ogg'), + "bat" = list(120, 1.4, 1, list("bludgeons", "bashes"), list("bludgeon", "bash"), 'sound/weapons/fixer/generic/gen1.ogg') + ) + +/obj/item/ego_weapon/mockery/Initialize() + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/ego_weapon/mockery/attack_self(mob/user) + . = ..() + if(!CanUseEgo(user)) + return + SwitchForm(user) + +/obj/item/ego_weapon/mockery/equipped(mob/user, slot) + . = ..() + if(!user) + return + current_holder = user + +/obj/item/ego_weapon/mockery/dropped(mob/user) + . = ..() + current_holder = null + +/obj/item/ego_weapon/mockery/attack(mob/living/target, mob/living/carbon/human/user) + . = ..() + if(!.) + return FALSE + switch(form) + if("bat") + var/atom/throw_target = get_edge_target_turf(target, user.dir) + if(!target.anchored) + var/whack_speed = (prob(60) ? 1 : 4) + target.throw_at(throw_target, rand(1, 2), whack_speed, user) + if("hammer") + for(var/mob/living/L in view(2, target)) + var/aoe = force + var/userjust = (get_modified_attribute_level(user, JUSTICE_ATTRIBUTE)) + var/justicemod = 1 + userjust/100 + aoe*=justicemod + if(user.faction_check_mob(L)) + continue + L.apply_damage(aoe, BLACK_DAMAGE, null, L.run_armor_check(null, BLACK_DAMAGE), spread_damage = TRUE) + new /obj/effect/temp_visual/small_smoke/halfsecond(get_turf(L)) + +/obj/item/ego_weapon/mockery/get_clamped_volume() + return 40 + +// Radial menu +/obj/item/ego_weapon/mockery/proc/SwitchForm(mob/user) + var/list/armament_icons = list( + "whip" = image(icon = src.icon, icon_state = "mockery_whip"), + "sword" = image(icon = src.icon, icon_state = "mockery_sword"), + "hammer" = image(icon = src.icon, icon_state = "mockery_hammer"), + "bat" = image(icon = src.icon, icon_state = "mockery_bat") + ) + armament_icons = sortList(armament_icons) + var/choice = show_radial_menu(user, src , armament_icons, custom_check = CALLBACK(src, .proc/CheckMenu, user), radius = 42, require_near = TRUE) + if(!choice || !CheckMenu(user)) + return + form = choice + Transform() + +/obj/item/ego_weapon/mockery/proc/CheckMenu(mob/user) + if(!istype(user)) + return FALSE + if(QDELETED(src)) + return FALSE + if(user.incapacitated() || !user.is_holding(src)) + return FALSE + return TRUE + +/obj/item/ego_weapon/mockery/proc/Transform() + icon_state = "mockery_[form]" + update_icon_state() + if(current_holder) + to_chat(current_holder,"[src] suddenly transforms!") + current_holder.update_inv_hands() + current_holder.playsound_local(current_holder, 'sound/effects/blobattack.ogg', 75, FALSE) + force = weapon_list[form][1] + attack_speed = weapon_list[form][2] + reach = weapon_list[form][3] + attack_verb_continuous = weapon_list[form][4] + attack_verb_simple = weapon_list[form][5] + hitsound = weapon_list[form][6] diff --git a/code/game/objects/items/ego_weapons/teth.dm b/code/game/objects/items/ego_weapons/teth.dm index ca7a4a077521..ffd42350980d 100644 --- a/code/game/objects/items/ego_weapons/teth.dm +++ b/code/game/objects/items/ego_weapons/teth.dm @@ -544,3 +544,19 @@ var/whack_speed = (prob(60) ? 1 : 4) target.throw_at(throw_target, rand(1, 2), whack_speed, user) +/obj/item/ego_weapon/lance/curfew + name = "curfew" + desc = "The thing itself had never forgotten its glory days." + icon_state = "curfew" + lefthand_file = 'icons/mob/inhands/96x96_lefthand.dmi' + righthand_file = 'icons/mob/inhands/96x96_righthand.dmi' + inhand_x_dimension = 96 + inhand_y_dimension = 96 + force = 22 + reach = 2 //Has 2 Square Reach. + attack_speed = 1.8// really slow + damtype = WHITE_DAMAGE + armortype = WHITE_DAMAGE + attack_verb_continuous = list("bludgeons", "whacks") + attack_verb_simple = list("bludgeon", "whack") + hitsound = 'sound/weapons/fixer/generic/spear2.ogg' diff --git a/code/modules/clothing/suits/ego_gear/aleph.dm b/code/modules/clothing/suits/ego_gear/aleph.dm index a607ad270100..12f45576ce4b 100644 --- a/code/modules/clothing/suits/ego_gear/aleph.dm +++ b/code/modules/clothing/suits/ego_gear/aleph.dm @@ -152,10 +152,10 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ name = "mockery" desc = "It's smug aura is almost mocking you." icon_state = "mockery" - armor = list(RED_DAMAGE = 60, WHITE_DAMAGE = 60, BLACK_DAMAGE = 60, PALE_DAMAGE = 60) + armor = list(RED_DAMAGE = 70, WHITE_DAMAGE = 30, BLACK_DAMAGE = 80, PALE_DAMAGE = 60) // 240 attribute_requirements = list( FORTITUDE_ATTRIBUTE = 80, - PRUDENCE_ATTRIBUTE = 80, + PRUDENCE_ATTRIBUTE = 100, TEMPERANCE_ATTRIBUTE = 80, JUSTICE_ATTRIBUTE = 80 ) diff --git a/code/modules/mob/living/carbon/human/ego_gifts.dm b/code/modules/mob/living/carbon/human/ego_gifts.dm index fe9e02f03bde..8a8973a29023 100644 --- a/code/modules/mob/living/carbon/human/ego_gifts.dm +++ b/code/modules/mob/living/carbon/human/ego_gifts.dm @@ -468,6 +468,13 @@ justice_bonus = 1 slot = HAND_1 +/datum/ego_gifts/curfew + name = "Curfew" + icon_state = "curfew" + fortitude_bonus = -1 + prudence_bonus = 4 + slot = HAND_1 + /// All HE EGO Gifts /datum/ego_gifts/loggging name = "Logging" @@ -1231,6 +1238,13 @@ justice_bonus = 2 slot = BROOCH +/datum/ego_gifts/mockery + name = "Mockery" + icon_state = "mockery" + fortitude_bonus = 5 + prudence_bonus = 5 + slot = HAND_1 + /// All Event EGO Gifts /datum/ego_gifts/twilight name = "Twilight" diff --git a/icons/mob/clothing/ego_gear/ego_gifts.dmi b/icons/mob/clothing/ego_gear/ego_gifts.dmi index b800ae74eac0..376976ab087c 100644 Binary files a/icons/mob/clothing/ego_gear/ego_gifts.dmi and b/icons/mob/clothing/ego_gear/ego_gifts.dmi differ diff --git a/icons/mob/inhands/96x96_lefthand.dmi b/icons/mob/inhands/96x96_lefthand.dmi index 20647bce5fe2..a35262810ead 100644 Binary files a/icons/mob/inhands/96x96_lefthand.dmi and b/icons/mob/inhands/96x96_lefthand.dmi differ diff --git a/icons/mob/inhands/96x96_righthand.dmi b/icons/mob/inhands/96x96_righthand.dmi index e218a0eb178c..6d9270f461d5 100644 Binary files a/icons/mob/inhands/96x96_righthand.dmi and b/icons/mob/inhands/96x96_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/ego_lefthand.dmi b/icons/mob/inhands/weapons/ego_lefthand.dmi index dc9af77adc74..ec5d92b4655b 100644 Binary files a/icons/mob/inhands/weapons/ego_lefthand.dmi and b/icons/mob/inhands/weapons/ego_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/ego_righthand.dmi b/icons/mob/inhands/weapons/ego_righthand.dmi index 92337c2351c6..aca8f13c7552 100644 Binary files a/icons/mob/inhands/weapons/ego_righthand.dmi and b/icons/mob/inhands/weapons/ego_righthand.dmi differ diff --git a/icons/obj/ego_weapons.dmi b/icons/obj/ego_weapons.dmi index 1cca976e277e..d154f7394617 100644 Binary files a/icons/obj/ego_weapons.dmi and b/icons/obj/ego_weapons.dmi differ