Makes Hulk Attacking Less Snowflakey

This commit is contained in:
Fox McCloud
2018-05-19 02:32:34 -04:00
parent 916870fec3
commit a87170255b
23 changed files with 171 additions and 120 deletions
+5
View File
@@ -12,6 +12,11 @@
if(proximity && istype(G) && G.Touch(A, 1))
return
if(HULK in mutations)
if(proximity) //no telekinetic hulk attack
if(A.attack_hulk(src))
return
A.attack_hand(src)
/atom/proc/attack_hand(mob/user as mob)
+6
View File
@@ -143,6 +143,12 @@
/atom/proc/setDir(newdir)
dir = newdir
/atom/proc/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(does_attack_animation)
user.changeNext_move(CLICK_CD_MELEE)
add_attack_logs(user, src, "punched with hulk powers")
user.do_attack_animation(src, ATTACK_EFFECT_SMASH)
/atom/proc/CheckParts(list/parts_list)
for(var/A in parts_list)
if(istype(A, /datum/reagent))
+3
View File
@@ -147,6 +147,9 @@
..()
take_damage(power/400, BURN)
/obj/structure/blob/hulk_damage()
return 15
/obj/structure/blob/attackby(var/obj/item/W, var/mob/living/user, params)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
+5 -6
View File
@@ -54,13 +54,12 @@
if(prob(75))
qdel(src)
/obj/machinery/optable/attack_hand(mob/user as mob)
if(HULK in usr.mutations)
to_chat(usr, text("<span class='notice'>You destroy the table.</span>"))
visible_message("<span class='warning'>[usr] destroys the operating table!</span>")
src.density = 0
/obj/machinery/optable/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
..(user, TRUE)
visible_message("<span class='warning'>[user] destroys the operating table!</span>")
qdel(src)
return
return TRUE
/obj/machinery/optable/CanPass(atom/movable/mover, turf/target, height=0)
if(height==0) return 1
+14 -13
View File
@@ -470,19 +470,10 @@
/obj/mecha/attack_hand(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
log_message("Attack by hand/paw. Attacker - [user].",1)
if((HULK in user.mutations) && !prob(deflect_chance))
do_attack_animation(src, ATTACK_EFFECT_SMASH)
take_damage(15)
check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
user.visible_message("<span class='danger'>[user] hits [name], doing some damage.</span>",
"<span class='danger'>You hit [name] with all your might. The metal creaks and bends.</span>")
else
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
playsound(loc, 'sound/weapons/tap.ogg', 40, 1, -1)
user.visible_message("<span class='danger'>[user] hits [name]. Nothing happens</span>","<span class='danger'>You hit [name] with no visible effect.</span>")
log_append_to_last("Armor saved.")
return
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
playsound(loc, 'sound/weapons/tap.ogg', 40, 1, -1)
user.visible_message("<span class='danger'>[user] hits [name]. Nothing happens</span>","<span class='danger'>You hit [name] with no visible effect.</span>")
log_append_to_last("Armor saved.")
/obj/mecha/attack_alien(mob/living/user)
@@ -526,6 +517,16 @@
user.create_attack_log("<font color='red'>attacked [name]</font>")
return
/obj/mecha/hulk_damage()
return 15
/obj/mecha/attack_hulk(mob/living/carbon/human/user)
. = ..()
if(.)
check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL, MECHA_INT_TANK_BREACH, MECHA_INT_CONTROL_LOST))
log_message("Attack by hulk. Attacker - [user].", 1)
add_attack_logs(user, src, "punched with hulk powers")
/obj/mecha/hitby(atom/movable/A) //wrapper
..()
log_message("Hit by [A].",1)
@@ -205,11 +205,12 @@
/obj/structure/foamedmetal/attack_hand(mob/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
if((HULK in user.mutations) || (prob(75 - metal*25)))
if(prob(75 - metal * 25))
user.visible_message("<span class='warning'>[user] smashes through \the [src].</span>", "<span class='notice'>You smash through \the [src].</span>")
qdel(src)
else
to_chat(user, "<span class='notice'>You hit the metal foam but bounce off it.</span>")
playsound(src.loc, 'sound/weapons/tap.ogg', 100, 1)
/obj/structure/foamedmetal/attackby(obj/item/I, mob/user, params)
user.changeNext_move(CLICK_CD_MELEE)
+4 -1
View File
@@ -11,4 +11,7 @@
return
/obj/effect/fire_act()
return
return
/obj/effect/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
return FALSE
+3
View File
@@ -550,3 +550,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
/obj/item/proc/on_trip(mob/living/carbon/human/H)
if(H.slip(src, trip_stun, trip_weaken, trip_tiles, trip_walksafe, trip_any, trip_verb))
return TRUE
/obj/item/attack_hulk(mob/living/carbon/human/user)
return FALSE
@@ -247,6 +247,11 @@
return ..()
return 0
/obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up
if(wielded)
to_chat(user, "<span class='warning'>You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!</span>")
return TRUE
/obj/item/twohanded/dualsaber/green
blade_color = "green"
+16
View File
@@ -71,6 +71,22 @@
visible_message("<span class='danger'>[src] is hit by \a [P]!</span>")
take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180), P.armour_penetration)
/obj/proc/hulk_damage()
return 150 //the damage hulks do on punches to this object, is affected by melee armor
/obj/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
..(user, TRUE)
visible_message("<span class='danger'>[user] smashes [src]!</span>")
if(density)
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
take_damage(hulk_damage(), BRUTE, "melee", 0, get_dir(src, user))
return TRUE
return FALSE
/obj/blob_act(obj/structure/blob/B)
if(isturf(loc))
var/turf/T = loc
-8
View File
@@ -112,14 +112,6 @@
health -= tforce
healthcheck()
/obj/structure/alien/resin/attack_hand(mob/living/user)
if(HULK in user.mutations)
user.do_attack_animation(src)
user.visible_message("<span class='danger'>[user] destroys [src]!</span>")
health = 0
healthcheck()
/obj/structure/alien/resin/attack_alien(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
+14 -9
View File
@@ -69,18 +69,23 @@
if(ismob(user))
shock(user, 70)
/obj/structure/grille/hulk_damage()
return 60
/obj/structure/grille/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
if(!shock(user, 70))
..(user, TRUE)
return TRUE
/obj/structure/grille/attack_hand(mob/living/user)
. = ..()
if(.)
return
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
user.visible_message("<span class='warning'>[user] kicks [src].</span>", \
"<span class='warning'>You kick [src].</span>", \
"You hear twisting metal.")
if(shock(user, 70))
return
if(HULK in user.mutations)
take_damage(60, BRUTE, "melee", 1)
else
user.visible_message("<span class='warning'>[user] hits [src].</span>")
if(!shock(user, 70))
take_damage(rand(5,10), BRUTE, "melee", 1)
/obj/structure/grille/attack_alien(mob/living/user)
+1 -8
View File
@@ -83,14 +83,7 @@
qdel(src)
/obj/structure/table/attack_hand(mob/living/user)
if(HULK in user.mutations)
user.do_attack_animation(src)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
playsound(loc, 'sound/effects/bang.ogg', 50, 1)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
deconstruct(FALSE)
else
..()
..()
if(climber)
climber.Weaken(2)
climber.visible_message("<span class='warning'>[climber.name] has been knocked off the table", "You've been knocked off the table", "You see [climber.name] get knocked off the table</span>")
+2 -9
View File
@@ -127,13 +127,8 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
if(health <= 0)
destroy()
/obj/structure/window/attack_hand(mob/user as mob)
if(HULK in user.mutations)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!"))
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>")
destroy()
else if(user.a_intent == INTENT_HARM)
/obj/structure/window/attack_hand(mob/user)
if(user.a_intent == INTENT_HARM)
user.changeNext_move(CLICK_CD_MELEE)
playsound(get_turf(src), 'sound/effects/glassknock.ogg', 80, 1)
user.visible_message("<span class='warning'>[user.name] bangs against the [src.name]!</span>", \
@@ -145,8 +140,6 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
user.visible_message("[user.name] knocks on the [src.name].", \
"You knock on the [src.name].", \
"You hear a knocking sound.")
return
/obj/structure/window/attack_generic(mob/living/user, damage = 0) //used by attack_alien, attack_animal, and attack_slime
user.changeNext_move(CLICK_CD_MELEE)
+13 -15
View File
@@ -229,20 +229,19 @@
to_chat(M, "<span class='notice'>You push the wall but nothing happens!</span>")
return
/turf/simulated/wall/attack_hand(mob/user as mob)
user.changeNext_move(CLICK_CD_MELEE)
if(HULK in user.mutations)
if(prob(hardness) || rotting)
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
to_chat(user, text("<span class='notice'>You smash through the wall.</span>"))
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
dismantle_wall(1)
return
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
to_chat(user, text("<span class='notice'>You punch the wall.</span>"))
return
/turf/simulated/wall/attack_hulk(mob/user, does_attack_animation = FALSE)
..(user, TRUE)
if(prob(hardness) || rotting)
playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
dismantle_wall(TRUE)
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
to_chat(user, text("<span class='notice'>You punch the wall.</span>"))
return TRUE
/turf/simulated/wall/attack_hand(mob/user)
user.changeNext_move(CLICK_CD_MELEE)
if(rotting)
if(hardness <= 10)
to_chat(user, "<span class='notice'>This wall feels rather unstable.</span>")
@@ -254,9 +253,8 @@
to_chat(user, "<span class='notice'>You push the wall but nothing happens!</span>")
playsound(src, 'sound/weapons/Genhit.ogg', 25, 1)
src.add_fingerprint(user)
add_fingerprint(user)
..()
return
/turf/simulated/wall/attackby(obj/item/W as obj, mob/user as mob, params)
user.changeNext_move(CLICK_CD_MELEE)
+2 -7
View File
@@ -313,7 +313,7 @@
egg_list.Cut() //Destroy any excess eggs, clearing the egg_list
/obj/machinery/fishtank/proc/harvest_fish(var/mob/user)
if(fish_count <= 0) //Can't catch non-existant fish!
if(fish_count <= 0) //Can't catch non-existant fish!
to_chat(usr, "There are no fish in \the [src] to catch!")
return
var/list/fish_names_list = list()
@@ -574,11 +574,7 @@
attack_generic(user, rand(10, 15))
/obj/machinery/fishtank/attack_hand(mob/user as mob)
if(HULK in user.mutations)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!"))
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>")
destroy()
else if(usr.a_intent == INTENT_HARM)
if(usr.a_intent == INTENT_HARM)
user.changeNext_move(CLICK_CD_MELEE)
playsound(get_turf(src), 'sound/effects/glassknock.ogg', 80, 1)
usr.visible_message("<span class='danger'>[usr.name] bangs against the [src.name]!</span>", \
@@ -590,7 +586,6 @@
usr.visible_message("[usr.name] taps on the [src.name].", \
"You tap on the [src.name].", \
"You hear a knocking sound.")
return
/obj/machinery/fishtank/proc/hit(var/damage, var/sound_effect = 1)
cur_health = max(0, cur_health - damage)
@@ -1,16 +1,23 @@
/mob/living/carbon/alien/humanoid/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
..(user, TRUE)
adjustBruteLoss(15)
var/hitverb = "punched"
if(mob_size < MOB_SIZE_LARGE)
step_away(src, user, 15)
sleep(1)
step_away(src, user, 15)
hitverb = "slammed"
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has [hitverb] [src]!</span>", "<span class='userdanger'>[user] has [hitverb] [src]!</span>")
return TRUE
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M)
if(..())
switch(M.a_intent)
if(INTENT_HARM)
var/damage = rand(1, 9)
if(prob(90))
if(HULK in M.mutations)//HULK SMASH
damage = 15
spawn(0)
Paralyse(1)
step_away(src, M, 15)
sleep(3)
step_away(src, M, 15)
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
"<span class='userdanger'>[M] has punched [src]!</span>")
@@ -2,13 +2,6 @@
if(..())
var/damage = rand(1, 9)
if(prob(90))
if(HULK in M.mutations)
damage += 5
spawn(0)
Paralyse(1)
step_away(src, M, 15)
sleep(3)
step_away(src, M, 15)
playsound(loc, "punch", 25, 1, -1)
add_attack_logs(M, src, "Melee attacked with fists")
visible_message("<span class='danger'>[M] has kicked [src]!</span>", \
@@ -23,6 +16,18 @@
visible_message("<span class='danger'>[M] has attempted to kick [src]!</span>", \
"<span class='userdanger'>[M] has attempted to kick [src]!</span>")
/mob/living/carbon/alien/larva/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
..(user, TRUE)
adjustBruteLoss(5 + rand(1, 9))
spawn(0)
Paralyse(1)
step_away(src, user, 15)
sleep(3)
step_away(src, user, 15)
return TRUE
/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect, end_pixel_y)
if(!no_effect && !visual_effect_icon)
visual_effect_icon = ATTACK_EFFECT_BITE
@@ -348,6 +348,18 @@ emp_act
if(penetrated_dam) SS.create_breaches(damtype, penetrated_dam)
/mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
var/hulk_verb = pick("smash", "pummel")
if(check_shields(user, 15, "the [hulk_verb]ing"))
return
..(user, TRUE)
playsound(loc, user.species.unarmed.attack_sound, 25, 1, -1)
var/message = "[user] has [hulk_verb]ed [src]!"
visible_message("<span class='danger'>[message]</span>", "<span class='userdanger'>[message]</span>")
adjustBruteLoss(15)
return TRUE
/mob/living/carbon/human/attack_hand(mob/user)
if(..()) //to allow surgery to return properly.
return
@@ -21,7 +21,7 @@
var/primitive_form // Lesser form, if any (ie. monkey for humans)
var/greater_form // Greater form, if any, ie. human for monkeys.
var/tail // Name of tail image in species effects icon file.
var/unarmed //For empty hand harm-intent attack
var/datum/unarmed_attack/unarmed //For empty hand harm-intent attack
var/unarmed_type = /datum/unarmed_attack
var/slowdown = 0 // Passive movement speed malus (or boost, if negative)
var/silent_steps = 0 // Stops step noises
@@ -375,9 +375,6 @@
var/obj/item/organ/external/affecting = target.get_organ(ran_zone(user.zone_sel.selecting))
var/armor_block = target.run_armor_check(affecting, "melee")
if(HULK in user.mutations)
target.adjustBruteLoss(15)
playsound(target.loc, attack.attack_sound, 25, 1, -1)
target.visible_message("<span class='danger'>[user] [pick(attack.attack_verb)]ed [target]!</span>")
+18 -14
View File
@@ -234,6 +234,24 @@
adjustBruteLoss(damage)
updatehealth()
/mob/living/carbon/slime/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
if(Victim || Target)
Victim = null
Target = null
anchored = 0
if(prob(80) && !client)
Discipline++
spawn(0)
step_away(src, user, 15)
sleep(3)
step_away(src, user, 15)
..(user, TRUE)
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has punched [src]!</span>", "<span class='userdanger'>[user] has punched [src]!</span>")
adjustBruteLoss(15)
return TRUE
/mob/living/carbon/slime/attack_hand(mob/living/carbon/human/M)
if(Victim)
M.do_attack_animation(src, ATTACK_EFFECT_DISARM)
@@ -301,20 +319,6 @@
var/damage = rand(1, 9)
attacked += 10
if(prob(90))
if(HULK in M.mutations)
damage += 15
if(Victim || Target)
Victim = null
Target = null
anchored = 0
if(prob(80) && !client)
Discipline++
spawn(0)
step_away(src,M,15)
sleep(3)
step_away(src,M,15)
playsound(loc, "punch", 25, 1, -1)
add_attack_logs(M, src, "Melee attacked with fists")
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
@@ -41,6 +41,15 @@
if(L.a_intent == INTENT_HELP)
visible_message("<span class='notice'>[L.name] rubs its head against [src].</span>")
/mob/living/silicon/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
..(user, TRUE)
adjustBruteLoss(rand(10, 15))
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has punched [src]!</span>", "<span class='userdanger'>[user] has punched [src]!</span>")
return TRUE
return FALSE
/mob/living/silicon/attack_hand(mob/living/carbon/human/M)
switch(M.a_intent)
if(INTENT_HELP)
@@ -51,15 +60,6 @@
else
M.do_attack_animation(src, ATTACK_EFFECT_PUNCH)
playsound(loc, 'sound/effects/bang.ogg', 10, 1)
if(HULK in M.mutations)
var/damage = rand(10,15)
adjustBruteLoss(damage)
add_attack_logs(M, src, "Melee attacked with fists")
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
"<span class='userdanger'>[M] has punched [src]!</span>")
return 1
else
visible_message("<span class='danger'>[M] punches [src], but doesn't leave a dent.</span>", \
visible_message("<span class='danger'>[M] punches [src], but doesn't leave a dent.</span>", \
"<span class='userdanger'>[M] punches [src], but doesn't leave a dent.!</span>")
return 0
return FALSE
@@ -19,6 +19,14 @@
updatehealth()
return 1
/mob/living/simple_animal/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE)
if(user.a_intent == INTENT_HARM)
..(user, TRUE)
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[user] has punched [src]!</span>", "<span class='userdanger'>[user] has punched [src]!</span>")
adjustBruteLoss(15)
return TRUE
/mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M)
if(..()) //if harm or disarm intent.
var/damage = rand(15, 30)