mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-26 01:52:29 +00:00
Brings the make_ai_great_again branch up to date with master (#5364)
* Planet controller startup delay * Fix the New() on this interfering with my work! * Creates SSplanets subsystem For SPEEDYNESS It probably works. I mean it's hard to sit there for 8 hours and test it. But it seems to work okay. At worst if it doesn't you'll have weather that doesn't make sense. ;v * Recharger refactor * Reworks weather to fit the faster weather ticker * Allows AIs to produce and control maint/construction/mining drones. (#5282) * Allows AIs to control maint/construction drones. * Radio control online. * Things Not Saving * Drone control respects intellicores. * Config control, AI drones are disableable if the AI isn't an antag. * There's a diff so it must have saved. Right? * No un/wrenching of the core. * Complies to Replies. * Folders props, and adds the laser prism, receptor, and sealed doors. (#5337) * Re-bases props, and adds the laser prism. * Ver 1 of Puzzle Lock and Doors * Doors * Fix door hiccup I made, modify Prism * Use SSoverlays please You have invoked my wrath by not doing this properly! * Backports turret faction code * Adds arcing projectiles * Adds aura style modifier code * Bioprinters and Cloners now use Biomass reagent, maps in a Bioprinter (#5355) * Bioprinters and Cloners now use Biomass reagent, maps in a Bioprinter * Changelog * Corrects liver cost oversight * More Phase Guns (#5276) * Adds new Phase weapons * Fixes a thing * Puts phase weapons in cargo * Moves research designs, adds phase weapons * Comments out a duplicate design * Corrects duplicate design ID * Last commit on this PR, I swear
This commit is contained in:
@@ -23,17 +23,6 @@
|
||||
|
||||
var/battery_lock = 0 //If set, weapon cannot switch batteries
|
||||
|
||||
/obj/item/weapon/gun/energy/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/energy/switch_firemodes(mob/user)
|
||||
if(..())
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/energy/emp_act(severity)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/energy/New()
|
||||
..()
|
||||
if(self_recharge)
|
||||
@@ -52,6 +41,9 @@
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/gun/energy/get_cell()
|
||||
return power_supply
|
||||
|
||||
/obj/item/weapon/gun/energy/process()
|
||||
if(self_recharge) //Every [recharge_time] ticks, recharge a shot for the battery
|
||||
if(world.time > last_shot + charge_delay) //Doesn't work if you've fired recently
|
||||
@@ -75,6 +67,17 @@
|
||||
charge_tick = 0
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/energy/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/energy/switch_firemodes(mob/user)
|
||||
if(..())
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/energy/emp_act(severity)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/energy/consume_next_projectile()
|
||||
if(!power_supply) return null
|
||||
if(!ispath(projectile_type)) return null
|
||||
|
||||
56
code/modules/projectiles/guns/energy/phase.dm
Normal file
56
code/modules/projectiles/guns/energy/phase.dm
Normal file
@@ -0,0 +1,56 @@
|
||||
// Phase weapons go here
|
||||
|
||||
/obj/item/weapon/gun/energy/phasegun
|
||||
name = "phase carbine"
|
||||
desc = "The NT EW26 Artemis is a downsized energy weapon, specifically designed for use against wildlife."
|
||||
icon_state = "phasecarbine"
|
||||
wielded_item_state = "phasecarbine-wielded"
|
||||
slot_flags = SLOT_BACK|SLOT_BELT
|
||||
charge_cost = 240
|
||||
projectile_type = /obj/item/projectile/energy/phase
|
||||
one_handed_penalty = 15
|
||||
|
||||
/obj/item/weapon/gun/energy/phasegun/pistol
|
||||
name = "phase pistol"
|
||||
desc = "The NT EW15 Apollo is an energy handgun, specifically designed for self-defense against aggressive wildlife."
|
||||
icon_state = "phase"
|
||||
item_state = "taser" //I don't have an in-hand sprite, taser will be fine
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
charge_cost = 300
|
||||
projectile_type = /obj/item/projectile/energy/phase/light
|
||||
one_handed_penalty = 0
|
||||
|
||||
/obj/item/weapon/gun/energy/phasegun/pistol/mounted
|
||||
name = "mounted phase pistol"
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
|
||||
/obj/item/weapon/gun/energy/phasegun/pistol/mounted/cyborg
|
||||
charge_cost = 400
|
||||
recharge_time = 7
|
||||
|
||||
obj/item/weapon/gun/energy/phasegun/rifle
|
||||
name = "phase rifle"
|
||||
desc = "The NT EW31 Orion is a specialist energy weapon, intended for use against hostile wildlife."
|
||||
icon_state = "phaserifle"
|
||||
item_state = "phaserifle"
|
||||
wielded_item_state = "phaserifle-wielded"
|
||||
slot_flags = SLOT_BACK
|
||||
charge_cost = 150
|
||||
projectile_type = /obj/item/projectile/energy/phase/heavy
|
||||
accuracy = 15
|
||||
one_handed_penalty = 30
|
||||
|
||||
/obj/item/weapon/gun/energy/phasegun/cannon
|
||||
name = "phase cannon"
|
||||
desc = "The NT EW50 Gaia is a massive energy weapon, purpose-built for clearing land. You feel dirty just looking at it."
|
||||
icon_state = "phasecannon"
|
||||
item_state = "phasecannon"
|
||||
wielded_item_state = "phasecannon-wielded" //TODO: New Sprites
|
||||
w_class = ITEMSIZE_HUGE // This thing is big.
|
||||
slot_flags = SLOT_BACK
|
||||
charge_cost = 100
|
||||
projectile_type = /obj/item/projectile/energy/phase/heavy/cannon
|
||||
accuracy = 15
|
||||
one_handed_penalty = 65
|
||||
@@ -25,15 +25,6 @@
|
||||
charge_cost = 480
|
||||
projectile_type = /obj/item/projectile/ion/pistol
|
||||
|
||||
/obj/item/weapon/gun/energy/phasegun
|
||||
name = "phase pistol"
|
||||
desc = "The NT Mk26 EW Apollo is an energy handgun, specifically designed for use against wildlife."
|
||||
icon_state = "phase"
|
||||
item_state = "taser" //I don't have an in-hand sprite, taser will be fine
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
charge_cost = 300
|
||||
projectile_type = /obj/item/projectile/energy/phase
|
||||
|
||||
/obj/item/weapon/gun/energy/decloner
|
||||
name = "biological demolecularisor"
|
||||
desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements."
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
qdel_null(capacitor)
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/gun/magnetic/get_cell()
|
||||
return cell
|
||||
|
||||
/obj/item/weapon/gun/magnetic/process()
|
||||
if(capacitor)
|
||||
if(cell)
|
||||
|
||||
@@ -78,8 +78,6 @@
|
||||
// Update our shadow.
|
||||
shadow.forceMove(loc)
|
||||
|
||||
|
||||
|
||||
/obj/effect/projectile_shadow
|
||||
name = "shadow"
|
||||
desc = "You better avoid the thing coming down!"
|
||||
@@ -87,7 +85,50 @@
|
||||
icon_state = "arc_shadow"
|
||||
anchored = TRUE
|
||||
|
||||
//////////////
|
||||
// Subtypes
|
||||
//////////////
|
||||
|
||||
// Subtypes
|
||||
// Generic, Hivebot related
|
||||
/obj/item/projectile/arc/blue_energy
|
||||
name = "energy missile"
|
||||
icon_state = "force_missile"
|
||||
damage = 15
|
||||
damage_type = BURN
|
||||
|
||||
// Fragmentation arc shot
|
||||
/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)
|
||||
|
||||
// EMP arc shot
|
||||
/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 ..()
|
||||
|
||||
// Radiation arc shot
|
||||
/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)
|
||||
@@ -212,7 +212,22 @@
|
||||
muzzle_type = /obj/effect/projectile/pulse/muzzle
|
||||
|
||||
/obj/item/projectile/energy/phase
|
||||
kill_count = 4
|
||||
name = "phase wave"
|
||||
icon_state = "phase"
|
||||
kill_count = 6
|
||||
damage = 5
|
||||
SA_bonus_damage = 55 // 60 total on animals.
|
||||
SA_vulnerability = SA_ANIMAL
|
||||
SA_bonus_damage = 45 // 50 total on animals
|
||||
SA_vulnerability = SA_ANIMAL
|
||||
|
||||
/obj/item/projectile/energy/phase/light
|
||||
kill_count = 4
|
||||
SA_bonus_damage = 35 // 40 total on animals
|
||||
|
||||
/obj/item/projectile/energy/phase/heavy
|
||||
kill_count = 8
|
||||
SA_bonus_damage = 55 // 60 total on animals
|
||||
|
||||
/obj/item/projectile/energy/phase/heavy/cannon
|
||||
kill_count = 10
|
||||
damage = 15
|
||||
SA_bonus_damage = 60 // 75 total on animals
|
||||
Reference in New Issue
Block a user