Porting the twohanded component.
This commit is contained in:
@@ -126,7 +126,7 @@
|
||||
L.forceMove(LA)
|
||||
L.hallucination = 0
|
||||
to_chat(L, "<span class='reallybig redtext'>The battle is won. Your bloodlust subsides.</span>")
|
||||
for(var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw in L)
|
||||
for(var/obj/item/chainsaw/doomslayer/chainsaw in L)
|
||||
qdel(chainsaw)
|
||||
else
|
||||
to_chat(L, "You are not yet worthy of passing. Drag a severed head to the barrier to be allowed entry to the hall of champions.")
|
||||
|
||||
@@ -801,7 +801,7 @@
|
||||
var/turf/T = get_turf(user)
|
||||
qdel(src)
|
||||
var/datum/action/innate/cult/spear/S = new(user)
|
||||
var/obj/item/twohanded/cult_spear/rite = new(T)
|
||||
var/obj/item/cult_spear/rite = new(T)
|
||||
S.Grant(user, rite)
|
||||
rite.spear_act = S
|
||||
if(user.put_in_hands(rite))
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
user.apply_damage(30, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
|
||||
user.dropItemToGround(src)
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard
|
||||
/obj/item/cult_bastard
|
||||
name = "bloody bastard sword"
|
||||
desc = "An enormous sword used by Nar'Sien cultists to rapidly harvest the souls of non-believers."
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
@@ -127,31 +127,35 @@
|
||||
var/spin_cooldown = 250
|
||||
var/dash_toggled = TRUE
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/Initialize()
|
||||
/obj/item/cult_bastard/Initialize()
|
||||
. = ..()
|
||||
set_light(4)
|
||||
jaunt = new(src)
|
||||
linked_action = new(src)
|
||||
AddComponent(/datum/component/butchering, 50, 80)
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/examine(mob/user)
|
||||
/obj/item/cult_bastard/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, 50, 80)
|
||||
AddComponent(/datum/component/two_handed, require_twohands=TRUE)
|
||||
|
||||
/obj/item/cult_bastard/examine(mob/user)
|
||||
. = ..()
|
||||
if(contents.len)
|
||||
. += "<br><b>There are [contents.len] souls trapped within the sword's core.</b>"
|
||||
else
|
||||
. += "<br>The sword appears to be quite lifeless."
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/can_be_pulled(user)
|
||||
/obj/item/cult_bastard/can_be_pulled(user)
|
||||
return FALSE
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/attack_self(mob/user)
|
||||
/obj/item/cult_bastard/attack_self(mob/user)
|
||||
dash_toggled = !dash_toggled
|
||||
if(dash_toggled)
|
||||
to_chat(loc, "<span class='notice'>You raise [src] and prepare to jaunt with it.</span>")
|
||||
else
|
||||
to_chat(loc, "<span class='notice'>You lower [src] and prepare to swing it normally.</span>")
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/pickup(mob/living/user)
|
||||
/obj/item/cult_bastard/pickup(mob/living/user)
|
||||
. = ..()
|
||||
if(!iscultist(user))
|
||||
if(!is_servant_of_ratvar(user))
|
||||
@@ -171,13 +175,13 @@
|
||||
linked_action.Grant(user, src)
|
||||
user.update_icons()
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/dropped(mob/user)
|
||||
/obj/item/cult_bastard/dropped(mob/user)
|
||||
. = ..()
|
||||
linked_action.Remove(user)
|
||||
jaunt.Remove(user)
|
||||
user.update_icons()
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
|
||||
/obj/item/cult_bastard/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
|
||||
if(spinning && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE))
|
||||
playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, 1)
|
||||
return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT
|
||||
@@ -192,7 +196,7 @@
|
||||
return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL
|
||||
return BLOCK_NONE
|
||||
|
||||
/obj/item/twohanded/required/cult_bastard/afterattack(atom/target, mob/user, proximity, click_parameters)
|
||||
/obj/item/cult_bastard/afterattack(atom/target, mob/user, proximity, click_parameters)
|
||||
. = ..()
|
||||
if(dash_toggled && !proximity)
|
||||
jaunt.Teleport(user, target)
|
||||
@@ -235,7 +239,7 @@
|
||||
button_icon_state = "sintouch"
|
||||
var/cooldown = 0
|
||||
var/mob/living/carbon/human/holder
|
||||
var/obj/item/twohanded/required/cult_bastard/sword
|
||||
var/obj/item/cult_bastard/sword
|
||||
|
||||
/datum/action/innate/cult/spin2win/Grant(mob/user, obj/bastard)
|
||||
. = ..()
|
||||
@@ -686,7 +690,7 @@
|
||||
to_chat(user, "<span class='warning'>\The [src] can only transport items!</span>")
|
||||
|
||||
|
||||
/obj/item/twohanded/cult_spear
|
||||
/obj/item/cult_spear
|
||||
name = "blood halberd"
|
||||
desc = "A sickening spear composed entirely of crystallized blood."
|
||||
icon_state = "bloodspear0"
|
||||
@@ -694,8 +698,6 @@
|
||||
righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi'
|
||||
slot_flags = 0
|
||||
force = 17
|
||||
force_unwielded = 17
|
||||
force_wielded = 24
|
||||
throwforce = 40
|
||||
throw_speed = 2
|
||||
armour_penetration = 30
|
||||
@@ -704,20 +706,36 @@
|
||||
sharpness = IS_SHARP
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
var/datum/action/innate/cult/spear/spear_act
|
||||
var/wielded = FALSE // track wielded status on item
|
||||
|
||||
/obj/item/twohanded/cult_spear/Initialize()
|
||||
|
||||
/obj/item/cult_spear/Initialize()
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield)
|
||||
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield)
|
||||
|
||||
/obj/item/cult_spear/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, 100, 90)
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=17, force_wielded=24, icon_wielded="bloodspear1")
|
||||
|
||||
/obj/item/twohanded/cult_spear/Destroy()
|
||||
/// triggered on wield of two handed item
|
||||
/obj/item/cult_spear/proc/on_wield(obj/item/source, mob/user)
|
||||
wielded = TRUE
|
||||
|
||||
/// triggered on unwield of two handed item
|
||||
/obj/item/cult_spear/proc/on_unwield(obj/item/source, mob/user)
|
||||
wielded = FALSE
|
||||
|
||||
/obj/item/cult_spear/update_icon_state()
|
||||
icon_state = "bloodspear0"
|
||||
|
||||
/obj/item/cult_spear/Destroy()
|
||||
if(spear_act)
|
||||
qdel(spear_act)
|
||||
..()
|
||||
|
||||
/obj/item/twohanded/cult_spear/update_icon_state()
|
||||
icon_state = "bloodspear[wielded]"
|
||||
|
||||
/obj/item/twohanded/cult_spear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
/obj/item/cult_spear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
var/turf/T = get_turf(hit_atom)
|
||||
if(isliving(hit_atom))
|
||||
var/mob/living/L = hit_atom
|
||||
@@ -740,7 +758,7 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/twohanded/cult_spear/proc/break_spear(turf/T)
|
||||
/obj/item/cult_spear/proc/break_spear(turf/T)
|
||||
if(src)
|
||||
if(!T)
|
||||
T = get_turf(src)
|
||||
@@ -751,7 +769,7 @@
|
||||
playsound(T, 'sound/effects/glassbr3.ogg', 100)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/twohanded/cult_spear/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
|
||||
/obj/item/cult_spear/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
|
||||
if(wielded)
|
||||
final_block_chance *= 2
|
||||
if(prob(final_block_chance))
|
||||
@@ -770,7 +788,7 @@
|
||||
desc = "Call the blood spear back to your hand!"
|
||||
background_icon_state = "bg_demon"
|
||||
button_icon_state = "bloodspear"
|
||||
var/obj/item/twohanded/cult_spear/spear
|
||||
var/obj/item/cult_spear/spear
|
||||
var/cooldown = 0
|
||||
|
||||
/datum/action/innate/cult/spear/Grant(mob/user, obj/blood_spear)
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES)
|
||||
H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE)
|
||||
H.put_in_hands(new /obj/item/claymore(H), TRUE)
|
||||
H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), SLOT_BACK)
|
||||
H.equip_to_slot_or_del(new /obj/item/spear(H), SLOT_BACK)
|
||||
|
||||
|
||||
/obj/item/voodoo
|
||||
|
||||
@@ -426,12 +426,12 @@
|
||||
/datum/spellbook_entry/item/mjolnir
|
||||
name = "Mjolnir"
|
||||
desc = "A mighty hammer on loan from Thor, God of Thunder. It crackles with barely contained power."
|
||||
item_path = /obj/item/twohanded/mjollnir
|
||||
item_path = /obj/item/mjollnir
|
||||
|
||||
/datum/spellbook_entry/item/singularity_hammer
|
||||
name = "Singularity Hammer"
|
||||
desc = "A hammer that creates an intensely powerful field of gravity where it strikes, pulling everything nearby to the point of impact."
|
||||
item_path = /obj/item/twohanded/singularityhammer
|
||||
item_path = /obj/item/singularityhammer
|
||||
|
||||
/datum/spellbook_entry/item/battlemage
|
||||
name = "Battlemage Armour"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#define AMMO_DROP_LIFETIME 300
|
||||
#define CTF_REQUIRED_PLAYERS 4
|
||||
|
||||
/obj/item/twohanded/ctf
|
||||
/obj/item/ctf
|
||||
name = "banner"
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "banner"
|
||||
@@ -16,6 +16,7 @@
|
||||
righthand_file = 'icons/mob/inhands/equipment/banners_righthand.dmi'
|
||||
desc = "A banner with Nanotrasen's logo on it."
|
||||
slowdown = 2
|
||||
item_flags = SLOWS_WHILE_IN_HAND
|
||||
throw_speed = 0
|
||||
throw_range = 1
|
||||
force = 200
|
||||
@@ -28,16 +29,20 @@
|
||||
var/obj/effect/ctf/flag_reset/reset
|
||||
var/reset_path = /obj/effect/ctf/flag_reset
|
||||
|
||||
/obj/item/twohanded/ctf/Destroy()
|
||||
/obj/item/ctf/Destroy()
|
||||
QDEL_NULL(reset)
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/ctf/Initialize()
|
||||
/obj/item/ctf/Initialize()
|
||||
. = ..()
|
||||
if(!reset)
|
||||
reset = new reset_path(get_turf(src))
|
||||
|
||||
/obj/item/twohanded/ctf/process()
|
||||
/obj/item/ctf/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed)
|
||||
|
||||
/obj/item/ctf/process()
|
||||
if(is_ctf_target(loc)) //don't reset from someone's hands.
|
||||
return PROCESS_KILL
|
||||
if(world.time > reset_cooldown)
|
||||
@@ -49,7 +54,7 @@
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/item/twohanded/ctf/attack_hand(mob/living/user)
|
||||
/obj/item/ctf/attack_hand(mob/living/user)
|
||||
if(!is_ctf_target(user) && !anyonecanpickup)
|
||||
to_chat(user, "Non players shouldn't be moving the flag!")
|
||||
return
|
||||
@@ -73,7 +78,7 @@
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
..()
|
||||
|
||||
/obj/item/twohanded/ctf/dropped(mob/user)
|
||||
/obj/item/ctf/dropped(mob/user)
|
||||
..()
|
||||
user.anchored = FALSE
|
||||
user.status_flags |= CANPUSH
|
||||
@@ -86,7 +91,7 @@
|
||||
anchored = TRUE
|
||||
|
||||
|
||||
/obj/item/twohanded/ctf/red
|
||||
/obj/item/ctf/red
|
||||
name = "red flag"
|
||||
icon_state = "banner-red"
|
||||
item_state = "banner-red"
|
||||
@@ -95,7 +100,7 @@
|
||||
reset_path = /obj/effect/ctf/flag_reset/red
|
||||
|
||||
|
||||
/obj/item/twohanded/ctf/blue
|
||||
/obj/item/ctf/blue
|
||||
name = "blue flag"
|
||||
icon_state = "banner-blue"
|
||||
item_state = "banner-blue"
|
||||
@@ -276,8 +281,8 @@
|
||||
attack_ghost(ghost)
|
||||
|
||||
/obj/machinery/capture_the_flag/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/twohanded/ctf))
|
||||
var/obj/item/twohanded/ctf/flag = I
|
||||
if(istype(I, /obj/item/ctf))
|
||||
var/obj/item/ctf/flag = I
|
||||
if(flag.team != src.team)
|
||||
user.transferItemToLoc(flag, get_turf(flag.reset), TRUE)
|
||||
points++
|
||||
@@ -294,7 +299,7 @@
|
||||
if(istype(mob_area, /area/ctf))
|
||||
to_chat(M, "<span class='narsie [team_span]'>[team] team wins!</span>")
|
||||
to_chat(M, "<span class='userdanger'>Teams have been cleared. Click on the machines to vote to begin another round.</span>")
|
||||
for(var/obj/item/twohanded/ctf/W in M)
|
||||
for(var/obj/item/ctf/W in M)
|
||||
M.dropItemToGround(W)
|
||||
M.dust()
|
||||
for(var/obj/machinery/control_point/control in GLOB.machines)
|
||||
@@ -335,7 +340,7 @@
|
||||
var/list/ctf_object_typecache = typecacheof(list(
|
||||
/obj/machinery,
|
||||
/obj/effect/ctf,
|
||||
/obj/item/twohanded/ctf
|
||||
/obj/item/ctf
|
||||
))
|
||||
for(var/atm in A)
|
||||
if (isturf(A) || ismob(A) || isarea(A))
|
||||
|
||||
@@ -661,5 +661,5 @@
|
||||
|
||||
/datum/outfit/lavaknight/captain
|
||||
name ="Cydonian Knight Captain"
|
||||
l_pocket = /obj/item/twohanded/dualsaber/hypereutactic
|
||||
l_pocket = /obj/item/dualsaber/hypereutactic
|
||||
id = /obj/item/card/id/knight/captain
|
||||
|
||||
@@ -519,11 +519,11 @@
|
||||
|
||||
/obj/effect/spawner/lootdrop/snowdin/dungeonheavy
|
||||
name = "dungeon heavy"
|
||||
loot = list(/obj/item/twohanded/singularityhammer = 25,
|
||||
/obj/item/twohanded/mjollnir = 10,
|
||||
/obj/item/twohanded/fireaxe = 25,
|
||||
loot = list(/obj/item/singularityhammer = 25,
|
||||
/obj/item/mjollnir = 10,
|
||||
/obj/item/fireaxe = 25,
|
||||
/obj/item/organ/brain/alien = 17,
|
||||
/obj/item/twohanded/dualsaber = 15,
|
||||
/obj/item/dualsaber = 15,
|
||||
/obj/item/organ/heart/demon = 7,
|
||||
/obj/item/gun/ballistic/automatic/c20r/unrestricted = 16,
|
||||
/obj/item/gun/magic/wand/resurrection/inert = 15,
|
||||
@@ -544,7 +544,7 @@
|
||||
loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10,
|
||||
/obj/item/toy/snowball = 15,
|
||||
/obj/item/shovel = 10,
|
||||
/obj/item/twohanded/spear = 8,
|
||||
/obj/item/spear = 8,
|
||||
)
|
||||
|
||||
//special items//--
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
description = "CentCom's security forces are going through budget cuts. You will be paid if you ship a set of spears."
|
||||
reward = 1000
|
||||
required_count = 5
|
||||
wanted_types = list(/obj/item/twohanded/spear)
|
||||
wanted_types = list(/obj/item/spear)
|
||||
|
||||
/datum/bounty/item/assistant/toolbox
|
||||
name = "Toolboxes"
|
||||
@@ -134,7 +134,7 @@
|
||||
description = "Central Command is looking to commission a new BirdBoat-class station. You've been ordered to supply the potted plants."
|
||||
reward = 2000
|
||||
required_count = 8
|
||||
wanted_types = list(/obj/item/twohanded/required/kirbyplants)
|
||||
wanted_types = list(/obj/item/kirbyplants)
|
||||
|
||||
// /datum/bounty/item/assistant/earmuffs
|
||||
// name = "Earmuffs"
|
||||
@@ -160,7 +160,7 @@
|
||||
name = "Chainsaw"
|
||||
description = "The chef at CentCom is having trouble butchering her animals. She requests one chainsaw, please."
|
||||
reward = 2500
|
||||
wanted_types = list(/obj/item/twohanded/required/chainsaw)
|
||||
wanted_types = list(/obj/item/chainsaw)
|
||||
|
||||
/datum/bounty/item/assistant/ied
|
||||
name = "IED"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
name = "Bone Axe"
|
||||
description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement."
|
||||
reward = 3500
|
||||
wanted_types = list(/obj/item/twohanded/fireaxe/boneaxe)
|
||||
wanted_types = list(/obj/item/fireaxe/boneaxe)
|
||||
|
||||
/datum/bounty/item/mining/bone_armor
|
||||
name = "Bone Armor"
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
/datum/export/weapon/duelsaber
|
||||
cost = 360 //Get it?
|
||||
unit_name = "energy saber"
|
||||
export_types = list(/obj/item/twohanded/dualsaber)
|
||||
export_types = list(/obj/item/dualsaber)
|
||||
|
||||
/datum/export/weapon/esword
|
||||
cost = 130
|
||||
|
||||
@@ -294,11 +294,11 @@
|
||||
name = "Potted Plants Crate"
|
||||
desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown."
|
||||
cost = 730
|
||||
contains = list(/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/item/twohanded/required/kirbyplants/random)
|
||||
contains = list(/obj/item/kirbyplants/random,
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/item/kirbyplants/random)
|
||||
crate_name = "potted plants crate"
|
||||
crate_type = /obj/structure/closet/crate/hydroponics
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
l_pocket = /obj/item/reagent_containers/food/snacks/grown/banana
|
||||
r_pocket = /obj/item/bikehorn
|
||||
id = /obj/item/card/id
|
||||
r_hand = /obj/item/twohanded/fireaxe
|
||||
r_hand = /obj/item/fireaxe
|
||||
|
||||
/datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
if(visualsOnly)
|
||||
@@ -148,7 +148,7 @@
|
||||
suit = /obj/item/clothing/suit/apron
|
||||
l_pocket = /obj/item/kitchen/knife
|
||||
r_pocket = /obj/item/scalpel
|
||||
r_hand = /obj/item/twohanded/fireaxe
|
||||
r_hand = /obj/item/fireaxe
|
||||
|
||||
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
for(var/obj/item/carried_item in H.get_equipped_items(TRUE))
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
name = "goliath cloak"
|
||||
icon_state = "goliath_cloak"
|
||||
desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits."
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/spear/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival)
|
||||
armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
|
||||
hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath
|
||||
body_parts_covered = CHEST|ARMS|LEGS
|
||||
@@ -75,7 +75,7 @@
|
||||
name = "drake armour"
|
||||
icon_state = "dragon"
|
||||
desc = "A suit of armour fashioned from the remains of an ash drake."
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/twohanded/spear)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear)
|
||||
armor = list("melee" = 60, "bullet" = 20, "laser" = 30, "energy" = 25, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
|
||||
hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
|
||||
@@ -854,7 +854,7 @@
|
||||
icon_state = "coatnarsie"
|
||||
item_state = "coatnarsie"
|
||||
armor = list("melee" = 30, "bullet" = 20, "laser" = 30,"energy" = 10, "bomb" = 30, "bio" = 10, "rad" = 10, "fire" = 30, "acid" = 30)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/twohanded/cult_spear)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/cult_spear)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/narsie
|
||||
var/real = TRUE
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
/obj/item/integrated_circuit/manipulation/grabber/do_work()
|
||||
var/obj/item/AM = get_pin_data_as_type(IC_INPUT, 1, /obj/item)
|
||||
if(!QDELETED(AM) && !istype(AM, /obj/item/electronic_assembly) && !istype(AM, /obj/item/transfer_valve) && !istype(AM, /obj/item/twohanded) && !istype(assembly.loc, /obj/item/implant/storage))
|
||||
if(!QDELETED(AM) && !istype(AM, /obj/item/electronic_assembly) && !istype(AM, /obj/item/transfer_valve) && !istype(assembly.loc, /obj/item/implant/storage) && !AM.GetComponent(/datum/component/two_handed))
|
||||
var/mode = get_pin_data(IC_INPUT, 2)
|
||||
switch(mode)
|
||||
if(1)
|
||||
@@ -300,7 +300,7 @@
|
||||
var/target_y_rel = round(get_pin_data(IC_INPUT, 2))
|
||||
var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item)
|
||||
|
||||
if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve))
|
||||
if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/transfer_valve) || A.GetComponent(/datum/component/two_handed))
|
||||
return
|
||||
|
||||
if (istype(assembly.loc, /obj/item/implant/storage)) //Prevents the more abusive form of chestgun.
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item)
|
||||
var/obj/item/integrated_circuit/atmospherics/AT = get_pin_data_as_type(IC_INPUT, 4, /obj/item/integrated_circuit/atmospherics)
|
||||
|
||||
if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve))
|
||||
if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/transfer_valve) || A.GetComponent(/datum/component/two_handed))
|
||||
return
|
||||
|
||||
var/obj/item/I = get_object()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*********************Mining Hammer****************/
|
||||
/obj/item/twohanded/kinetic_crusher
|
||||
/obj/item/kinetic_crusher
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "crusher"
|
||||
item_state = "crusher0"
|
||||
@@ -11,8 +11,6 @@
|
||||
force = 0 //You can't hit stuff unless wielded
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
force_unwielded = 0
|
||||
force_wielded = 20
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
armour_penetration = 10
|
||||
@@ -28,33 +26,45 @@
|
||||
var/backstab_bonus = 30
|
||||
var/light_on = FALSE
|
||||
var/brightness_on = 7
|
||||
var/wielded = FALSE // track wielded status on item
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/cyborg //probably give this a unique sprite later
|
||||
/obj/item/kinetic_crusher/cyborg //probably give this a unique sprite later
|
||||
desc = "An integrated version of the standard kinetic crusher with a grinded down axe head to dissuade mis-use against crewmen. Deals damage equal to the standard crusher against creatures, however."
|
||||
force = 10 //wouldn't want to give a borg a 20 brute melee weapon unemagged now would we
|
||||
detonation_damage = 60
|
||||
wielded = 1
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/cyborg/unwield()
|
||||
return
|
||||
/obj/item/kinetic_crusher/Initialize()
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield)
|
||||
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield)
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/Initialize()
|
||||
/obj/item/kinetic_crusher/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=20)
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/Destroy()
|
||||
/obj/item/kinetic_crusher/Destroy()
|
||||
QDEL_LIST(trophies)
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/examine(mob/living/user)
|
||||
/// triggered on wield of two handed item
|
||||
/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user)
|
||||
wielded = TRUE
|
||||
|
||||
/// triggered on unwield of two handed item
|
||||
/obj/item/kinetic_crusher/proc/on_unwield(obj/item/source, mob/user)
|
||||
wielded = FALSE
|
||||
|
||||
/obj/item/kinetic_crusher/examine(mob/living/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Mark a large creature with the destabilizing force, then hit them in melee to do <b>[force_wielded + detonation_damage]</b> damage.</span>"
|
||||
. += "<span class='notice'>Does <b>[force_wielded + detonation_damage + backstab_bonus]</b> damage if the target is backstabbed, instead of <b>[force_wielded + detonation_damage]</b>.</span>"
|
||||
. += "<span class='notice'>Mark a large creature with the destabilizing force, then hit them in melee to do <b>[force + detonation_damage]</b> damage.</span>"
|
||||
. += "<span class='notice'>Does <b>[force + detonation_damage + backstab_bonus]</b> damage if the target is backstabbed, instead of <b>[force + detonation_damage]</b>.</span>"
|
||||
for(var/t in trophies)
|
||||
var/obj/item/crusher_trophy/T = t
|
||||
. += "<span class='notice'>It has \a [T] attached, which causes [T.effect_desc()].</span>"
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/attackby(obj/item/I, mob/living/user)
|
||||
/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user)
|
||||
if(istype(I, /obj/item/crowbar))
|
||||
if(LAZYLEN(trophies))
|
||||
to_chat(user, "<span class='notice'>You remove [src]'s trophies.</span>")
|
||||
@@ -70,7 +80,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
|
||||
/obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
|
||||
if(!wielded)
|
||||
to_chat(user, "<span class='warning'>[src] is too heavy to use with one hand.")
|
||||
return
|
||||
@@ -84,7 +94,7 @@
|
||||
if(!QDELETED(C) && !QDELETED(target))
|
||||
C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams)
|
||||
/obj/item/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams)
|
||||
. = ..()
|
||||
if(istype(target, /obj/item/crusher_trophy))
|
||||
var/obj/item/crusher_trophy/T = target
|
||||
@@ -137,28 +147,28 @@
|
||||
if(user && lavaland_equipment_pressure_check(get_turf(user))) //CIT CHANGE - makes sure below only happens in low pressure environments
|
||||
user.adjustStaminaLoss(-30)//CIT CHANGE - makes crushers heal stamina
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/proc/Recharge()
|
||||
/obj/item/kinetic_crusher/proc/Recharge()
|
||||
if(!charged)
|
||||
charged = TRUE
|
||||
update_icon()
|
||||
playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/ui_action_click(mob/user, actiontype)
|
||||
/obj/item/kinetic_crusher/ui_action_click(mob/user, actiontype)
|
||||
light_on = !light_on
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, TRUE)
|
||||
update_brightness(user)
|
||||
update_icon()
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/proc/update_brightness(mob/user = null)
|
||||
/obj/item/kinetic_crusher/proc/update_brightness(mob/user = null)
|
||||
if(light_on)
|
||||
set_light(brightness_on)
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/update_icon_state()
|
||||
item_state = "crusher[wielded]"
|
||||
/obj/item/kinetic_crusher/update_icon_state()
|
||||
item_state = "crusher[wielded]" // this is not icon_state and not supported by 2hcomponent
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/update_overlays()
|
||||
/obj/item/kinetic_crusher/update_overlays()
|
||||
. = ..()
|
||||
if(!charged)
|
||||
. += "[icon_state]_uncharged"
|
||||
@@ -175,7 +185,7 @@
|
||||
flag = "bomb"
|
||||
range = 6
|
||||
log_override = TRUE
|
||||
var/obj/item/twohanded/kinetic_crusher/hammer_synced
|
||||
var/obj/item/kinetic_crusher/hammer_synced
|
||||
|
||||
/obj/item/projectile/destabilizer/Destroy()
|
||||
hammer_synced = null
|
||||
@@ -214,12 +224,12 @@
|
||||
return "errors"
|
||||
|
||||
/obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user)
|
||||
if(istype(A, /obj/item/twohanded/kinetic_crusher))
|
||||
if(istype(A, /obj/item/kinetic_crusher))
|
||||
add_to(A, user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/crusher_trophy/proc/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/H, mob/living/user)
|
||||
for(var/t in H.trophies)
|
||||
var/obj/item/crusher_trophy/T = t
|
||||
if(istype(T, denied_type) || istype(src, T.denied_type))
|
||||
@@ -231,7 +241,7 @@
|
||||
to_chat(user, "<span class='notice'>You attach [src] to [H].</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/item/crusher_trophy/proc/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
|
||||
forceMove(get_turf(H))
|
||||
H.trophies -= src
|
||||
return TRUE
|
||||
@@ -318,12 +328,12 @@
|
||||
/obj/item/crusher_trophy/legion_skull/effect_desc()
|
||||
return "a kinetic crusher to recharge <b>[bonus_value*0.1]</b> second\s faster"
|
||||
|
||||
/obj/item/crusher_trophy/legion_skull/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.charge_time -= bonus_value
|
||||
|
||||
/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.charge_time += bonus_value
|
||||
@@ -376,21 +386,19 @@
|
||||
/obj/item/crusher_trophy/demon_claws/effect_desc()
|
||||
return "melee hits to do <b>[bonus_value * 0.2]</b> more damage and heal you for <b>[bonus_value * 0.1]</b>, with <b>5X</b> effect on mark detonation"
|
||||
|
||||
/obj/item/crusher_trophy/demon_claws/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.force += bonus_value * 0.2
|
||||
H.force_unwielded += bonus_value * 0.2
|
||||
H.force_wielded += bonus_value * 0.2
|
||||
H.detonation_damage += bonus_value * 0.8
|
||||
AddComponent(/datum/component/two_handed, force_wielded=(20 + bonus_value * 0.2))
|
||||
|
||||
/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.force -= bonus_value * 0.2
|
||||
H.force_unwielded -= bonus_value * 0.2
|
||||
H.force_wielded -= bonus_value * 0.2
|
||||
H.detonation_damage -= bonus_value * 0.8
|
||||
AddComponent(/datum/component/two_handed, force_wielded=20)
|
||||
|
||||
/obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user)
|
||||
user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
new /datum/data/mining_equipment("500 Point Transfer Card", /obj/item/card/mining_point_card/mp500, 500),
|
||||
new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600),
|
||||
new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/kinetic_crusher, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/kinetic_crusher, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750),
|
||||
new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 750),
|
||||
new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 800),
|
||||
@@ -176,7 +176,7 @@
|
||||
new /obj/item/stack/marker_beacon/thirty(drop_location)
|
||||
if("Crusher Kit")
|
||||
new /obj/item/extinguisher/mini(drop_location)
|
||||
new /obj/item/twohanded/kinetic_crusher(drop_location)
|
||||
new /obj/item/kinetic_crusher(drop_location)
|
||||
if("Mining Conscription Kit")
|
||||
new /obj/item/storage/backpack/duffelbag/mining_conscript(drop_location)
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
item_state = "slag"
|
||||
singular_name = "slag chunk"
|
||||
|
||||
/obj/item/twohanded/required/gibtonite
|
||||
/obj/item/gibtonite
|
||||
name = "gibtonite ore"
|
||||
desc = "Extremely explosive if struck with mining equipment, Gibtonite is often used by miners to speed up their work by using it as a mining charge. This material is illegal to possess by unauthorized personnel under space law."
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
@@ -208,12 +208,16 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
var/attacher = "UNKNOWN"
|
||||
var/det_timer
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/Destroy()
|
||||
/obj/item/gibtonite/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, require_twohands=TRUE)
|
||||
|
||||
/obj/item/gibtonite/Destroy()
|
||||
qdel(wires)
|
||||
wires = null
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params)
|
||||
/obj/item/gibtonite/attackby(obj/item/I, mob/user, params)
|
||||
if(!wires && istype(I, /obj/item/assembly/igniter))
|
||||
user.visible_message("[user] attaches [I] to [src].", "<span class='notice'>You attach [I] to [src].</span>")
|
||||
wires = new /datum/wires/explosive/gibtonite(src)
|
||||
@@ -241,22 +245,22 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/attack_self(user)
|
||||
/obj/item/gibtonite/attack_self(user)
|
||||
if(wires)
|
||||
wires.interact(user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P)
|
||||
/obj/item/gibtonite/bullet_act(obj/item/projectile/P)
|
||||
GibtoniteReaction(P.firer)
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/ex_act()
|
||||
/obj/item/gibtonite/ex_act()
|
||||
GibtoniteReaction(null, 1)
|
||||
|
||||
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0)
|
||||
/obj/item/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0)
|
||||
if(!primed)
|
||||
primed = TRUE
|
||||
playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1)
|
||||
@@ -282,7 +286,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(bombturf)]")
|
||||
det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE)
|
||||
|
||||
/obj/item/twohanded/required/gibtonite/proc/detonate(notify_admins)
|
||||
/obj/item/gibtonite/proc/detonate(notify_admins)
|
||||
if(primed)
|
||||
switch(quality)
|
||||
if(GIBTONITE_QUALITY_HIGH)
|
||||
|
||||
@@ -50,16 +50,13 @@
|
||||
|
||||
|
||||
/mob/living/carbon/swap_hand(held_index)
|
||||
. = ..()
|
||||
if(!.)
|
||||
var/obj/item/held_item = get_active_held_item()
|
||||
to_chat(usr, "<span class='warning'>Your other hand is too busy holding [held_item].</span>")
|
||||
return
|
||||
if(!held_index)
|
||||
held_index = (active_hand_index % held_items.len)+1
|
||||
|
||||
var/obj/item/item_in_hand = src.get_active_held_item()
|
||||
if(item_in_hand) //this segment checks if the item in your hand is twohanded.
|
||||
var/obj/item/twohanded/TH = item_in_hand
|
||||
if(istype(TH))
|
||||
if(TH.wielded == 1)
|
||||
to_chat(usr, "<span class='warning'>Your other hand is too busy holding [TH]</span>")
|
||||
return
|
||||
var/oindex = active_hand_index
|
||||
active_hand_index = held_index
|
||||
if(hud_used)
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
/obj/item/organ_storage,
|
||||
/obj/item/borg/lollipop,
|
||||
/obj/item/sensor_device,
|
||||
/obj/item/twohanded/shockpaddles/cyborg)
|
||||
/obj/item/shockpaddles/cyborg)
|
||||
emag_modules = list(/obj/item/reagent_containers/borghypo/hacked)
|
||||
ratvar_modules = list(
|
||||
/obj/item/clockwork/slab/cyborg/medical,
|
||||
@@ -910,7 +910,7 @@
|
||||
/obj/item/borg/sight/meson,
|
||||
/obj/item/storage/bag/ore/cyborg,
|
||||
/obj/item/pickaxe/drill/cyborg,
|
||||
/obj/item/twohanded/kinetic_crusher/cyborg,
|
||||
/obj/item/kinetic_crusher/cyborg,
|
||||
/obj/item/weldingtool/mini,
|
||||
/obj/item/storage/bag/sheetsnatcher/borg,
|
||||
/obj/item/t_scanner/adv_mining_scanner,
|
||||
@@ -1027,7 +1027,7 @@
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/crowbar/cyborg,
|
||||
/obj/item/reagent_containers/borghypo/syndicate,
|
||||
/obj/item/twohanded/shockpaddles/syndicate,
|
||||
/obj/item/shockpaddles/syndicate,
|
||||
/obj/item/healthanalyzer/advanced,
|
||||
/obj/item/surgical_drapes/advanced,
|
||||
/obj/item/retractor,
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\the [src] already has this mop!</span>")
|
||||
|
||||
if(istype(W, /obj/item/twohanded/broom))
|
||||
if(istype(W, /obj/item/broom))
|
||||
if(bot_core.allowed(user) && open && broom == TRUE)
|
||||
to_chat(user, "<span class='notice'>You add to \the [src] a broom speeding it up!</span>")
|
||||
broom = TRUE
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
var/client/C = L.client
|
||||
SSmedals.UnlockMedal("Boss [BOSS_KILL_MEDAL]", C)
|
||||
SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL]", C)
|
||||
if(crusher_kill && istype(L.get_active_held_item(), /obj/item/twohanded/kinetic_crusher))
|
||||
if(crusher_kill && istype(L.get_active_held_item(), /obj/item/kinetic_crusher))
|
||||
SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL_CRUSHER]", C)
|
||||
SSmedals.SetScore(BOSS_SCORE, C, 1)
|
||||
SSmedals.SetScore(score_type, C, 1)
|
||||
|
||||
@@ -317,7 +317,7 @@
|
||||
suit = /obj/item/clothing/suit/armor/bone
|
||||
gloves = /obj/item/clothing/gloves/bracer
|
||||
if(prob(5))
|
||||
back = pickweight(list(/obj/item/twohanded/bonespear = 3, /obj/item/twohanded/fireaxe/boneaxe = 2))
|
||||
back = pickweight(list(/obj/item/spear/bonespear = 3, /obj/item/fireaxe/boneaxe = 2))
|
||||
if(prob(10))
|
||||
belt = /obj/item/storage/belt/mining/primitive
|
||||
if(prob(30))
|
||||
@@ -404,7 +404,7 @@
|
||||
if(prob(5))
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
if(prob(10))
|
||||
back = /obj/item/twohanded/spear
|
||||
back = /obj/item/spear
|
||||
else if(prob(80)) //Now they dont always have a backpack
|
||||
back = /obj/item/storage/backpack
|
||||
backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1)
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
melee_damage_upper = 20
|
||||
deathmessage = "collapses into a pile of bones, its gear falling to the floor!"
|
||||
loot = list(/obj/effect/decal/remains/human,
|
||||
/obj/item/twohanded/spear,
|
||||
/obj/item/spear,
|
||||
/obj/item/clothing/shoes/winterboots,
|
||||
/obj/item/clothing/suit/hooded/wintercoat)
|
||||
|
||||
|
||||
@@ -493,17 +493,13 @@
|
||||
mode()
|
||||
|
||||
/mob/living/simple_animal/swap_hand(hand_index)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
if(!dextrous)
|
||||
return ..()
|
||||
return
|
||||
if(!hand_index)
|
||||
hand_index = (active_hand_index % held_items.len)+1
|
||||
var/obj/item/held_item = get_active_held_item()
|
||||
if(held_item)
|
||||
if(istype(held_item, /obj/item/twohanded))
|
||||
var/obj/item/twohanded/T = held_item
|
||||
if(T.wielded == 1)
|
||||
to_chat(usr, "<span class='warning'>Your other hand is too busy holding the [T.name].</span>")
|
||||
return
|
||||
var/oindex = active_hand_index
|
||||
active_hand_index = hand_index
|
||||
if(hud_used)
|
||||
|
||||
@@ -745,7 +745,11 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
return FALSE
|
||||
|
||||
/mob/proc/swap_hand()
|
||||
return
|
||||
var/obj/item/held_item = get_active_held_item()
|
||||
if(SEND_SIGNAL(src, COMSIG_MOB_SWAP_HANDS, held_item) & COMPONENT_BLOCK_SWAP)
|
||||
to_chat(src, "<span class='warning'>Your other hand is too busy holding [held_item].</span>")
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/mob/proc/activate_hand(selhand)
|
||||
return
|
||||
|
||||
@@ -170,8 +170,8 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
return
|
||||
coil.cable_join(src, user)
|
||||
|
||||
else if(istype(W, /obj/item/twohanded/rcl))
|
||||
var/obj/item/twohanded/rcl/R = W
|
||||
else if(istype(W, /obj/item/rcl))
|
||||
var/obj/item/rcl/R = W
|
||||
if(R.loaded)
|
||||
R.loaded.cable_join(src, user)
|
||||
R.is_empty(user)
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
name = "Double-Bladed Toy Sword"
|
||||
id = "dbtoysword"
|
||||
materials = list(/datum/material/plastic = 1000)
|
||||
build_path = /obj/item/twohanded/dualsaber/toy
|
||||
build_path = /obj/item/dualsaber/toy
|
||||
category = list("initial", "Melee")
|
||||
|
||||
/datum/design/autoylathe/toykatana
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
id = "broom"
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 600)
|
||||
build_path = /obj/item/twohanded/broom
|
||||
build_path = /obj/item/broom
|
||||
category = list("initial", "Equipment", "Misc")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@ Burning extracts:
|
||||
|
||||
/obj/item/slimecross/burning/adamantine/do_effect(mob/user)
|
||||
user.visible_message("<span class='notice'>[src] crystallizes into a large shield!</span>")
|
||||
new /obj/item/twohanded/required/adamantineshield(get_turf(user))
|
||||
new /obj/item/shield/adamantineshield(get_turf(user))
|
||||
..()
|
||||
|
||||
/obj/item/slimecross/burning/rainbow
|
||||
@@ -440,7 +440,7 @@ Burning extracts:
|
||||
attack_verb = list("irradiated","mutated","maligned")
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/required/adamantineshield
|
||||
/obj/item/shield/adamantineshield
|
||||
name = "adamantine shield"
|
||||
desc = "A gigantic shield made of solid adamantium."
|
||||
icon = 'icons/obj/slimecrossing.dmi'
|
||||
@@ -450,12 +450,15 @@ Burning extracts:
|
||||
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
block_chance = 75
|
||||
force = 0
|
||||
throw_range = 1 //How far do you think you're gonna throw a solid crystalline shield...?
|
||||
throw_speed = 2
|
||||
force = 15 //Heavy, but hard to wield.
|
||||
attack_verb = list("bashed","pounded","slammed")
|
||||
item_flags = SLOWS_WHILE_IN_HAND
|
||||
|
||||
/obj/item/shield/adamantineshield/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_wielded=15)
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform
|
||||
name = "Slime Transformation"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
include_user = 1
|
||||
range = -1
|
||||
clothes_req = NONE
|
||||
item_type = /obj/item/twohanded/pitchfork/demonic
|
||||
item_type = /obj/item/pitchfork/demonic
|
||||
|
||||
school = "conjuration"
|
||||
charge_max = 150
|
||||
@@ -15,10 +15,10 @@
|
||||
action_background_icon_state = "bg_demon"
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater
|
||||
item_type = /obj/item/twohanded/pitchfork/demonic/greater
|
||||
item_type = /obj/item/pitchfork/demonic/greater
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended
|
||||
item_type = /obj/item/twohanded/pitchfork/demonic/ascended
|
||||
item_type = /obj/item/pitchfork/demonic/ascended
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/violin
|
||||
item_type = /obj/item/instrument/violin/golden
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
return TRUE
|
||||
/datum/surgery_step/revive
|
||||
name = "electrically stimulate brain"
|
||||
implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60)
|
||||
implements = list(/obj/item/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60)
|
||||
time = 120
|
||||
/datum/surgery_step/revive/tool_check(mob/user, obj/item/tool)
|
||||
. = TRUE
|
||||
if(istype(tool, /obj/item/twohanded/shockpaddles))
|
||||
var/obj/item/twohanded/shockpaddles/S = tool
|
||||
if(istype(tool, /obj/item/shockpaddles))
|
||||
var/obj/item/shockpaddles/S = tool
|
||||
if((S.req_defib && !S.defib.powered) || !S.wielded || S.cooldown || S.busy)
|
||||
to_chat(user, "<span class='warning'>You need to wield both paddles, and [S.defib] must be powered!</span>")
|
||||
return FALSE
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
requires_bodypart_type = 0
|
||||
/datum/surgery_step/sever_limb
|
||||
name = "sever limb"
|
||||
implements = list(TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/twohanded/required/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25)
|
||||
implements = list(TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 64
|
||||
|
||||
/datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
/datum/surgery_step/ventricular_electrotherapy
|
||||
name = "ventricular electrotherapy"
|
||||
implements = list(/obj/item/twohanded/shockpaddles = 90, /obj/item/defibrillator = 75, /obj/item/inducer = 55, /obj/item/stock_parts/cell = 25) //Just because the idea of a new player using the whole magine to defib is hillarious to me
|
||||
implements = list(/obj/item/shockpaddles = 90, /obj/item/defibrillator = 75, /obj/item/inducer = 55, /obj/item/stock_parts/cell = 25) //Just because the idea of a new player using the whole magine to defib is hillarious to me
|
||||
time = 50
|
||||
repeatable = TRUE //So you can retry
|
||||
|
||||
/datum/surgery_step/ventricular_electrotherapy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(istype(tool, /obj/item/twohanded/shockpaddles))
|
||||
var/obj/item/twohanded/shockpaddles/pads = tool
|
||||
if(istype(tool, /obj/item/shockpaddles))
|
||||
var/obj/item/shockpaddles/pads = tool
|
||||
if(!pads.wielded)
|
||||
to_chat(user, "<span class='warning'>You need to wield the paddles in both hands before you can use them!</span>")
|
||||
return FALSE
|
||||
@@ -23,8 +23,8 @@
|
||||
playsound(src, 'sound/machines/defib_charge.ogg', 75, 0)
|
||||
|
||||
/datum/surgery_step/ventricular_electrotherapy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(istype(tool, /obj/item/twohanded/shockpaddles))
|
||||
var/obj/item/twohanded/shockpaddles/pads = tool
|
||||
if(istype(tool, /obj/item/shockpaddles))
|
||||
var/obj/item/shockpaddles/pads = tool
|
||||
if(!pads.wielded)
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = target
|
||||
@@ -52,7 +52,7 @@
|
||||
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, -5)
|
||||
H.electrocute_act(0, (tool), 1, SHOCK_ILLUSION)
|
||||
//If we're using a defib, let the defib handle the revive.
|
||||
if(istype(tool, /obj/item/twohanded/shockpaddles))
|
||||
if(istype(tool, /obj/item/shockpaddles))
|
||||
return
|
||||
//Otherwise, we're ad hocing it
|
||||
if(!(do_after(user, 50, target = target)))
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
//saw bone
|
||||
/datum/surgery_step/saw
|
||||
name = "saw bone"
|
||||
implements = list(TOOL_SAW = 100, /obj/item/melee/arm_blade = 75, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25)
|
||||
implements = list(TOOL_SAW = 100, /obj/item/melee/arm_blade = 75, /obj/item/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 54
|
||||
|
||||
/datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
return 1
|
||||
/datum/surgery_step/add_prosthetic
|
||||
name = "add prosthetic"
|
||||
implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/twohanded/required/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100)
|
||||
implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100)
|
||||
time = 32
|
||||
var/organ_rejection_dam = 0
|
||||
/datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -79,7 +79,7 @@
|
||||
"[user] finishes attaching [tool]!",
|
||||
"[user] finishes the attachment procedure!")
|
||||
qdel(tool)
|
||||
if(istype(tool, /obj/item/twohanded/required/chainsaw))
|
||||
if(istype(tool, /obj/item/chainsaw))
|
||||
var/obj/item/mounted_chainsaw/new_arm = new(target)
|
||||
target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm)
|
||||
return 1
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
name = "Double-Bladed Energy Sword"
|
||||
desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \
|
||||
all energy projectiles, but requires two hands to wield."
|
||||
item = /obj/item/twohanded/dualsaber
|
||||
item = /obj/item/dualsaber
|
||||
player_minimum = 25
|
||||
cost = 16
|
||||
exclude_modes = list(/datum/game_mode/nuclear/clown_ops)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10,
|
||||
/obj/item/ammo_box/foambox/riot = 20,
|
||||
/obj/item/toy/katana = 10,
|
||||
/obj/item/twohanded/dualsaber/toy = 5,
|
||||
/obj/item/dualsaber/toy = 5,
|
||||
/obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 10,
|
||||
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 10,
|
||||
/obj/item/toy/katana = 10,
|
||||
/obj/item/twohanded/dualsaber/toy = 5)
|
||||
/obj/item/dualsaber/toy = 5)
|
||||
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
refill_canister = /obj/item/vending_refill/donksoft
|
||||
|
||||
@@ -306,7 +306,7 @@
|
||||
/obj/item/cartridge/janitor = 3,
|
||||
/obj/item/clothing/gloves/color/black = 2,
|
||||
/obj/item/clothing/head/soft/purple = 2,
|
||||
/obj/item/twohanded/broom = 2,
|
||||
/obj/item/broom = 2,
|
||||
/obj/item/paint/paint_remover = 2,
|
||||
/obj/item/melee/flyswatter = 2,
|
||||
/obj/item/flashlight = 2,
|
||||
|
||||
Reference in New Issue
Block a user