diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 52f1decfc03..959d67db32c 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -314,7 +314,7 @@ usr.hud_used.action_intent.icon_state = "intent_help" if("harm") usr.a_intent = "harm" - usr.hud_used.action_intent.icon_state = "intent_hurt" + usr.hud_used.action_intent.icon_state = "intent_harm" if("grab") usr.a_intent = "grab" usr.hud_used.action_intent.icon_state = "intent_grab" diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 04612128eff..5e9b6f55b61 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -98,6 +98,69 @@ /mob/living/carbon/alien/RestrainedClickOn(var/atom/A) return +/mob/living/carbon/alien/humanoid/RangedAttack(var/atom/A) + if(!large && a_intent == "harm") + Neurotox(A) + return + else if(large && a_intent == "harm") + NeuroAOE(A) + return + + +/mob/living/carbon/alien/humanoid/proc/Neurotox(atom/A) + if(world.time < next_attack) + return + + var/turf/T = get_turf(src) + var/turf/U = get_turf(A) // Get the tile infront of the move, based on their direction + + if(!isturf(U) || !isturf(T)) + return + + var/obj/item/projectile/bullet/neurotoxin/NT = new /obj/item/projectile/bullet/neurotoxin(loc) + NT.firer = src +// NT.def_zone = get_organ_target() + NT.original = A + NT.current = T + NT.yo = U.y - T.y + NT.xo = U.x - T.x + spawn( 1) + NT.process() + next_attack = world.time + 50 + +/mob/living/carbon/alien/humanoid/proc/NeuroAOE(atom/A) + if(world.time < next_attack) + return + + var/direction = get_dir(src,A) + var/turf/T = get_turf(A) + var/turf/T1 = get_step(T,turn(direction, 90)) + var/turf/T2 = get_step(T,turn(direction, -90)) + + var/list/the_targets = list(T,T1,T2) + + for(var/a=0, a<5, a++) + spawn(0) + var/obj/effect/effect/water/D = new /obj/effect/effect/water( get_turf(src) ) + D.color = "#00FF21" + var/turf/my_target = pick(the_targets) + for(var/b=0, b<5, b++) + step_towards(D,my_target) + if(!D) return +// D.reagents.reaction(get_turf(D)) + for(var/atom/atm in get_turf(D)) + if(!D) return + if(istype(atm, /mob/living/carbon)) + var/mob/living/carbon/C = atm + C.Weaken(5) + C.take_overall_damage(20) + C << "You were drenched with neurotoxin!" +// D.reagents.reaction(atm, TOUCH) // Touch, since we sprayed it. + if(D.loc == my_target) break + sleep(2) + next_attack = world.time + 50 + + // Babby aliens /mob/living/carbon/alien/larva/UnarmedAttack(var/atom/A) A.attack_larva(src) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index b45429d4586..6260e96bc08 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -27,7 +27,7 @@ var/oxygen_alert = 0 var/toxins_alert = 0 var/fire_alert = 0 - + var/large = 0 var/heat_protection = 0.5 /mob/living/carbon/alien/adjustToxLoss(amount) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 162bd6b242e..06f23a9df09 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -112,23 +112,6 @@ Doesn't work on other aliens/AI.*/ return -/mob/living/carbon/alien/humanoid/proc/neurotoxin() // ok - set name = "Spit Neurotoxin (50)" - set desc = "Spits neurotoxin at someone, paralyzing them for a short time." - set category = "Alien" - if(powerc(50)) - adjustToxLoss(-50) - src.visible_message("\red [src] spits neurotoxin!", "\green You spit neurotoxin.") - var/turf/T = loc - var/turf/U = get_step(src, dir) // Get the tile infront of the move, based on their direction - if(!isturf(U) || !isturf(T)) - return - var/obj/item/projectile/bullet/neurotoxin/A = new /obj/item/projectile/bullet/neurotoxin(usr.loc) - A.current = U - A.yo = U.y - T.y - A.xo = U.x - T.x - A.process() - return /mob/living/carbon/alien/humanoid/proc/resin() // -- TLE set name = "Secrete Resin (75)" diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 0ac2b1915bb..2991fa4b8f6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -15,7 +15,7 @@ if(name == "alien sentinel") name = text("alien sentinel ([rand(1, 1000)])") real_name = name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid) ..() /mob/living/carbon/alien/humanoid/sentinel @@ -60,12 +60,15 @@ return /mob/living/carbon/alien/humanoid/sentinel/large + name = "alien praetorian" icon = 'icons/mob/alienlarge.dmi' icon_state = "prat_s" pixel_x = -16 maxHealth = 200 health = 200 move_delay_add = 1 + large = 1 + /mob/living/carbon/alien/humanoid/sentinel/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index 3ba1c7daac7..c5a85b280ea 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -11,6 +11,7 @@ icon_state = "empress_s" pixel_x = -32 move_delay_add = 3 + large = 1 /mob/living/carbon/alien/humanoid/empress/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again @@ -41,7 +42,7 @@ break real_name = src.name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/resin) verbs -= /mob/living/carbon/alien/verb/alien_ventcrawl ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 0c505485d0f..a12b9a4b464 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -7,6 +7,7 @@ var/obj/item/weapon/r_store = null var/obj/item/weapon/l_store = null var/caste = "" + var/next_attack = 0 update_icon = 1 //This is fine right now, if we're adding organ specific damage this needs to be updated diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 3ec332eb2f3..2e8abd47654 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -23,7 +23,7 @@ break real_name = src.name - verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin) + verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/resin) verbs -= /mob/living/carbon/alien/verb/alien_ventcrawl ..() @@ -76,6 +76,7 @@ icon = 'icons/mob/alienlarge.dmi' icon_state = "queen_s" pixel_x = -16 + large = 1 /mob/living/carbon/alien/humanoid/queen/large/update_icons() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again diff --git a/icons/mob/screen1_Midnight.dmi b/icons/mob/screen1_Midnight.dmi index 65b9f235337..433e36ee4e1 100644 Binary files a/icons/mob/screen1_Midnight.dmi and b/icons/mob/screen1_Midnight.dmi differ diff --git a/icons/mob/screen1_Orange.dmi b/icons/mob/screen1_Orange.dmi index 7ef1d84d897..f350ed4de38 100644 Binary files a/icons/mob/screen1_Orange.dmi and b/icons/mob/screen1_Orange.dmi differ diff --git a/icons/mob/screen1_White.dmi b/icons/mob/screen1_White.dmi index 77d2e8ba777..84c1ed67f78 100644 Binary files a/icons/mob/screen1_White.dmi and b/icons/mob/screen1_White.dmi differ diff --git a/icons/mob/screen1_alien.dmi b/icons/mob/screen1_alien.dmi index d42c521068a..49d3963265a 100644 Binary files a/icons/mob/screen1_alien.dmi and b/icons/mob/screen1_alien.dmi differ diff --git a/icons/mob/screen1_old.dmi b/icons/mob/screen1_old.dmi index ba8f369d8cf..709cd31162f 100644 Binary files a/icons/mob/screen1_old.dmi and b/icons/mob/screen1_old.dmi differ