Merge pull request #29 from GDLW24/minor_reworks
more GATO resprites + fattening beamgun tests
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"CurrentProjectSetting": "No Configurations"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// DM Environment file for GS13.dme.
|
||||
// All manual changes should be made outside the BEGIN_ and END_ blocks.
|
||||
// New source code should be placed in .dm files: choose File/New --> Code File.
|
||||
|
||||
// BEGIN_INTERNALS
|
||||
// END_INTERNALS
|
||||
|
||||
// BEGIN_FILE_DIR
|
||||
#define FILE_DIR .
|
||||
// END_FILE_DIR
|
||||
|
||||
// BEGIN_PREFERENCES
|
||||
// END_PREFERENCES
|
||||
|
||||
// BEGIN_INCLUDE
|
||||
// END_INCLUDE
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
/obj/item/gun/fatbeam
|
||||
name = "Fatbeam Gun"
|
||||
desc = "New invention of GATO's most degenerate engineers."
|
||||
icon = 'icons/obj/fatbeam.dmi'
|
||||
icon_state = "chronogun"
|
||||
item_state = "chronogun"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
var/mob/living/current_target
|
||||
var/last_check = 0
|
||||
var/check_delay = 10 //Check los as often as possible, max resolution is SSobj tick though
|
||||
var/max_range = 8
|
||||
var/active = 0
|
||||
var/datum/beam/current_beam = null
|
||||
var/mounted = 0 //Denotes if this is a handheld or mounted version
|
||||
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
|
||||
/obj/item/gun/fatbeam/Initialize()
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/gun/fatbeam/Destroy(mob/user)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
LoseTarget()
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/fatbeam/dropped(mob/user)
|
||||
..()
|
||||
LoseTarget()
|
||||
|
||||
/obj/item/gun/fatbeam/equipped(mob/user)
|
||||
..()
|
||||
LoseTarget()
|
||||
|
||||
/obj/item/gun/fatbeam/proc/LoseTarget()
|
||||
if(active)
|
||||
qdel(current_beam)
|
||||
current_beam = null
|
||||
active = 0
|
||||
on_beam_release(current_target)
|
||||
current_target = null
|
||||
|
||||
/obj/item/gun/fatbeam/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
|
||||
if(isliving(user))
|
||||
add_fingerprint(user)
|
||||
|
||||
if(current_target)
|
||||
LoseTarget()
|
||||
if(!isliving(target))
|
||||
return
|
||||
|
||||
current_target = target
|
||||
active = TRUE
|
||||
current_beam = new(user,current_target,time=6000,beam_icon_state="fatbeam",btype=/obj/effect/ebeam/medical)
|
||||
INVOKE_ASYNC(current_beam, /datum/beam.proc/Start)
|
||||
|
||||
SSblackbox.record_feedback("tally", "gun_fired", 1, type)
|
||||
|
||||
/obj/item/gun/fatbeam/process()
|
||||
|
||||
var/source = loc
|
||||
if(!mounted && !isliving(source))
|
||||
LoseTarget()
|
||||
return
|
||||
|
||||
if(!current_target)
|
||||
LoseTarget()
|
||||
return
|
||||
|
||||
if(world.time <= last_check+check_delay)
|
||||
return
|
||||
|
||||
last_check = world.time
|
||||
|
||||
if(get_dist(source, current_target)>max_range || !los_check(source, current_target))
|
||||
LoseTarget()
|
||||
if(isliving(source))
|
||||
to_chat(source, "<span class='warning'>You lose control of the beam!</span>")
|
||||
return
|
||||
|
||||
if(current_target)
|
||||
on_beam_tick(current_target)
|
||||
|
||||
/obj/item/gun/fatbeam/proc/los_check(atom/movable/user, mob/target)
|
||||
var/turf/user_turf = user.loc
|
||||
if(mounted)
|
||||
user_turf = get_turf(user)
|
||||
else if(!istype(user_turf))
|
||||
return 0
|
||||
var/obj/dummy = new(user_turf)
|
||||
dummy.pass_flags |= PASSTABLE|PASSGLASS|PASSGRILLE //Grille/Glass so it can be used through common windows
|
||||
for(var/turf/turf in getline(user_turf,target))
|
||||
if(mounted && turf == user_turf)
|
||||
continue //Mechs are dense and thus fail the check
|
||||
if(turf.density)
|
||||
qdel(dummy)
|
||||
return 0
|
||||
for(var/atom/movable/AM in turf)
|
||||
if(!AM.CanPass(dummy,turf,1))
|
||||
qdel(dummy)
|
||||
return 0
|
||||
for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams!
|
||||
if(B.owner.origin != current_beam.origin)
|
||||
explosion(B.loc,0,1,3,4)
|
||||
qdel(dummy)
|
||||
return 0
|
||||
qdel(dummy)
|
||||
return 1
|
||||
|
||||
/obj/item/gun/fatbeam/proc/on_beam_hit(var/mob/living/target)
|
||||
return
|
||||
|
||||
/obj/item/gun/fatbeam/proc/on_beam_tick(var/mob/living/target)
|
||||
if(target.health != target.maxHealth)
|
||||
new /obj/effect/temp_visual/heal(get_turf(target), "#FFC2F8")
|
||||
target.nutrition += 100
|
||||
return
|
||||
|
||||
/obj/item/gun/fatbeam/proc/on_beam_release(var/mob/living/target)
|
||||
return
|
||||
|
||||
/obj/effect/ebeam/medical
|
||||
name = "fattening beam"
|
||||
|
||||
//////////////////////////////Mech Version///////////////////////////////
|
||||
/obj/item/gun/fatbeam/mech
|
||||
mounted = 1
|
||||
|
||||
/obj/item/gun/fatbeam/mech/Initialize()
|
||||
. = ..()
|
||||
STOP_PROCESSING(SSobj, src) //Mech mediguns do not process until installed, and are controlled by the holder obj
|
||||
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 220 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 443 KiB After Width: | Height: | Size: 442 KiB |
|
Before Width: | Height: | Size: 386 KiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 433 KiB After Width: | Height: | Size: 432 KiB |
@@ -28,7 +28,7 @@ the %ADJECTIVE% brig
|
||||
%A% %ADJECTIVE% shuttle
|
||||
%A% %ADJECTIVE% laboratory
|
||||
Nanotrasen
|
||||
Kinaris
|
||||
GATO
|
||||
the Syndicate
|
||||
the Wizard Federation
|
||||
%ADJECTIVE% blood
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"Why is it called the emergency shuttle if it arrives every single shift?",
|
||||
"Where does the Cook get all this meat from?",
|
||||
"Space wind? How does that even make sense?",
|
||||
"Why does Kinaris hire Clowns and Mimes for every single station?",
|
||||
"Why does GATO hire Clowns and Mimes for every single station?",
|
||||
"Why is the station's air supply connected to the plasma tank?",
|
||||
"Why are there fire alarms everywhere but no sprinklers?",
|
||||
"Why is this a plasma research station if we know everything about plasma already?",
|
||||
@@ -16,7 +16,7 @@
|
||||
"How come a hole in the floor doesn't suck you out into space?",
|
||||
"Why is space cold?",
|
||||
"Why does space circle around on itself?",
|
||||
"Kinaris just clones us every shift.",
|
||||
"GATO just clones us every shift.",
|
||||
"There's no biological difference between lizards and humans.",
|
||||
"Why is there a floor, but no roof?",
|
||||
"The universe always ends after we reach CentCom.",
|
||||
|
||||
@@ -2622,6 +2622,7 @@
|
||||
#include "code\modules\projectiles\guns\misc\beam_rifle.dm"
|
||||
#include "code\modules\projectiles\guns\misc\blastcannon.dm"
|
||||
#include "code\modules\projectiles\guns\misc\chem_gun.dm"
|
||||
#include "code\modules\projectiles\guns\misc\fatbeam.dm"
|
||||
#include "code\modules\projectiles\guns\misc\grenade_launcher.dm"
|
||||
#include "code\modules\projectiles\guns\misc\medbeam.dm"
|
||||
#include "code\modules\projectiles\guns\misc\syringe_gun.dm"
|
||||
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="74.356316mm"
|
||||
height="81.92083mm"
|
||||
viewBox="0 0 74.356317 81.92083"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="bg-kinaris.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="-121.48413"
|
||||
inkscape:cy="91.641316"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-42.945241,-89.207574)">
|
||||
<path
|
||||
style="opacity:0.33000004;fill:#000000;fill-opacity:1;stroke-width:0.18623973"
|
||||
d="m 68.487618,171.08026 c -0.391907,-0.0425 -1.594358,-0.17058 -2.672109,-0.28459 -2.700563,-0.28569 -6.524512,-1.21042 -9.35238,-2.26167 -3.211985,-1.19404 -7.969555,-3.78281 -10.772868,-5.86192 -2.111605,-1.5661 -3.183276,-2.49321 -2.576543,-2.1464 1.095849,0.5387 6.00876,1.9396 8.363536,2.32789 2.314587,0.38166 3.447931,0.45437 7.034493,0.45132 7.768128,-0.007 11.908266,-0.8862 20.486171,-4.35248 3.531714,-1.42715 9.323972,-5.08835 12.469841,-7.88201 2.709645,-2.40627 5.851985,-5.75297 7.170389,-7.6367 0.367292,-0.52478 0.816058,-1.13044 0.99726,-1.34591 0.298529,-0.35496 1.543652,-2.26296 1.985952,-3.04322 0.0982,-0.17324 0.3328,-0.56752 0.52132,-0.87618 1.02385,-1.67627 1.56435,-2.71413 2.42168,-4.65005 0.52167,-1.17797 1.09136,-2.45313 1.26598,-2.83367 0.42927,-0.93555 2.11543,-6.5332 2.11543,-7.02276 0,-0.21521 0.072,-0.53886 0.1601,-0.71923 0.0881,-0.18036 0.33422,-1.46697 0.54704,-2.85912 0.44219,-2.89265 0.63351,-9.21535 0.3476,-11.48773 -0.44173,-3.51077 -0.56458,-4.23389 -1.07514,-6.32797 -1.18034,-4.84127 -2.89859,-9.434812 -4.50535,-12.044478 l -0.62542,-1.015808 0.52379,0.40766 c 0.55671,0.433276 3.63913,3.851815 4.64942,5.156405 2.66195,3.437375 5.06332,7.910071 6.89945,12.850661 0.71449,1.92254 1.74538,6.31698 2.19246,9.34594 0.36407,2.46662 0.30539,10.20754 -0.0974,12.85067 -0.49459,3.24534 -1.43124,7.13419 -2.15723,8.95653 -0.12798,0.32126 -0.35577,0.98681 -0.50619,1.47899 -0.27129,0.88771 -2.64967,6.0408 -3.04681,6.60135 -0.11381,0.16063 -0.51912,0.86158 -0.9007,1.55765 -1.96243,3.57987 -6.38093,8.90078 -9.70937,11.69236 -4.197779,3.52068 -7.374457,5.4954 -12.325718,7.66203 -3.08839,1.35146 -6.84359,2.41109 -10.476284,2.95621 -1.835704,0.27546 -7.95005,0.50836 -9.35238,0.35623 z m 20.735764,-25.92817 c -0.102811,-0.29449 -0.507383,-1.58686 -0.899041,-2.87193 -0.391665,-1.28506 -0.820481,-2.52031 -0.952944,-2.74499 -0.172449,-0.29252 -0.813742,-0.58594 -2.258536,-1.03339 -3.187571,-0.98717 -4.668217,-1.53952 -4.668217,-1.53952 0,0 1.230439,-0.4339 2.429658,-0.80057 1.199212,-0.36667 2.69863,-0.85565 3.332039,-1.08662 l 1.151644,-0.41994 0.986043,-3.08498 c 0.54232,-1.69673 1.202202,-3.79724 1.202202,-3.79724 0,0 0.549497,1.72934 1.104999,3.54522 0.501229,1.63847 0.97016,3.07513 1.042067,3.19258 0.136126,0.22233 2.394513,1.04313 5.074144,1.84416 0.857303,0.25628 1.696509,0.5852 1.696509,0.5852 0,0 -0.718963,0.32282 -1.429295,0.55663 -0.710339,0.2338 -2.21187,0.74859 -3.336739,1.14398 l -2.045218,0.71888 -0.95767,3.16399 c -0.52672,1.74019 -1.174611,3.39755 -1.174611,3.39755 0,0 -0.194216,-0.47452 -0.297034,-0.76901 z m -40.064021,-0.002 c 0,-0.14115 8.69554,-28.19519 10.802109,-34.85038 l 1.001501,-3.16399 h 4.80569 c 3.836749,0 4.788016,0.0503 4.718008,0.24975 -0.260859,0.74302 -4.403946,14.16271 -4.403946,14.26465 0,0.0666 3.066245,-3.17161 6.813879,-7.196 l 6.813876,-7.31706 5.520013,-6.7e-4 5.520015,-6.7e-4 -0.799287,0.85779 c -0.439609,0.47179 -4.406639,4.50744 -8.815613,8.96811 -4.408982,4.46066 -8.041125,8.23017 -8.071437,8.37666 -0.0303,0.1465 1.51283,4.64668 3.429208,10.00042 1.916371,5.35374 3.484309,9.78481 3.484309,9.84683 0,0.062 -2.635523,0.11277 -5.856718,0.11277 h -5.856713 l -1.202566,-3.84546 c -0.661403,-2.11501 -1.722592,-5.53958 -2.358189,-7.61017 -0.635603,-2.07059 -1.213937,-3.69152 -1.285198,-3.60208 -0.07125,0.0894 -1.163373,3.51402 -2.426925,7.61017 l -2.297364,7.44754 h -4.767326 c -2.622031,0 -4.767326,-0.0667 -4.767326,-0.14821 z"
|
||||
id="path4595"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccscccscccccccscccscccccsccccccsccccccccscscscsccccsccsscscsscccccccsscsssscss" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.3 KiB |