mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Fixing, nerfing and buffing the Eclipse (#7283)
This commit is contained in:
@@ -23,8 +23,8 @@
|
||||
response_disarm = "shoves"
|
||||
response_harm = "hits"
|
||||
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 15 //Tac Knife damage
|
||||
melee_damage_upper = 15
|
||||
@@ -34,7 +34,7 @@
|
||||
projectile_dispersion = 8
|
||||
projectile_accuracy = -20
|
||||
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) // Simple mob immunuties plus base Eclipse foe stuff
|
||||
ranged_cooldown = 4
|
||||
ranged_cooldown = 5
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
pass_flags = PASSTABLE //mostly for the melee mobs.
|
||||
@@ -58,10 +58,7 @@
|
||||
reload_max = 7 // Not the best default, but it fits the pistol
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged
|
||||
|
||||
// Grenade special attack vars
|
||||
var/grenade_type = /obj/item/weapon/grenade/shooter/rubber
|
||||
var/grenade_timer = 50 //CHOMPEdit
|
||||
special_attack_cooldown = 45 SECONDS
|
||||
special_attack_cooldown = 15 SECONDS
|
||||
special_attack_min_range = 2
|
||||
special_attack_max_range = 7
|
||||
var/has_heal_droid = FALSE
|
||||
@@ -81,41 +78,6 @@
|
||||
if(has_heal_droid)
|
||||
add_overlay(image(icon = 'modular_chomp/icons/mob/eclipse.dmi', icon_state = "heal_droid"))
|
||||
|
||||
////////////////////////////////
|
||||
// Grenade Attack
|
||||
////////////////////////////////
|
||||
|
||||
// Any merc can use this, just set special_attack_charges to a positive value
|
||||
|
||||
// Check if we should bother with the grenade
|
||||
/mob/living/simple_mob/humanoid/eclipse/should_special_attack(atom/A)
|
||||
var/mob_count = 0 // Are there enough mobs to consider grenading?
|
||||
var/turf/T = get_turf(A)
|
||||
for(var/mob/M in range(T, 2))
|
||||
if(M.faction == faction) // Don't grenade our friends
|
||||
return FALSE
|
||||
if(M in oview(src, special_attack_max_range)) // And lets check if we can actually see at least two people before we throw a grenade
|
||||
if(!M.stat) // Dead things don't warrant a grenade
|
||||
mob_count ++
|
||||
if(mob_count < 2)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
// Yes? Throw the grenade
|
||||
/mob/living/simple_mob/humanoid/eclipse/do_special_attack(atom/A)
|
||||
set waitfor = FALSE
|
||||
set_AI_busy(TRUE)
|
||||
|
||||
var/obj/item/weapon/grenade/G = new grenade_type(get_turf(src))
|
||||
if(istype(G))
|
||||
G.throw_at(A, G.throw_range, G.throw_speed, src)
|
||||
G.det_time = grenade_timer //CHOMPEdit
|
||||
G.activate(src) //CHOMPEdit
|
||||
special_attack_charges = max(special_attack_charges-1, 0)
|
||||
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
////////////////////////////////
|
||||
// Stealing Merc AI Types
|
||||
////////////////////////////////
|
||||
@@ -155,28 +117,54 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle
|
||||
name = "Solar Eclipse Tesla Serpent"
|
||||
desc = "A naga cladded in strange orange armor, seemingly guarded from lasers and energy based weaponry."
|
||||
health = 100
|
||||
maxHealth = 100
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
icon_state = "eclipse_tesla"
|
||||
icon_living = "eclipse_tesla"
|
||||
reload_max = 5
|
||||
movement_cooldown = 1
|
||||
|
||||
special_attack_cooldown = 5 SECONDS
|
||||
special_attack_cooldown = 20 SECONDS
|
||||
special_attack_min_range = 1
|
||||
special_attack_max_range = 7
|
||||
var/grenade_type = /obj/item/weapon/grenade/chem_grenade/incendiary
|
||||
var/grenade_timer = 20 //CHOMPEdit
|
||||
|
||||
projectiletype = /obj/item/projectile/energy/electrode/eclipse
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle/should_special_attack(atom/A)
|
||||
var/mob_count = 0 // Are there enough mobs to consider grenading?
|
||||
var/turf/T = get_turf(A)
|
||||
for(var/mob/M in range(T, 2))
|
||||
if(M.faction == faction) // Don't grenade our friends
|
||||
return FALSE
|
||||
if(M in oview(src, special_attack_max_range)) // And lets check if we can actually see at least two people before we throw a grenade
|
||||
if(!M.stat) // Dead things don't warrant a grenade
|
||||
mob_count ++
|
||||
if(mob_count < 2)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
// Yes? Throw the grenade
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle/do_special_attack(atom/A)
|
||||
var/obj/item/projectile/P = new /obj/item/projectile/energy/electrode/eclipse(get_turf(src))
|
||||
P.launch_projectile(A, BP_TORSO, src)
|
||||
set waitfor = FALSE
|
||||
set_AI_busy(TRUE)
|
||||
|
||||
var/obj/item/weapon/grenade/G = new grenade_type(get_turf(src))
|
||||
if(istype(G))
|
||||
G.throw_at(A, G.throw_range, G.throw_speed, src)
|
||||
G.det_time = grenade_timer //CHOMPEdit
|
||||
G.activate(src) //CHOMPEdit
|
||||
special_attack_charges = max(special_attack_charges-1, 0)
|
||||
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/firemoff
|
||||
name = "Solar Eclipse Inferno Moth"
|
||||
desc = "A moth like creature cladded in armor, wisps of flames swirling around it. Protected from lasers and energy."
|
||||
health = 35
|
||||
maxHealth = 35
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
icon_state = "eclipse_moth"
|
||||
icon_living = "eclipse_moth"
|
||||
reload_max = 10
|
||||
@@ -195,14 +183,14 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh
|
||||
name = "Solar Eclipse Sniper"
|
||||
desc = "An armored teshari with a sniper, protected from laser and energy based attacks"
|
||||
health = 25
|
||||
maxHealth = 25
|
||||
health = 20
|
||||
maxHealth = 20
|
||||
movement_cooldown = -1
|
||||
|
||||
icon_state = "eclipse_snipertesh"
|
||||
icon_living = "eclipse_snipertesh"
|
||||
|
||||
projectiletype = /obj/item/projectile/beam/sniper/eclipse
|
||||
projectiletype = /obj/item/projectile/energy/mob/heavysniper
|
||||
|
||||
projectile_accuracy = 100
|
||||
|
||||
@@ -253,8 +241,8 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/radiation
|
||||
name = "Solar Eclipse Irradiator"
|
||||
desc = "A lizard emitting radiation, whilst protected from it, alongside energy and laser based weapons"
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
glow_toggle = TRUE
|
||||
reload_max = 3
|
||||
|
||||
@@ -299,8 +287,8 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle //Bouncing bullet extreme
|
||||
name = "Lunar Eclipse Silver Serpent"
|
||||
desc = "A hungry looking naga, their strange armor protecting them from ballistics and physical weaponry."
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
reload_max = 6
|
||||
movement_cooldown = 1
|
||||
|
||||
@@ -309,54 +297,98 @@
|
||||
|
||||
projectiletype = /obj/item/projectile/bullet/pistol/medium/ap/eclipse
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(O.force)
|
||||
if(prob(15))
|
||||
visible_message("<span class='danger'>\The [O] is absorbed by the armor!</span>")
|
||||
if(user)
|
||||
ai_holder.react_to_attack(user)
|
||||
return
|
||||
else
|
||||
..()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
|
||||
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
|
||||
var/grenade_type = /obj/item/weapon/grenade/chem_grenade/teargas
|
||||
var/grenade_timer = 20
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(!Proj) return
|
||||
if(prob(15))
|
||||
visible_message("<font color='red'><B>The [Proj] is absorbed by the armor!</B></font>")
|
||||
if(Proj.firer)
|
||||
ai_holder.react_to_attack(Proj.firer)
|
||||
return
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle/should_special_attack(atom/A)
|
||||
var/mob_count = 0 // Are there enough mobs to consider grenading?
|
||||
var/turf/T = get_turf(A)
|
||||
for(var/mob/M in range(T, 2))
|
||||
if(M.faction == faction) // Don't grenade our friends
|
||||
return FALSE
|
||||
if(M in oview(src, special_attack_max_range)) // And lets check if we can actually see at least two people before we throw a grenade
|
||||
if(!M.stat) // Dead things don't warrant a grenade
|
||||
mob_count ++
|
||||
if(mob_count < 2)
|
||||
return FALSE
|
||||
else
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
// Yes? Throw the grenade
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle/do_special_attack(atom/A)
|
||||
set waitfor = FALSE
|
||||
set_AI_busy(TRUE)
|
||||
|
||||
var/obj/item/weapon/grenade/G = new grenade_type(get_turf(src))
|
||||
if(istype(G))
|
||||
G.throw_at(A, G.throw_range, G.throw_speed, src)
|
||||
G.det_time = grenade_timer //CHOMPEdit
|
||||
G.activate(src) //CHOMPEdit
|
||||
special_attack_charges = max(special_attack_charges-1, 0)
|
||||
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/shotgunner //wuff with shotgun
|
||||
name = "Lunar Eclipse Shotgunner"
|
||||
desc = "A Vulpkanin or the like in a red-purple flashing rigsuit, it defending them from physical damage of close and long ranges."
|
||||
health = 35
|
||||
maxHealth = 35
|
||||
reload_max = 2
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
reload_max = 1
|
||||
|
||||
icon_state = "eclipse_shotwuff"
|
||||
icon_living = "eclipse_shotwuff"
|
||||
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun/slow
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun
|
||||
|
||||
ranged_attack_delay = 0.5 SECONDS
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/shotgunner/ranged_pre_animation(atom/A)
|
||||
Beam(get_turf(A), icon_state = "sniper_beam", time = 0.5 SECONDS, maxdistance = 5)
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/shotgunner/shoot_target(atom/A)
|
||||
set waitfor = FALSE
|
||||
|
||||
if(!istype(A) || QDELETED(A))
|
||||
return
|
||||
|
||||
setClickCooldown(get_attack_speed())
|
||||
|
||||
face_atom(A)
|
||||
|
||||
var/atom/orig_targ = A
|
||||
|
||||
if(ranged_attack_delay)
|
||||
A = get_turf(orig_targ)
|
||||
ranged_pre_animation(A)
|
||||
handle_attack_delay(A, ranged_attack_delay) // This will sleep this proc for a bit, which is why waitfor is false.
|
||||
|
||||
if(needs_reload)
|
||||
if(reload_count >= reload_max)
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [orig_targ]!</span>")
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
if(ranged_attack_delay)
|
||||
ranged_post_animation(A)
|
||||
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm //tesh got a gun
|
||||
name = "Lunar Eclipse Judge"
|
||||
desc = "A teshari wildly wielding a pistol, wearing bullet and sword protective gear."
|
||||
health = 25
|
||||
maxHealth = 25
|
||||
health = 20
|
||||
maxHealth = 20
|
||||
icon_state = "eclipse_shottesh"
|
||||
icon_living = "eclipse_shottesh"
|
||||
movement_cooldown = -1
|
||||
|
||||
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun/slow
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun
|
||||
reload_max = 6
|
||||
|
||||
projectile_dispersion = 100
|
||||
@@ -366,12 +398,12 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/ravanger //Tanky boi. Very deadly melee
|
||||
name = "Lunar Eclipse Ravanger"
|
||||
desc = "An individual wearing strange armor that seems to be living, and breathing while providing protection from bullets and swords."
|
||||
health = 60
|
||||
maxHealth = 60
|
||||
health = 40
|
||||
maxHealth = 40
|
||||
icon_state = "eclipse_ravanger"
|
||||
icon_living = "eclipse_ravanger"
|
||||
|
||||
attack_armor_pen = 25
|
||||
attack_armor_pen = 15
|
||||
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 20
|
||||
@@ -393,14 +425,13 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/hellhound
|
||||
name = "Solar Eclipse Hound"
|
||||
desc = "A heavily armored creature, flames dancing around it's burn and energy proof armor."
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
health = 70
|
||||
maxHealth = 70
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
projectiletype = null //Flashing was to much for this mob.
|
||||
movement_cooldown = -1
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 20
|
||||
attack_armor_pen = 20
|
||||
icon_state = "eclipse_hound"
|
||||
icon_living = "eclipse_hound"
|
||||
size_multiplier = 1.25
|
||||
@@ -408,14 +439,20 @@
|
||||
var/poison_per_bite = 4
|
||||
var/poison_type = "stoxin"
|
||||
|
||||
melee_attack_delay = 4
|
||||
melee_attack_delay = 3
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/hellhound/do_special_attack(atom/A)
|
||||
var/datum/effect/effect/system/spark_spread/s1 = new /datum/effect/effect/system/smoke_spread
|
||||
s1.set_up(5, 1, A)
|
||||
var/obj/item/projectile/P = new /obj/item/projectile/energy/fireball(get_turf(src))
|
||||
P.launch_projectile(A, BP_TORSO, src)
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/wheel
|
||||
name = "Lunar Eclipse Armadillo"
|
||||
desc = "A silver armadillo coiled up, and spinning at you, all bullets and close quarters attacks bouncing off."
|
||||
health = 75
|
||||
maxHealth = 75
|
||||
health = 70
|
||||
maxHealth = 70
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 10
|
||||
attack_armor_pen = 50
|
||||
@@ -511,7 +548,7 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/guardian
|
||||
name = "Solar Eclipse Guardian"
|
||||
desc = "A squishy bouncy individual, it seeming to harmlessly absorb lasers and energy in general."
|
||||
projectiletype = /obj/item/projectile/ion
|
||||
projectiletype = /obj/item/projectile/energy/mob/ionbeam
|
||||
icon_state = "eclipse_guardian"
|
||||
icon_living = "eclipse_guardian"
|
||||
reload_max = 10
|
||||
@@ -553,9 +590,6 @@
|
||||
if(prob(shock_chance))
|
||||
A.emp_act(4) //The weakest strength of EMP
|
||||
playsound(src, 'sound/weapons/Egloves.ogg', 75, 1)
|
||||
L.Weaken(4)
|
||||
L.Stun(4)
|
||||
L.stuttering = max(L.stuttering, 4)
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(5, 1, L)
|
||||
s.start()
|
||||
@@ -566,12 +600,12 @@
|
||||
//Freezing winds update
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/aeroblaster //Air sniper
|
||||
name = "Lunar Eclipse Aeroblaster"
|
||||
name = "Lunar Eclipse Demodrone"
|
||||
desc = "A strange somewhat see through floating jellyfish."
|
||||
health = 25
|
||||
maxHealth = 25
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged/sniper
|
||||
projectiletype = /obj/item/projectile/bullet/rifle/a145/aero
|
||||
health = 30
|
||||
maxHealth = 30
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged
|
||||
projectiletype = /obj/item/projectile/bullet/srmrocket
|
||||
|
||||
icon_state = "aeroblaster"
|
||||
icon_living = "aeroblaster"
|
||||
@@ -582,8 +616,39 @@
|
||||
ranged_attack_delay = 1.5 SECONDS
|
||||
hovering = TRUE
|
||||
|
||||
var/exploded = FALSE
|
||||
var/explosion_dev_range = 0
|
||||
var/explosion_heavy_range = 1
|
||||
var/explosion_light_range = 2
|
||||
var/explosion_flash_range = 3 // This doesn't do anything iirc.
|
||||
|
||||
var/explosion_delay_lower = 5 SECOND // Lower bound for explosion delay.
|
||||
var/explosion_delay_upper = 10 SECONDS // Upper bound.
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/aeroblaster/death()
|
||||
visible_message(span("critical", "\The [src]'s body begins to rupture!"))
|
||||
var/delay = rand(explosion_delay_lower, explosion_delay_upper)
|
||||
spawn(0)
|
||||
// Flash black and red as a warning.
|
||||
for(var/i = 1 to delay)
|
||||
if(i % 2 == 0)
|
||||
color = "#000000"
|
||||
else
|
||||
color = "#FF0000"
|
||||
sleep(1)
|
||||
|
||||
spawn(delay)
|
||||
// The actual boom.
|
||||
if(src && !exploded)
|
||||
visible_message(span("danger", "\The [src]'s body detonates!"))
|
||||
exploded = TRUE
|
||||
explosion(src.loc, explosion_dev_range, explosion_heavy_range, explosion_light_range, explosion_flash_range)
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/aeroblaster/ranged_pre_animation(atom/A)
|
||||
Beam(get_turf(A), icon_state = "sniper_beam", time = 1 SECONDS, maxdistance = 15)
|
||||
Beam(get_turf(A), icon_state = "sniper_beam", time = 1.5 SECONDS, maxdistance = 5)
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/aeroblaster/shoot_target(atom/A)
|
||||
@@ -618,19 +683,12 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/item/projectile/bullet/rifle/a145/aero
|
||||
damage = 10
|
||||
stun = 0
|
||||
weaken = 0
|
||||
penetrating = 10
|
||||
armor_penetration = 90
|
||||
hud_state = "sniper_flak"
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/miner //Confusion?
|
||||
name = "Lunar Eclipse Miner"
|
||||
desc = "A slime creature in red and blue armor."
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
health = 30
|
||||
maxHealth = 30
|
||||
projectiletype = /obj/item/projectile/energy/excavate/weak
|
||||
special_attack_cooldown = 50 SECONDS
|
||||
special_attack_min_range = 4
|
||||
@@ -649,8 +707,8 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/froststalker //teleporting stalker
|
||||
name = "Solar Eclipse Froststalker"
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
health = 30
|
||||
maxHealth = 30
|
||||
desc = "A somewhat see through being wearing a burn resistaint coat."
|
||||
alpha = 180
|
||||
melee_damage_lower = 20
|
||||
@@ -719,10 +777,11 @@
|
||||
reload_max = 5
|
||||
icon_state = "cryo"
|
||||
icon_living = "cryo"
|
||||
grenade_type = /obj/item/weapon/grenade/chem_grenade/frost
|
||||
cold_resist = 1.0
|
||||
has_heal_droid = TRUE
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged/cyro
|
||||
var/grenade_type = /obj/item/weapon/grenade/chem_grenade/frost
|
||||
var/grenade_timer = 20 //CHOMPEdit
|
||||
|
||||
ranged_attack_delay = 1.5 SECONDS
|
||||
|
||||
@@ -731,6 +790,33 @@
|
||||
|
||||
armor_soak = list(melee = 0, bullet = 0, laser = 20, energy = 20, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/cryomancer/should_special_attack(atom/A)
|
||||
var/mob_count = 0 // Are there enough mobs to consider grenading?
|
||||
var/turf/T = get_turf(A)
|
||||
for(var/mob/M in range(T, 2))
|
||||
if(M.faction == faction) // Don't grenade our friends
|
||||
return FALSE
|
||||
if(M in oview(src, special_attack_max_range)) // And lets check if we can actually see at least two people before we throw a grenade
|
||||
if(!M.stat) // Dead things don't warrant a grenade
|
||||
mob_count ++
|
||||
if(mob_count < 2)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
|
||||
// Yes? Throw the grenade
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/cryomancer/do_special_attack(atom/A)
|
||||
set waitfor = FALSE
|
||||
set_AI_busy(TRUE)
|
||||
|
||||
var/obj/item/weapon/grenade/G = new grenade_type(get_turf(src))
|
||||
if(istype(G))
|
||||
G.throw_at(A, G.throw_range, G.throw_speed, src)
|
||||
G.det_time = grenade_timer //CHOMPEdit
|
||||
G.activate(src) //CHOMPEdit
|
||||
special_attack_charges = max(special_attack_charges-1, 0)
|
||||
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/frost
|
||||
name = "frost grenade"
|
||||
|
||||
@@ -81,27 +81,26 @@
|
||||
//Eclipse mob stuff
|
||||
|
||||
/obj/item/projectile/energy/blob/moth
|
||||
damage = 20
|
||||
armor_penetration = 25
|
||||
damage = 15
|
||||
armor_penetration = 15
|
||||
my_chems = list("fuel", "mold")
|
||||
flammability = 0.25
|
||||
modifier_type_to_apply = /datum/modifier/fire
|
||||
modifier_duration = 6 SECONDS
|
||||
color = "#38b9ff"
|
||||
speed = 2.6
|
||||
speed = 3.2
|
||||
|
||||
/obj/item/projectile/bullet/pistol/medium/ap/eclipse
|
||||
armor_penetration = 20
|
||||
ricochets = 1
|
||||
ricochets_max = 8
|
||||
ricochet_chance = 100
|
||||
speed = 2.6
|
||||
speed = 3.2
|
||||
|
||||
/obj/item/projectile/energy/electrode/eclipse
|
||||
damage = 20
|
||||
damage_type = BURN
|
||||
color = "#38b9ff"
|
||||
speed = 2.6
|
||||
speed = 3.2
|
||||
|
||||
/obj/item/projectile/arc/fragmentation/moth
|
||||
name = "solar mortar"
|
||||
@@ -113,16 +112,24 @@
|
||||
fragment_amount = 3 // Same as a grenade.
|
||||
spread_range = 7
|
||||
|
||||
/obj/item/projectile/beam/sniper/eclipse
|
||||
armor_penetration = 50
|
||||
damage = 50
|
||||
/obj/item/projectile/energy/mob/heavysniper
|
||||
armor_penetration = 40
|
||||
damage = 40
|
||||
speed = 1.2
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
name = "sniper beam"
|
||||
icon_state = "impact_xray"
|
||||
|
||||
/obj/item/projectile/energy/declone/burn
|
||||
damage = 15
|
||||
armor_penetration = 10
|
||||
nodamage = 0
|
||||
speed = 2.6
|
||||
irradiate = 60
|
||||
speed = 3.2
|
||||
irradiate = 30
|
||||
|
||||
/obj/item/projectile/bullet/shotgun/slow
|
||||
speed = 2.0
|
||||
/obj/item/projectile/energy/mob/ionbeam
|
||||
name = "Ion Burst"
|
||||
damage = 10
|
||||
damage_type = ELECTROMAG
|
||||
light_color = "#00CCFF"
|
||||
icon_state = "impact_blue"
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
Reference in New Issue
Block a user