diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index ddd121434d2..19c2dd13ec8 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -184,7 +184,7 @@ qdel(src) return if(3.0) - if (prob(30)) + if (prob(40)) var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) new remains(loc) qdel(src) diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 890d84a1f70..efdadfbb7c2 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -11,11 +11,13 @@ qdel(src) return if(2.0) - if (prob(50)) + if (prob(70)) + new /obj/item/stack/sheet/metal(src.loc) qdel(src) return if(3.0) - if (prob(5)) + if (prob(50)) + new /obj/item/stack/sheet/metal(src.loc) qdel(src) return return diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index d50d2f7ce59..03ed2d630b4 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -515,7 +515,7 @@ ask_verb = "tones" exclaim_verb = "tones" colour = "say_quote" - key = "zw"//Zwarmer...Or Zerg! + key = "z"//Zwarmer...Or Zerg! flags = RESTRICTED || HIVEMIND follow = 1 diff --git a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm index fcd66d3f790..530409bd517 100644 --- a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm +++ b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm @@ -10,12 +10,14 @@ ..() /obj/item/unactivated_swarmer/Topic(href, href_list) + if(..()) + return 1 if(href_list["ghostjoin"]) var/mob/dead/observer/ghost = usr if(istype(ghost)) attack_ghost(ghost) -/obj/item/unactivated_swarmer/attack_ghost(mob/user) +/obj/item/unactivated_swarmer/attack_ghost(mob/user as mob) var/be_swarmer = alert("Become a swarmer? (Warning, You can no longer be cloned!)",,"Yes","No") if(be_swarmer == "No") return @@ -44,6 +46,14 @@ harm_intent_damage = 5 minbodytemp = 0 maxbodytemp = 500 + min_oxy = 0 + max_oxy = INFINITY + min_tox = 0 + max_tox = INFINITY + min_co2 = 0 + max_co2 = INFINITY + min_n2 = 0 + max_n2 = INFINITY unsuitable_atmos_damage = 0 melee_damage_lower = 15 melee_damage_upper = 15 @@ -59,7 +69,6 @@ pass_flags = PASSTABLE ventcrawler = 2 ranged = 1 - projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_cap = 2 projectilesound = 'sound/weapons/taser2.ogg' AIStatus = AI_OFF @@ -224,7 +233,7 @@ /mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S.DisperseTarget(src) -/mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) +/mob/living/carbon/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This biological resource is somehow resisting our bluespace transceiver. Aborting." ////END CTRL CLICK FOR SWARMERS//// @@ -252,7 +261,6 @@ var/obj/effect/swarmer/integrate/I = new /obj/effect/swarmer/integrate(get_turf(target)) I.pixel_x = target.pixel_x I.pixel_y = target.pixel_y - I.pixel_z = target.pixel_z if(istype(target, /obj/item/stack)) var/obj/item/stack/S = target S.use(1) @@ -268,7 +276,6 @@ do_attack_animation(target) changeNext_move(CLICK_CD_MELEE) target.ex_act(3) - return /mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target) if(target != src) @@ -290,8 +297,7 @@ if((pressure > 20) && (pressure < 550))//Account for crushing pressure or vaccuums if(ishuman(target))//If we're getting rid of a human, slap some zipties on them to keep them away from us a little longer var/obj/item/weapon/restraints/handcuffs/cable/zipties/Z = new /obj/item/weapon/restraints/handcuffs/cable/zipties(src) - var/mob/living/carbon/human/H = target - Z.apply_cuffs(H, src) + Z.apply_cuffs(target, src) do_teleport(target, F, 0) playsound(src,'sound/effects/sparks4.ogg',50,1) break @@ -303,7 +309,6 @@ var/obj/effect/swarmer/dismantle/D = new /obj/effect/swarmer/dismantle(get_turf(target)) D.pixel_x = target.pixel_x D.pixel_y = target.pixel_y - D.pixel_z = target.pixel_z if(do_mob(src, target, 100)) src << "Dismantling complete." var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/metal(target.loc) @@ -314,7 +319,6 @@ var/obj/effect/swarmer/disintegration/N = new /obj/effect/swarmer/disintegration(get_turf(target)) N.pixel_x = target.pixel_x N.pixel_y = target.pixel_y - N.pixel_z = target.pixel_z target.dropContents() if(istype(target, /obj/machinery/computer)) var/obj/machinery/computer/C = target diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 125d4007879..7694f714aca 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -253,22 +253,21 @@ var/target = the_target visible_message("[src] [ranged_message] at [target]!") - var/tturf = get_turf(target) if(rapid) spawn(1) - Shoot(tturf, src.loc, src) + Shoot(target, src.loc, src) if(casingtype) new casingtype(get_turf(src)) spawn(4) - Shoot(tturf, src.loc, src) + Shoot(target, src.loc, src) if(casingtype) new casingtype(get_turf(src)) spawn(6) - Shoot(tturf, src.loc, src) + Shoot(target, src.loc, src) if(casingtype) new casingtype(get_turf(src)) else - Shoot(tturf, src.loc, src) + Shoot(target, src.loc, src) if(casingtype) new casingtype ranged_cooldown = ranged_cooldown_cap @@ -278,17 +277,17 @@ if(target == start) return - var/obj/item/projectile/A = new projectiletype(user:loc) + var/obj/item/projectile/A = new projectiletype(src.loc) playsound(user, projectilesound, 100, 1) if(!A) return - if (!istype(target, /turf)) - qdel(A) - return A.current = target A.firer = src A.yo = target:y - start:y A.xo = target:x - start:x + if(AIStatus == AI_OFF)//Don't want mindless mobs to have their movement screwed up firing in space + newtonian_move(get_dir(target, user)) + A.original = target spawn( 0 ) A.process() return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 9ca93519fb5..a7d3051a2c6 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -513,7 +513,7 @@ /mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype) if(damage <= force_threshold) - visible_message("[src] looks unharmed.") + visible_message("[src] looks unharmed from the damage.") else switch(damagetype) if(BRUTE)