Alien auto ranged attacks + intent fixes

This commit is contained in:
ZomgPonies
2014-01-19 11:16:47 -05:00
parent 90496be20a
commit 86e3c1d25f
13 changed files with 74 additions and 22 deletions
+1 -1
View File
@@ -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"
+63
View File
@@ -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)
@@ -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)
@@ -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)"
@@ -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
@@ -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
..()
@@ -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
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB