This commit is contained in:
silicons
2020-07-20 11:48:08 -07:00
parent 416b989e12
commit 526d257410
13 changed files with 19 additions and 35 deletions

View File

@@ -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)

View File

@@ -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.

View File

@@ -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)

View File

@@ -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

View File

@@ -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>", \

View File

@@ -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>")

View File

@@ -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>")

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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