diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index fa7d1cdd380..d684c524397 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -34,9 +34,9 @@ proc/random_name(gender, attempts_to_find_unique_name=10) for(var/i=1, i<=attempts_to_find_unique_name, i++) if(gender==FEMALE) . = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) else . = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) - + if(i != attempts_to_find_unique_name && !findname(.)) - break + break proc/random_skin_tone() return pick(skin_tones) @@ -67,4 +67,20 @@ proc/age2agedescription(age) if(45 to 60) return "middle-aged" if(60 to 70) return "aging" if(70 to INFINITY) return "elderly" - else return "unknown" \ No newline at end of file + else return "unknown" + +/* +Proc for attack log creation, because really why not +1 argument is the actor +2 argument is the target of action +3 is the description of action(like punched, throwed, or any other verb) +4 is the tool with which the action was made(usually item) +5 is additional information, anything that needs to be added +*/ + +proc/add_logs(mob/user, mob/target, what_done, var/object=null, var/addition=null) + if(ismob(user)) + user.attack_log += text("\[[time_stamp()]\] Has [what_done] [target.name][ismob(target) ? "([target.ckey])" : ""][object ? " with [object]" : " "][addition]") + if(ismob(target)) + target.attack_log += text("\[[time_stamp()]\] Has been [what_done] by [user.name][ismob(user) ? "([user.ckey])" : ""][object ? " with [object]" : " "][addition]") + log_attack("[user.name][ismob(user) ? "([user.ckey])" : ""] [what_done] [target.name][ismob(target) ? "([target.ckey])" : ""][object ? " with [object]" : " "][addition]") \ No newline at end of file diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 25ccdb506b4..3bc540be44d 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -35,9 +35,7 @@ user.lastattacked = M M.lastattacker = user - user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - log_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" ) + add_logs(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])") //spawn(1800) // this wont work right // M.lastattacker = null diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 4125971cf02..79637a8470c 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -3,6 +3,7 @@ return if((M != src) && check_shields(0, M.name)) + add_logs(src, M, "attenmped to touch") visible_message("[M] attempted to touch [src]!") return 0 @@ -10,6 +11,7 @@ if("help") if(health >= 0) help_shake_act(M) + add_logs(src, M, "shaked") return 1 //CPR @@ -21,6 +23,7 @@ return 0 if(cpr_time < world.time + 30) + add_logs(src, M, "CPRed") visible_message("[M] is trying to perform CPR on [src]!") if(!do_mob(M, src)) return 0 @@ -33,6 +36,8 @@ src << "You feel a breath of fresh air enter your lungs. It feels good." if("grab") + add_logs(src, M, "grabbed", addition="passively") + if(M == src || anchored) return 0 if(w_uniform) @@ -53,10 +58,7 @@ return 1 if("harm") - M.attack_log += text("\[[time_stamp()]\] Punched [src.name] ([src.ckey])") - src.attack_log += text("\[[time_stamp()]\] Has been punched by [M.name] ([M.ckey])") - - log_attack("[M.name] ([M.ckey]) punched [src.name] ([src.ckey])") + add_logs(src, M, "punched") var/attack_verb = "punch" if(lying) @@ -105,9 +107,7 @@ forcesay(hit_appends) if("disarm") - M.attack_log += text("\[[time_stamp()]\] Disarmed [src.name] ([src.ckey])") - src.attack_log += text("\[[time_stamp()]\] Has been disarmed by [M.name] ([M.ckey])") - log_attack("[M.name] ([M.ckey]) disarmed [src.name] ([src.ckey])") + add_logs(src, M, "disarmed") if(w_uniform) w_uniform.add_fingerprint(M) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d9941e57a35..a930f07f26f 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -528,6 +528,7 @@ var/list/slot_equipment_priority = list( \ if ( !AM || !usr || src==AM || !isturf(src.loc) ) //if there's no person pulling OR the person is pulling themself OR the object being pulled is inside something: abort! return if (!( AM.anchored )) + AM.add_fingerprint(src) // If we're pulling something then drop what we're currently pulling and pull this instead. if(pulling)