This commit is contained in:
DeityLink
2015-10-28 00:45:09 +01:00
parent 602221ade7
commit c07a76b564
6 changed files with 70 additions and 44 deletions

View File

@@ -21,8 +21,10 @@
if(M:eyecheck() <= 0)
flick("e_flash", M.flash) // flash dose faggots
var/list/spawned_atoms = list()
for(var/i=1, i<=deliveryamt, i++)
var/atom/movable/x = new spawner_type
spawned_atoms += x
x.loc = T
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
@@ -30,13 +32,15 @@
if(L && istype(L))
handle_faction(x,L)
// Spawn some hostile critters
postPrime(spawned_atoms)
del(src)
return
/obj/item/weapon/grenade/spawnergrenade/proc/handle_faction(var/mob/living/spawned, var/mob/living/L)
return
/obj/item/weapon/grenade/spawnergrenade/proc/postPrime(var/list/spawned_atoms)
return
/obj/item/weapon/grenade/spawnergrenade/manhacks
name = "manhack delivery grenade"
@@ -70,3 +74,25 @@
spawner_type = /mob/living/simple_animal/hostile/carp
deliveryamt = 5
origin_tech = "materials=3;magnets=4;syndicate=4"
/obj/item/weapon/grenade/spawnergrenade/beenade
name = "bee-nade"
icon_state = "beenade"
spawner_type = /mob/living/simple_animal/bee
deliveryamt = 15
origin_tech = "materials=3;magnets=4;biotech=4"
/obj/item/weapon/grenade/spawnergrenade/beenade/postPrime(var/list/spawned_atoms)
if(!spawned_atoms || !spawned_atoms.len)
return
for(var/A in spawned_atoms)
var/mob/living/simple_animal/bee/BEE = A
if(!istype(BEE))
continue
BEE.strength = 1
BEE.toxic = 5
BEE.mut = 2
BEE.feral = 25
BEE.icon_state = "bees1-feral"
BEE.newTarget()

View File

@@ -96,6 +96,12 @@
if(goodmove)
Move(dest)
/mob/living/simple_animal/bee/proc/newTarget()
var/list/neabyMobs = list()
for(var/mob/living/G in view(src,7))
neabyMobs += G
target = pick(neabyMobs)
/mob/living/simple_animal/bee/Life()
if(timestopped) return 0 //under effects of time magick
@@ -213,9 +219,7 @@
wander = 0
else // My target's gone! But I might still be pissed! You there. You look like a good stinging target!
for(var/mob/living/carbon/G in view(src,7))
target = G
break
newTarget()
if(target_turf)
var/tdir=get_dir(src,target_turf) // This was called thrice. Optimize.

View File

@@ -133,6 +133,31 @@ var/list/impact_master = list()
permutated.len = 0
..("permutated")
/obj/item/projectile/proc/admin_warn(mob/living/M)
if(istype(firer, /mob))
if(firer == M)
log_attack("<font color='red'>[key_name(firer)] shot himself with a [type].</font>")
M.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot himself with a <b>[type]</b>"
firer.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot himself with a <b>[type]</b>"
msg_admin_attack("[key_name(firer)] shot himself with a [type], [pick("top kek!","for shame.","he definitely meant to do that","probably not the last time either.")] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)")
if(!iscarbon(firer))
M.LAssailant = null
else
M.LAssailant = firer
else
log_attack("<font color='red'>[key_name(firer)] shot [key_name(M)] with a [type]</font>")
M.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
firer.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
msg_admin_attack("[key_name(firer)] shot [key_name(M)] with a [type] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)")
if(!iscarbon(firer))
M.LAssailant = null
else
M.LAssailant = firer
else
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN/(no longer exists)</b> shot <b>UNKNOWN/(no longer exists)</b> with a <b>[type]</b>"
msg_admin_attack("UNKNOWN/(no longer exists) shot UNKNOWN/(no longer exists) with a [type]. Wait what the fuck?")
log_attack("<font color='red'>UNKNOWN/(no longer exists) shot UNKNOWN/(no longer exists) with a [type]</font>")
/obj/item/projectile/Bump(atom/A as mob|obj|turf|area)
if (!A) //This was runtiming if by chance A was null.
return 0
@@ -182,19 +207,12 @@ var/list/impact_master = list()
M << "<span class='warning'>You've been shot in the [parse_zone(def_zone)] by the [src.name]!</span>"
else
visible_message("<span class='warning'>[A.name] is hit by the [src.name] in the [parse_zone(def_zone)]!</span>")//X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
admin_warn(M)
if(istype(firer, /mob))
log_attack("<font color='red'>[key_name(firer)] shot [key_name(M)] with a [type]</font>")
M.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
firer.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
msg_admin_attack("[key_name(firer)] shot [key_name(M)] with a [type] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)") //BS12 EDIT ALG
if(!iscarbon(firer))
M.LAssailant = null
else
M.LAssailant = firer
else
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN/(no longer exists)</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
msg_admin_attack("UNKNOWN/(no longer exists) shot [key_name(M)] with a [type] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)") //BS12 EDIT ALG
log_attack("<font color='red'>UNKNOWN/(no longer exists) shot [key_name(M)] with a [type]</font>")
if(!A)
return 1
@@ -205,10 +223,7 @@ var/list/impact_master = list()
if(JC.occupant)
var/mob/BM = JC.occupant
if(istype(firer, /mob))
BM.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(BM)]</b> with a <b>[type]</b>"
firer.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(BM)]</b> with a <b>[type]</b>"
log_attack("<font color='red'>[key_name(firer)] shot [key_name(BM)] with a [type]</font>")
msg_admin_attack("[key_name(firer)] shot [key_name(BM)] with a [type]") //BS12 EDIT ALG
admin_warn(BM)
if(!iscarbon(firer))
BM.LAssailant = null
else

View File

@@ -305,7 +305,13 @@
BEE.feral = 25
BEE.icon_state = "bees1-feral"
if(ismob(A))
BEE.loc = A.loc
BEE.target = A
if(istype(A,/mob/living))
var/mob/living/M = A
visible_message("<span class='warning'>\the [M.name] is hit by \the [src.name] in the [parse_zone(def_zone)]!</span>")
M.bullet_act(src, def_zone)
admin_warn(M)
BEE.loc = M.loc
BEE.target = M
else
BEE.newTarget()
bullet_die()

View File

@@ -224,31 +224,6 @@
returnToPool(src)
OnDeath()
/obj/item/projectile/ricochet/proc/admin_warn(mob/living/M)
if(istype(firer, /mob))
if(firer == M)
log_attack("<font color='red'>[key_name(firer)] shot himself with a [type].</font>")
M.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot himself with a <b>[type]</b>"
firer.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot himself with a <b>[type]</b>"
msg_admin_attack("[key_name(firer)] shot himself with a [type], [pick("top kek!","for shame.","he definitely meant to do that","probably not the last time either.")] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)")
if(!iscarbon(firer))
M.LAssailant = null
else
M.LAssailant = firer
else
log_attack("<font color='red'>[key_name(firer)] shot [key_name(M)] with a [type]</font>")
M.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
firer.attack_log += "\[[time_stamp()]\] <b>[key_name(firer)]</b> shot <b>[key_name(M)]</b> with a <b>[type]</b>"
msg_admin_attack("[key_name(firer)] shot [key_name(M)] with a [type] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[firer.x];Y=[firer.y];Z=[firer.z]'>JMP</a>)")
if(!iscarbon(firer))
M.LAssailant = null
else
M.LAssailant = firer
else
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN/(no longer exists)</b> shot <b>UNKNOWN/(no longer exists)</b> with a <b>[type]</b>"
msg_admin_attack("UNKNOWN/(no longer exists) shot UNKNOWN/(no longer exists) with a [type]. Wait what the fuck?")
log_attack("<font color='red'>UNKNOWN/(no longer exists) shot UNKNOWN/(no longer exists) with a [type]</font>")
/obj/item/projectile/ricochet/Bump(atom/A as mob|obj|turf|area)
if(bumped) return 0
bumped = 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB