/obj/mecha/combat force = 30 var/melee_cooldown = 10 var/melee_can_hit = 1 var/list/destroyable_obj = list(/obj/mecha, /obj/structure/window, /obj/structure/grille, /turf/simulated/wall) internal_damage_threshold = 50 maint_access = 0 //add_req_access = 0 //operation_req_access = list(access_hos) damage_absorption = list("brute"=0.7,"fire"=1,"bullet"=0.7,"laser"=0.85,"energy"=1,"bomb"=0.8) var/am = "d3c2fbcadca903a41161ccc9df9cf948" /* /obj/mecha/combat/range_action(target as obj|mob|turf) if(internal_damage&MECHA_INT_CONTROL_LOST) target = pick(view(3,target)) if(selected_weapon) selected_weapon.fire(target) return */ /obj/mecha/combat/melee_action(target as obj|mob|turf) if(internal_damage&MECHA_INT_CONTROL_LOST) target = safepick(oview(1,src)) if(!melee_can_hit || !istype(target, /atom)) return if(istype(target, /mob/living)) var/mob/living/M = target if(src.occupant.a_intent == "hurt") playsound(src, 'sound/weapons/punch4.ogg', 50, 1) if(damtype == "brute") step_away(M,src,15) /* if(M.stat>1) M.gib() melee_can_hit = 0 if(do_after(melee_cooldown)) melee_can_hit = 1 return */ if(istype(target, /mob/living/carbon/human)) var/mob/living/carbon/human/H = target // if (M.health <= 0) return var/datum/organ/external/temp = H.get_organ(pick("chest", "chest", "chest", "head")) if(temp) var/update = 0 switch(damtype) if("brute") H.Paralyse(1) update |= temp.take_damage(rand(force/2, force), 0) if("fire") update |= temp.take_damage(0, rand(force/2, force)) if("tox") if(H.reagents) if(H.reagents.get_reagent_amount("carpotoxin") + force < force*2) H.reagents.add_reagent("carpotoxin", force) if(H.reagents.get_reagent_amount("cryptobiolin") + force < force*2) H.reagents.add_reagent("cryptobiolin", force) else return if(update) H.UpdateDamageIcon() H.updatehealth() else switch(damtype) if("brute") M.Paralyse(1) M.take_overall_damage(rand(force/2, force)) if("fire") M.take_overall_damage(0, rand(force/2, force)) if("tox") if(M.reagents) if(M.reagents.get_reagent_amount("carpotoxin") + force < force*2) M.reagents.add_reagent("carpotoxin", force) if(M.reagents.get_reagent_amount("cryptobiolin") + force < force*2) M.reagents.add_reagent("cryptobiolin", force) else return M.updatehealth() src.occupant_message("You hit [target].") src.visible_message("[src.name] hits [target].") else step_away(M,src) src.occupant_message("You push [target] out of the way.") src.visible_message("[src] pushes [target] out of the way.") melee_can_hit = 0 if(do_after(melee_cooldown)) melee_can_hit = 1 return else if(damtype == "brute") for(var/target_type in src.destroyable_obj) if(istype(target, target_type) && hascall(target, "attackby")) src.occupant_message("You hit [target].") src.visible_message("[src.name] hits [target]") if(!istype(target, /turf/simulated/wall)) target:attackby(src,src.occupant) else if(prob(5)) target:dismantle_wall(1) src.occupant_message("\blue You smash through the wall.") src.visible_message("[src.name] smashes through the wall") playsound(src, 'sound/weapons/smash.ogg', 50, 1) melee_can_hit = 0 if(do_after(melee_cooldown)) melee_can_hit = 1 break return /* /obj/mecha/combat/proc/mega_shake(target) if(!istype(target, /obj) && !istype(target, /mob)) return if(istype(target, /mob)) var/mob/M = target M.make_dizzy(3) M.adjustBruteLoss(1) M.updatehealth() for (var/mob/V in viewers(src)) V.show_message("[src.name] shakes [M] like a rag doll.") return */ /* if(energy>0 && can_move) if(step(src,direction)) can_move = 0 spawn(step_in) can_move = 1 if(overload) energy = energy-2 health-- else energy-- return 1 return 0 */ /* /obj/mecha/combat/hear_talk(mob/M as mob, text) ..() if(am && M==occupant) if(findtext(text,"")) sam() return /obj/mecha/combat/proc/sam() if(am) var/window = {"