Unathi Trawler (#18828)

Adds a new civilian unathi ship, intended to fly into shoals to harvest
carp.


![image](https://github.com/Aurorastation/Aurora.3/assets/21273394/2b452ab6-9e57-4755-ad10-e07143f916c0)
This commit is contained in:
Evandorf
2024-05-12 19:03:24 +00:00
committed by GitHub
parent 53f3be09e8
commit cf72230cf5
11 changed files with 72686 additions and 0 deletions
+4
View File
@@ -3864,6 +3864,10 @@
#include "maps\away\ships\golden_deep\golden_deep.dm"
#include "maps\away\ships\golden_deep\golden_deep_areas.dm"
#include "maps\away\ships\golden_deep\golden_deep_ghostroles.dm"
#include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler.dm"
#include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler_areas.dm"
#include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler_ghostroles.dm"
#include "maps\away\ships\hegemony\fishing_trawler\fishing_league_trawler_landmarks.dm"
#include "maps\away\ships\hegemony\hegemony_corvette\hegemony_corvette.dm"
#include "maps\away\ships\hegemony\hegemony_corvette\hegemony_corvette_areas.dm"
#include "maps\away\ships\hegemony\hegemony_corvette\hegemony_ghostroles.dm"
+4
View File
@@ -799,3 +799,7 @@
/datum/access/guest_room_10
id = ACCESS_GUEST_ROOM_10
desc = "Guest Room 10"
#define ACCESS_FISHING_LEAGUE 241
id = ACCESS_FISHING_LEAGUE
desc = "General Fishing Trawler Access"
+6
View File
@@ -835,3 +835,9 @@
to_chat(usr, SPAN_NOTICE("You begin carving the message inside the trap..."))
if(do_after(usr, 10 SECONDS))
src.message = strip_html_readd_newlines(added_message)
/obj/item/trap/punji/deployed
deployed = TRUE
anchored = TRUE
icon_state = "punji1"
@@ -573,6 +573,19 @@
/obj/structure/sign/flag/ouerea/old/large/west/Initialize(mapload)
. = ..(mapload, WEST)
/obj/item/flag/fishingleague
name = "\improper Fishing League flag"
desc = "The standard of the Fishing League guild."
flag_path = "fishingleague"
flag_structure = /obj/structure/sign/flag/fishingleague
/obj/structure/sign/flag/fishingleague
name = "\improper Fishing League flag"
desc = "The standard of the Fishing League guild."
icon_state = "fishingleague"
flag_path = "fishingleague"
flag_item = /obj/item/flag/fishingleague
// Nralakk
/obj/item/flag/nralakk
@@ -0,0 +1,58 @@
################################
# 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
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: Evandorf
# 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, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Adds a new civilian unathi ship, intended to fly into shoals to harvest carp."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 96 KiB

@@ -0,0 +1,98 @@
/datum/map_template/ruin/away_site/fishing_trawler
name = "Fishing League Trawler"
description = "A freighter sponsored by the Fishing league has been augmented with sharpened pylons designed to harvest carp shoals."
prefix = "ships/hegemony/fishing_trawler/"
suffixes = list("fishing_league_trawler.dmm")
sectors = list(SECTOR_BADLANDS)
spawn_weight_sector_dependent = list(SECTOR_UUEOAESA = 3)
spawn_weight = 1
ship_cost = 1
id = "fishing_trawler"
unit_test_groups = list(2)
shuttles_to_initialise = list(/datum/shuttle/autodock/overmap/fishing_trawler)
/singleton/submap_archetype/fishing_trawler
map = "Fishing League Trawler"
descriptor = "A freighter sponsored by the Fishing league has been augmented with sharpened pylons designed to harvest carp shoals."
//Ship
/obj/effect/overmap/visitable/ship/fishing_trawler
name = "Fishing League Trawler"
class = "IHGV"
desc = "The Azkrazal-class freighter is a common civilian design from the Izweski Hegemony's shipbuilding guilds, designed in collaberation with Hephaestus Industries. They are mostly found in the possession of Unathi guilds, as well as the occasional smuggler or pirate fleet."
icon_state = "tramp"
moving_state = "tramp_moving"
colors = list("#F06553")
designer = "Hephaestus Industries, Izweski Hegemonic Naval Guilds"
volume = "54 meters length, 54 meters beam/width, 18 meters vertical height"
drive = "Low-Speed Warp Acceleration FTL Drive"
weapons = "Not apparent, fore of ship shows extensive catwalk and lattice network designed for piercing carp"
sizeclass = "Azkrazal-class cargo freighter"
shiptype = "Long-term shipping utilities"
scanimage = "unathi_freighter2.png"
max_speed = 1/(2 SECONDS)
burn_delay = 1
vessel_mass = 5000
vessel_size = SHIP_SIZE_SMALL
fore_dir = SOUTH
invisible_until_ghostrole_spawn = TRUE
initial_restricted_waypoints = list(
"Fishing League Shuttle" = list("fishing_trawler_shuttle")
)
initial_generic_waypoints = list(
"fishing_trawler_fore",
"fishing_trawler_aft",
"fishing_trawler_port",
"fishing_trawler_starboard",
"fishing_trawler_port_dock",
"fishing_trawler_starboard_dock",
"fishing_trawler_aux_dock"
)
/obj/effect/overmap/visitable/ship/fishing_trawler/New()
designation = "[pick("Hegemon's Bounty", "Fisher's Reach", "Fisher's Net", "Kasavakh Rising" , "Violet Scale" , "Feast Bringer")]"
..()
//Shuttle
/obj/effect/overmap/visitable/ship/landable/fishing_trawler_shuttle
name = "Fishing League Shuttle"
class = "IHGV"
desc = "An Otzek class transportation shuttle, manufactured in the Izweski Hegemony. This simply designed transport shuttle is designed to reliably haul goods and is cheap and easy to maintain."
shuttle = "Fishing League Shuttle"
icon_state = "shuttle"
moving_state = "shuttle_moving"
colors = list("#F06553")
designation = "Shrieker"
max_speed = 1/(3 SECONDS)
burn_delay = 2 SECONDS
vessel_mass = 3000
fore_dir = WEST
vessel_size = SHIP_SIZE_TINY
designer = "Hephaestus Industries, Izweski Hegemonic Naval Guilds"
volume = "10 meters length, 9 meters width, 6 meters vertical height"
weapons = "No Apparent Weapons"
sizeclass = "Merchant Transport Shuttlecraft"
/obj/machinery/computer/shuttle_control/explore/terminal/fishing_trawler
name = "shuttle control console"
shuttle_tag = "Fishing League Shuttle"
req_access = list(ACCESS_FISHING_LEAGUE)
/datum/shuttle/autodock/overmap/fishing_trawler
name = "Fishing League Shuttle"
move_time = 20
shuttle_area = list(/area/shuttle/fishing_trawler)
dock_target = "trawler_shuttle_airlock"
current_location = "fishing_trawler_shuttle"
landmark_transition = "fishing_trawler_transit"
range = 1
fuel_consumption = 2
logging_home_tag = "fishing_trawler_shuttle"
defer_initialisation = TRUE
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,101 @@
/area/ship/fishing_trawler
name = "Fishing League Trawler"
requires_power = TRUE
icon_state = "yellow"
ambience = AMBIENCE_GENERIC
//Fore
/area/ship/fishing_trawler/bridge
name = "Fishing Trawler - Bridge"
icon_state = "bridge"
/area/ship/fishing_trawler/EVA_port
name = "Fishing Trawler - EVA Port"
icon_state = "eva"
/area/ship/fishing_trawler/EVA_starboard
name = "Fishing Trawler - EVA Starboard"
icon_state = "eva"
/area/ship/fishing_trawler/Captain
name = "Fishing Trawler - Captain's Quarters"
icon_state = "captain"
//Central
/area/ship/fishing_trawler/crew_quarters
name = "Fishing Trawler - Crew Quarters"
icon_state = "crew_quarters"
/area/ship/fishing_trawler/kitchen
name = "Fishing Trawler - Kitchen"
icon_state = "kitchen"
/area/ship/fishing_trawler/galley
name = "Fishing Trawler - Galley"
icon_state = "crew_area"
/area/ship/fishing_trawler/medical
name = "Fishing Trawler - Galley"
icon_state = "medbay"
//Aft
/area/ship/fishing_trawler/freezer
name = "Fishing Trawler - Fish Freezer"
icon_state = "storage"
//Engineering
/area/ship/fishing_trawler/engineering
name = "Fishing Trawler - Engineering"
icon_state = "engineering"
sound_environment = SOUND_AREA_LARGE_ENCLOSED
ambience = AMBIENCE_ENGINEERING
/area/ship/fishing_trawler/engineering/port
name = "Fishing Trawler - Port Thrusters"
/area/ship/fishing_trawler/engineering/Starboard
name = "Fishing Trawler - Starboard Thrusters"
/area/ship/fishing_trawler/engineering
name = "Fishing Trawler - Reactor"
//Coridors
/area/ship/fishing_trawler/corridor
name = "Fishing Trawler - Corridor"
icon_state = "hallC"
sound_environment = SOUND_ENVIRONMENT_STONE_CORRIDOR
/area/ship/fishing_trawler/corridor/central
name = "Fishing Trawler - Central Corridor"
/area/ship/fishing_trawler/corridor/port
name = "Fishing Trawler - Port Corridor"
/area/ship/fishing_trawler/corridor/starboard
name = "Fishing Trawler - Starboard Corridor"
//Exterior
/area/ship/fishing/trawler/fishing_catwalk
name = "Fishing Catwalk"
icon_state = "exterior"
base_turf = /turf/space
requires_power = FALSE
dynamic_lighting = TRUE
has_gravity = FALSE
no_light_control = TRUE
allow_nightmode = FALSE
ambience = AMBIENCE_SPACE
//Shuttle
/area/shuttle/fishing_trawler
name = "Fishing Trawler Shuttle"
icon_state = "shuttle"
requires_power = TRUE
@@ -0,0 +1,67 @@
/datum/ghostspawner/human/fishing_trawler_crewman
name = "Fishing League Trawler Multipurpose Crewman"
short_name = "fishing_trawler_crewman"
desc = "Serve as a crewman aboard a Fishing League contracted Hegemony Freighter; seeking and collecting carp and other food for billions of sinta."
tags = list("External")
welcome_message = "You are a semi-skilled crewmember of a Hegemony Freighter bound by the Fishing League and thereby also Hephaestus Industries. You and your fellow crewmen perform many duties around the ship and are not relegated to just one job. Your goal is to harvest the bounty of space and collect as much carp and other food as you can to feed the masses of the Hegemony. Fill the freezer with as much meat as the ship can carry."
spawnpoints = list("fishing_trawler_crewman")
max_count = 4
outfit = /obj/outfit/admin/fishing_trawler_crewman
possible_species = list(SPECIES_UNATHI, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_WORKER)
uses_species_whitelist = TRUE
allow_appearance_change = APPEARANCE_PLASTICSURGERY
assigned_role = "Fishing League Trawler Crewman"
special_role = "Fishing League Trawler Crewman"
respawn_flag = null
/datum/ghostspawner/human/fishing_trawler_crewman/captain
name = "Fishing League Trawler Captain"
short_name = "fishing_trawler_captain"
desc = "Serve as Captain of a Fishing League contracted Hegemony Freighter; seeking and collecting carp and other food for billions of sinta."
welcome_message = "You are Captain of a Hegemony Freighter bound by the Fishing League and therefore also Hephaestus Industries. You must strive to keep your crew working and ensure your perishable storage is full to the brim before returning home."
max_count = 1
outfit = /obj/outfit/admin/fishing_trawler_crewman/captain
spawnpoints = list("fishing_trawler_captain")
/obj/outfit/admin/fishing_trawler_crewman
name = "Fishing Trawler Crewman"
uniform = /obj/item/clothing/under/unathi
shoes = /obj/item/clothing/shoes/workboots
back = /obj/item/storage/backpack/satchel/hegemony
l_ear = /obj/item/device/radio/headset/ship
id = /obj/item/card/id/hephaestus
backpack_contents = list(/obj/item/storage/box/survival = 1)
species_shoes = list(
SPECIES_UNATHI = /obj/item/clothing/shoes/workboots/toeless,
SPECIES_VAURCA_WARRIOR = /obj/item/clothing/shoes/workboots/toeless,
SPECIES_VAURCA_WORKER = /obj/item/clothing/shoes/workboots/toeless
)
species_suit = list(
SPECIES_UNATHI = /obj/item/clothing/accessory/poncho/unathimantle/fisher
)
/obj/outfit/admin/fishing_trawler_crewman/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(isvaurca(H))
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/vaurca/filter(H), slot_wear_mask)
var/obj/item/organ/internal/vaurca/preserve/preserve = H.internal_organs_by_name[BP_PHORON_RESERVE]
H.internal = preserve
H.internals.icon_state = "internal1"
H.equip_or_collect(new /obj/item/reagent_containers/food/snacks/koisbar, slot_in_backpack)
var/obj/item/organ/A = new /obj/item/organ/internal/augment/language/klax(H)
var/obj/item/organ/external/affected = H.get_organ(A.parent_organ)
A.replaced(H, affected)
H.update_body()
if(H?.wear_suit)
H.wear_suit.color = pick("#4f3911", "#292826")
/obj/outfit/admin/fishing_trawler_crewman/get_id_access()
return list(ACCESS_FISHING_LEAGUE, ACCESS_EXTERNAL_AIRLOCKS)
/obj/outfit/admin/fishing_trawler_crewman/captain
name = "Fishing Trawler Captain"
uniform = /obj/item/clothing/under/unathi/mogazali/orange
@@ -0,0 +1,54 @@
/obj/effect/shuttle_landmark/fishing_trawler
base_area = /area/space
base_turf = /turf/space/dynamic
//Fore
/obj/effect/shuttle_landmark/fishing_trawler/fore
name = "Fishing Trawler - Fore"
landmark_tag = "fishing_trawler_fore"
//Mid
/obj/effect/shuttle_landmark/fishing_trawler/port
name = "Fishing Trawler - Port"
landmark_tag = "fishing_trawler_port"
/obj/effect/shuttle_landmark/fishing_trawler/port_dock
name = "Fishing Trawler - Port Dock"
landmark_tag = "fishing_trawler_port_dock"
docking_controller = "fishing_trawler_port_dock"
/obj/effect/shuttle_landmark/fishing_trawler/starboard
name = "Fishing Trawler - Starboard"
landmark_tag = "fishing_trawler_starboard"
/obj/effect/shuttle_landmark/fishing_trawler/starboard_dock
name = "Fishing Trawler - Starboard Dock"
landmark_tag = "fishing_trawler_starboard_dock"
docking_controller = "fishing_trawler_starboard_dock"
//Aft
/obj/effect/shuttle_landmark/fishing_trawler/shuttle_dock
name = "Fishing Trawler Shuttle Dock"
landmark_tag = "fishing_trawler_shuttle"
docking_controller = "fishing_trawler_shuttle_dock"
movable_flags = MOVABLE_FLAG_EFFECTMOVE
base_area = /area/space
base_turf = /turf/space
/obj/effect/shuttle_landmark/fishing_trawler/aux_dock
name = "Fishing Trawler - Auxiliary Dock"
landmark_tag = "fishing_trawler_aux_dock"
docking_controller = "fishing_trawler_aux_dock"
/obj/effect/shuttle_landmark/fishing_trawler/aft
name = "Fishing Trawler - Aft"
landmark_tag = "fishing_trawler_aft"
//Transit
/obj/effect/shuttle_landmark/fishing_trawler/transit
name = "In transit"
landmark_tag = "fishing_trawler_transit"
base_turf = /turf/space/transit/north
base_area = /area/space