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:
Anewbe
2018-06-22 13:53:33 -05:00
committed by Atermonera
parent 2d94e00267
commit dd1a5b9ec4
49 changed files with 2407 additions and 2175 deletions

View File

@@ -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

View 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

View File

@@ -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."

View File

@@ -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)

View File

@@ -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)

View File

@@ -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