Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into achievement-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
DeltaFire15 committed Jul 12, 2024
2 parents 3c3690e + 284e333 commit d7f3a63
Show file tree
Hide file tree
Showing 19 changed files with 364 additions and 175 deletions.
4 changes: 2 additions & 2 deletions _maps/map_files/Aetherwhisp/Aetherwhisp1.dmm

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 18 additions & 18 deletions html/changelog.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,24 @@
-->
<div class="commit sansserif">

<h2 class="date">12 July 2024</h2>
<h3 class="author">Bokkiewokkie updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixed shield sprites leaving doubles when the ship gets hit</li>
</ul>
<h3 class="author">Pockets-byte updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added solgov variant of the squad vendor</li>
<li class="rscadd">Added new fighter sprite and fighter with shields</li>
<li class="rscadd">Added new fighter weapon and sprite</li>
</ul>

<h2 class="date">05 July 2024</h2>
<h3 class="author">Pockets-byte updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added relayed (overmap) laser projectiles for boom</li>
</ul>

<h2 class="date">28 June 2024</h2>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
Expand Down Expand Up @@ -191,24 +209,6 @@ <h3 class="author">tonty updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">the FTL navigation console no longer grants hyperspecific telekinesis to people who use it</li>
</ul>

<h2 class="date">03 May 2024</h2>
<h3 class="author">Bokkiewokkie updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixed fighters not hearing overmap messages from their mothership.</li>
<li class="spellcheck">Made it clear the Syndicate Crew antag preference is for PVP</li>
</ul>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
<li class="balance">The BSA now goes kaboom when relayed instead of being essentially a ghost NAC shell.</li>
<li class="bugfix">The Eclipse no longer spawns a borg module that should never exist outside of mobs.</li>
<li class="bugfix">DNA no longer has some super weird code for flavor text, instead copying the one of the source mob.</li>
<li class="tweak">You can no longer stack interactions on walls. This is to prevent a runtime from actions that modify the type of them (deconstruction mainly).</li>
<li class="bugfix">Paper no longer runtimes if you do not have a pen in hand (???).</li>
<li class="bugfix">Traders no longer do some cursed things to create their trade items, instead using the all-powerful initial().</li>
<li class="bugfix">The stormdrive no longer runtimes if it has zero gas in it.</li>
<li class="bugfix">Some squad assignment stuff shouldn't try to use a list as datum anymore.</li>
</ul>
</div>

<b>GoonStation 13 Development Team</b>
Expand Down
10 changes: 10 additions & 0 deletions html/changelogs/.all_changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2095,3 +2095,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
DeltaFire15:
- code_imp: Integrity_failure variable settings removed from all overmaps. (This
does nothing)
2024-07-05:
Pockets-byte:
- rscadd: Added relayed (overmap) laser projectiles for boom
2024-07-12:
Bokkiewokkie:
- bugfix: Fixed shield sprites leaving doubles when the ship gets hit
Pockets-byte:
- rscadd: Added solgov variant of the squad vendor
- rscadd: Added new fighter sprite and fighter with shields
- rscadd: Added new fighter weapon and sprite
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-2675.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: Kenionatus
delete-after: true
changes:
- refactor: projectiles_fx.dm should now be slightly more readable
5 changes: 5 additions & 0 deletions html/changelogs/AutoChangeLog-pr-2676.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
author: DeltaFire15
delete-after: true
changes:
- code_imp: Slightly improved ship weapon machinery firing code (this has no gameplay
impact)
5 changes: 5 additions & 0 deletions html/changelogs/AutoChangeLog-pr-2678.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
author: DeltaFire15
delete-after: true
changes:
- bugfix: Non-/overmap overmap objects no longer runtime if newly added to a loaded
system.
6 changes: 3 additions & 3 deletions nsv13/code/datums/weapon_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@
range_modifier = 5
overmap_firing_sounds = list('nsv13/sound/effects/fighters/autocannon.ogg')


//Energy Weapons

/datum/ship_weapon/burst_phaser // Little red laser
Expand Down Expand Up @@ -293,8 +294,7 @@
special_fire_proc = /obj/structure/overmap/proc/secondary_fire
ai_fire_delay = 1 SECONDS

//You don't ever actually select this. Crew act as gunners.

///You don't ever actually select this. Crew act as gunners.
/datum/ship_weapon/gauss
name = "Gauss guns"
default_projectile_type = /obj/item/projectile/bullet/gauss_slug
Expand All @@ -310,7 +310,7 @@
ai_fire_delay = 2 SECONDS
allowed_roles = OVERMAP_USER_ROLE_SECONDARY_GUNNER

/datum/ship_weapon/pdc_mount // .50 cal flavored PDC bullets, which were previously just PDC flavored .50 cal turrets
/datum/ship_weapon/pdc_mount //! .50 cal flavored PDC bullets, which were previously just PDC flavored .50 cal turrets
name = "PDC"
default_projectile_type = /obj/item/projectile/bullet/pdc_round
burst_size = 3
Expand Down
38 changes: 18 additions & 20 deletions nsv13/code/modules/munitions/ship_weapons/_ship_weapon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -481,27 +481,8 @@
* Returns projectile if successfully fired, FALSE otherwise.
*/
/obj/machinery/ship_weapon/proc/fire(atom/target, shots = weapon_type.burst_size, manual = TRUE)
//Fun fact: set [waitfor, etc] is special, and is inherited by child procs even if they do not call parent!
set waitfor = FALSE //As to not hold up any feedback messages.

// Energy weapons fire behavior
if(istype(src, /obj/machinery/ship_weapon/energy)) // Now 100% more modular!
if(can_fire(target, shots))
if(manual)
linked.last_fired = overlay
for(var/i = 0, i < shots, i++)
do_animation()

local_fire()
overmap_fire(target)
charge -= charge_per_shot

after_fire()
if(shots > 1)
sleep(weapon_type.burst_fire_delay)
return TRUE
return FALSE

// Default weapons fire behavior
if(can_fire(target, shots))
if(manual)
linked.last_fired = overlay
Expand All @@ -525,6 +506,23 @@
if(semi_auto)
chamber(rapidfire = TRUE)
after_fire()
. = TRUE //waitfor = FALSE early return returns the current . value at the time of sleeping, so this makes it return the correct value for burst fire weapons.
if(shots > 1)
sleep(weapon_type.burst_fire_delay)
return TRUE
return FALSE

/obj/machinery/ship_weapon/energy/fire(atom/target, shots = weapon_type.burst_size, manual = TRUE)
if(can_fire(target, shots))
if(manual)
linked.last_fired = overlay
for(var/i = 0, i < shots, i++)
do_animation()
local_fire()
overmap_fire(target)
charge -= charge_per_shot
after_fire()
. = TRUE
if(shots > 1)
sleep(weapon_type.burst_fire_delay)
return TRUE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,9 @@
animate_projectile(target)

/obj/machinery/ship_weapon/broadside/fire(atom/target, shots = weapon_type.burst_size, manual = TRUE)
..()
new /obj/effect/particle_effect/muzzleflash(loc)
. = ..()
if(.)
new /obj/effect/particle_effect/muzzleflash(loc)

/obj/machinery/ship_weapon/broadside/local_fire(shots = weapon_type.burst_size, atom/target) //For the broadside cannons, we want to eject spent casings
var/obj/R = new /obj/item/ship_weapon/parts/broadside_casing(get_ranged_target_turf(src, NORTH, 4)) //Right
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@
say("Cycling complete: Configuration - 400mm Slug Selected")

/obj/machinery/ship_weapon/hybrid_rail/fire(atom/target, shots = weapon_type.burst_size, manual = TRUE)
set waitfor = FALSE //As to not hold up any feedback messages.
if(can_fire(target, shots))
if(manual)
linked.last_fired = overlay
Expand All @@ -114,6 +113,8 @@
else
state = STATE_NOTLOADED
after_fire()
. = TRUE
return TRUE //I don't know why it didn't return true if successful but I assume someone just forgot.
return FALSE

/obj/machinery/ship_weapon/hybrid_rail/can_fire(target, shots = weapon_type.burst_size) //Target is for the passed target variable, Shots is for the burst fire size
Expand Down
4 changes: 2 additions & 2 deletions nsv13/code/modules/overmap/FTL/ftl_jump.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,13 @@
OM.forceMove(exit)
if(istype(OM, /obj/structure/overmap))
OM.current_system = src //Debugging purposes only
after_enter(OM)
after_enter(OM)

/datum/star_system/proc/after_enter(obj/structure/overmap/OM)
SEND_SIGNAL(src, COMSIG_STAR_SYSTEM_AFTER_ENTER, OM)
if(desc)
OM.relay(null, "<span class='notice'><h2>Now entering [name]...</h2></span>")
OM.relay(null, "<span class='notice'>[desc]</span>")
//If we have an audio cue, ensure it doesn't overlap with a fleet's one...
//End the round upon entering O45.
if(system_traits & STARSYSTEM_END_ON_ENTER)
if(OM.role == MAIN_OVERMAP)
Expand All @@ -57,6 +56,7 @@
SSblackbox.record_feedback("text", "nsv_endings", 1, "succeeded")
if(!length(audio_cues))
return FALSE
//If we have an audio cue, ensure it doesn't overlap with a fleet's one...
for(var/datum/fleet/F as() in fleets)
if(length(F.audio_cues) && F.alignment != OM.faction && !F.federation_check(OM))
return TRUE
Expand Down
81 changes: 79 additions & 2 deletions nsv13/code/modules/overmap/fighters/_fighters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,35 @@ Been a mess since 2018, we'll fix it someday (probably)
/obj/item/fighter_component/battery,
/obj/item/fighter_component/primary/cannon)

/obj/structure/overmap/small_craft/combat/solgov
name = "Peregrine class attack fighter"
desc = "A Peregrine class attack fighter, solgov's only premiere fighter, mounting minature capital grade phasers and a tiny shield generator."
icon = 'nsv13/icons/overmap/new/solgov/playablefighter.dmi'
armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 30, "bomb" = 30, "bio" = 100, "rad" = 90, "fire" = 90, "acid" = 80, "overmap_light" = 5, "overmap_medium" = 0, "overmap_heavy" = 10)
sprite_size = 32
damage_states = FALSE //temp
max_integrity = 25 //shields.
max_angular_acceleration = 200
speed_limit = 10
pixel_w = -16
pixel_z = -20
components = list(/obj/item/fighter_component/fuel_tank,
/obj/item/fighter_component/avionics,
/obj/item/fighter_component/apu,
/obj/item/fighter_component/targeting_sensor,
/obj/item/fighter_component/engine,
/obj/item/fighter_component/countermeasure_dispenser,
/obj/item/fighter_component/oxygenator,
/obj/item/fighter_component/canopy,
/obj/item/fighter_component/docking_computer,
/obj/item/fighter_component/battery,
/obj/item/fighter_component/primary/laser) // no armor because >=3, you can still install it though because this thing is made of tissue paper

/obj/structure/overmap/small_craft/combat/solgov/Initialize(mapload)
. = ..()
AddComponent(/datum/component/overmap_shields, 125, 125, 15) //inital integrity, max integrity, and recharge rate. bound to change most likely


/obj/structure/overmap/small_craft/escapepod
name = "Escape Pod"
desc = "An escape pod launched from a space faring vessel. It only has very limited thrusters and is thus very slow."
Expand Down Expand Up @@ -508,6 +537,7 @@ Been a mess since 2018, we'll fix it someday (probably)
add_overlay(canopy)
update_visuals()


/obj/structure/overmap/small_craft/attackby(obj/item/W, mob/user, params)
if(operators && LAZYFIND(operators, user))
to_chat(user, "<span class='warning'>You can't reach [src]'s exterior from in here.</span>")
Expand Down Expand Up @@ -1468,7 +1498,7 @@ As a rule of thumb, primaries are small guns that take ammo boxes, secondaries a
Utility modules can be either one of these types, just ensure you set its slot to HARDPOINT_SLOT_UTILITY
*/
/obj/item/fighter_component/primary
name = "\improper Fuck you"
name = "\improper primary weapon"
slot = HARDPOINT_SLOT_PRIMARY
fire_mode = FIRE_MODE_ANTI_AIR
var/overmap_select_sound = 'nsv13/sound/effects/ship/pdc_start.ogg'
Expand Down Expand Up @@ -1590,8 +1620,55 @@ Utility modules can be either one of these types, just ensure you set its slot t
burst_size = 3
fire_delay = 0.5 SECONDS

/obj/item/fighter_component/primary/laser
name = "Stinger Class Phaser Cannon"
icon_state = "lasercannon"
weight = 3 //it's a laser. it's light, but the gun is fuckhueg
accepted_ammo = null
overmap_select_sound = 'nsv13/sound/effects/ship/phaser_adjust.ogg'
overmap_firing_sounds = list('nsv13/sound/effects/ship/burst_phaser.ogg', 'nsv13/sound/effects/ship/burst_phaser2.ogg')
burst_size = 3
fire_delay = 10 SECONDS
var/projectile = /obj/item/projectile/beam/laser/phaser
var/charge_to_fire = 2000 // this is probably not final. needs to be a good balance between having an actual mainship weapon on a fighter, and firing one shot every minute because one shot depletes your entire battery

/obj/item/fighter_component/primary/laser/get_ammo()
var/obj/structure/overmap/small_craft/F = loc
if(!istype(F))
return FALSE
var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY)
if(!istype(B))
return 0
return B.charge

/obj/item/fighter_component/primary/laser/get_max_ammo()
var/obj/structure/overmap/small_craft/F = loc
if(!istype(F))
return FALSE
var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY)
if(!istype(B))
return 0
return B.maxcharge

/obj/item/fighter_component/primary/laser/fire(obj/structure/overmap/target)
var/obj/structure/overmap/small_craft/F = loc
if(!istype(F))
return FALSE
var/obj/item/fighter_component/battery/B = F.loadout.get_slot(HARDPOINT_SLOT_BATTERY)

if(B.charge < charge_to_fire)
F.relay('sound/weapons/gun_dry_fire.ogg')
return FALSE

var/datum/ship_weapon/SW = F.weapon_types[fire_mode]
SW.default_projectile_type = projectile
SW.fire_fx_only(target, lateral = TRUE)
B.charge -= charge_to_fire
return TRUE


/obj/item/fighter_component/secondary
name = "Fuck you"
name = "secondary weapon"
slot = HARDPOINT_SLOT_SECONDARY
fire_mode = FIRE_MODE_TORPEDO
var/overmap_firing_sounds = list(
Expand Down
23 changes: 15 additions & 8 deletions nsv13/code/modules/overmap/shieldgen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -338,31 +338,38 @@

/obj/effect/temp_visual/overmap_shield_hit
name = "Shield hit"
icon = 'nsv13/icons/overmap/shieldhit.dmi';
icon = 'nsv13/icons/overmap/shieldhit.dmi'
icon_state = "shieldhit"
duration = 0.75 SECONDS
layer = ABOVE_MOB_LAYER+0.1
animate_movement = NO_STEPS // Override the inbuilt movement engine to avoid bouncing
appearance_flags = TILE_BOUND | PIXEL_SCALE
vis_flags = VIS_INHERIT_ID
var/obj/structure/overmap/overmap

/obj/effect/temp_visual/overmap_shield_hit/Initialize(mapload, obj/structure/overmap/OM)
. = ..()
//Scale up the shield hit icon to roughly fit the overmap ship that owns us.
if(!OM)
if(!OM || !istype(OM))
log_runtime("Shield hit effect was made with no ship!")
return INITIALIZE_HINT_QDEL
overmap = OM
var/matrix/desired = new()
var/icon/I = icon(overmap.icon)
var/icon/I = icon(OM.icon)
var/resize_x = I.Width()/96
var/resize_y = I.Height()/96
desired.Scale(resize_x,resize_y)
desired.Turn(overmap.angle)
transform = desired
overmap.vis_contents += src
//Don't even ask, this makes it fit on the ship sprite properly most of the time
if(I.Width() <= 48)
pixel_x = -24
pixel_y = -24
else
pixel_x += round(I.Width()/16, 1)
pixel_y += pixel_x*round(I.Height()/32, 1)
OM.overlays.Add(src) //Otherwise it won't animate with the ship nicely
overmap = OM

/obj/effect/temp_visual/overmap_shield_hit/Destroy()
overmap?.vis_contents -= src
overmap?.overlays.Remove(src)
overmap = null
return ..()

Expand Down
2 changes: 1 addition & 1 deletion nsv13/code/modules/overmap/weapons/damage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Bullet reactions
if(shield_result)
var/damage_sound = pick('nsv13/sound/effects/ship/damage/shield_hit.ogg', 'nsv13/sound/effects/ship/damage/shield_hit2.ogg')
if(!impact_sound_cooldown)
new /obj/effect/temp_visual/overmap_shield_hit(get_turf(src), src)
new /obj/effect/temp_visual/overmap_shield_hit(src, src)
relay(damage_sound)
if(P.damage >= 15) //Flak begone
shake_everyone(5)
Expand Down
Loading

0 comments on commit d7f3a63

Please sign in to comment.