mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-20 19:56:41 +01:00
Pre master pull commit
This commit is contained in:
@@ -14,5 +14,5 @@ making it not expire ever, which is likely not what you want.
|
||||
if(istype(A)) // Make sure we're not null.
|
||||
if(get_dist(holder, A) > aura_max_distance)
|
||||
expire()
|
||||
expire() // Source got deleted or something.
|
||||
|
||||
else
|
||||
expire() // Source got deleted or something.
|
||||
|
||||
@@ -66,13 +66,31 @@
|
||||
|
||||
/obj/item/projectile/fire
|
||||
name = "ember"
|
||||
icon_state = "fireball"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "explosion_particle"
|
||||
modifier_type_to_apply = /datum/modifier/fire
|
||||
modifier_duration = 6 SECONDS // About 15 damage per stack, as Life() ticks every two seconds.
|
||||
damage = 0
|
||||
nodamage = TRUE
|
||||
|
||||
|
||||
// Close to mid-ranged shooter that arcs over other things, ideal if allies are in front of it.
|
||||
// Difference from siege hivebots is that siege hivebots have limited charges for their attacks, are very long range, and \
|
||||
// the projectiles have an AoE component, where as backline hivebots do not.
|
||||
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/backline
|
||||
name = "backline hivebot"
|
||||
desc = "A robot that can fire short-ranged projectiles over their allies."
|
||||
projectiletype = /obj/item/projectile/arc/blue_energy
|
||||
projectilesound = 'sound/weapons/Laser.ogg'
|
||||
player_msg = "Your attacks are short-ranged, but can <b>arc over obstructions</b> such as allies \
|
||||
or barriers."
|
||||
|
||||
/obj/item/projectile/arc/blue_energy
|
||||
name = "energy missile"
|
||||
icon_state = "force_missile"
|
||||
damage = 15 // A bit stronger since arcing projectiles are much easier to avoid than traditional ones.
|
||||
damage_type = BURN
|
||||
|
||||
// Very long ranged hivebot that rains down hell.
|
||||
// Their projectiles arc, meaning they go over everything until it hits the ground.
|
||||
// This means they're somewhat easier to avoid, but go over most defenses (like allies, or barriers),
|
||||
@@ -93,14 +111,55 @@
|
||||
desc = "A large robot capable of annihilating electronics from a long distance."
|
||||
projectiletype = /obj/item/projectile/arc/emp_blast
|
||||
|
||||
/obj/item/projectile/arc/emp_blast
|
||||
name = "emp blast"
|
||||
icon_state = "bluespace"
|
||||
|
||||
/obj/item/projectile/arc/emp_blast/on_impact(turf/T)
|
||||
empulse(T, 2, 4, 7, 10) // Normal EMP grenade.
|
||||
return ..()
|
||||
|
||||
/obj/item/projectile/arc/emp_blast/weak/on_impact(turf/T)
|
||||
empulse(T, 1, 2, 3, 4) // Sec EMP grenade.
|
||||
return ..()
|
||||
|
||||
|
||||
// Fires shots that irradiate the tile hit.
|
||||
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/radiation
|
||||
name = "desolator hivebot"
|
||||
desc = "A large robot capable of irradiating a large area from afar."
|
||||
projectiletype = /obj/item/projectile/arc/radioactive
|
||||
|
||||
/obj/item/projectile/arc/radioactive
|
||||
name = "radiation blast"
|
||||
icon_state = "green_pellet"
|
||||
icon_scale = 2
|
||||
var/rad_power = 50
|
||||
|
||||
/obj/item/projectile/arc/radioactive/on_impact(turf/T)
|
||||
radiation_repository.radiate(T, rad_power)
|
||||
|
||||
|
||||
// Essentially a long ranged frag grenade.
|
||||
/mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/fragmentation
|
||||
name = "anti-personnel artillery hivebot"
|
||||
desc = "A large robot capable of delivering fragmentation shells to rip apart their fleshy enemies."
|
||||
projectiletype = /obj/item/projectile/arc/fragmentation
|
||||
|
||||
/obj/item/projectile/arc/fragmentation
|
||||
name = "fragmentation shot"
|
||||
icon_state = "shell"
|
||||
var/list/fragment_types = list(
|
||||
/obj/item/projectile/bullet/pellet/fragment, /obj/item/projectile/bullet/pellet/fragment, \
|
||||
/obj/item/projectile/bullet/pellet/fragment, /obj/item/projectile/bullet/pellet/fragment/strong
|
||||
)
|
||||
var/fragment_amount = 63 // Same as a grenade.
|
||||
var/spread_range = 7
|
||||
|
||||
/obj/item/projectile/arc/fragmentation/on_impact(turf/T)
|
||||
fragmentate(T, fragment_amount, spread_range, fragment_types)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -18,12 +18,10 @@
|
||||
You are otherwise very weak offensively."
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/support/commander/handle_special()
|
||||
world << "Wew"
|
||||
for(var/mob/living/L in range(4))
|
||||
for(var/mob/living/L in range(4, src))
|
||||
if(L == src)
|
||||
continue // Don't buff ourselves.
|
||||
if(L.faction == src.faction && L.isSynthetic()) // Don't buff enemies.
|
||||
world << "Adding modifier."
|
||||
L.add_modifier(/datum/modifier/aura/hivebot_commander_buff, null, src)
|
||||
|
||||
// Modifier added to friendly hivebots nearby.
|
||||
|
||||
@@ -90,38 +90,4 @@
|
||||
|
||||
// Subtypes
|
||||
|
||||
/obj/item/projectile/arc/emp_blast
|
||||
name = "emp blast"
|
||||
icon_state = "bluespace"
|
||||
|
||||
/obj/item/projectile/arc/emp_blast/on_impact(turf/T)
|
||||
empulse(T, 2, 4, 7, 10) // Normal EMP grenade.
|
||||
return ..()
|
||||
|
||||
/obj/item/projectile/arc/emp_blast/weak/on_impact(turf/T)
|
||||
empulse(T, 1, 2, 3, 4) // Sec EMP grenade.
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/projectile/arc/radioactive
|
||||
name = "radiation blast"
|
||||
icon_state = "green_pellet"
|
||||
icon_scale = 2
|
||||
var/rad_power = 50
|
||||
|
||||
/obj/item/projectile/arc/radioactive/on_impact(turf/T)
|
||||
radiation_repository.radiate(T, rad_power)
|
||||
|
||||
|
||||
/obj/item/projectile/arc/fragmentation
|
||||
name = "fragmentation shot"
|
||||
icon_state = "shell"
|
||||
var/list/fragment_types = list(
|
||||
/obj/item/projectile/bullet/pellet/fragment, /obj/item/projectile/bullet/pellet/fragment, \
|
||||
/obj/item/projectile/bullet/pellet/fragment, /obj/item/projectile/bullet/pellet/fragment/strong
|
||||
)
|
||||
var/fragment_amount = 63 // Same as a grenade.
|
||||
var/spread_range = 7
|
||||
|
||||
/obj/item/projectile/arc/fragmentation/on_impact(turf/T)
|
||||
fragmentate(T, fragment_amount, spread_range, fragment_types)
|
||||
|
||||
Reference in New Issue
Block a user