mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
fix
This commit is contained in:
@@ -123,7 +123,8 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(!target || !user)
|
if(!target || !user)
|
||||||
return
|
return
|
||||||
|
if(!user.CheckActionCooldown())
|
||||||
|
return
|
||||||
if(!focus)
|
if(!focus)
|
||||||
focus_object(target)
|
focus_object(target)
|
||||||
return
|
return
|
||||||
@@ -145,7 +146,7 @@
|
|||||||
else
|
else
|
||||||
apply_focus_overlay()
|
apply_focus_overlay()
|
||||||
focus.throw_at(target, 10, 1,user)
|
focus.throw_at(target, 10, 1,user)
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(immediate = FALSE)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/proc/tkMaxRangeCheck(mob/user, atom/target)
|
/proc/tkMaxRangeCheck(mob/user, atom/target)
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
infra_luminosity = 15 //byond implementation is bugged.
|
infra_luminosity = 15 //byond implementation is bugged.
|
||||||
force = 5
|
force = 5
|
||||||
flags_1 = HEAR_1|BLOCK_FACE_ATOM_1
|
flags_1 = HEAR_1|BLOCK_FACE_ATOM_1
|
||||||
|
attack_hand_speed = CLICK_CD_MELEE
|
||||||
|
attack_hand_is_action = TRUE
|
||||||
var/can_move = 0 //time of next allowed movement
|
var/can_move = 0 //time of next allowed movement
|
||||||
var/mob/living/occupant = null
|
var/mob/living/occupant = null
|
||||||
var/step_in = 10 //make a step in step_in/10 sec.
|
var/step_in = 10 //make a step in step_in/10 sec.
|
||||||
|
|||||||
@@ -55,10 +55,6 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/mecha/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags)
|
/obj/mecha/on_attack_hand(mob/living/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||||
. = ..()
|
|
||||||
if(.)
|
|
||||||
return
|
|
||||||
user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code.
|
|
||||||
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
|
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
|
||||||
playsound(loc, 'sound/weapons/tap.ogg', 40, 1, -1)
|
playsound(loc, 'sound/weapons/tap.ogg', 40, 1, -1)
|
||||||
user.visible_message("<span class='danger'>[user] hits [name]. Nothing happens</span>", null, null, COMBAT_MESSAGE_RANGE)
|
user.visible_message("<span class='danger'>[user] hits [name]. Nothing happens</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||||
|
|||||||
@@ -167,6 +167,8 @@
|
|||||||
icon_state = "urinal"
|
icon_state = "urinal"
|
||||||
density = FALSE
|
density = FALSE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
attack_hand_speed = CLICK_CD_MELEE
|
||||||
|
attack_hand_is_action = TRUE
|
||||||
var/exposed = 0 // can you currently put an item inside
|
var/exposed = 0 // can you currently put an item inside
|
||||||
var/obj/item/hiddenitem = null // what's in the urinal
|
var/obj/item/hiddenitem = null // what's in the urinal
|
||||||
|
|
||||||
@@ -181,7 +183,6 @@
|
|||||||
if(GM.loc != get_turf(src))
|
if(GM.loc != get_turf(src))
|
||||||
to_chat(user, "<span class='notice'>[GM.name] needs to be on [src].</span>")
|
to_chat(user, "<span class='notice'>[GM.name] needs to be on [src].</span>")
|
||||||
return
|
return
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
|
||||||
user.visible_message("<span class='danger'>[user] slams [GM] into [src]!</span>", "<span class='danger'>You slam [GM] into [src]!</span>")
|
user.visible_message("<span class='danger'>[user] slams [GM] into [src]!</span>", "<span class='danger'>You slam [GM] into [src]!</span>")
|
||||||
GM.adjustBruteLoss(8)
|
GM.adjustBruteLoss(8)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -124,7 +124,7 @@
|
|||||||
ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||||
else
|
else
|
||||||
playsound(src, 'sound/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself
|
playsound(src, 'sound/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself
|
||||||
user.changeNext_move(CLICK_CD_MELEE)
|
user.DelayNextAction(CLICK_CD_MELEE)
|
||||||
user.do_attack_animation(src)
|
user.do_attack_animation(src)
|
||||||
if(prob(I.force * 20 - 25))
|
if(prob(I.force * 20 - 25))
|
||||||
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>", \
|
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>", \
|
||||||
|
|||||||
@@ -137,14 +137,14 @@
|
|||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/turf/closed/wall/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
/turf/closed/wall/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||||
if(!M.CheckActionCooldown(CLICK_CD_MELEE))
|
if(!user.CheckActionCooldown(CLICK_CD_MELEE))
|
||||||
return
|
return
|
||||||
to_chat(user, "<span class='notice'>You push the wall but nothing happens!</span>")
|
to_chat(user, "<span class='notice'>You push the wall but nothing happens!</span>")
|
||||||
playsound(src, 'sound/weapons/genhit.ogg', 25, 1)
|
playsound(src, 'sound/weapons/genhit.ogg', 25, 1)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
|
|
||||||
/turf/closed/wall/attackby(obj/item/W, mob/user, params)
|
/turf/closed/wall/attackby(obj/item/W, mob/user, params)
|
||||||
if(!M.CheckActionCooldown(CLICK_CD_MELEE))
|
if(!user.CheckActionCooldown(CLICK_CD_MELEE))
|
||||||
return
|
return
|
||||||
if (!user.IsAdvancedToolUser())
|
if (!user.IsAdvancedToolUser())
|
||||||
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||||
|
|||||||
@@ -128,11 +128,9 @@
|
|||||||
target.face_atom(L)
|
target.face_atom(L)
|
||||||
target.Stun(power_time)
|
target.Stun(power_time)
|
||||||
to_chat(L, "<span class='notice'>[target] is fixed in place by your hypnotic gaze.</span>")
|
to_chat(L, "<span class='notice'>[target] is fixed in place by your hypnotic gaze.</span>")
|
||||||
target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm
|
target.DelayNextAction(power_time)
|
||||||
target.mob_transforming = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze.
|
|
||||||
spawn(power_time)
|
spawn(power_time)
|
||||||
if(istype(target) && success)
|
if(istype(target) && success)
|
||||||
target.mob_transforming = FALSE
|
|
||||||
if(istype(L) && target.stat == CONSCIOUS && (target in L.fov_view(10))) // They Woke Up! (Notice if within view)
|
if(istype(L) && target.stat == CONSCIOUS && (target in L.fov_view(10))) // They Woke Up! (Notice if within view)
|
||||||
to_chat(L, "<span class='warning'>[target] has snapped out of their trance.</span>")
|
to_chat(L, "<span class='warning'>[target] has snapped out of their trance.</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -81,9 +81,7 @@
|
|||||||
var/mist_delay = max(5, 20 - level_current * 2.5) // Level up and do this faster.
|
var/mist_delay = max(5, 20 - level_current * 2.5) // Level up and do this faster.
|
||||||
|
|
||||||
// Freeze Me
|
// Freeze Me
|
||||||
user.next_move = world.time + mist_delay
|
|
||||||
user.Stun(mist_delay, ignore_canstun = TRUE)
|
user.Stun(mist_delay, ignore_canstun = TRUE)
|
||||||
user.mob_transforming = TRUE
|
|
||||||
user.density = FALSE
|
user.density = FALSE
|
||||||
var/invis_was = user.invisibility
|
var/invis_was = user.invisibility
|
||||||
user.invisibility = INVISIBILITY_MAXIMUM
|
user.invisibility = INVISIBILITY_MAXIMUM
|
||||||
@@ -96,7 +94,6 @@
|
|||||||
// Move & Freeze
|
// Move & Freeze
|
||||||
if(isturf(target_turf))
|
if(isturf(target_turf))
|
||||||
do_teleport(owner, target_turf, no_effects=TRUE, channel = TELEPORT_CHANNEL_QUANTUM) // in teleport.dm?
|
do_teleport(owner, target_turf, no_effects=TRUE, channel = TELEPORT_CHANNEL_QUANTUM) // in teleport.dm?
|
||||||
user.next_move = world.time + mist_delay / 2
|
|
||||||
user.Stun(mist_delay / 2, ignore_canstun = TRUE)
|
user.Stun(mist_delay / 2, ignore_canstun = TRUE)
|
||||||
|
|
||||||
// Wait...
|
// Wait...
|
||||||
@@ -104,9 +101,7 @@
|
|||||||
|
|
||||||
// Un-Hide & Freeze
|
// Un-Hide & Freeze
|
||||||
user.dir = get_dir(my_turf, target_turf)
|
user.dir = get_dir(my_turf, target_turf)
|
||||||
user.next_move = world.time + mist_delay / 2
|
|
||||||
user.Stun(mist_delay / 2, ignore_canstun = TRUE)
|
user.Stun(mist_delay / 2, ignore_canstun = TRUE)
|
||||||
user.mob_transforming = FALSE
|
|
||||||
user.density = 1
|
user.density = 1
|
||||||
user.invisibility = invis_was
|
user.invisibility = invis_was
|
||||||
|
|
||||||
|
|||||||
@@ -498,7 +498,7 @@
|
|||||||
if(resource_gain)
|
if(resource_gain)
|
||||||
resources += resource_gain
|
resources += resource_gain
|
||||||
do_attack_animation(target)
|
do_attack_animation(target)
|
||||||
changeNext_move(CLICK_CD_MELEE)
|
DelayNextAction(CLICK_CD_MELEE)
|
||||||
var/obj/effect/temp_visual/swarmer/integrate/I = new /obj/effect/temp_visual/swarmer/integrate(get_turf(target))
|
var/obj/effect/temp_visual/swarmer/integrate/I = new /obj/effect/temp_visual/swarmer/integrate(get_turf(target))
|
||||||
I.pixel_x = target.pixel_x
|
I.pixel_x = target.pixel_x
|
||||||
I.pixel_y = target.pixel_y
|
I.pixel_y = target.pixel_y
|
||||||
@@ -518,7 +518,7 @@
|
|||||||
/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(atom/movable/target)
|
/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(atom/movable/target)
|
||||||
new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target))
|
new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target))
|
||||||
do_attack_animation(target)
|
do_attack_animation(target)
|
||||||
changeNext_move(CLICK_CD_MELEE)
|
DelayNextAction(CLICK_CD_MELEE)
|
||||||
target.ex_act(EXPLODE_LIGHT)
|
target.ex_act(EXPLODE_LIGHT)
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(mob/living/target)
|
/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(mob/living/target)
|
||||||
|
|||||||
@@ -136,7 +136,7 @@
|
|||||||
target = A
|
target = A
|
||||||
if(!isturf(loc))
|
if(!isturf(loc))
|
||||||
return
|
return
|
||||||
if(next_move > world.time)
|
if(!CheckActionCooldown())
|
||||||
return
|
return
|
||||||
if(hopping)
|
if(hopping)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 7
|
throw_range = 7
|
||||||
pressure_resistance = 8
|
pressure_resistance = 8
|
||||||
clickdelay_attack_hand_is_action = TRUE
|
attack_hand_speed = CLICK_CD_RAPID
|
||||||
clickdelay_attack_hand_preattack_cooldown = CLICK_CD_MELEE
|
attack_hand_is_action = TRUE
|
||||||
var/papertype = /obj/item/paper
|
var/papertype = /obj/item/paper
|
||||||
var/total_paper = 30
|
var/total_paper = 30
|
||||||
var/list/papers = list()
|
var/list/papers = list()
|
||||||
|
|||||||
@@ -53,7 +53,6 @@
|
|||||||
|
|
||||||
if(last_checked_size != B.cached_size)
|
if(last_checked_size != B.cached_size)
|
||||||
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy, multiplicative_slowdown = moveCalc)
|
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy, multiplicative_slowdown = moveCalc)
|
||||||
sizeMoveMod(moveCalc)
|
|
||||||
|
|
||||||
if (B.size == "huge")
|
if (B.size == "huge")
|
||||||
if(prob(1))
|
if(prob(1))
|
||||||
@@ -70,16 +69,8 @@
|
|||||||
log_reagent("FERMICHEM: [owner]'s breasts has reduced to an acceptable size. ID: [owner.key]")
|
log_reagent("FERMICHEM: [owner]'s breasts has reduced to an acceptable size. ID: [owner.key]")
|
||||||
to_chat(owner, "<span class='notice'>Your expansive chest has become a more managable size, liberating your movements.</b></span>")
|
to_chat(owner, "<span class='notice'>Your expansive chest has become a more managable size, liberating your movements.</b></span>")
|
||||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy)
|
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy)
|
||||||
sizeMoveMod(1)
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/status_effect/chem/breast_enlarger/proc/sizeMoveMod(var/value)
|
|
||||||
if(cachedmoveCalc == value)
|
|
||||||
return
|
|
||||||
owner.next_move_modifier /= cachedmoveCalc
|
|
||||||
owner.next_move_modifier *= value
|
|
||||||
cachedmoveCalc = value
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/datum/status_effect/chem/penis_enlarger
|
/datum/status_effect/chem/penis_enlarger
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
|||||||
M.visible_message("[M] suddenly shudders, and splits into two identical twins!")
|
M.visible_message("[M] suddenly shudders, and splits into two identical twins!")
|
||||||
SM.copy_languages(M, LANGUAGE_MIND)
|
SM.copy_languages(M, LANGUAGE_MIND)
|
||||||
playerClone = TRUE
|
playerClone = TRUE
|
||||||
M.next_move_modifier = 1
|
M.action_cooldown_mod = 1
|
||||||
M.adjust_nutrition(-500)
|
M.adjust_nutrition(-500)
|
||||||
|
|
||||||
//Damage the clone
|
//Damage the clone
|
||||||
@@ -154,7 +154,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
|||||||
M.adjust_nutrition(M.nutrition/5)
|
M.adjust_nutrition(M.nutrition/5)
|
||||||
if(50)
|
if(50)
|
||||||
to_chat(M, "<span class='notice'>The synthetic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.</span>")
|
to_chat(M, "<span class='notice'>The synthetic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.</span>")
|
||||||
M.next_move_modifier += 4//If this makes you fast then please fix it, it should make you slow!!
|
M.action_cooldown_mod += 4//If this makes you fast then please fix it, it should make you slow!!
|
||||||
//candidates = pollGhostCandidates("Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies
|
//candidates = pollGhostCandidates("Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies
|
||||||
if(51 to 79)
|
if(51 to 79)
|
||||||
M.adjust_nutrition(M.nutrition/2)
|
M.adjust_nutrition(M.nutrition/2)
|
||||||
@@ -164,7 +164,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
|||||||
M.set_nutrition(20000) //https://www.youtube.com/watch?v=Bj_YLenOlZI
|
M.set_nutrition(20000) //https://www.youtube.com/watch?v=Bj_YLenOlZI
|
||||||
if(86)//Upon splitting, you get really hungry and are capable again. Deletes the chem after you're done.
|
if(86)//Upon splitting, you get really hungry and are capable again. Deletes the chem after you're done.
|
||||||
M.set_nutrition(15)//YOU BEST BE EATTING AFTER THIS YOU CUTIE
|
M.set_nutrition(15)//YOU BEST BE EATTING AFTER THIS YOU CUTIE
|
||||||
M.next_move_modifier -= 4
|
M.action_cooldown_mod -= 4
|
||||||
to_chat(M, "<span class='notice'>Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.</span>")
|
to_chat(M, "<span class='notice'>Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.</span>")
|
||||||
|
|
||||||
//clone
|
//clone
|
||||||
|
|||||||
Reference in New Issue
Block a user