mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 01:34:01 +00:00
Fix Docker Build (#51781)
* Change BYOND version to 513.1526 * Remove BSQL from docker image * Add a docker publish action * Add a docker test action * Cleanup runtime icons * Cleanup runtime sounds * Correct docker workflow names * Add Dockerfile as an appveyor cache dependency * Fix build issues * Copy all dlls * No need for .dlls in docker * Minor cleanups
This commit is contained in:
22
.github/workflows/docker_publish.yml
vendored
Normal file
22
.github/workflows/docker_publish.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: Docker Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build and Publish Docker Image to Registry
|
||||
uses: elgohr/Publish-Docker-Github-Action@master
|
||||
with:
|
||||
name: tgstation/tgstation
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
dockerfile: Dockerfile
|
||||
tags: "latest"
|
||||
cache: true
|
||||
11
.github/workflows/docker_test.yml
vendored
Normal file
11
.github/workflows/docker_test.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
docker_build:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build Artifacts Docker Image
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build Docker Image
|
||||
run: docker build . -f Dockerfile
|
||||
44
Dockerfile
44
Dockerfile
@@ -1,14 +1,12 @@
|
||||
FROM tgstation/byond:513.1514 as base
|
||||
FROM tgstation/byond:513.1526 as base
|
||||
|
||||
FROM base as build_base
|
||||
FROM base as rust_g
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
ca-certificates
|
||||
|
||||
FROM build_base as rust_g
|
||||
|
||||
WORKDIR /rust_g
|
||||
|
||||
RUN apt-get install -y --no-install-recommends \
|
||||
@@ -27,36 +25,6 @@ RUN /bin/bash -c "source dependencies.sh \
|
||||
&& git checkout FETCH_HEAD \
|
||||
&& ~/.cargo/bin/cargo build --release
|
||||
|
||||
FROM build_base as bsql
|
||||
|
||||
WORKDIR /bsql
|
||||
|
||||
RUN apt-get install -y --no-install-recommends software-properties-common \
|
||||
&& add-apt-repository ppa:ubuntu-toolchain-r/test \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
cmake \
|
||||
make \
|
||||
g++-7 \
|
||||
libmariadb-client-lgpl-dev \
|
||||
&& git init \
|
||||
&& git remote add origin https://github.com/tgstation/BSQL
|
||||
|
||||
COPY dependencies.sh .
|
||||
|
||||
RUN /bin/bash -c "source dependencies.sh \
|
||||
&& git fetch --depth 1 origin \$BSQL_VERSION" \
|
||||
&& git checkout FETCH_HEAD
|
||||
|
||||
WORKDIR /bsql/artifacts
|
||||
|
||||
ENV CC=gcc-7 CXX=g++-7
|
||||
|
||||
RUN ln -s /usr/include/mariadb /usr/include/mysql \
|
||||
&& ln -s /usr/lib/i386-linux-gnu /root/MariaDB \
|
||||
&& cmake .. \
|
||||
&& make
|
||||
|
||||
FROM base as dm_base
|
||||
|
||||
WORKDIR /tgstation
|
||||
@@ -65,7 +33,9 @@ FROM dm_base as build
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN DreamMaker -max_errors 0 tgstation.dme && tools/deploy.sh /deploy
|
||||
RUN DreamMaker -max_errors 0 tgstation.dme \
|
||||
&& tools/deploy.sh /deploy \
|
||||
&& rm /deploy/*.dll
|
||||
|
||||
FROM dm_base
|
||||
|
||||
@@ -85,12 +55,8 @@ RUN apt-get update \
|
||||
&& mkdir -p /root/.byond/bin
|
||||
|
||||
COPY --from=rust_g /rust_g/target/release/librust_g.so /root/.byond/bin/rust_g
|
||||
COPY --from=bsql /bsql/artifacts/src/BSQL/libBSQL.so ./
|
||||
COPY --from=build /deploy ./
|
||||
|
||||
#bsql fexists memes
|
||||
RUN ln -s /tgstation/libBSQL.so /root/.byond/bin/libBSQL.so
|
||||
|
||||
VOLUME [ "/tgstation/config", "/tgstation/data" ]
|
||||
|
||||
ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ]
|
||||
|
||||
@@ -6,10 +6,10 @@ branches:
|
||||
- ___TGS3TempBranch
|
||||
- ___TGSTempBranch
|
||||
cache:
|
||||
- C:\byond\ -> dependencies.sh
|
||||
- C:\byond\ -> dependencies.sh, Dockerfile
|
||||
build_script:
|
||||
- ps: tools/appveyor/build.ps1
|
||||
- ps: "$deployPath = $env:APPVEYOR_BUILD_FOLDER + '/deploy'; bash tools/deploy.sh $deployPath"
|
||||
- ps: "$deployPath = $env:APPVEYOR_BUILD_FOLDER + '/deploy'; bash tools/deploy.sh $deployPath"
|
||||
- ps: "[System.IO.Compression.ZipFile]::CreateFromDirectory($env:APPVEYOR_BUILD_FOLDER + '/deploy', $env:APPVEYOR_BUILD_FOLDER + '/deploy.zip')"
|
||||
artifacts:
|
||||
- path: deploy.zip
|
||||
|
||||
@@ -224,9 +224,9 @@ GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
|
||||
"Experimentor Lab", "Toxins", "Dormitories", "Virology",
|
||||
"Xenobiology", "Law Office","Detective's Office"))
|
||||
|
||||
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt") + "")
|
||||
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt" + ""))
|
||||
GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt"))
|
||||
|
||||
GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt"))
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ SUBSYSTEM_DEF(title)
|
||||
file_path = "[global.config.directory]/title_screens/images/[pick(title_screens)]"
|
||||
|
||||
if(!file_path)
|
||||
file_path = "icons/default_title.dmi"
|
||||
file_path = "icons/runtime/default_title.dmi"
|
||||
|
||||
ASSERT(fexists(file_path))
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
if(!the_head)
|
||||
return
|
||||
|
||||
playsound(get_turf(our_guy), "sound/effects/tableheadsmash.ogg", 90, TRUE)
|
||||
playsound(get_turf(our_guy), 'sound/effects/tableheadsmash.ogg', 90, TRUE)
|
||||
our_guy.visible_message("<span class='danger'>[our_guy] hits [our_guy.p_their()] head really badly falling down!</span>", "<span class='userdanger'>You hit your head really badly falling down!</span>")
|
||||
the_head.receive_damage(75)
|
||||
our_guy.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100)
|
||||
|
||||
@@ -421,7 +421,7 @@
|
||||
|
||||
///A special case for splatting for handling windows
|
||||
/datum/component/tackler/proc/splatWindow(mob/living/carbon/user, obj/structure/window/W)
|
||||
playsound(user, "sound/effects/Glasshit.ogg", 140, TRUE)
|
||||
playsound(user, 'sound/effects/Glasshit.ogg', 140, TRUE)
|
||||
|
||||
if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows
|
||||
for(var/i = 0, i < speed, i++)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/rounds = 0
|
||||
var/round_term = "round"
|
||||
var/direct_load //For weapons where we re-load the weapon itself rather than adding to the ammo storage.
|
||||
var/load_audio = "sound/weapons/gun_magazine_insert_empty_1.ogg"
|
||||
var/load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg'
|
||||
var/ammo_type
|
||||
|
||||
/obj/item/mecha_ammo/proc/update_name()
|
||||
@@ -62,7 +62,7 @@
|
||||
rounds = 6
|
||||
round_term = "missile"
|
||||
direct_load = TRUE
|
||||
load_audio = "sound/weapons/bulletinsert.ogg"
|
||||
load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg'
|
||||
ammo_type = "missiles_br"
|
||||
|
||||
/obj/item/mecha_ammo/missiles_he
|
||||
@@ -72,7 +72,7 @@
|
||||
rounds = 8
|
||||
round_term = "missile"
|
||||
direct_load = TRUE
|
||||
load_audio = "sound/weapons/bulletinsert.ogg"
|
||||
load_audio = 'sound/weapons/gun/general/mag_bullet_insert.ogg'
|
||||
ammo_type = "missiles_he"
|
||||
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/match/proc/matchignite()
|
||||
if(!lit && !burnt)
|
||||
playsound(src, "sound/items/match_strike.ogg", 15, TRUE)
|
||||
playsound(src, 'sound/items/match_strike.ogg', 15, TRUE)
|
||||
lit = TRUE
|
||||
icon_state = "match_lit"
|
||||
damtype = "fire"
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
AddComponent(/datum/component/spooky)
|
||||
|
||||
/obj/item/instrument/trumpet/spectral/attack(mob/living/carbon/C, mob/user)
|
||||
playsound (loc, 'sound/instruments/trombone/En4.mid', 100,1,-1)
|
||||
playsound (src, 'sound/runtime/instruments/trombone/En4.mid', 100,1,-1)
|
||||
..()
|
||||
|
||||
/obj/item/instrument/saxophone
|
||||
@@ -214,7 +214,7 @@
|
||||
AddComponent(/datum/component/spooky)
|
||||
|
||||
/obj/item/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user)
|
||||
playsound (loc, 'sound/instruments/saxophone/En4.mid', 100,1,-1)
|
||||
playsound (src, 'sound/runtime/instruments/saxophone/En4.mid', 100,1,-1)
|
||||
..()
|
||||
|
||||
/obj/item/instrument/trombone
|
||||
@@ -238,7 +238,7 @@
|
||||
AddComponent(/datum/component/spooky)
|
||||
|
||||
/obj/item/instrument/trombone/spectral/attack(mob/living/carbon/C, mob/user)
|
||||
playsound (loc, 'sound/instruments/trombone/Cn4.mid', 100,1,-1)
|
||||
playsound (src, 'sound/runtime/instruments/trombone/Cn4.mid', 100,1,-1)
|
||||
..()
|
||||
|
||||
/obj/item/instrument/recorder
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
var/stamina_damage = 55 // Do we deal stamina damage.
|
||||
var/affect_silicon = FALSE // Does it stun silicons.
|
||||
var/on_sound // "On" sound, played when switching between able to stun or not.
|
||||
var/on_stun_sound = "sound/effects/woodhit.ogg" // Default path to sound for when we stun.
|
||||
var/on_stun_sound = 'sound/effects/woodhit.ogg' // Default path to sound for when we stun.
|
||||
var/stun_animation = TRUE // Do we animate the "hit" when stunning.
|
||||
var/on = TRUE // Are we on or off.
|
||||
|
||||
|
||||
@@ -4,10 +4,13 @@ GLOBAL_LIST_EMPTY(cached_rarity_table)
|
||||
//Global list of all cards by series, with cards cached by rarity to make those lookups faster
|
||||
GLOBAL_LIST_EMPTY(cached_cards)
|
||||
|
||||
#define DEFAULT_TCG_DMI_ICON 'icons/runtime/tcg/default.dmi'
|
||||
#define DEFAULT_TCG_DMI "icons/runtime/tcg/default.dmi"
|
||||
|
||||
/obj/item/tcgcard
|
||||
name = "Coder"
|
||||
desc = "Wow, a mint condition coder card! Better tell the Github all about this!"
|
||||
icon = 'icons/obj/tcg.dmi'
|
||||
icon = DEFAULT_TCG_DMI_ICON
|
||||
icon_state = "runtime"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
//Unique ID, for use in lookups and storage, used to index the global datum list where the rest of the card's info is stored
|
||||
@@ -63,7 +66,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
/obj/item/cardpack
|
||||
name = "Trading Card Pack: Coder"
|
||||
desc = "Contains six complete fuckups by the coders. Report this on github please!"
|
||||
icon = 'icons/obj/tcg.dmi'
|
||||
icon = DEFAULT_TCG_DMI_ICON
|
||||
icon_state = "cardback_nt"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
///The card series to look in
|
||||
@@ -92,7 +95,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
/obj/item/cardpack/series_one
|
||||
name = "Trading Card Pack: Series 1"
|
||||
desc = "Contains six cards of varying rarity from the 2560 Core Set. Collect them all!"
|
||||
icon = 'icons/obj/tcg.dmi'
|
||||
icon = DEFAULT_TCG_DMI_ICON
|
||||
icon_state = "cardpack_series1"
|
||||
series = "coreset2020"
|
||||
contains_coin = 10
|
||||
@@ -100,7 +103,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
/obj/item/cardpack/resin
|
||||
name = "Trading Card Pack: Resin Frontier Booster Pack"
|
||||
desc = "Contains six cards of varying rarity from the Resin Frontier set. Collect them all!"
|
||||
icon = 'icons/obj/tcg_xenos.dmi'
|
||||
icon = 'icons/runtime/tcg/xenos.dmi'
|
||||
icon_state = "cardpack_resin"
|
||||
series = "resinfront"
|
||||
contains_coin = 0
|
||||
@@ -150,7 +153,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
/obj/item/coin/thunderdome
|
||||
name = "Thunderdome Flipper"
|
||||
desc = "A Thunderdome TCG flipper, for deciding who gets to go first. Also conveniently acts as a counter, for various purposes."
|
||||
icon = 'icons/obj/tcg.dmi'
|
||||
icon = DEFAULT_TCG_DMI_ICON
|
||||
icon_state = "coin_nanotrasen"
|
||||
custom_materials = list(/datum/material/plastic = 400)
|
||||
material_flags = NONE
|
||||
@@ -171,7 +174,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
/obj/item/storage/card_binder
|
||||
name = "card binder"
|
||||
desc = "The perfect way to keep your collection of cards safe and valuable."
|
||||
icon = 'icons/obj/tcg.dmi'
|
||||
icon = DEFAULT_TCG_DMI_ICON
|
||||
icon_state = "binder"
|
||||
inhand_icon_state = "album"
|
||||
lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi'
|
||||
@@ -230,7 +233,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
var/desc = "Wow, a mint condition coder card! Better tell the Github all about this!"
|
||||
///This handles any extra rules for the card, i.e. extra attributes, special effects, etc. If you've played any other card game, you know how this works.
|
||||
var/rules = "There are no rules here. There is no escape. No Recall or Intervention can work in this place."
|
||||
var/icon = "icons/obj/tcg.dmi"
|
||||
var/icon = DEFAULT_TCG_DMI
|
||||
var/icon_state = "template"
|
||||
///What it costs to summon this card to the battlefield.
|
||||
var/summoncost = -1
|
||||
@@ -312,7 +315,7 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
var/toAdd = "The card [target.id] in [series] has the following default variables:"
|
||||
var/shouldAdd = FALSE
|
||||
for(var/a in (target.vars ^ thing.vars))
|
||||
if(a == "icon" && target.vars[a] == "icons/obj/tcg.dmi")
|
||||
if(a == "icon" && target.vars[a] == DEFAULT_TCG_DMI)
|
||||
continue
|
||||
if(target.vars[a] == initial(target.vars[a]))
|
||||
shouldAdd = TRUE
|
||||
@@ -370,3 +373,6 @@ GLOBAL_LIST_EMPTY(cached_cards)
|
||||
GLOB.cached_cards[c.series][c.rarity] += c.id
|
||||
//Let's actually store the datum here
|
||||
GLOB.cached_cards[c.series]["ALL"][c.id] = c
|
||||
|
||||
#undef DEFAULT_TCG_DMI_ICON
|
||||
#undef DEFAULT_TCG_DMI
|
||||
|
||||
@@ -1483,7 +1483,7 @@
|
||||
name = "Security Officer action figure"
|
||||
icon_state = "secofficer"
|
||||
toysay = "I am the law!"
|
||||
toysound = 'sound/voice/complionator/dredd.ogg'
|
||||
toysound = 'sound/runtime/complionator/dredd.ogg'
|
||||
|
||||
/obj/item/toy/figure/virologist
|
||||
name = "Virologist action figure"
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
return
|
||||
|
||||
// now generate name
|
||||
var/soundfile = "sound/instruments/[instrumentDir]/[ascii2text(note+64)][acc][oct].[instrumentExt]"
|
||||
var/soundfile = "sound/runtime/instruments/[instrumentDir]/[ascii2text(note+64)][acc][oct].[instrumentExt]"
|
||||
soundfile = file(soundfile)
|
||||
// make sure the note exists
|
||||
if(!fexists(soundfile))
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
pushed_mob.apply_damage(40, STAMINA)
|
||||
if(user.mind?.martial_art.smashes_tables && user.mind?.martial_art.can_use(user))
|
||||
deconstruct(FALSE)
|
||||
playsound(pushed_mob, "sound/effects/tableslam.ogg", 90, TRUE)
|
||||
playsound(pushed_mob, 'sound/effects/tableslam.ogg', 90, TRUE)
|
||||
pushed_mob.visible_message("<span class='danger'>[user] slams [pushed_mob] onto \the [src]!</span>", \
|
||||
"<span class='userdanger'>[user] slams you onto \the [src]!</span>")
|
||||
log_combat(user, pushed_mob, "tabled", null, "onto [src]")
|
||||
@@ -147,7 +147,7 @@
|
||||
take_damage(50)
|
||||
if(user.mind?.martial_art.smashes_tables && user.mind?.martial_art.can_use(user))
|
||||
deconstruct(FALSE)
|
||||
playsound(pushed_mob, "sound/effects/tablelimbsmash.ogg", 90, TRUE)
|
||||
playsound(pushed_mob, 'sound/effects/bang.ogg', 90, TRUE)
|
||||
pushed_mob.visible_message("<span class='danger'>[user] smashes [pushed_mob]'s [banged_limb.name] against \the [src]!</span>",
|
||||
"<span class='userdanger'>[user] smashes your [banged_limb.name] against \the [src]</span>")
|
||||
log_combat(user, pushed_mob, "head slammed", null, "against [src]")
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
if("goose")
|
||||
soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg')
|
||||
if("warpspeed")
|
||||
soundin = 'sound/effects/hyperspace_begin.ogg'
|
||||
soundin = 'sound/runtime/hyperspace/hyperspace_begin.ogg'
|
||||
if("smcalm")
|
||||
soundin = pick('sound/machines/sm/accent/normal/1.ogg', 'sound/machines/sm/accent/normal/2.ogg', 'sound/machines/sm/accent/normal/3.ogg', 'sound/machines/sm/accent/normal/4.ogg', 'sound/machines/sm/accent/normal/5.ogg', 'sound/machines/sm/accent/normal/6.ogg', 'sound/machines/sm/accent/normal/7.ogg', 'sound/machines/sm/accent/normal/8.ogg', 'sound/machines/sm/accent/normal/9.ogg', 'sound/machines/sm/accent/normal/10.ogg', 'sound/machines/sm/accent/normal/11.ogg', 'sound/machines/sm/accent/normal/12.ogg', 'sound/machines/sm/accent/normal/13.ogg', 'sound/machines/sm/accent/normal/14.ogg', 'sound/machines/sm/accent/normal/15.ogg', 'sound/machines/sm/accent/normal/16.ogg', 'sound/machines/sm/accent/normal/17.ogg', 'sound/machines/sm/accent/normal/18.ogg', 'sound/machines/sm/accent/normal/19.ogg', 'sound/machines/sm/accent/normal/20.ogg', 'sound/machines/sm/accent/normal/21.ogg', 'sound/machines/sm/accent/normal/22.ogg', 'sound/machines/sm/accent/normal/23.ogg', 'sound/machines/sm/accent/normal/24.ogg', 'sound/machines/sm/accent/normal/25.ogg', 'sound/machines/sm/accent/normal/26.ogg', 'sound/machines/sm/accent/normal/27.ogg', 'sound/machines/sm/accent/normal/28.ogg', 'sound/machines/sm/accent/normal/29.ogg', 'sound/machines/sm/accent/normal/30.ogg', 'sound/machines/sm/accent/normal/31.ogg', 'sound/machines/sm/accent/normal/32.ogg', 'sound/machines/sm/accent/normal/33.ogg')
|
||||
if("smdelam")
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
chatter_speak_word(A.loc, phomeme, length)
|
||||
|
||||
/proc/chatter_speak_word(loc, phomeme, length)
|
||||
var/path = "sound/chatter/[phomeme]_[length].ogg"
|
||||
var/path = "sound/runtime/chatter/[phomeme]_[length].ogg"
|
||||
|
||||
playsound(loc, path,
|
||||
vol = 40, vary = 0, extrarange = 3, falloff = FALSE)
|
||||
|
||||
@@ -165,7 +165,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
|
||||
. = FALSE
|
||||
if (!cooldown)
|
||||
usr.audible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[initial(phrase.phrase_text)]</b></font>")
|
||||
playsound(src.loc, "sound/voice/complionator/[initial(phrase.phrase_sound)].ogg", 100, FALSE, 4)
|
||||
playsound(src, "sound/runtime/complionator/[initial(phrase.phrase_sound)].ogg", 100, FALSE, 4)
|
||||
cooldown = TRUE
|
||||
addtimer(CALLBACK(src, /obj/item/clothing/mask/gas/sechailer/proc/reset_cooldown), PHRASE_COOLDOWN)
|
||||
. = TRUE
|
||||
@@ -188,7 +188,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
|
||||
/obj/item/clothing/mask/whistle/ui_action_click(mob/user, action)
|
||||
if(cooldown < world.time - 100)
|
||||
usr.audible_message("<font color='red' size='5'><b>HALT!</b></font>")
|
||||
playsound(src.loc, "sound/misc/whistle.ogg", 100, FALSE, 4)
|
||||
playsound(src, 'sound/misc/whistle.ogg', 100, FALSE, 4)
|
||||
cooldown = world.time
|
||||
|
||||
#undef PHRASE_COOLDOWN
|
||||
|
||||
@@ -391,7 +391,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
|
||||
if("gun")
|
||||
var/hits = 0
|
||||
for(var/i in 1 to rand(3, 6))
|
||||
target.playsound_local(source, "sound/weapons/gunshot.ogg", 25, TRUE)
|
||||
target.playsound_local(source, 'sound/weapons/gun/shotgun/shot.ogg', 25, TRUE)
|
||||
if(prob(60))
|
||||
addtimer(CALLBACK(target, /mob/.proc/playsound_local, source, 'sound/weapons/pierce.ogg', 25, 1), rand(5,10))
|
||||
hits++
|
||||
@@ -853,7 +853,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
|
||||
sleep(25)
|
||||
target.playsound_local(source, 'sound/weapons/ring.ogg', 15)
|
||||
if("hyperspace")
|
||||
target.playsound_local(null, 'sound/effects/hyperspace_begin.ogg', 50)
|
||||
target.playsound_local(null, 'sound/runtime/hyperspace/hyperspace_begin.ogg', 50)
|
||||
if("hallelujah")
|
||||
target.playsound_local(source, 'sound/effects/pray_chaplain.ogg', 50)
|
||||
if("highlander")
|
||||
|
||||
@@ -67,10 +67,10 @@
|
||||
brainmob.add_to_alive_mob_list()
|
||||
else if(!fubar_brain && newbrain.organ_flags & ORGAN_FAILING) // the brain is damaged, but not from a suicider
|
||||
to_chat(user, "<span class='warning'>[src]'s indicator light turns yellow and its brain integrity alarm beeps softly. Perhaps you should check [newbrain] for damage.</span>")
|
||||
playsound(src, "sound/machines/synth_no.ogg", 5, TRUE)
|
||||
playsound(src, 'sound/machines/synth_no.ogg', 5, TRUE)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src]'s indicator light turns red and its brainwave activity alarm beeps softly. Perhaps you should check [newbrain] again.</span>")
|
||||
playsound(src, "sound/weapons/smg_empty_alarm.ogg", 5, TRUE)
|
||||
playsound(src, 'sound/machines/triple_beep.ogg', 5, TRUE)
|
||||
|
||||
brainmob.reset_perspective()
|
||||
brain = newbrain
|
||||
|
||||
@@ -209,10 +209,10 @@
|
||||
if((speech_cooldown + SPEECH_INTERVAL) < world.time)
|
||||
if(ishuman(target_fire))
|
||||
speak("Stop, drop and roll!")
|
||||
playsound(src, "sound/voice/firebot/stopdropnroll.ogg", 50, FALSE)
|
||||
playsound(src, 'sound/voice/firebot/stopdropnroll.ogg', 50, FALSE)
|
||||
else
|
||||
speak("Extinguishing!")
|
||||
playsound(src, "sound/voice/firebot/extinguishing.ogg", 50, FALSE)
|
||||
playsound(src, 'sound/voice/firebot/extinguishing.ogg', 50, FALSE)
|
||||
speech_cooldown = world.time
|
||||
|
||||
flick("firebot1_use", src)
|
||||
@@ -265,7 +265,7 @@
|
||||
if(is_burning(scan_target))
|
||||
if((detected_cooldown + DETECTED_VOICE_INTERVAL) < world.time)
|
||||
speak("Fire detected!")
|
||||
playsound(src, "sound/voice/firebot/detected.ogg", 50, FALSE)
|
||||
playsound(src, 'sound/voice/firebot/detected.ogg', 50, FALSE)
|
||||
detected_cooldown = world.time
|
||||
result = scan_target
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/netherworld/migo/Initialize()
|
||||
. = ..()
|
||||
migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/voice/beepsky/creep.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/medbot/patchedup.ogg', 'sound/voice/medbot/feelbetter.ogg', 'sound/voice/human/manlaugh1.ogg', 'sound/voice/human/womanlaugh.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/clockcultalr.ogg', 'sound/ambience/antag/ling_aler.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/ambience/antag/monkey.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion_distant.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/hyperspace_begin.ogg', 'sound/effects/hyperspace_end.ogg', 'sound/effects/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/ratvar_reveal.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desecration-01.ogg', 'sound/misc/desecration-02.ogg', 'sound/misc/desecration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/misc/airraid.ogg', 'sound/misc/bang.ogg','sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/beam_sniper.ogg', 'sound/weapons/chainsawhit.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gun/pistol/shot_suppressed.ogg', 'sound/weapons/gun/pistol/shot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlockclose.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlockopen.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/triple_beep.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/poweroff.ogg', 'sound/ai/radiation.ogg', 'sound/ai/shuttlecalled.ogg', 'sound/ai/shuttledock.ogg', 'sound/ai/shuttlerecalled.ogg', 'sound/ai/aimalf.ogg') //hahahaha fuck you code divers
|
||||
migo_sounds = list('sound/items/bubblewrap.ogg', 'sound/items/change_jaws.ogg', 'sound/items/crowbar.ogg', 'sound/items/drink.ogg', 'sound/items/deconstruct.ogg', 'sound/items/carhorn.ogg', 'sound/items/change_drill.ogg', 'sound/items/dodgeball.ogg', 'sound/items/eatfood.ogg', 'sound/items/megaphone.ogg', 'sound/items/screwdriver.ogg', 'sound/items/weeoo1.ogg', 'sound/items/wirecutter.ogg', 'sound/items/welder.ogg', 'sound/items/zip.ogg', 'sound/items/rped.ogg', 'sound/items/ratchet.ogg', 'sound/items/polaroid1.ogg', 'sound/items/pshoom.ogg', 'sound/items/airhorn.ogg', 'sound/items/geiger/high1.ogg', 'sound/items/geiger/high2.ogg', 'sound/voice/beepsky/creep.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/ed209_20sec.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss6.ogg', 'sound/voice/medbot/patchedup.ogg', 'sound/voice/medbot/feelbetter.ogg', 'sound/voice/human/manlaugh1.ogg', 'sound/voice/human/womanlaugh.ogg', 'sound/weapons/sear.ogg', 'sound/ambience/antag/clockcultalr.ogg', 'sound/ambience/antag/ling_aler.ogg', 'sound/ambience/antag/tatoralert.ogg', 'sound/ambience/antag/monkey.ogg', 'sound/mecha/nominal.ogg', 'sound/mecha/weapdestr.ogg', 'sound/mecha/critdestr.ogg', 'sound/mecha/imag_enh.ogg', 'sound/effects/adminhelp.ogg', 'sound/effects/alert.ogg', 'sound/effects/attackblob.ogg', 'sound/effects/bamf.ogg', 'sound/effects/blobattack.ogg', 'sound/effects/break_stone.ogg', 'sound/effects/bubbles.ogg', 'sound/effects/bubbles2.ogg', 'sound/effects/clang.ogg', 'sound/effects/clockcult_gateway_disrupted.ogg', 'sound/effects/clownstep2.ogg', 'sound/effects/curse1.ogg', 'sound/effects/dimensional_rend.ogg', 'sound/effects/doorcreaky.ogg', 'sound/effects/empulse.ogg', 'sound/effects/explosion_distant.ogg', 'sound/effects/explosionfar.ogg', 'sound/effects/explosion1.ogg', 'sound/effects/grillehit.ogg', 'sound/effects/genetics.ogg', 'sound/effects/heart_beat.ogg', 'sound/runtime/hyperspace/hyperspace_begin.ogg', 'sound/runtime/hyperspace/hyperspace_end.ogg', 'sound/effects/his_grace_awaken.ogg', 'sound/effects/pai_boot.ogg', 'sound/effects/phasein.ogg', 'sound/effects/picaxe1.ogg', 'sound/effects/ratvar_reveal.ogg', 'sound/effects/sparks1.ogg', 'sound/effects/smoke.ogg', 'sound/effects/splat.ogg', 'sound/effects/snap.ogg', 'sound/effects/tendril_destroyed.ogg', 'sound/effects/supermatter.ogg', 'sound/misc/desecration-01.ogg', 'sound/misc/desecration-02.ogg', 'sound/misc/desecration-03.ogg', 'sound/misc/bloblarm.ogg', 'sound/misc/airraid.ogg', 'sound/misc/bang.ogg','sound/misc/highlander.ogg', 'sound/misc/interference.ogg', 'sound/misc/notice1.ogg', 'sound/misc/notice2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/misc/slip.ogg', 'sound/misc/splort.ogg', 'sound/weapons/armbomb.ogg', 'sound/weapons/beam_sniper.ogg', 'sound/weapons/chainsawhit.ogg', 'sound/weapons/emitter.ogg', 'sound/weapons/emitter2.ogg', 'sound/weapons/blade1.ogg', 'sound/weapons/bladeslice.ogg', 'sound/weapons/blastcannon.ogg', 'sound/weapons/blaster.ogg', 'sound/weapons/bulletflyby3.ogg', 'sound/weapons/circsawhit.ogg', 'sound/weapons/cqchit2.ogg', 'sound/weapons/drill.ogg', 'sound/weapons/genhit1.ogg', 'sound/weapons/gun/pistol/shot_suppressed.ogg', 'sound/weapons/gun/pistol/shot.ogg', 'sound/weapons/handcuffs.ogg', 'sound/weapons/homerun.ogg', 'sound/weapons/kenetic_accel.ogg', 'sound/machines/clockcult/steam_whoosh.ogg', 'sound/machines/fryer/deep_fryer_emerge.ogg', 'sound/machines/airlock.ogg', 'sound/machines/airlock_alien_prying.ogg', 'sound/machines/airlockclose.ogg', 'sound/machines/airlockforced.ogg', 'sound/machines/airlockopen.ogg', 'sound/machines/alarm.ogg', 'sound/machines/blender.ogg', 'sound/machines/boltsdown.ogg', 'sound/machines/boltsup.ogg', 'sound/machines/buzz-sigh.ogg', 'sound/machines/buzz-two.ogg', 'sound/machines/chime.ogg', 'sound/machines/cryo_warning.ogg', 'sound/machines/defib_charge.ogg', 'sound/machines/defib_failed.ogg', 'sound/machines/defib_ready.ogg', 'sound/machines/defib_zap.ogg', 'sound/machines/deniedbeep.ogg', 'sound/machines/ding.ogg', 'sound/machines/disposalflush.ogg', 'sound/machines/door_close.ogg', 'sound/machines/door_open.ogg', 'sound/machines/engine_alert1.ogg', 'sound/machines/engine_alert2.ogg', 'sound/machines/hiss.ogg', 'sound/machines/honkbot_evil_laugh.ogg', 'sound/machines/juicer.ogg', 'sound/machines/ping.ogg', 'sound/ambience/signal.ogg', 'sound/machines/synth_no.ogg', 'sound/machines/synth_yes.ogg', 'sound/machines/terminal_alert.ogg', 'sound/machines/triple_beep.ogg', 'sound/machines/twobeep.ogg', 'sound/machines/ventcrawl.ogg', 'sound/machines/warning-buzzer.ogg', 'sound/ai/outbreak5.ogg', 'sound/ai/outbreak7.ogg', 'sound/ai/poweroff.ogg', 'sound/ai/radiation.ogg', 'sound/ai/shuttlecalled.ogg', 'sound/ai/shuttledock.ogg', 'sound/ai/shuttlerecalled.ogg', 'sound/ai/aimalf.ogg') //hahahaha fuck you code divers
|
||||
|
||||
/mob/living/simple_animal/hostile/netherworld/migo/say(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
|
||||
..()
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
fire_sound = 'sound/weapons/gun/shotgun/shot.ogg'
|
||||
vary_fire_sound = FALSE
|
||||
fire_sound_volume = 90
|
||||
rack_sound = "sound/weapons/gun/shotgun/rack.ogg"
|
||||
load_sound = "sound/weapons/gun/shotgun/insert_shell.ogg"
|
||||
rack_sound = 'sound/weapons/gun/shotgun/rack.ogg'
|
||||
load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg'
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
force = 10
|
||||
flags_1 = CONDUCT_1
|
||||
@@ -239,7 +239,7 @@
|
||||
desc = "Range isn't an issue when you can bring your victim to you."
|
||||
icon_state = "hookshotgun"
|
||||
inhand_icon_state = "shotgun"
|
||||
load_sound = "sound/weapons/shotguninsert.ogg"
|
||||
load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg'
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
weapon_weight = WEAPON_MEDIUM
|
||||
|
||||
@@ -785,7 +785,7 @@
|
||||
for(var/mob/M in SSmobs.clients_by_zlevel[z])
|
||||
var/dist_far = get_dist(M, distant_source)
|
||||
if(dist_far <= long_range && dist_far > range)
|
||||
M.playsound_local(distant_source, "sound/effects/[selected_sound]_distance.ogg", 100, falloff = 20)
|
||||
M.playsound_local(distant_source, "sound/runtime/hyperspace/[selected_sound]_distance.ogg", 100, falloff = 20)
|
||||
else if(dist_far <= range)
|
||||
var/source
|
||||
if(engine_list.len == 0)
|
||||
@@ -797,7 +797,7 @@
|
||||
if(dist_near < closest_dist)
|
||||
source = O
|
||||
closest_dist = dist_near
|
||||
M.playsound_local(source, "sound/effects/[selected_sound].ogg", 100, falloff = range / 2)
|
||||
M.playsound_local(source, "sound/runtime/hyperspace/[selected_sound].ogg", 100, falloff = range / 2)
|
||||
|
||||
// Losing all initial engines should get you 2
|
||||
// Adding another set of engines at 0.5 time
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
if(is_key(inserted_key) && eddie_murphy)
|
||||
if(stall_cooldown + 10 < world.time)
|
||||
visible_message("<span class='warning'>[src] sputters and refuses to move!</span>")
|
||||
playsound(src, "sound/effects/stall.ogg", 70)
|
||||
playsound(src, 'sound/effects/stall.ogg', 70)
|
||||
stall_cooldown = world.time
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
5
icons/runtime/README.md
Normal file
5
icons/runtime/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Runtime Loaded Icons
|
||||
|
||||
These icons are not compiled into the .rsc or are otherwise loaded at runtime.
|
||||
|
||||
Please keep all (non-config) icons that do this in this folder as it is needed by the [deploy.sh](../../tools/deploy.sh) script to minimize build output.
|
||||
|
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
5
sound/runtime/README.md
Normal file
5
sound/runtime/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Runtime Loaded Sounds
|
||||
|
||||
These sounds are not compiled into the .rsc or are otherwise loaded at runtime.
|
||||
|
||||
Please keep all (non-config) sounds that do this in this folder as it is needed by the [deploy.sh](../../tools/deploy.sh) script to minimize build output.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user