Skip to content

Commit

Permalink
Merge remote-tracking branch 'NSV13/master' into BeeBase
Browse files Browse the repository at this point in the history
  • Loading branch information
covertcorvid committed Sep 30, 2022
2 parents cf5ff03 + 4904e94 commit deb2f4f
Show file tree
Hide file tree
Showing 14 changed files with 180 additions and 25 deletions.
3 changes: 3 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,9 @@ This prevents nesting levels from getting deeper then they need to be.
* Primary keys are inherently immutable and you must never do anything to change the primary key of a row or entity. This includes preserving auto increment numbers of rows when copying data to a table in a conversion script. No amount of bitching about gaps in ids or out of order ids will save you from this policy.

### Mapping Standards

* **Talk to the Maintainers before making a map.**
* Formal mapping standards aren't finalised yet. In the interest of gameplay and a cohesive style, maintainers have to deny maps that differ too much from what is planned for NSV. Talk to the maintainers to avoid nastiy surprises and wasted time.
* TGM Format & Map Merge
* All new maps submitted to the repo through a pull request must be in TGM format (unless there is a valid reason present to have it in the default BYOND format.) This is done using the [Map Merge](https://github.com/tgstation/tgstation/wiki/Map-Merger) utility included in the repo to convert the file to TGM format.
* Likewise, you MUST run Map Merge prior to opening your PR when updating existing maps to minimize the change differences (even when using third party mapping programs such as FastDMM.)
Expand Down
22 changes: 22 additions & 0 deletions html/changelog.html
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,28 @@ <h3 class="author">itsmeow updated:</h3>
<li class="bugfix">Animated sprites in custom vendors and display cases no longer expand into all their frames</li>
<li class="bugfix">Pirates event no longer spawns two pirate ships.</li>
<li class="refactor">Comms console message responses now use string keys so that DEFINES can be used.</li>
<h2 class="date">25 September 2022</h2>
<h3 class="author">someone543 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fighters can no longer be fueled at any distance</li>
</ul>

<h2 class="date">23 September 2022</h2>
<h3 class="author">DeltaFire15, Bokkiewokkie updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">emotional support torp.</li>
</ul>

<h2 class="date">20 September 2022</h2>
<h3 class="author">QAI-07 updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">tweaked the taunt the Alicorn says when it enters the system</li>
<li class="tweak">tweaked the naming routine of the Alicorn's fighter squadron to be shorter and have random numbers assigned.</li>
<li class="tweak">the Alicorn will now use Battleship AI instead of destroyer, hopefully meaning it'll peruse it's target a bit more ruthlessly.</li>
<li class="balance">rebalanced the special weapon and round of the Alicorn to hopefully be a bit easier to avoid.</li>
<li class="bugfix">fixed the alicorn destroying smooth movement when it so much as dares to exist.</li>
</ul>

<h2 class="date">17 September 2022</h2>
<h3 class="author">Bokkiewokkie updated:</h3>
<ul class="changes bgimages16">
Expand Down
17 changes: 17 additions & 0 deletions html/changelogs/.all_changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3523,3 +3523,20 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
itsmeow:
- tweak: Midround xenos now have a lower weight and will occur less often.
- tweak: At 20 to 30 threat, midround xenos require two security instead of one.
2022-09-20:
QAI-07:
- tweak: tweaked the taunt the Alicorn says when it enters the system
- tweak: tweaked the naming routine of the Alicorn's fighter squadron to be shorter
and have random numbers assigned.
- tweak: the Alicorn will now use Battleship AI instead of destroyer, hopefully
meaning it'll peruse it's target a bit more ruthlessly.
- balance: rebalanced the special weapon and round of the Alicorn to hopefully be
a bit easier to avoid.
- bugfix: fixed the alicorn destroying smooth movement when it so much as dares
to exist.
2022-09-23:
DeltaFire15, Bokkiewokkie:
- rscadd: emotional support torp.
2022-09-25:
someone543:
- bugfix: Fighters can no longer be fueled at any distance
12 changes: 12 additions & 0 deletions nsv13/code/datums/components/crafting/recipes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,15 @@
time = 30
category = CAT_MISC
always_available = FALSE

/datum/crafting_recipe/plush_warhead
name = "Plush-filled warhead"
result = /obj/item/ship_weapon/parts/missile/warhead/plushtide
time = 50
reqs = list(/obj/item/stack/sheet/iron = 10,
/obj/item/stack/cable_coil = 10,
/obj/item/stock_parts/matter_bin = 2,
/obj/item/toy/plush = 8)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WIRECUTTER, TOOL_MULTITOOL)
category = CAT_WEAPONRY
subcategory = CAT_AMMO
15 changes: 10 additions & 5 deletions nsv13/code/datums/mood_events/nsv_events.dm
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/datum/mood_event/moth_drink_blood
description = "<span class='nicegreen'>That hit the spot!</span>\n"
mood_change = 10
timeout = 10 MINUTES //NSV13 - Moths enjoy drinking blood on occasion
timeout = 10 MINUTES

/datum/mood_event/tailpull //NSV felinid moodlets
/datum/mood_event/tailpull
description = "<span class='warning'>OUCH! Stop pulling my tail! It hurts!\n"
mood_change = -2
timeout = 2 MINUTES
Expand All @@ -26,9 +26,14 @@
/datum/mood_event/was_stuck_in_pool
description = "<span class='warning'>I was stuck in the pool, I never thought I'd get out.</span>\n"
mood_change = -2 //felinids really hate water
timeout = 4 MINUTES //End of NSV code
timeout = 4 MINUTES

/datum/mood_event/hate_shower //NSV felinid moodlets
/datum/mood_event/hate_shower
description = "<span class='boldwarning'>I <i>HATE</i> showers!</span>\n"
mood_change = -2
timeout = 5 MINUTES //End of NSV code
timeout = 5 MINUTES

/datum/mood_event/torphug
description = "<span class='nicegreen'>I really needed that..</span>\n"
mood_change = 1
timeout = 2 MINUTES
3 changes: 1 addition & 2 deletions nsv13/code/datums/weapon_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -378,11 +378,10 @@
name = "Prototype Bluespace Artillery"
default_projectile_type = /obj/item/projectile/bullet/prototype_bsa
burst_size = 1
fire_delay = 32 SECONDS
fire_delay = 22 SECONDS
range_modifier = 200
overmap_firing_sounds = list('nsv13/sound/weapons/bsa_fire.ogg')
overmap_select_sound = 'nsv13/sound/weapons/bsa_select.ogg'
ai_fire_delay = 32 SECONDS
lateral = TRUE


Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@
fits_type = /obj/item/ship_weapon/ammunition/torpedo/torpedo_casing
build_path = /obj/item/ship_weapon/ammunition/torpedo/hellfire

/obj/item/ship_weapon/parts/missile/warhead/plushtide
name = "emotional support torpedo warhead"
icon_state = "warhead_decoy"
desc = "A warhead with several plushies somehow crammed into it. For when what your enemy needs really is just a hug."
fits_type = /obj/item/ship_weapon/ammunition/torpedo/torpedo_casing
build_path = /obj/item/ship_weapon/ammunition/torpedo/plushtide

/obj/item/ship_weapon/parts/missile/warhead/proto_disruption
name = "prototype disruption torpedo warhead"
icon_state = "warhead_disruption"
Expand Down
17 changes: 17 additions & 0 deletions nsv13/code/modules/munitions/ammunition/torpedos/torpedo_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,23 @@
volatile_type = /datum/component/volatile/helltorp
volatility = 4

/obj/item/ship_weapon/ammunition/torpedo/plushtide
name = "\improper NTP-00 'FREN' 600mm emotional support torpedo"
icon_state = "plush"
desc = "A simple torpedo with a frankly concerning amount of plushies crammed into it. For when what your enemy needs really is just a hug."
projectile_type = /obj/item/projectile/guided_munition/torpedo/plushtide
volatility = 0

/obj/item/ship_weapon/ammunition/torpedo/plushtide/attack_hand(mob/user)
if(!isliving(user))
return
var/mob/living/living_user = user
if(living_user.a_intent != INTENT_HELP)
return
living_user.visible_message("<span class='notice'>[living_user] hugs [src].</span>","<span class='notice'>You hug [src].</span>")
playsound(src, pick('sound/items/toysqueak1.ogg', 'sound/items/toysqueak2.ogg', 'sound/items/toysqueak3.ogg'), 30, 1, -1)
SEND_SIGNAL(living_user, COMSIG_ADD_MOOD_EVENT, "torphug", /datum/mood_event/torphug)

/obj/item/ship_weapon/ammunition/torpedo/proto_disruption
name = "\improper NTP-I1x 'EMP' 400mm Disruption Torpedo"
icon_state = "disruption"
Expand Down
2 changes: 1 addition & 1 deletion nsv13/code/modules/overmap/ai-skynet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -906,7 +906,7 @@ Adding tasks is easy! Just define a datum for it.
allow_difficulty_scaling = FALSE
fighter_types = list(/obj/structure/overmap/hostile/ai/fighter)
supply_types = list(/obj/structure/overmap/hostile/ai/alicorn)
taunts = list("Ahaha... A powerful ship, a powerful gun, powerful ammunition. The graceful slaughter of a billion lives to save billions more!")
taunts = list("A powerful ship, a powerful gun, powerful ammunition. The graceful slaughter of a billion lives to save billions more, you'll be the first of many.")
fleet_trait = FLEET_TRAIT_DEFENSE


Expand Down
2 changes: 2 additions & 0 deletions nsv13/code/modules/overmap/fighters/fuel_tank.dm
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@

/obj/item/cryofuel_nozzle/afterattack(atom/target, mob/user, proximity)
. = ..()
if(!proximity)
return
if(istype(target, /obj/structure/overmap/small_craft))
var/obj/structure/overmap/small_craft/f16 = target
var/obj/item/fighter_component/fuel_tank/sft = f16.loadout.get_slot(HARDPOINT_SLOT_FUEL)
Expand Down
18 changes: 11 additions & 7 deletions nsv13/code/modules/overmap/types/syndicate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@
/obj/structure/overmap/syndicate/ai/Initialize(mapload)
. = ..()
name = "[name] ([rand(0,999)])"

/obj/structure/overmap/hostile/ai/fighter/Initialize()
. = ..()
name = "[name] ([rand(0,999)])"

/obj/structure/overmap/syndicate/ai/Destroy()
SSstar_system.bounty_pool += bounty //Adding payment for services rendered
Expand Down Expand Up @@ -501,16 +505,16 @@
weapon_types[FIRE_MODE_MISSILE] = new /datum/ship_weapon/missile_launcher(src)

/obj/structure/overmap/hostile/ai/alicorn
name = "The Alicorn"
name = "SGV Alicorn"
desc = "One Billion Lives!"
icon = 'nsv13/icons/overmap/alicorn.dmi'
icon_state = "alicorn"
faction = "hostile"
mass = MASS_LARGE
sprite_size = 96
sprite_size = 128
damage_states = FALSE
bound_width = 112
bound_height = 112
bound_width = 128
bound_height = 128
obj_integrity = 4750
max_integrity = 4750
integrity_failure = 4750
Expand All @@ -520,12 +524,12 @@
ai_controlled = TRUE
armor = list("overmap_light" = 99, "overmap_medium" = 70, "overmap_heavy" = 65)
can_resupply = TRUE
ai_flags = AI_FLAG_DESTROYER | AI_FLAG_ELITE
ai_flags = AI_FLAG_BATTLESHIP | AI_FLAG_ELITE
combat_dice_type = /datum/combat_dice/carrier
ai_can_launch_fighters = TRUE
ai_fighter_type = list(/obj/structure/overmap/hostile/ai/fighter)
torpedo_type = /obj/item/projectile/guided_munition/torpedo/hellfire
flak_battery_amount = 2
flak_battery_amount = 3

/obj/structure/overmap/hostile/ai/alicorn/Initialize(mapload)
. = ..()
Expand All @@ -539,7 +543,7 @@
weapon_types[FIRE_MODE_FLAK] = new /datum/ship_weapon/flak(src)

/obj/structure/overmap/hostile/ai/fighter
name = "Rattlesnake class fighter-bomber"
name = "Rattlesnake Strike fighter"
icon = 'nsv13/icons/overmap/alicorn.dmi'
icon_state = "alifighter"
damage_states = FALSE
Expand Down
50 changes: 47 additions & 3 deletions nsv13/code/modules/overmap/weapons/projectiles_fx.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,36 @@ Misc projectile types, effects, think of this as the special FX file.
for(var/i = 1; i <= 13; i++)
new /mob/living/simple_animal/hostile/viscerator(detonation_turf) //MANHACKS!1!!

/obj/item/projectile/bullet/delayed_prime/relayed_plushtorp
damage = 0
icon_state = "torpedo"
name = "emotional support torpedo"
speed = 3
penetration_fuze = 2
hitsound = 'sound/items/toysqueak1.ogg'
hitsound_wall = 'sound/items/toysqueak3.ogg'

/obj/item/projectile/bullet/delayed_prime/relayed_plushtorp/fuze_trigger_value(atom/target)
if(isclosedturf(target))
return 1
return 0

/obj/item/projectile/bullet/delayed_prime/relayed_plushtorp/is_valid_to_release(atom/newloc)
if(penetration_fuze > 0 || !isopenturf(newloc))
return FALSE
return TRUE

/obj/item/projectile/bullet/delayed_prime/relayed_plushtorp/release_payload(atom/detonation_location)
var/turf/detonation_turf = detonation_location
new /obj/effect/dummy/lighting_obj(detonation_turf, LIGHT_COLOR_WHITE, 9, 4, 2)
for(var/mob/living/L in viewers(7, detonation_turf))
L.flash_act(affect_silicon = TRUE)
var/list/throwat_turfs = RANGE_TURFS(6, detonation_turf) - RANGE_TURFS(5, detonation_turf)
var/list/plushtypes = subtypesof(/obj/item/toy/plush)
for(var/i = 1; i<= 8, i++)
var/plushpath = pick(plushtypes)
var/obj/item/toy/plush/plushie = new plushpath(detonation_turf)
plushie.throw_at(pick(throwat_turfs), 7, 2, spin = TRUE)

/obj/item/projectile/bullet/railgun_slug
icon_state = "mac"
Expand Down Expand Up @@ -304,10 +334,10 @@ Misc projectile types, effects, think of this as the special FX file.
icon_state = "proto_bsa"
name = "Prototype BSA Round"
icon = 'nsv13/icons/obj/projectiles_nsv.dmi'
speed = 0.3
damage = 400
speed = 0.7
damage = 325
spread = 1
armour_penetration = 35
armour_penetration = 30
flag = "overmap_heavy"

/obj/item/projectile/guided_munition
Expand Down Expand Up @@ -366,6 +396,20 @@ Misc projectile types, effects, think of this as the special FX file.
/obj/item/projectile/guided_munition/torpedo/hellfire/player_version
damage = 300 //A bit less initial damage to compensate for the /guaranteed/ hellburn effect dealing hefty damage.

/obj/item/projectile/guided_munition/torpedo/plushtide
name = "emotional support torpedo"
damage = 0
obj_integrity = 400
max_integrity = 400
homing_turn_speed = 40
speed = 2
hitsound = 'sound/items/toysqueak1.ogg'
hitsound_wall = 'sound/items/toysqueak3.ogg'
relay_projectile_type = /obj/item/projectile/bullet/delayed_prime/relayed_plushtorp

/obj/item/projectile/guided_munition/torpedo/plushtide/detonate(atom/target)
return //Lets be sure

/obj/item/projectile/guided_munition/torpedo/disruptor
icon_state = "torpedo_disruptor"
name = "disruption torpedo"
Expand Down
37 changes: 30 additions & 7 deletions nsv13/code/modules/power/stormdrive.dm
Original file line number Diff line number Diff line change
Expand Up @@ -995,12 +995,22 @@ Control Rods
if(prob(25))
L.flicker()
if(prob(1))
for(var/obj/machinery/light/L in orange(10, src))
if(prob(25))
L.burn_out()
var/list/light_candidates = list()
for(var/obj/machinery/light/L in orange(12, src))
light_candidates += L

for(var/I = 0, I < 3, I++)
if(length(light_candidates))
var/obj/machinery/light/OL = pick_n_take(light_candidates)
var/fate = rand(1, 100)
switch(fate)
if(1 to 25)
OL.burn_out()
if(26 to 35)
OL.break_light_tube()
else
L.flicker()
if(prob(0.01))
break
if(prob(0.02))
for(var/obj/machinery/power/grounding_rod/R in orange(5, src))
R.take_damage(rand(25, 50))
tesla_zap(src, 5, 1000)
Expand All @@ -1011,9 +1021,22 @@ Control Rods
if(prob(50) && shares_overmap(src, L))
L.flicker()
if(prob(5))
var/list/light_candidates = list()
for(var/obj/machinery/light/L in orange(12, src))
L.burn_out() //If there are even any left by this stage
if(prob(0.1))
light_candidates += L

for(var/I = 0, I < 5, I++)
if(length(light_candidates))
var/obj/machinery/light/OL = pick_n_take(light_candidates)
var/fate = rand(1, 100)
switch(fate)
if(1 to 25)
OL.burn_out()
if(25 to 35)
OL.break_light_tube()
else
break
if(prob(0.2))
for(var/obj/machinery/power/grounding_rod/R in orange(8, src))
R.take_damage(rand(25, 75))
tesla_zap(src, 8, 2000)
Expand Down
Binary file modified nsv13/icons/obj/munition_types.dmi
Binary file not shown.

0 comments on commit deb2f4f

Please sign in to comment.