diff --git a/code/modules/projectiles/guns/energy/altevian_vr.dm b/code/modules/projectiles/guns/energy/altevian_vr.dm index 39543e1fcc..60104e560d 100644 --- a/code/modules/projectiles/guns/energy/altevian_vr.dm +++ b/code/modules/projectiles/guns/energy/altevian_vr.dm @@ -57,3 +57,91 @@ light_range = 2 light_power = 0.5 light_color = "#77A6E1" + +/obj/item/weapon/gun/energy/ratminer + name = "Altevian Repulsion Mineral Slicer" + desc = "An advanced piece of mining focused technology from the Altevian Hegemony. \ + This model appears to be their standard asteroid clearing laser with a tailored system to work with an ore-bag, \ + or similar, linked to the device. It has extra crystals for the focus that seem to split the beam, \ + but also removes the pin-point accuracy other mining devices typically have." + icon_state = "altevian-miner" + item_state = "altevian-miner" + fire_delay = 12 + slot_flags = SLOT_BACK + w_class = ITEMSIZE_HUGE + force = 10 + origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) + matter = list(MAT_STEEL = 2000) + projectile_type = /obj/item/projectile/scatter/ratminer + charge_cost = 400 + +/obj/item/projectile/scatter/ratminer + spread_submunition_damage = FALSE + damage = 20 + range = 0 + + submunition_spread_max = 300 + force_max_submunition_spread = TRUE + + submunitions = list( + /obj/item/projectile/beam/ratminer = 3 + ) + +/obj/item/projectile/beam/ratminer + name = "slicer beam" + icon_state = "ratmining" + damage = 20 + light_color = "#77A6E1" + hud_state = "laser_disabler" + + muzzle_type = /obj/effect/projectile/muzzle/ratminer + tracer_type = /obj/effect/projectile/tracer/ratminer + impact_type = /obj/effect/projectile/impact/ratminer + +/obj/item/projectile/beam/ratminer/on_range() + strike_thing() + ..() + +/obj/item/projectile/beam/ratminer/on_hit(atom/target) + strike_thing(target) + . = ..() + +/obj/item/projectile/beam/ratminer/on_impact(atom/A) + . = ..() + strike_thing(A) + +/obj/item/projectile/beam/ratminer/proc/strike_thing(var/atom/A) + var/turf/target_turf = get_turf(A) + if(!target_turf) + target_turf = get_turf(src) + if(ismineralturf(target_turf)) + var/turf/simulated/mineral/M = target_turf + M.GetDrilled(TRUE) + for(var/T in RANGE_TURFS(2, target_turf) - target_turf) + if(ismineralturf(T)) + var/turf/simulated/mineral/M = T + M.GetDrilled(TRUE) + if(firer) + var/obj/item/weapon/storage/bag/ore/orebag = locate(/obj/item/weapon/storage/bag/ore) in firer + if(orebag) + for(var/turf/T in RANGE_TURFS(2, target_turf)) + orebag.gather_all(T, firer, TRUE) + + +/obj/effect/projectile/muzzle/ratminer + icon_state = "muzzle_ratmining" + light_range = 2 + light_power = 0.5 + light_color = "#77A6E1" + +/obj/effect/projectile/tracer/ratminer + icon_state = "ratmining" + light_range = 2 + light_power = 0.5 + light_color = "#77A6E1" + +/obj/effect/projectile/impact/ratminer + icon_state = "impact_ratmining" + light_range = 2 + light_power = 0.5 + light_color = "#77A6E1" \ No newline at end of file diff --git a/icons/inventory/back/mob.dmi b/icons/inventory/back/mob.dmi index f9c36d0277..89df611fe6 100644 Binary files a/icons/inventory/back/mob.dmi and b/icons/inventory/back/mob.dmi differ diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi index 47f4efae72..340a1ae908 100644 Binary files a/icons/mob/items/lefthand_guns.dmi and b/icons/mob/items/lefthand_guns.dmi differ diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi index 6128d03f5d..a3a4f82e72 100644 Binary files a/icons/mob/items/righthand_guns.dmi and b/icons/mob/items/righthand_guns.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index f59d1369e1..e4bfbfd55d 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/projectiles_impact.dmi b/icons/obj/projectiles_impact.dmi index a6efd92db6..054757d0f9 100644 Binary files a/icons/obj/projectiles_impact.dmi and b/icons/obj/projectiles_impact.dmi differ diff --git a/icons/obj/projectiles_muzzle.dmi b/icons/obj/projectiles_muzzle.dmi index 234a2e428a..52539c49a5 100644 Binary files a/icons/obj/projectiles_muzzle.dmi and b/icons/obj/projectiles_muzzle.dmi differ diff --git a/icons/obj/projectiles_tracer.dmi b/icons/obj/projectiles_tracer.dmi index 7404a5867b..2052f93e96 100644 Binary files a/icons/obj/projectiles_tracer.dmi and b/icons/obj/projectiles_tracer.dmi differ