diff --git a/code/datums/martial.dm b/code/datums/martial.dm index bfd5a3b6757..5683b8cb95e 100644 --- a/code/datums/martial.dm +++ b/code/datums/martial.dm @@ -5,6 +5,8 @@ var/current_target = null var/temporary = 0 var/datum/martial_art/base = null // The permanent style + var/deflection_chance = 0 //Chance to deflect projectiles + var/help_verb = null /datum/martial_art/proc/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) return 0 @@ -25,29 +27,32 @@ return /datum/martial_art/proc/basic_hit(var/mob/living/carbon/human/A,var/mob/living/carbon/human/D) - add_logs(D, A, "punched") - A.do_attack_animation(D) - var/damage = rand(0,9) - var/atk_verb = "punch" + A.do_attack_animation(D) + var/damage = rand(A.species.punchdamagelow, A.species.punchdamagehigh) + var/datum/unarmed_attack/attack = A.species.unarmed + + var/atk_verb = "[pick(attack.attack_verb)]" if(D.lying) atk_verb = "kick" if(!damage) - playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + playsound(D.loc, attack.miss_sound, 25, 1, -1) D.visible_message("[A] has attempted to [atk_verb] [D]!") return 0 var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/armor_block = D.run_armor_check(affecting, "melee") - playsound(D.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) - + playsound(D.loc, attack.attack_sound, 25, 1, -1) D.visible_message("[A] has [atk_verb]ed [D]!", \ "[A] has [atk_verb]ed [D]!") D.apply_damage(damage, BRUTE, affecting, armor_block) - if((D.stat != DEAD) && damage >= 9) + + add_logs(D, A, "punched") + + if((D.stat != DEAD) && damage >= A.species.punchstunthreshold) D.visible_message("[A] has weakened [D]!!", \ "[A] has weakened [D]!") D.apply_effect(4, WEAKEN, armor_block) @@ -57,6 +62,8 @@ return 1 /datum/martial_art/proc/teach(var/mob/living/carbon/human/H,var/make_temporary=0) + if(help_verb) + H.verbs += help_verb if(make_temporary) temporary = 1 if(H.martial_art && H.martial_art.temporary) @@ -71,30 +78,31 @@ if(H.martial_art != src) return H.martial_art = base - + if(help_verb) + H.verbs -= help_verb /datum/martial_art/boxing name = "Boxing" /datum/martial_art/boxing/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - A << " Can't disarm while boxing!" + A << "Can't disarm while boxing!" return 1 /datum/martial_art/boxing/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - A << " Can't grab while boxing!" + A << "Can't grab while boxing!" return 1 /datum/martial_art/boxing/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_logs(D, A, "punched") + A.do_attack_animation(D) var/atk_verb = pick("left hook","right hook","straight punch") - var/damage = rand(5,8) - + var/damage = rand(5, 8) + A.species.punchdamagelow if(!damage) playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) D.visible_message("[A] has attempted to hit [D] with a [atk_verb]!") + add_logs(D, A, "attempted to hit", atk_verb) return 0 @@ -103,11 +111,11 @@ playsound(D.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) - D.visible_message("[A] has hit [D] with a [atk_verb]!", \ "[A] has hit [D] with a [atk_verb]!") D.apply_damage(damage, STAMINA, affecting, armor_block) + add_logs(D, A, "punched") if(D.getStaminaLoss() > 50) var/knockout_prob = D.getStaminaLoss() + rand(-15,15) if((D.stat != DEAD) && prob(knockout_prob)) @@ -182,6 +190,12 @@ /datum/martial_art/wrestling name = "Wrestling" + help_verb = /mob/living/carbon/human/proc/wrestling_help + +// combo refence since wrestling uses a different format to sleeping carp and plasma fist. +// Clinch "G" +// Suplex "GD" +// Advanced grab "G" /datum/martial_art/wrestling/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) D.grabbedby(A,1) @@ -197,13 +211,15 @@ /datum/martial_art/wrestling/proc/Suplex(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_logs(D, A, "suplexed") + D.visible_message("[A] suplexes [D]!", \ "[A] suplexes [D]!") D.forceMove(A.loc) var/armor_block = D.run_armor_check(null, "melee") D.apply_damage(30, BRUTE, null, armor_block) D.apply_effect(6, WEAKEN, armor_block) + add_logs(D, A, "suplexed") + A.SpinAnimation(10,1) D.SpinAnimation(10,1) @@ -230,12 +246,24 @@ D.apply_damage(10, STAMINA, affecting, armor_block) return 1 +/mob/living/carbon/human/proc/wrestling_help() + set name = "Recall Teachings" + set desc = "Remember how to wrestle." + set category = "Wrestling" + + usr << "You flex your muscles and have a revelation..." + usr << "Clinch: Grab. Passively gives you a chance to immediately aggressively grab someone. Not always successful." + usr << "Suplex: Disarm someone you are grabbing. Suplexes your target to the floor. Greatly injures them and leaves both you and your target on the floor." + usr << "Advanced grab: Grab. Passively causes stamina damage when grabbing someone." + #define TORNADO_COMBO "HHD" #define THROWBACK_COMBO "DHD" #define PLASMA_COMBO "HDDDH" /datum/martial_art/plasma_fist name = "Plasma Fist" + help_verb = /mob/living/carbon/human/proc/plasma_fist_help + /datum/martial_art/plasma_fist/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(findtext(streak,TORNADO_COMBO)) @@ -271,7 +299,7 @@ "[A] has hit [D] with Plasma Punch!") playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A))) - D.throw_at(throw_target, 200, 4) + D.throw_at(throw_target, 200, 4,A) A.say("HYAH!") return @@ -285,26 +313,37 @@ return /datum/martial_art/plasma_fist/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_to_streak("H") + add_to_streak("H",D) if(check_streak(A,D)) return 1 basic_hit(A,D) return 1 /datum/martial_art/plasma_fist/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_to_streak("D") + add_to_streak("D",D) if(check_streak(A,D)) return 1 basic_hit(A,D) return 1 /datum/martial_art/plasma_fist/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_to_streak("G") + add_to_streak("G",D) if(check_streak(A,D)) return 1 basic_hit(A,D) return 1 +/mob/living/carbon/human/proc/plasma_fist_help() + set name = "Recall Teachings" + set desc = "Remember the martial techniques of the Plasma Fist." + set category = "Plasma Fist" + + usr << "You clench your fists and have a flashback of knowledge..." + usr << "Tornado Sweep: Harm Harm Disarm. Repulses target and everyone back." + usr << "Throwback: Disarm Harm Disarm. Throws the target and an item at them." + usr << "The Plasma Fist: Harm Disarm Disarm Disarm Harm. Knocks the brain out of the opponent and gibs their body." + +//Used by the gang of the same name. Uses combos. Basic attacks bypass armor and never miss #define WRIST_WRENCH_COMBO "DD" #define BACK_KICK_COMBO "HG" #define STOMACH_KNEE_COMBO "GH" @@ -312,6 +351,8 @@ #define ELBOW_DROP_COMBO "HDHDH" /datum/martial_art/the_sleeping_carp name = "The Sleeping Carp" + deflection_chance = 100 + help_verb = /mob/living/carbon/human/proc/sleeping_carp_help /datum/martial_art/the_sleeping_carp/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(findtext(streak,WRIST_WRENCH_COMBO)) @@ -344,7 +385,7 @@ D.emote("scream") D.drop_item() D.apply_damage(5, BRUTE, pick("l_arm", "r_arm")) - D.Stun(1) + D.Stun(3) return 1 return basic_hit(A,D) @@ -375,7 +416,8 @@ "[A] kicks you in the jaw!") D.apply_damage(20, BRUTE, "head") D.drop_item() - playsound(get_turf(D), 'sound/weapons/punch1.ogg', 75, 1, -1) + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) + D.Stun(4) return 1 return basic_hit(A,D) @@ -386,12 +428,12 @@ if(D.stat) D.death() //FINISH HIM! D.apply_damage(50, BRUTE, "chest") - playsound(get_turf(D), 'sound/weapons/punch1.ogg', 100, 1, -1) + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 75, 1, -1) return 1 return basic_hit(A,D) /datum/martial_art/the_sleeping_carp/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_to_streak("G") + add_to_streak("G",D) if(check_streak(A,D)) return 1 ..() @@ -399,19 +441,23 @@ if(G) G.state = GRAB_AGGRESSIVE //Instant aggressive grab -/datum/martial_art/the_sleeping_carp/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_to_streak("H") +/datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + add_to_streak("H",D) if(check_streak(A,D)) return 1 - D.visible_message("[A] [pick("punches", "kicks", "chops", "hits", "slams")] [D]!", \ - "[A] hits you!") - D.apply_damage(10, BRUTE) - playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1) + var/atk_verb = pick("punches", "kicks", "chops", "hits", "slams") + D.visible_message("[A] [atk_verb] [D]!", \ + "[A] [atk_verb] you!") + D.apply_damage(rand(10,15), BRUTE) + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1) + if(prob(D.getBruteLoss()) && !D.lying) + D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!") + D.Weaken(4) return 1 /datum/martial_art/the_sleeping_carp/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - add_to_streak("D") + add_to_streak("D",D) if(check_streak(A,D)) return 1 return ..() @@ -422,6 +468,7 @@ set category = "Sleeping Carp" usr << "You retreat inward and recall the teachings of the Sleeping Carp..." + usr << "Wrist Wrench: Disarm Disarm. Forces opponent to drop item in hand." usr << "Back Kick: Harm Grab. Opponent must be facing away. Knocks down." usr << "Stomach Knee: Grab Harm. Knocks the wind out of opponent and stuns." @@ -459,6 +506,7 @@ if(slot == slot_belt) var/mob/living/carbon/human/H = user style.teach(H,1) + user << "You have an urge to flex your muscles and get into a fight. You have the knowledge of a thousand wrestlers before you. You can remember more by using the Recall teaching verb in the wrestling tab." return /obj/item/weapon/storage/belt/champion/wrestling/dropped(mob/user) @@ -467,11 +515,12 @@ var/mob/living/carbon/human/H = user if(H.get_item_by_slot(slot_belt) == src) style.remove(H) + user << "You no longer have an urge to flex your muscles." return /obj/item/weapon/plasma_fist_scroll - name = "Plasma Fist Scroll" - desc = "Teaches the traditional wizard martial art." + name = "frayed scroll" + desc = "An aged and frayed scrap of paper written in shifting runes. There are hand-drawn illustrations of pugilism." icon = 'icons/obj/wizard.dmi' icon_state ="scroll2" var/used = 0 @@ -483,9 +532,11 @@ var/mob/living/carbon/human/H = user var/datum/martial_art/plasma_fist/F = new/datum/martial_art/plasma_fist(null) F.teach(H) - H << "You learn the PLASMA FIST style." + H << "You have learned the ancient martial art of Plasma Fist." used = 1 - desc += "It looks like it's magic was used up." + desc = "It's completely blank." + name = "empty scroll" + icon_state = "blankscroll" /obj/item/weapon/sleeping_carp_scroll name = "mysterious scroll" @@ -496,11 +547,8 @@ /obj/item/weapon/sleeping_carp_scroll/attack_self(mob/living/carbon/human/user as mob) if(!istype(user) || !user) return - user << "You begin to read the scroll..." - user << "And all at once the secrets of the Sleeping Carp fill your mind. The ancient clan's martial teachings have been imbued into this scroll. As you read through it, \ - these secrets flood into your mind and body. You now know the martial techniques of the Sleeping Carp. Your hand-to-hand combat has become much more effective, and you may now perform powerful \ - combination attacks. To learn more about these combos, use the Recall Teachings ability in the Sleeping Carp tab." - user.verbs += /mob/living/carbon/human/proc/sleeping_carp_help + user << "You have learned the ancient martial art of the Sleeping Carp! Your hand-to-hand combat has become much more effective, and you are now able to deflect any projectiles \ + directed toward you. However, you are also unable to use any ranged weaponry. You can learn more about your newfound art by using the Recall Teachings verb in the Sleeping Carp tab." var/datum/martial_art/the_sleeping_carp/theSleepingCarp = new(null) theSleepingCarp.teach(user) user.drop_item() @@ -508,16 +556,16 @@ new /obj/effect/decal/cleanable/ash(get_turf(src)) qdel(src) - /obj/item/weapon/twohanded/bostaff name = "bo staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." - force = 8 + force = 10 w_class = 4 slot_flags = SLOT_BACK - force_unwielded = 8 - force_wielded = 18 + force_unwielded = 10 + force_wielded = 24 throwforce = 20 + throw_speed = 2 attack_verb = list("smashed", "slammed", "whacked", "thwacked") icon = 'icons/obj/weapons.dmi' icon_state = "bostaff0" @@ -572,7 +620,7 @@ if(total_health <= config.health_threshold_crit && !H.stat) H.visible_message("[user] delivers a heavy hit to [H]'s head, knocking them out cold!", \ "[user] knocks you unconscious!") - H.sleeping += 30 + H.SetSleeping(30) H.adjustBrainLoss(25) return else diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index b5cb650c2b6..dc484b22d5e 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -642,7 +642,7 @@ var/global/list/multiverse = list() if(heresy) spawnheresy(M)//oh god why else - M.makeSkeleton() + M.set_species("Skeleton") M.visible_message(" A massive amount of flesh sloughs off [M] and a skeleton rises up!") M.revive() equip_skeleton(M) diff --git a/code/game/gamemodes/wizard/godhand.dm b/code/game/gamemodes/wizard/godhand.dm index e8bdb02c764..12d49a0fa10 100644 --- a/code/game/gamemodes/wizard/godhand.dm +++ b/code/game/gamemodes/wizard/godhand.dm @@ -44,12 +44,6 @@ if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //exploding after touching yourself would be bad return var/mob/M = target - if(ishuman(M) || issmall(M)) - var/mob/living/carbon/C_target = M - var/obj/item/organ/brain/B - if(C_target.brain_op_stage != 4) // Their brain is already taken out - B = new(C_target.loc) - B.transfer_identity(C_target) var/datum/effect/system/spark_spread/sparks = new sparks.set_up(4, 0, M.loc) //no idea what the 0 is sparks.start() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 281486a5650..366ec02ae1e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -394,6 +394,15 @@ var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone)) apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) +/mob/living/carbon/human/bullet_act() + if(martial_art && martial_art.deflection_chance) //Some martial arts users can deflect projectiles! + if(!prob(martial_art.deflection_chance)) + return ..() + if(!src.lying && !(HULK in mutations)) //But only if they're not lying down, and hulks can't do it + src.visible_message("[src] deflects the projectile!", "You deflect the projectile!") + return 0 + ..() + /mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) M.custom_emote(1, "[M.friendly] [src]") diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 155e50eef28..d5eee1d9d43 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -139,7 +139,7 @@ else LAssailant = M - var/damage = rand(0, M.species.max_hurt_damage)//BS12 EDIT + var/damage = rand(M.species.punchdamagelow, M.species.punchdamagehigh) damage += attack.damage if(!damage) playsound(loc, attack.miss_sound, 25, 1, -1) @@ -158,7 +158,7 @@ visible_message("\red [M] [pick(attack.attack_verb)]ed [src]!") apply_damage(damage, BRUTE, affecting, armor_block, sharp=attack.sharp, edge=attack.edge) //moving this back here means Armalis are going to knock you down 70% of the time, but they're pure adminbus anyway. - if((stat != DEAD) && damage >= 9) + if((stat != DEAD) && damage >= M.species.punchstunthreshold) visible_message("[M] has weakened [src]!", \ "[M] has weakened [src]!") apply_effect(4, WEAKEN, armor_block) diff --git a/code/modules/mob/living/carbon/human/species/apollo.dm b/code/modules/mob/living/carbon/human/species/apollo.dm index 8d0e64d44af..6aa0589238c 100644 --- a/code/modules/mob/living/carbon/human/species/apollo.dm +++ b/code/modules/mob/living/carbon/human/species/apollo.dm @@ -6,6 +6,8 @@ language = "Wryn Hivemind" tail = "wryntail" unarmed_type = /datum/unarmed_attack/punch/weak + punchdamagelow = 0 + punchdamagehigh = 1 //primitive = /mob/living/carbon/monkey/wryn darksight = 3 slowdown = 1 diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 799226ea321..acbd0226748 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -6,12 +6,33 @@ deform = 'icons/mob/human_races/r_golem.dmi' default_language = "Galactic Common" - flags = NO_BREATHE | NO_PAIN | NO_BLOOD | NO_SCAN + flags = NO_BREATHE | NO_BLOOD | RADIMMUNE + virus_immune = 1 dietflags = DIET_OMNI //golems can eat anything because they are magic or something reagent_tag = PROCESS_ORG + unarmed_type = /datum/unarmed_attack/punch + punchdamagelow = 5 + punchdamagehigh = 14 + punchstunthreshold = 11 //about 40% chance to stun + + warning_low_pressure = -1 + hazard_low_pressure = -1 + hazard_high_pressure = 999999999 + warning_high_pressure = 999999999 + + cold_level_1 = -1 + cold_level_2 = -1 + cold_level_3 = -1 + + heat_level_1 = 999999999 + heat_level_2 = 999999999 + heat_level_3 = 999999999 + heat_level_3_breathe = 999999999 + blood_color = "#515573" flesh_color = "#137E8F" + slowdown = 3 siemens_coeff = 0 has_organ = list( @@ -45,62 +66,36 @@ item_color = "golem" has_sensor = 0 flags = ABSTRACT | NODROP - armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/suit/golem name = "adamantine shell" desc = "a golem's thick outter shell" icon_state = "golem" item_state = "golem" - w_class = 4//bulky item - gas_transfer_coefficient = 0.90 - permeability_coefficient = 0.50 - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD - slowdown = 1.0 - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE | ABSTRACT | NODROP - heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD - max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT - cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD - min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0) + body_parts_covered = HEAD|UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + flags_inv = HIDEGLOVES|HIDESHOES + flags = ONESIZEFITSALL | ABSTRACT | NODROP | THICKMATERIAL + armor = list(melee = 55, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/shoes/golem name = "golem's feet" desc = "sturdy adamantine feet" icon_state = "golem" item_state = "golem" - flags = NOSLIP | ABSTRACT | AIRTIGHT | MASKCOVERSMOUTH | NODROP - slowdown = SHOES_SLOWDOWN+1 - + flags = ABSTRACT | NODROP /obj/item/clothing/mask/gas/golem name = "golem's face" desc = "the imposing face of an adamantine golem" icon_state = "golem" item_state = "golem" - siemens_coefficient = 0 unacidable = 1 flags = ABSTRACT | NODROP - /obj/item/clothing/gloves/golem name = "golem's hands" desc = "strong adamantine hands" icon_state = "golem" item_state = null - siemens_coefficient = 0 - flags = ABSTRACT | NODROP - - -/obj/item/clothing/head/space/golem - icon_state = "golem" - item_state = "dermal" - item_color = "dermal" - name = "golem's head" - desc = "a golem's head" - unacidable = 1 - flags = STOPSPRESSUREDMAGE | ABSTRACT | NODROP - heat_protection = HEAD - max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT - armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0) \ No newline at end of file + flags = ABSTRACT | NODROP \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index e112542f660..15449efe109 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -57,7 +57,9 @@ var/light_effect_amp //If 0, takes/heals 1 burn and brute per tick. Otherwise, both healing and damage effects are amplified. var/total_health = 100 - var/max_hurt_damage = 9 // Max melee damage dealt + 5 if hulk + var/punchdamagelow = 0 //lowest possible punch damage + var/punchdamagehigh = 9 //highest possible punch damage + var/punchstunthreshold = 9 //damage at which punches from this race will stun //yes it should be to the attacked race but it's not useful that way even if it's logical var/list/default_genes = list() var/ventcrawler = 0 //Determines if the mob can go through the vents. @@ -345,7 +347,7 @@ /datum/unarmed_attack var/attack_verb = list("attack") // Empty hand hurt intent verb. - var/damage = 0 // Extra empty hand attack damage. + var/damage = 0 // How much flat bonus damage an attack will do. This is a *bonus* guaranteed damage amount on top of the random damage attacks do. var/attack_sound = "punch" var/miss_sound = 'sound/weapons/punchmiss.ogg' var/sharp = 0 @@ -356,7 +358,6 @@ /datum/unarmed_attack/punch/weak attack_verb = list("flail") - damage = 1 /datum/unarmed_attack/diona attack_verb = list("lash", "bludgeon") @@ -370,7 +371,7 @@ /datum/unarmed_attack/claws/armalis attack_verb = list("slash", "claw") - damage = 6 //they're huge! they should do a little more damage, i'd even go for 15-20 maybe... + damage = 6 /datum/species/proc/handle_can_equip(obj/item/I, slot, disable_warning = 0, mob/living/carbon/human/user) return 0