mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
fixes
This commit is contained in:
@@ -316,11 +316,11 @@
|
|||||||
|
|
||||||
/mob/living/carbon/human/CtrlClick(mob/user)
|
/mob/living/carbon/human/CtrlClick(mob/user)
|
||||||
if(ishuman(user) && Adjacent(user) && !user.incapacitated())
|
if(ishuman(user) && Adjacent(user) && !user.incapacitated())
|
||||||
if(world.time < user.next_move)
|
if(!user.CheckActionCooldown())
|
||||||
return FALSE
|
return FALSE
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
H.dna.species.grab(H, src, H.mind.martial_art)
|
H.dna.species.grab(H, src, H.mind.martial_art)
|
||||||
H.changeNext_move(CLICK_CD_MELEE)
|
H.DelayNextAction(CLICK_CD_MELEE)
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
/*
|
/*
|
||||||
@@ -380,7 +380,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/LaserEyes(atom/A, params)
|
/mob/living/LaserEyes(atom/A, params)
|
||||||
changeNext_move(CLICK_CD_RANGE)
|
DelayNextAction(CLICK_CD_RANGE)
|
||||||
|
|
||||||
var/obj/item/projectile/beam/LE = new /obj/item/projectile/beam( loc )
|
var/obj/item/projectile/beam/LE = new /obj/item/projectile/beam( loc )
|
||||||
LE.icon = 'icons/effects/genetics.dmi'
|
LE.icon = 'icons/effects/genetics.dmi'
|
||||||
|
|||||||
@@ -176,6 +176,7 @@
|
|||||||
/obj/screen/inventory/hand/Click(location, control, params)
|
/obj/screen/inventory/hand/Click(location, control, params)
|
||||||
if(hud?.mymob && (hud.mymob != usr))
|
if(hud?.mymob && (hud.mymob != usr))
|
||||||
return
|
return
|
||||||
|
var/mob/user = hud.mymob
|
||||||
// just redirect clicks
|
// just redirect clicks
|
||||||
|
|
||||||
if(user.active_hand_index == held_index)
|
if(user.active_hand_index == held_index)
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
/obj/item/proc/rightclick_melee_attack_chain(mob/user, atom/target, params)
|
/obj/item/proc/rightclick_melee_attack_chain(mob/user, atom/target, params)
|
||||||
if(!alt_pre_attack(target, user, params)) //Hey, does this item have special behavior that should override all normal right-click functionality?
|
if(!alt_pre_attack(target, user, params)) //Hey, does this item have special behavior that should override all normal right-click functionality?
|
||||||
if(!target.altattackby(src, user, params)) //Does the target do anything special when we right-click on it?
|
if(!target.altattackby(src, user, params)) //Does the target do anything special when we right-click on it?
|
||||||
melee_attack_chain(user, target, params) //Ugh. Lame! I'm filing a legal complaint about the discrimination against the right mouse button!
|
. = melee_attack_chain(user, target, params) //Ugh. Lame! I'm filing a legal complaint about the discrimination against the right mouse button!
|
||||||
else
|
else
|
||||||
altafterattack(target, user, TRUE, params)
|
. = altafterattack(target, user, TRUE, params)
|
||||||
return
|
|
||||||
|
|
||||||
/obj/item/proc/alt_pre_attack(atom/A, mob/living/user, params)
|
/obj/item/proc/alt_pre_attack(atom/A, mob/living/user, params)
|
||||||
return FALSE //return something other than false if you wanna override attacking completely
|
return FALSE //return something other than false if you wanna override attacking completely
|
||||||
|
|||||||
@@ -313,7 +313,7 @@ Class Procs:
|
|||||||
if(user.a_intent != INTENT_HARM)
|
if(user.a_intent != INTENT_HARM)
|
||||||
return attack_hand(user)
|
return attack_hand(user)
|
||||||
else
|
else
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
|
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
|
||||||
user.visible_message("<span class='danger'>[user.name] smashes against \the [src.name] with its paws.</span>", null, null, COMBAT_MESSAGE_RANGE)
|
user.visible_message("<span class='danger'>[user.name] smashes against \the [src.name] with its paws.</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||||
take_damage(4, BRUTE, "melee", 1)
|
take_damage(4, BRUTE, "melee", 1)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
user.visible_message("<span class='warning'>[user] projects a forcefield!</span>","<span class='notice'>You project a forcefield.</span>")
|
user.visible_message("<span class='warning'>[user] projects a forcefield!</span>","<span class='notice'>You project a forcefield.</span>")
|
||||||
var/obj/structure/projected_forcefield/F = new(T, src)
|
var/obj/structure/projected_forcefield/F = new(T, src)
|
||||||
current_fields += F
|
current_fields += F
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
|
|
||||||
/obj/item/forcefield_projector/attack_self(mob/user)
|
/obj/item/forcefield_projector/attack_self(mob/user)
|
||||||
if(LAZYLEN(current_fields))
|
if(LAZYLEN(current_fields))
|
||||||
|
|||||||
@@ -14,12 +14,11 @@
|
|||||||
w_class = WEIGHT_CLASS_NORMAL
|
w_class = WEIGHT_CLASS_NORMAL
|
||||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 40)
|
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 40)
|
||||||
resistance_flags = FIRE_PROOF
|
resistance_flags = FIRE_PROOF
|
||||||
click_delay = CLICK_CD_MELEE * 1.5
|
attack_speed = CLICK_CD_MELEE * 1.5
|
||||||
var/fisto_setting = 1
|
var/fisto_setting = 1
|
||||||
var/gasperfist = 3
|
var/gasperfist = 3
|
||||||
var/obj/item/tank/internals/tank = null //Tank used for the gauntlet's piston-ram.
|
var/obj/item/tank/internals/tank = null //Tank used for the gauntlet's piston-ram.
|
||||||
|
|
||||||
|
|
||||||
/obj/item/melee/powerfist/examine(mob/user)
|
/obj/item/melee/powerfist/examine(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!in_range(user, src))
|
if(!in_range(user, src))
|
||||||
|
|||||||
@@ -726,9 +726,9 @@ obj/item/storage/box/stingbangs
|
|||||||
return (BRUTELOSS)
|
return (BRUTELOSS)
|
||||||
|
|
||||||
/obj/item/storage/box/hug/attack_self(mob/user)
|
/obj/item/storage/box/hug/attack_self(mob/user)
|
||||||
..()
|
. = ..()
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
playsound(loc, "rustle", 50, 1, -5)
|
playsound(src, "rustle", 50, 1, -5)
|
||||||
user.visible_message("<span class='notice'>[user] hugs \the [src].</span>","<span class='notice'>You hug \the [src].</span>")
|
user.visible_message("<span class='notice'>[user] hugs \the [src].</span>","<span class='notice'>You hug \the [src].</span>")
|
||||||
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"hugbox", /datum/mood_event/hugbox)
|
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"hugbox", /datum/mood_event/hugbox)
|
||||||
|
|
||||||
@@ -1423,4 +1423,4 @@ obj/item/storage/box/stingbangs
|
|||||||
|
|
||||||
/obj/item/storage/box/strange_seeds_5pack/PopulateContents()
|
/obj/item/storage/box/strange_seeds_5pack/PopulateContents()
|
||||||
for(var/i in 1 to 5)
|
for(var/i in 1 to 5)
|
||||||
new /obj/item/seeds/random(src)
|
new /obj/item/seeds/random(src)
|
||||||
|
|||||||
@@ -47,6 +47,6 @@
|
|||||||
if(INTENT_HARM)
|
if(INTENT_HARM)
|
||||||
user.visible_message("<span class='danger'>[user] punches the [name]!</span>")
|
user.visible_message("<span class='danger'>[user] punches the [name]!</span>")
|
||||||
playsound(src, 'sound/effects/shieldbash.ogg', 50, 1)
|
playsound(src, 'sound/effects/shieldbash.ogg', 50, 1)
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
|
|||||||
@@ -145,7 +145,6 @@
|
|||||||
|
|
||||||
/obj/item/melee/baton/alt_pre_attack(atom/A, mob/living/user, params)
|
/obj/item/melee/baton/alt_pre_attack(atom/A, mob/living/user, params)
|
||||||
. = common_baton_melee(A, user, TRUE) //return true (attackchain interrupt) if this also returns true. no harm-disarming.
|
. = common_baton_melee(A, user, TRUE) //return true (attackchain interrupt) if this also returns true. no harm-disarming.
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
|
||||||
|
|
||||||
//return TRUE to interrupt attack chain.
|
//return TRUE to interrupt attack chain.
|
||||||
/obj/item/melee/baton/proc/common_baton_melee(mob/M, mob/living/user, disarming = FALSE)
|
/obj/item/melee/baton/proc/common_baton_melee(mob/M, mob/living/user, disarming = FALSE)
|
||||||
@@ -153,6 +152,9 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
if(turned_on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
|
if(turned_on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
|
||||||
clowning_around(user)
|
clowning_around(user)
|
||||||
|
if(!user.CheckActionCooldown(CLICK_CD_MELEE))
|
||||||
|
return TRUE
|
||||||
|
user.DelayNextAction()
|
||||||
if(IS_STAMCRIT(user)) //CIT CHANGE - makes it impossible to baton in stamina softcrit
|
if(IS_STAMCRIT(user)) //CIT CHANGE - makes it impossible to baton in stamina softcrit
|
||||||
to_chat(user, "<span class='danger'>You're too exhausted to use [src] properly.</span>")
|
to_chat(user, "<span class='danger'>You're too exhausted to use [src] properly.</span>")
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
gulp_size = max(round(reagents.total_volume / 5), 5)
|
gulp_size = max(round(reagents.total_volume / 5), 5)
|
||||||
|
|
||||||
/obj/item/reagent_containers/food/drinks/attack(mob/living/M, mob/user, def_zone)
|
/obj/item/reagent_containers/food/drinks/attack(mob/living/M, mob/user, def_zone)
|
||||||
|
|
||||||
if(!reagents || !reagents.total_volume)
|
if(!reagents || !reagents.total_volume)
|
||||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||||
return 0
|
return 0
|
||||||
@@ -56,6 +55,10 @@
|
|||||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
/obj/item/reagent_containers/food/drinks/CheckAttackCooldown(mob/user, atom/target)
|
||||||
|
var/fast = HAS_TRAIT(user, TRAIT_VORACIOUS) && (user == target)
|
||||||
|
return user.CheckActionCooldown(fast? CLICK_CD_RANGE : CLICK_CD_MELEE)
|
||||||
|
|
||||||
/obj/item/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity)
|
/obj/item/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!proximity)
|
if(!proximity)
|
||||||
|
|||||||
@@ -129,8 +129,6 @@ All foods are distributed among various categories. Use common sense.
|
|||||||
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
|
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
|
||||||
user.visible_message("<span class='warning'>[user] cannot force any more of \the [src] to go down [user.p_their()] throat!</span>", "<span class='danger'>You cannot force any more of \the [src] to go down your throat!</span>")
|
user.visible_message("<span class='warning'>[user] cannot force any more of \the [src] to go down [user.p_their()] throat!</span>", "<span class='danger'>You cannot force any more of \the [src] to go down your throat!</span>")
|
||||||
return 0
|
return 0
|
||||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
|
||||||
M.changeNext_move(CLICK_CD_MELEE * 0.5) //nom nom nom
|
|
||||||
else
|
else
|
||||||
if(!isbrain(M)) //If you're feeding it to someone else.
|
if(!isbrain(M)) //If you're feeding it to someone else.
|
||||||
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
|
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
|
||||||
@@ -167,6 +165,10 @@ All foods are distributed among various categories. Use common sense.
|
|||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
/obj/item/reagent_containers/food/snacks/CheckAttackCooldown(mob/user, atom/target)
|
||||||
|
var/fast = HAS_TRAIT(user, TRAIT_VORACIOUS) && (user == target)
|
||||||
|
return user.CheckActionCooldown(fast? CLICK_CD_RANGE : CLICK_CD_MELEE)
|
||||||
|
|
||||||
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(food_quality >= 70)
|
if(food_quality >= 70)
|
||||||
|
|||||||
@@ -187,7 +187,7 @@
|
|||||||
if(LAZYLEN(S.rcd_vals(owner,B.RCD)))
|
if(LAZYLEN(S.rcd_vals(owner,B.RCD)))
|
||||||
rcd_target = S //If we don't break out of this loop we'll get the last placed thing
|
rcd_target = S //If we don't break out of this loop we'll get the last placed thing
|
||||||
|
|
||||||
owner.changeNext_move(CLICK_CD_RANGE)
|
owner.DelayNextAction(CLICK_CD_RANGE)
|
||||||
B.RCD.afterattack(rcd_target, owner, TRUE) //Activate the RCD and force it to work remotely!
|
B.RCD.afterattack(rcd_target, owner, TRUE) //Activate the RCD and force it to work remotely!
|
||||||
playsound(target_turf, 'sound/items/deconstruct.ogg', 60, 1)
|
playsound(target_turf, 'sound/items/deconstruct.ogg', 60, 1)
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,7 @@
|
|||||||
REMOVE_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_BLOCK_TRAIT)
|
REMOVE_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_BLOCK_TRAIT)
|
||||||
remove_movespeed_modifier(/datum/movespeed_modifier/active_block)
|
remove_movespeed_modifier(/datum/movespeed_modifier/active_block)
|
||||||
var/datum/block_parry_data/data = I.get_block_parry_data()
|
var/datum/block_parry_data/data = I.get_block_parry_data()
|
||||||
if(timeToNextMove() < data.block_end_click_cd_add)
|
DelayNextAction(data.block_end_click_cd_add)
|
||||||
changeNext_move(data.block_end_click_cd_add)
|
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/mob/living/proc/ACTIVE_BLOCK_START(obj/item/I)
|
/mob/living/proc/ACTIVE_BLOCK_START(obj/item/I)
|
||||||
|
|||||||
@@ -289,6 +289,7 @@
|
|||||||
|
|
||||||
/mob/living/silicon/robot/attackby(obj/item/W, mob/user, params)
|
/mob/living/silicon/robot/attackby(obj/item/W, mob/user, params)
|
||||||
if(istype(W, /obj/item/weldingtool) && (user.a_intent != INTENT_HARM || user == src))
|
if(istype(W, /obj/item/weldingtool) && (user.a_intent != INTENT_HARM || user == src))
|
||||||
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
if (!getBruteLoss())
|
if (!getBruteLoss())
|
||||||
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
||||||
return
|
return
|
||||||
@@ -310,7 +311,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(W, /obj/item/stack/cable_coil) && wiresexposed)
|
else if(istype(W, /obj/item/stack/cable_coil) && wiresexposed)
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
if (getFireLoss() > 0 || getToxLoss() > 0)
|
if (getFireLoss() > 0 || getToxLoss() > 0)
|
||||||
if(src == user)
|
if(src == user)
|
||||||
to_chat(user, "<span class='notice'>You start fixing yourself...</span>")
|
to_chat(user, "<span class='notice'>You start fixing yourself...</span>")
|
||||||
|
|||||||
@@ -597,9 +597,7 @@
|
|||||||
|
|
||||||
/obj/machinery/light/on_attack_hand(mob/living/carbon/human/user)
|
/obj/machinery/light/on_attack_hand(mob/living/carbon/human/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(.)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
return
|
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
|
|
||||||
if(status == LIGHT_EMPTY)
|
if(status == LIGHT_EMPTY)
|
||||||
|
|||||||
Reference in New Issue
Block a user