Kinnetic Accelerator fixes and changes (#6323)

KAs now account for atmosphere the shot is fired at. Reducing damage if inside of atmosphere. Maximum damage for KAs to living being is capped at 50 per shot. Fixes #6318

KAs AOE now damages anything in its range. It looses 25% of damage per tile from the center out of center tile damage(100 -> 75 -> 50 -> 25 -> 0...).

Mechs KAs damage was increased, and AOE of 5(That is a lot!) tiles was added. Keep in mind that AOE will damage mech itself if in range. Regular mech KA damage is now 40 per shot. Burst KA damage is now 25 per shot(that is 75 in total).

Bumps Travis Byond version to 512.1467 since it includes good fixes for DD and client.
This commit is contained in:
Mykhailo Bykhovtsev
2019-04-27 01:59:02 +03:00
committed by Erki
parent 3482a84679
commit abfe06afbf
4 changed files with 67 additions and 15 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ sudo: false
env:
global:
BYOND_MAJOR="512"
BYOND_MINOR="1454"
BYOND_MINOR="1467"
MACRO_COUNT=77
FLYWAY_BUILD="5.1.4"
NODE_VERSION=10
@@ -130,4 +130,4 @@
projectiles_per_shot = 3
fire_cooldown = 3
equip_cooldown = 30
projectile = /obj/item/projectile/kinetic/mech/burst
projectile = /obj/item/projectile/kinetic/mech/burst
+21 -13
View File
@@ -8,37 +8,45 @@
range = 5
var/pressure_decrease = 0.25
var/aoe_s = 1 // aoe scale
/obj/item/projectile/kinetic/mech
damage = 15
damage = 40
aoe = 5
/obj/item/projectile/kinetic/mech/burst
damage = 10
damage = 25
/obj/item/projectile/kinetic/on_impact(var/atom/A,var/aoe_scale = 1, var/damage_scale = 1)
/obj/item/projectile/kinetic/Collide(var/atom/A)
var/turf/target_turf = get_turf(A)
if(!target_turf)
target_turf = get_turf(src)
if(istype(target_turf))
var/datum/gas_mixture/environment = target_turf.return_air()
damage *= max(1 - (environment.return_pressure()/100)*0.75,0)
if(isliving(A)) //Never do more than 15 damage to a living being per shot.
damage = min(damage,15)
strike_thing(A,aoe*aoe_scale,damage)
if(isliving(A)) //Never do more than 50 damage to a living being per shot.
damage = min(damage, 50)
. = ..()
/obj/item/projectile/kinetic/proc/strike_thing(atom/target,var/new_aoe,var/damage_scale)
/obj/item/projectile/kinetic/on_impact(var/atom/A)
var/turf/target_turf = get_turf(A)
if(!target_turf)
target_turf = get_turf(src)
if(istype(target_turf))
strike_thing(A, aoe * aoe_s)
/obj/item/projectile/kinetic/proc/strike_thing(atom/target, var/new_aoe)
var/turf/target_turf = get_turf(target)
if(istype(target_turf, /turf/simulated/mineral))
var/turf/simulated/mineral/M = target_turf
M.kinetic_hit(damage,dir)
M.kinetic_hit(damage, dir)
new /obj/effect/overlay/temp/kinetic_blast(target_turf)
if(new_aoe > 0)
for(var/new_target in orange(new_aoe, target_turf))
src.on_impact(new_target,0,0.5)
aoe_s = 0
damage = max(initial(damage) - initial(damage) * get_dist(new_target, target_turf) * 0.25, 0)
src.Collide(new_target)
CHECK_TICK
+44
View File
@@ -0,0 +1,44 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: PoZe
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- bugfix: "KAs now account for atmosphere the shot is fired at. Reducing damage if inside of atmosphere. Maximum damage for KAs to living being is capped at 50 per shot."
- tweak: "KAs AOE now damages anything in its range. It looses 25% of damage per tile from the center out of center tile damage(100 -> 75 -> 50 -> 25 -> 0...)."
- tweak: "Mechs KAs damage was increased, and AOE of 5(That is a lot!) tiles was added. Keep in mind that AOE will damage mech itself if in range. Regular mech KA damage is now 40 per shot. Burst KA damage is now 25 per shot(that is 75 in total)."
- backend: "Travis Byond version was bumped to 512.1467."