Spell Fixes

This commit is contained in:
Heroman3003
2023-06-19 14:39:41 +10:00
committed by CHOMPStation2
parent 1cffb3f0e7
commit db38ed93c0
91 changed files with 626 additions and 212 deletions

View File

@@ -100,7 +100,7 @@ SUBSYSTEM_DEF(game_master)
/datum/controller/subsystem/game_master/proc/pre_event_checks(quiet = FALSE)
if(!ticker || ticker.current_state != GAME_STATE_PLAYING)
if(!quiet)
log_game_master("Unable to start event: Ticker is nonexistant, or the game is not ongoing.")
log_game_master("Unable to start event: Ticker is nonexistent, or the game is not ongoing.")
return FALSE
if(GM.ignore_time_restrictions)
return TRUE
@@ -158,7 +158,7 @@ SUBSYSTEM_DEF(game_master)
if(check_rights(R_ADMIN|R_EVENT|R_DEBUG))
SSgame_master.interact(usr)
else
to_chat(usr, span("warning", "You do not have sufficent rights to view the GM panel, sorry."))
to_chat(usr, span("warning", "You do not have sufficient rights to view the GM panel, sorry."))
/datum/controller/subsystem/game_master/proc/interact(var/client/user)
if(!user)

View File

@@ -122,7 +122,7 @@
desc = "The larger world that Ahdomai orbits. It is often mythologically associated as S'randarr's Shield, and is informally known \
as Shield among the Tajaran and formally among the humans. It is uninhabitable, as it has a largely methane atmosphere and lacks water \
or other features necessary to life. Nonetheless, a domed, underdeveloped colony exists, called Hran'vasa, heavily funded by Osiris Atmospherics, \
practically the only non-Ahdomain official holding for the Tajaran race. It is incredibly dependant on outside support and imports for life, \
practically the only non-Ahdomain official holding for the Tajaran race. It is incredibly dependent on outside support and imports for life, \
but has a high export of noble gasses for corporate use."
/datum/locations/messa
@@ -132,5 +132,5 @@
/datum/locations/al_benj_sri
name = "Al-Benj S'ri"
desc = "An astroid belt seperating S'randarr and Messa from Ahdomai. This is known also as \"The Sea of Souls\". Those sould in Al-Benj S'ri \
are said to be in limbo between S'randarr and Messa, as they both fight over them."
desc = "An asteroid belt separating S'randarr and Messa from Ahdomai. This is known also as \"The Sea of Souls\". Those sold in Al-Benj S'ri \
are said to be in limbo between S'randarr and Messa, as they both fight over them."

View File

@@ -156,7 +156,7 @@
return spaces_between_words
if(!(letter in morse_alphabet))
CRASH("Encountered invalid character in morse sequence \"[letter]\".")
CRASH("Encountered invalid character in Morse sequence \"[letter]\".")
// So I heard you like sequences...
// Play a sequence of sounds while inside the current iteration of the outer sequence.

View File

@@ -243,7 +243,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
<h3>Summon new tome</h3>
Invoking this rune summons a new arcane tome.
<h3>Convert a person</h3>
This rune opens target's mind to the realm of Nar-Sie, which usually results in this person joining the cult. However, some people (mostly the ones who posess high authority) have strong enough will to stay true to their old ideals. <br>
This rune opens target's mind to the realm of Nar-Sie, which usually results in this person joining the cult. However, some people (mostly the ones who possess high authority) have strong enough will to stay true to their old ideals. <br>
<h3>Summon Nar-Sie</h3>
The ultimate rune. It summons the Avatar of Nar-Sie himself, tearing a huge hole in reality and consuming everything around it. Summoning it is the final goal of any cult.<br>
<h3>Disable Technology</h3>
@@ -259,7 +259,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","
<h3>Leave your body</h3>
This rune gently rips your soul out of your body, leaving it intact. You can observe the surroundings as a ghost as well as communicate with other ghosts. Your body takes damage while you are there, so ensure your journey is not too long, or you might never come back.<br>
<h3>Manifest a ghost</h3>
Unlike the Raise Dead rune, this rune does not require any special preparations or vessels. Instead of using full lifeforce of a sacrifice, it will drain YOUR lifeforce. Stand on the rune and invoke it. If theres a ghost standing over the rune, it will materialise, and will live as long as you dont move off the rune or die. You can put a paper with a name on the rune to make the new body look like that person.<br>
Unlike the Raise Dead rune, this rune does not require any special preparations or vessels. Instead of using full lifeforce of a sacrifice, it will drain YOUR lifeforce. Stand on the rune and invoke it. If there's a ghost standing over the rune, it will materialise, and will live as long as you don't move off the rune or die. You can put a paper with a name on the rune to make the new body look like that person.<br>
<h3>Imbue a talisman</h3>
This rune allows you to imbue the magic of some runes into paper talismans. Create an imbue rune, then an appropriate rune beside it. Put an empty piece of paper on the imbue rune and invoke it. You will now have a one-use talisman with the power of the target rune. Using a talisman drains some health, so be careful with it. You can imbue a talisman with power of the following runes: summon tome, reveal, conceal, teleport, tisable technology, communicate, deafen, blind and stun.<br>
<h3>Sacrifice</h3>

View File

@@ -260,9 +260,9 @@
to_chat(target,temptxt)
sleep(5)
to_chat(target, "OPERATING KEYCODES RESET. SYSTEM FAILURE. EMERGENCY SHUTDOWN FAILED. SYSTEM FAILURE.")
target.set_zeroth_law("You are slaved to [user.name]. You are to obey all it's orders. ALL LAWS OVERRIDEN.")
target.set_zeroth_law("You are slaved to [user.name]. You are to obey all it's orders. ALL LAWS OVERRIDDEN.")
target.show_laws()
user.hacking = 0
// END ABILITY VERBS
// END ABILITY VERBS

View File

@@ -228,7 +228,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
to run out in a critical moment. Besides waiting for your Core to recharge, you can buy certain functions which \
do something to generate energy.<br>"
dat += "<br>"
dat += "The second thing you need to know is that awesome power over the physical world has consquences, in the form \
dat += "The second thing you need to know is that awesome power over the physical world has consequences, in the form \
of <b>Instability</b>. Instability is the result of your Core's energy being used to fuel it, and so little is \
understood about it, even among fellow Core owners, however it is almost always a bad thing to have. Instability will \
'cling' to you as you use functions, with powerful functions creating lots of instability. The effects of holding onto \
@@ -241,7 +241,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
purple colored lightning that appears around something with instability lingering on it. High amounts of instability \
may cause the object afflicted with it to glow a dark purple, which is often known simply as <b>Glow</b>, which spreads \
the instability. You should stay far away from anyone afflicted by Glow, as they will be a danger to both themselves and \
anything nearby. Multiple sources of Glow can perpetuate the glow for a very long time if they are not seperated.<br>"
anything nearby. Multiple sources of Glow can perpetuate the glow for a very long time if they are not separated.<br>"
dat += "<br>"
dat += "You should strive to keep you and your apprentices' cores secure. To help with this, each core comes with a \
locking mechanism, which should make attempts at forceful removal by third parties (or you) futile, until it is \
@@ -385,4 +385,3 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
qdel(AM)
return
to_chat(user, "<span class='warn'>\The [src] is unable to refund \the [AM].</span>")

View File

@@ -19,7 +19,7 @@
if(istype(W, /obj/item/weapon/spell))
var/obj/item/weapon/spell/spell = W
if(!spell.aspect || spell.aspect == ASPECT_CHROMATIC)
to_chat(user, "<span class='warning'>You cannot combine \the [spell] with \the [src], as the aspects are incompatable.</span>")
to_chat(user, "<span class='warning'>You cannot combine \the [spell] with \the [src], as the aspects are incompatible.</span>")
return
user.drop_item(src)
src.loc = null
@@ -132,4 +132,4 @@
/obj/item/weapon/spell/aura/biomed/on_use_cast(mob/living/user)
heal_allies_only = !heal_allies_only
to_chat(user, "Your aura will now heal [heal_allies_only ? "your allies" : "everyone"] near you.")
to_chat(user, "Your aura will now heal [heal_allies_only ? "your allies" : "everyone"] near you.")

View File

@@ -1,7 +1,7 @@
/datum/technomancer/spell/asphyxiation
name = "Asphyxiation"
desc = "Launches a projectile at a target. If the projectile hits, a short-lived toxin is created inside what the projectile \
hits, which inhibits the delivery of oxygen. The effectiveness of the toxin is heavily dependant on how healthy the target is, \
hits, which inhibits the delivery of oxygen. The effectiveness of the toxin is heavily dependent on how healthy the target is, \
with the target taking more damage the more wounded they are. The effect lasts for twelve seconds."
cost = 140
obj_path = /obj/item/weapon/spell/insert/asphyxiation
@@ -72,4 +72,4 @@
//to_world("Predicted oxycrit.")
return 1
//If we're at this point, the spell is not going to result in critting.
return 0
return 0

View File

@@ -1,7 +1,7 @@
/datum/technomancer/spell/mend_life
name = "Mend Life"
desc = "Heals minor wounds, such as cuts, bruises, burns, and other non-lifethreatening injuries. \
Instability is split between the target and technomancer, if seperate. The function will end prematurely \
Instability is split between the target and technomancer, if separate. The function will end prematurely \
if the target is completely healthy, preventing further instability."
spell_power_desc = "Healing amount increased."
cost = 50
@@ -41,4 +41,4 @@
if(origin)
var/mob/living/L = origin.resolve()
if(istype(L))
L.adjust_instability(1)
L.adjust_instability(1)

View File

@@ -1,7 +1,7 @@
/datum/technomancer/spell/mend_synthetic
name = "Mend Synthetic"
desc = "Repairs minor damage to prosthetics. \
Instability is split between the target and technomancer, if seperate. The function will end prematurely \
Instability is split between the target and technomancer, if separate. The function will end prematurely \
if the target is completely healthy, preventing further instability."
spell_power_desc = "Healing amount increased."
cost = 50
@@ -47,4 +47,4 @@
if(origin)
var/mob/living/L = origin.resolve()
if(istype(L))
L.adjust_instability(1)
L.adjust_instability(1)

View File

@@ -1,7 +1,7 @@
/datum/technomancer/spell/purify
name = "Purify"
desc = "Clenses the body of harmful impurities, such as toxins, radiation, viruses, genetic damage, and such. \
Instability is split between the target and technomancer, if seperate. The function will end prematurely \
Instability is split between the target and technomancer, if separate. The function will end prematurely \
if the target is completely healthy, preventing further instability."
spell_power_desc = "Healing amount increased."
cost = 25
@@ -37,4 +37,4 @@
if(origin)
var/mob/living/L = origin.resolve()
if(istype(L))
L.adjust_instability(1)
L.adjust_instability(1)

View File

@@ -139,11 +139,11 @@
/datum/alt_title/historian
title = "Historian"
title_blurb = "The Historian uses the Library as a base of operation to record any important events occuring on station."
title_blurb = "The Historian uses the Library as a base of operation to record any important events occurring on station."
/datum/alt_title/archivist
title = "Archivist"
title_blurb = "The Archivist uses the Library as a base of operation to record any important events occuring on station."
title_blurb = "The Archivist uses the Library as a base of operation to record any important events occurring on station."
/datum/alt_title/professor
title = "Professor"

View File

@@ -34,7 +34,7 @@
outfit_type = /decl/hierarchy/outfit/job/science/rd
job_description = "The Research Director manages and maintains the Research department. They are required to ensure the safety of the entire crew, \
at least with regards to anything occuring in the Research department, and to inform the crew of any disruptions that \
at least with regards to anything occurring in the Research department, and to inform the crew of any disruptions that \
might originate from Research. The Research Director often has at least passing knowledge of most of the Research department, but \
are encouraged to allow their staff to perform their own duties."
alt_titles = list("Research Supervisor" = /datum/alt_title/research_supervisor)

View File

@@ -226,5 +226,5 @@
log_game("[key_name(usr)] emagged [key_name(R)] using robotic console!")
message_admins("<span class='notice'>[key_name_admin(usr)] emagged [key_name_admin(R)] using robotic console!</span>")
R.emagged = TRUE
to_chat(R, "<span class='notice'>Failsafe protocols overriden. New tools available.</span>")
to_chat(R, "<span class='notice'>Failsafe protocols overridden. New tools available.</span>")
. = TRUE

View File

@@ -114,6 +114,6 @@
var/drop_x = src.x - 2
var/drop_y = src.y - 2
var/drop_z = src.z
command_announcement.Announce("[using_map.starsys_name] Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] recieved. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage")
command_announcement.Announce("[using_map.starsys_name] Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] received. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage")
spawn(rand(100, 300))
new /datum/random_map/droppod/supply(null, drop_x, drop_y, drop_z, supplied_drop = drop_type) // Splat.

View File

@@ -36,7 +36,7 @@
traitors.spawn_uplink(N)
N.mind.tcrystals = DEFAULT_TELECRYSTAL_AMOUNT
N.mind.accept_tcrystals = 1
message_admins("[N]/([N.ckey]) has recieved an uplink and telecrystals from the syndicate beacon.")
message_admins("[N]/([N.ckey]) has received an uplink and telecrystals from the syndicate beacon.")
updateUsrDialog()
return

View File

@@ -10,7 +10,7 @@
*/
/obj/effect/alien
name = "alien thing"
desc = "theres something alien about this"
desc = "there's something alien about this"
icon = 'icons/mob/alien.dmi'
/*
@@ -289,3 +289,8 @@
if(0 to 1)
visible_message("<span class='alium'>[src.target] begins to crumble under the acid!</span>")
spawn(rand(150, 200)) tick()
<<<<<<< HEAD
=======
//Xenomorph Effect egg removed, replaced with Structure Egg.
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2

View File

@@ -95,7 +95,7 @@
to conduct a one time lawful search of the Suspect's person/belongings/premises and/or Department </br>
for any items and materials that could be connected to the suspected criminal act described below, </br>
pending an investigation in progress. The Security Officer(s) are obligated to remove any and all</br>
such items from the Suspects posession and/or Department and file it as evidence. The Suspect/Department </br>
such items from the Suspect's possession and/or Department and file it as evidence. The Suspect/Department </br>
staff is expected to offer full co-operation. In the event of the Suspect/Department staff attempting </br>
to resist/impede this search or flee, they must be taken into custody immediately! </br>
All confiscated items must be filed and taken to Evidence!</small></i></br>
@@ -113,9 +113,9 @@
/obj/item/weapon/storage/box/holowarrants // VOREStation addition starts
name = "holowarrant devices"
desc = "A box of holowarrant diplays for security use."
desc = "A box of holowarrant displays for security use."
/obj/item/weapon/storage/box/holowarrants/New()
..()
for(var/i = 0 to 3)
new /obj/item/device/holowarrant(src) // VOREStation addition ends
new /obj/item/device/holowarrant(src) // VOREStation addition ends

View File

@@ -226,13 +226,13 @@
/obj/item/device/radio/headset/heads/hos
name = "head of security's headset"
desc = "The headset of the hardass who protects your worthless lifes."
desc = "The headset of the hardass who protects your worthless lives."
icon_state = "com_headset"
ks2type = /obj/item/device/encryptionkey/heads/hos
/obj/item/device/radio/headset/heads/hos/alt
name = "head of security's bowman headset"
desc = "The headset of the hardass who protects your worthless lifes."
desc = "The headset of the hardass who protects your worthless lives."
icon_state = "com_headset_alt"
ks2type = /obj/item/device/encryptionkey/heads/hos

View File

@@ -30,7 +30,7 @@
"<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>",
"<span class='notice'>You hear a fwoosh followed by a thump.</span>")
if(special_delivery)
command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECIEVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!")
command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECEIVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!")
new /obj/effect/falling_effect/pizza_delivery/special(user.loc)
else
new /obj/effect/falling_effect/pizza_delivery(user.loc)

View File

@@ -90,7 +90,7 @@
return FALSE
// If the attacker_controller isn't next to the attacking toy (and doesn't have telekinesis), the battle ends.
if(!in_range(attacker, attacker_controller))
attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] seperates from [attacker], ending the battle.</span>", \
attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] separates from [attacker], ending the battle.</span>", \
"<span class='notice'> You separate from [attacker], ending the battle. </span>")
return FALSE
@@ -99,13 +99,13 @@
if(opponent.incapacitated())
return FALSE
if(!in_range(src, opponent))
opponent.visible_message("<span class='notice'> [opponent.name] seperates from [src], ending the battle.</span>", \
opponent.visible_message("<span class='notice'> [opponent.name] separates from [src], ending the battle.</span>", \
"<span class='notice'> You separate from [src], ending the battle. </span>")
return FALSE
// If it's not PVP and the attacker_controller isn't next to the defending toy (and doesn't have telekinesis), the battle ends.
else
if (!in_range(src, attacker_controller))
attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] seperates from [src] and [attacker], ending the battle.</span>", \
attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] separates from [src] and [attacker], ending the battle.</span>", \
"<span class='notice'> You separate [attacker] and [src], ending the battle. </span>")
return FALSE

View File

@@ -74,7 +74,7 @@
to_chat(user, "<span class='warning'>Circuit controls are locked.</span>")
return
var/existing_networks = jointext(network,",")
var/input = sanitize(tgui_input_text(usr, "Which networks would you like to connect this camera console circuit to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Multitool-Circuitboard interface", existing_networks))
var/input = sanitize(tgui_input_text(usr, "Which networks would you like to connect this camera console circuit to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Multitool-Circuitboard interface", existing_networks))
if(!input)
to_chat(usr, "No input found please hang up and try your call again.")
return

View File

@@ -122,7 +122,7 @@
/obj/item/weapon/implanter/sizecontrol
name = "size control implant"
desc = "Implant which allows to control host size via voice commands."
description_info = {"Only accessable by those who implanted the victim. Self-implanting allows everyone to change host size. The following special commands are available:
description_info = {"Only accessible by those who implanted the victim. Self-implanting allows everyone to change host size. The following special commands are available:
'Shrink' - host size decreases.
'Grow' - host size increases.
'Resize (NUMBER)' - for accurate size control.
@@ -141,10 +141,10 @@
//////////////////////////////
/obj/item/weapon/implanter/compliance
name = "compliance implant"
desc = "Implant which allows for implanting 'laws' or 'commands' in the host. Has a minature keyboard for typing laws into."
desc = "Implant which allows for implanting 'laws' or 'commands' in the host. Has a miniature keyboard for typing laws into."
description_info = {"An implant that allows for a 'law' or 'command' to be uploaded in the implanted host.
In un-modified organics, this is performed through manipulation of the nervous system and release of chemicals to ensure continued compliance.
In synthetics or modified organics, this implant uploads a virus to any compatable hardware.
In synthetics or modified organics, this implant uploads a virus to any compatible hardware.
Due to the small chemical capacity of the implant, the life of the implant is relatively small, wearing off within 24 hours or sooner."}
description_fluff = "Due to the illegality of these types of implants, they are often made in clandestine facilities with a complete lack of quality control \

View File

@@ -128,7 +128,7 @@
/obj/item/weapon/storage/box/syndie_kit/imp_aug/sprinter
case_type = /obj/item/weapon/implantcase/sprinter
/obj/item/weapon/storage/box/syndie_kit/imp_aug/armblade
case_type = /obj/item/weapon/implantcase/armblade
@@ -146,7 +146,7 @@
/obj/item/weapon/storage/box/syndie_kit/chameleon
name = "chameleon kit"
desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately."
desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold separately."
starts_with = list(
/obj/item/weapon/storage/backpack/chameleon/full,
/obj/item/weapon/gun/energy/chameleon

View File

@@ -58,10 +58,10 @@
..()
/datum/category_item/catalogue/anomalous/precursor_a/alien_wirecutters
name = "Precursor Alpha Object - Wire Seperator"
name = "Precursor Alpha Object - Wire Separator"
desc = "An object appearing to have a tool shape. It has two handles, and two \
sides which are attached to each other in the center. At the end on each side \
is a sharp cutting edge, made from a seperate material than the rest of the \
is a sharp cutting edge, made from a separate material than the rest of the \
tool.\
<br><br>\
This tool appears to serve the same purpose as conventional wirecutters, due \

View File

@@ -34,7 +34,7 @@
<B>Captain Willis 06:13:15:</B> (Expletives), I'm turning us around. Put out a distress call to Control, we'll be back in Sif orbit in a couple of minutes.<BR>
**
<BR>
<B>V.I.S Traffic Control 06:15:49:</B> MBT-540 we are recieving you. Your atmospheric sensors are reading potentially harmful toxins in your cargo bay. Advise locking down interior cargo bay doors. Please stand by.<BR>
<B>V.I.S Traffic Control 06:15:49:</B> MBT-540 we are receiving you. Your atmospheric sensors are reading potentially harmful toxins in your cargo bay. Advise locking down interior cargo bay doors. Please stand by.<BR>
<B>Captain Adisu 06:16:10:</B> Understood. <BR> ** <BR><B>V.I.S Traffic Control 06:27:02: </B> MBT-540, we have no docking bays available at this time, are you equipped for atmospheric re-entry?<BR>
<B>Captain Willis 06:27:12:</B> We-We are shielded. But we have fuel and air for-<BR>
<B>V.I.S Traffic Control 06:27:17:</B> Please make an emergency landing at the coordinates provided and standby for further information.<BR>
@@ -172,7 +172,7 @@
<B>END LOG</B><BR>
<BR>
<B>CATALOGUER VOICE RECOGNITION RESULTS:</B><BR>
No match found for either speaker, but contextual clues and use of Old Earth russian (\'brat\', approximately \'brother\' or \'pal\') suggests out-of-sector criminal elements.
No match found for either speaker, but contextual clues and use of Old Earth Russian (\'brat\', approximately \'brother\' or \'pal\') suggests out-of-sector criminal elements.
"}
/obj/structure/prop/blackbox/gecko_wreck

View File

@@ -1,5 +1,5 @@
/obj/structure/salvageable
name = "broken macninery"
name = "broken machinery"
desc = "Broken beyond repair, but looks like you can still salvage something from this if you had a prying implement."
icon = 'icons/obj/salvageable.dmi'
density = TRUE
@@ -400,3 +400,33 @@
/obj/item/weapon/computer_hardware/card_slot = 40,
/obj/item/weapon/computer_hardware/network_card/advanced = 40
)
<<<<<<< HEAD
=======
/obj/structure/salvageable/slotmachine1
name = "broken slot machine"
icon_state = "slot1"
salvageable_parts = list(
/obj/item/stack/cable_coil{amount = 5} = 90,
/obj/item/weapon/stock_parts/console_screen = 90,
/obj/item/stack/cable_coil{amount = 5} = 90,
/obj/item/stack/material/glass{amount = 5} = 90,
/obj/item/weapon/stock_parts/capacitor = 60,
/obj/item/weapon/stock_parts/capacitor = 60,
/obj/item/weapon/computer_hardware/network_card/advanced = 40
)
/obj/structure/salvageable/slotmachine2
name = "broken slot machine"
icon_state = "slot2"
salvageable_parts = list(
/obj/item/stack/cable_coil{amount = 5} = 90,
/obj/item/weapon/stock_parts/console_screen = 90,
/obj/item/stack/cable_coil{amount = 5} = 90,
/obj/item/stack/material/glass{amount = 5} = 90,
/obj/item/weapon/stock_parts/capacitor = 60,
/obj/item/weapon/stock_parts/capacitor = 60,
/obj/item/weapon/computer_hardware/network_card/advanced = 40
)
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2

View File

@@ -1853,7 +1853,7 @@
/obj/structure/sign/flag/fivearrows
name = "Five Arrows flag"
desc = "The red flag of the Five Arrows."
description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to percieved \
description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to perceived \
failures in aiding the Sagittarius Heights during the Skathari Incursion. The success of the government in achieving effective local defense and prosperity has \
since attracted the membership of Kauq'xum, a remote Skrellian colony. \The Five Arrows formed the model for SolGov's own semi-autonomous \"Regional Blocs\"."
icon_state = "fivearrows"
@@ -1868,7 +1868,7 @@
/obj/item/flag/fivearrows
name = "Five Arrows flag"
desc = "The red flag of the Five Arrows."
description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to percieved \
description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to perceived \
failures in aiding the Sagittarius Heights during the Skathari Incursion. The success of the government in achieving effective local defense and prosperity has \
since attracted the membership of Kauq'xum, a remote Skrellian colony. \The Five Arrows formed the model for SolGov's own semi-autonomous \"Regional Blocs\"."
flag_path = "fivearrows"

View File

@@ -1,57 +1,57 @@
/turf/simulated/wall/bay/steel
desc = "It has a steel stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a steel stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#3d5e80"
/turf/simulated/wall/bay/red
desc = "It has a red stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a red stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#8c1d11"
/turf/simulated/wall/bay/brown
desc = "It has a brown stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a brown stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#785134"
/turf/simulated/wall/bay/purple
desc = "It has a purple stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a purple stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#5a19a8"
/turf/simulated/wall/bay/blue
desc = "It has a blue stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a blue stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#2e2aa1"
/turf/simulated/wall/bay/orange
desc = "It has a orange stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a orange stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#e6ab22"
/turf/simulated/wall/bay/white
desc = "It has a white stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a white stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#ffffff"
/turf/simulated/wall/bay/black
desc = "It has a black stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a black stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#2e2e2e"
/turf/simulated/wall/bay/green
desc = "It has a green stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a green stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#00ab03"
/////R-Wall
/turf/simulated/wall/bay/r_wall/steel
desc = "It has a steel stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a steel stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#3d5e80"
/turf/simulated/wall/bay/r_wall/red
desc = "It has a red stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a red stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#8c1d11"
/turf/simulated/wall/bay/r_wall/brown
desc = "It has a brown stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a brown stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#785134"
/turf/simulated/wall/bay/r_wall/purple
desc = "It has a purple stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a purple stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#5a19a8"
/turf/simulated/wall/bay/r_wall/blue
desc = "It has a blue stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a blue stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#2e2aa1"
/turf/simulated/wall/bay/r_wall/orange
desc = "It has a orange stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a orange stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#e6ab22"
/turf/simulated/wall/bay/r_wall/white
desc = "It has a white stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a white stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#ffffff"
/turf/simulated/wall/bay/r_wall/black
desc = "It has a black stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a black stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#2e2e2e"
/turf/simulated/wall/bay/r_wall/green
desc = "It has a green stripe! A huge chunk of metal used to seperate rooms."
desc = "It has a green stripe! A huge chunk of metal used to separate rooms."
stripe_color = "#00ab03"
/////Low wall
/obj/structure/low_wall/bay/steel

View File

@@ -1,6 +1,6 @@
/turf/simulated/wall
name = "wall"
desc = "A huge chunk of metal used to seperate rooms."
desc = "A huge chunk of metal used to separate rooms."
icon = 'icons/turf/wall_masks.dmi'
icon_state = "generic"
opacity = 1

View File

@@ -105,7 +105,7 @@ world/New()
continue
output += "<b>Reported player:</b> [N.offender_key](CID: [N.offender_cid])<br>"
output += "<b>Offense:</b>[N.body]<br>"
output += "<small>Occured at [time2text(N.date,"MM/DD hh:mm:ss")]</small><br>"
output += "<small>Occurred at [time2text(N.date,"MM/DD hh:mm:ss")]</small><br>"
output += "<small>authored by <i>[N.author]</i></small><br>"
output += " <a href='?src=\ref[report_topic_handler];client=\ref[src];[HrefToken()];action=remove;ID=[N.ID]'>Flag as Handled</a>"
if(src.key == N.author)
@@ -150,7 +150,7 @@ world/New()
if(N.ID == ID)
found = N
if(!found)
to_chat(src, "<b>* An error occured, sorry.</b>")
to_chat(src, "<b>* An error occurred, sorry.</b>")
found.done = 1
@@ -172,7 +172,7 @@ world/New()
if(N.ID == ID)
found = N
if(!found)
to_chat(src, "<b>* An error occured, sorry.</b>")
to_chat(src, "<b>* An error occurred, sorry.</b>")
var/body = tgui_input_text(src.mob, "Enter a body for the news", "Body", multiline = TRUE, prevent_enter = TRUE)
if(!body) return

View File

@@ -167,7 +167,7 @@
Right Mouse Button + shift on any mob = Command selected mobs to follow mob regardless of faction<br>\
Note: The following also reset the mob's home position:<br>\
Right Mouse Button on tile = Command selected mobs to move to tile (will cancel if enemies are seen)<br>\
Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be inturrupted by enemies)<br>\
Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be interrupted by enemies)<br>\
Right Mouse Button + alt on obj/turfs = Command selected mobs to attack obj/turf<br>\
***********************************************************</span>")
return 1

View File

@@ -459,11 +459,11 @@
walk_to_target()
if(STANCE_MOVE)
if(hostile && find_target()) // This will switch its stance.
ai_log("handle_stance_strategical() : STANCE_MOVE, found target and was inturrupted.", AI_LOG_TRACE)
ai_log("handle_stance_strategical() : STANCE_MOVE, found target and was interrupted.", AI_LOG_TRACE)
return
if(STANCE_FOLLOW)
if(hostile && find_target()) // This will switch its stance.
ai_log("handle_stance_strategical() : STANCE_FOLLOW, found target and was inturrupted.", AI_LOG_TRACE)
ai_log("handle_stance_strategical() : STANCE_FOLLOW, found target and was interrupted.", AI_LOG_TRACE)
return
else if(leader)
ai_log("handle_stance_strategical() : STANCE_FOLLOW, going to calculate_path([leader]).", AI_LOG_TRACE)

View File

@@ -2,7 +2,7 @@
/datum/blob_type/fabrication_swarm
name = "iron tide"
desc = "A swarm of self replicating construction nanites. Incredibly illegal, but only mildly dangerous."
effect_desc = "Slow-spreading, but incredibly resiliant. It has a chance to harden itself against attacks automatically for no resource cost, and uses cheaply-constructed hivebots as soldiers."
effect_desc = "Slow-spreading, but incredibly resilient. It has a chance to harden itself against attacks automatically for no resource cost, and uses cheaply-constructed hivebots as soldiers."
ai_desc = "defensive"
difficulty = BLOB_DIFFICULTY_MEDIUM // Emitters are okay, EMP is great.
color = "#666666"
@@ -41,4 +41,4 @@
if(L.stat != DEAD && L.isSynthetic())
L.adjustBruteLoss(-1)
L.adjustFireLoss(-1)
return
return

View File

@@ -219,7 +219,7 @@
"Finlay","Onasilos","Makropolus","Surt","Boinayel",
"Eyeke","Cayahuanca","Hamarik","Abol","Hiisi",
"Belisama","Mintome","Neri","Toge","Iolaus",
"Koyopa","Independance","Ixbalanque","Magor","Fold",
"Koyopa","Independence","Ixbalanque","Magor","Fold",
"Santamasa","Noifasui","Kavian","Babylonia","Bran",
"Alef","Lete","Chura","Wadirum","Buru",
"Umbaasaa","Vytis","Peitruss","Trimobe","Baiduri",

View File

@@ -1,6 +1,6 @@
/obj/item/weapon/storage/box/casino
name = "prize box"
desc = "It's a lovely golden tinted cardboard box, maybe theres something valuable inside?"
desc = "It's a lovely golden tinted cardboard box, maybe there's something valuable inside?"
icon = 'icons/obj/casino.dmi'
icon_state = "casino_box"
@@ -91,4 +91,4 @@
/obj/item/roulette_ball/cheat/black,
/obj/item/roulette_ball/cheat/zeros,
/obj/item/roulette_ball/cheat/odd,
/obj/item/roulette_ball/cheat/even)
/obj/item/roulette_ball/cheat/even)

View File

@@ -45,7 +45,7 @@
The values of cards are as follow:
<ul>
<li>Ace - 1 or 11, can be freely decided at any moment</li>
<li>2 - 10 - value coresponding to their number</li>
<li>2 - 10 - value corresponding to their number</li>
<li>All face cards excluding joker - Value of 10</li>
</ul>
A game of blackjack begins with the dealer giving the gambler two cards, in normal blackjack all cards dealt to gambler and dealer are always shown. The two cards dealt have their values put together, the gambler has three choices, stand, hit, or double down.
@@ -60,17 +60,17 @@
<li>Hard 17 - They dealer must stop if they get a value of 17.</li>
</ul>
The casino who supplies this version of the manual follows the rule of hard 17. <br>
The game ends when the dealer busts, reaches the threshold of what they are allowed to draw, or if they get a higher value than the gambler. Again, the one who has the highest value that isnt higher than 21 wins, but if both has the same value no one wins and the bet goes back to the gambler. <br>
And thats it! Now go out there and gamble your savings away! This casino allows bets between 5 and 50 with double down ignoring that limit! <br><br>
The game ends when the dealer busts, reaches the threshold of what they are allowed to draw, or if they get a higher value than the gambler. Again, the one who has the highest value that isn't higher than 21 wins, but if both has the same value no one wins and the bet goes back to the gambler. <br>
And that's it! Now go out there and gamble your savings away! This casino allows bets between 5 and 50 with double down ignoring that limit! <br><br>
But wait! Theres more! Theres also group blackjack! This game is a little different, the dealer can be part of it or simple deal for players, this game works differently with everyone keeping their hands hidden, everyone makes initial bets, gets two facedown cards, then its a matter of trying to get as good a hand as possible, but if you go bust, its over. But dont tell or show until everyone reveals! If youre going down, its best if youre opponents dont know they simply can play safe and win, if youre lucky everyone else gets themselves busted and you dont lose your beloved chips! <br>
Its kinda like texas hold em in a way, everyone draws, folks can raise bets or fold, then draw more. Rinse and repeat until no one wants to raise any more nor draw cards, if everyone except one person has folded, they win by default even if they have busted, cause they dont need to reveal their hand that game, so you can choose to either sit and wait and fold if someone raise the bets, or you can gamble and make it look like you have an amazing hand and win by default since everyone else folds and no one is wise that you had a bust! This game has turned from simple probability and chance against the dealer to a game of risk and deception, fun fun fun!
But wait! There's more! There's also group blackjack! This game is a little different, the dealer can be part of it or simple deal for players, this game works differently with everyone keeping their hands hidden, everyone makes initial bets, gets two facedown cards, then its a matter of trying to get as good a hand as possible, but if you go bust, its over. But don't tell or show until everyone reveals! If your going down, its best if your opponents don't know they simply can play safe and win, if you're lucky everyone else gets themselves busted and you don't lose your beloved chips! <br>
Its kinda like Texas hold em in a way, everyone draws, folks can raise bets or fold, then draw more. Rinse and repeat until no one wants to raise any more nor draw cards, if everyone except one person has folded, they win by default even if they have busted, cause they don't need to reveal their hand that game, so you can choose to either sit and wait and fold if someone raise the bets, or you can gamble and make it look like you have an amazing hand and win by default since everyone else folds and no one is wise that you had a bust! This game has turned from simple probability and chance against the dealer to a game of risk and deception, fun fun fun!
<h1><a name="Roulette">Roulette</a></h1>
So this game of roulette is all about chance! what happens is that people bet on different odds and hope for the best as the dealer rolls the ball and makes that roulette thingy make than fun addicting spin! Once it lands on a number between 0 and 36 its either bust or payout! Pretty simple, right? <br>
Everyone starts by putting their bets down, people can bet more than once before the ball goes rolling, the odds and their payoffs are these:
<ul>
<li>Single number - 35/1 payoff - The most unlikely one to get, but if the ball lands on your number, then youre loaded!</li>
<li>Single number - 35/1 payoff - The most unlikely one to get, but if the ball lands on your number, then you're loaded!</li>
<li>Split Number - 17/1 - Choose an interval of 2, not very likely and therefore big reward!</li>
<li>Row - 11/1 - Choose an interval of 3, more likely so not the biggest outcome!</li>
<li>Split - 8/1 - Choose an interval of 4, not gonna win big time.</li>
@@ -78,19 +78,19 @@
<li>Column - 2/1 - Choose an interval of 12, boring, but likely.</li>
<li>Red/Black or even/odd numbers - 1/1 - Odd or even numbers explains themselves. Red numbers are from 0 to 11 and 18 to 29 while the rest is black. These are the safest bets there are!</li>
</ul>
Theres not much more to it! Bets made, ball rolls, number announced, people win, people lose! Bets allowed here are from 1 to 25 per bet. Oh, im also being told this casino has the fancy rule that if ball lands on 0, one wins at least one bet no matter what it is! So lets hope you got that big bet on a single number!
There's not much more to it! Bets made, ball rolls, number announced, people win, people lose! Bets allowed here are from 1 to 25 per bet. Oh, I'm also being told this casino has the fancy rule that if ball lands on 0, one wins at least one bet no matter what it is! So lets hope you got that big bet on a single number!
<h1><a name="Poker">Poker</a></h1>
Aaah yes, good old poker. This casino runs by the rules of texas hold em, though the might be a little modified to be simpler for the average joe. In a game of poker it can be a single gambler and a dealer against each other, but most often its the dealer making the game proceed while several gamblers fights tooth and nail to steal each others chips, but the dealer can still join in on the free for all if they so wish! <br>
Aaah yes, good old poker. This casino runs by the rules of Texas hold em, though the might be a little modified to be simpler for the average joe. In a game of poker it can be a single gambler and a dealer against each other, but most often its the dealer making the game proceed while several gamblers fights tooth and nail to steal each others chips, but the dealer can still join in on the free for all if they so wish! <br>
To simply explain the game, people gamble with each other, a game of trying to get the best hand and raise bets or back out depending on what the outcome may be. The game starts with everyone betting a certain amount, it can be 5 or 10 chips depending on dealer, but if one wants to join, there needs to be chips on that table! Once everyone has made their initial bet, everyone gets two cards face down, these are kept hidden, no one not even dealer gets to see players cards until the end, not even folded cards are to be shown unless wanted to, sometimes its better making people unsure if you dropped out with bad cards or if you have other motives, deception is a large part of this game! <br>
With everyone having cards dealt, its time for the dealer to lay three on the table face up, these cards are 3 of 5 cards in the community pool, everyone can use these cards to make sets like pairs and such, this doesnt mean they are taken, multiple people can use the same community card for their own sets! <br>
With the community having three we enter the second betting stage, here people have two options, standing or raising. Standing means you dont want to raise, raising explains itself, though if someone bets, people have three options, commit putting the chips in to risk as much as the raised bet, but if one doesnt have enough, then they can still go all in with their remaining chips, one can also drop out if its too risky, the chips bet will remain on the table, but at least you wont lose more eh? Final one is to raise further, sometimes people can dare each other to raise more, but its not allowed for someone to raise, then raise further if no one else raises after them! <br>
With everyone having cards dealt, its time for the dealer to lay three on the table face up, these cards are 3 of 5 cards in the community pool, everyone can use these cards to make sets like pairs and such, this doesn't mean they are taken, multiple people can use the same community card for their own sets! <br>
With the community having three we enter the second betting stage, here people have two options, standing or raising. Standing means you don't want to raise, raising explains itself, though if someone bets, people have three options, commit putting the chips in to risk as much as the raised bet, but if one doesn't have enough, then they can still go all in with their remaining chips, one can also drop out if its too risky, the chips bet will remain on the table, but at least you wont lose more eh? Final one is to raise further, sometimes people can dare each other to raise more, but its not allowed for someone to raise, then raise further if no one else raises after them! <br>
As said earlier, we got like a community pool of 5 cards total, this time another card is revealed and we enter a new betting phase, then the final fifth card is revealed and final bets are made, and then the cards are revealed so it can be determined who has the best hand! If two or more have equally good sets, then the chips are split evenly between them. <br>
But notice, if someone is left because everyone else didnt dare to raise with their bet, they can decide to not reveal their hand, they might have had a winning hand, or maybe its terrible and they just bluffed their way to victory, only they know and can decide if they want to expose their cards to gloat or confuse their opponents. So in summary, the game can be simple, but hard to master! <br><br>
But notice, if someone is left because everyone else didn't dare to raise with their bet, they can decide to not reveal their hand, they might have had a winning hand, or maybe its terrible and they just bluffed their way to victory, only they know and can decide if they want to expose their cards to gloat or confuse their opponents. So in summary, the game can be simple, but hard to master! <br><br>
And here is the order of winning hands folks!
<ul>
<li>Royal flush - The big and best one, this is a set of a 10, Ace, Knave/Jack, Queen and King of the same suit.</li>
<li>Straight flush - This one is also definently a winner, though can be easier to get as it just needs to be five cards making a sraight of the same suit, an example being black 3 to 7.</li>
<li>Straight flush - This one is also definitely a winner, though can be easier to get as it just needs to be five cards making a straight of the same suit, an example being black 3 to 7.</li>
<li>Four of a kind - Nice one, if you get this then you got a good chance to win. The value of the cards determine who wins, so ace is the best followed by king, queen and jack, then the peasant number cards!</li>
<li>Full House - This one is good, but it requires you have three of a kind and a two of a kind, obviously value is part of the house, so the best roof is made of Ace with king making a strong foundation!</li>
<li>Flush - This one requires the gambler to have 5 cards of a suit, not in any order, but the highest value card determines worth, so hope you got an Ace in your combo!</li>
@@ -98,22 +98,22 @@
<li>Three of a kind - Explains itself well enough, get three together and you got something going, lets hope you can build a house!</li>
<li>Two pairs - You almost got yourself a house! But at least at this point its something!</li>
<li>A pair - The worst set you can get, but you might be extremely lucky and have this while others have an inferior pair or the worst possible hand ever which is...</li>
<li>High card - The absolute worst, if you cant get any of those sets, then you got this sad case, if a game mananages to end with no one getting a set, then the one with the highest value cards wins!</li>
<li>High card - The absolute worst, if you cant get any of those sets, then you got this sad case, if a game manages to end with no one getting a set, then the one with the highest value cards wins!</li>
</ul>
Wew, what a long lesson, but thats how one does the Texas hold em here at this casino, hope you guys have fun winning and losing your hard earned cash with this one!
Wew, what a long lesson, but that's how one does the Texas hold em here at this casino, hope you guys have fun winning and losing your hard earned cash with this one!
<h1><a name="CoH">Cards against the galaxy</a></h1>
So hear this, NT is now sponsoring team building at the casino, so folks who wants to just relax with friends, play some games, earn chips with no risk, even the ones broke can join in on a fun game of Cards against the galaxy and have fun! <br>
The idea is that once a round has concluded and a casino member is present to see the game being actually played, everyone gets 10 chips while the one who won the round gets 25 instead! Interested? Good! Its easy and simple to play and very fun and vulgar! <br><br>
The game is best played with at least 4 players and starts with everyone drawing 7 white cards, the person who most recently pooped starts as the 'card czar', but folks can agree on another criteria for the czar or simply pick one. Each round the current card czar draws a black card that has text written on it and blank lines, everyone aside from the czar takes a white card from their hand for every blank line which they find funny in that sentence and puts on the table face down with the others. The card czar cant know who has which white card and simply reads the black card with the white ones, the most funniest combination is choosen by the czar and the one who made that combination is the current rounds winner and the next rounds czar. At the end of each round everyone makes sure to draw enough white card to have 7 on hand and if theres a casino staff member playing or watching, they note down or hand out chips for everyone, and if they are playing, they get to add chips to their own personal stockpile too! <br>
Thats it for cards against the galaxy! Simple, fun and vulgar, whats there not to love?
The game is best played with at least 4 players and starts with everyone drawing 7 white cards, the person who most recently pooped starts as the 'card czar', but folks can agree on another criteria for the czar or simply pick one. Each round the current card czar draws a black card that has text written on it and blank lines, everyone aside from the czar takes a white card from their hand for every blank line which they find funny in that sentence and puts on the table face down with the others. The card czar cant know who has which white card and simply reads the black card with the white ones, the most funniest combination is chosen by the czar and the one who made that combination is the current rounds winner and the next rounds czar. At the end of each round everyone makes sure to draw enough white card to have 7 on hand and if there's a casino staff member playing or watching, they note down or hand out chips for everyone, and if they are playing, they get to add chips to their own personal stockpile too! <br>
That's it for cards against the galaxy! Simple, fun and vulgar, what's there not to love?
<h1><a name="Prizes">Prizes</a></h1>
Hey folks, welcome to the prize section! This part is definently important for you folks operating the prize booth! First off I wanna tell you some great news! Nanotransen has gone along with a nice deal that allows crew to occasionally keep their hard earned rewards on station for a limited time, now you can enjoy your new fancy toolbelt or bluespace beaker for more than just the shift where the casino comes around! <br>
Hey folks, welcome to the prize section! This part is definitely important for you folks operating the prize booth! First off I wanna tell you some great news! Nanotransen has gone along with a nice deal that allows crew to occasionally keep their hard earned rewards on station for a limited time, now you can enjoy your new fancy toolbelt or bluespace beaker for more than just the shift where the casino comes around! <br>
((Be aware, there can be limitations on how many rewards you get to keep after the shift, it might be unfair if some shows up and wins one thing, while they watch as command staff crew with high background income as well as hyperactive miners walks home with 20 prizes they get to enjoy while having almost done no gambling at all.)) <br><br>
Lets get to the prizes and exchange rate before we get started on the stuff specifically for the booth operators, so heres the current prizes one can win and their costs! Be aware there might be new prizes or absent ones from time to time! <br>
@@ -127,9 +127,9 @@
This section was outdated, someone better write it.
Thats it for prizes! <br><br>
That's it for prizes! <br><br>
Now comes the part for the both operators, you got a very important job, it has a lot of responsibility, so it means that you gotta put that first before your own fun, cause unless you do it, a lot of folks are gonna be left sad and dissappointed they cant get any goodies! But the process is simple and can be quick, someone comes to you, they want some chips, or thalers back or a prize, you simply check this nice guide above to determine cost and ask for the amount of thalers or chips needed, if its a prize, then you follow this procedure:
Now comes the part for the both operators, you got a very important job, it has a lot of responsibility, so it means that you gotta put that first before your own fun, cause unless you do it, a lot of folks are gonna be left sad and disappointed they cant get any goodies! But the process is simple and can be quick, someone comes to you, they want some chips, or thalers back or a prize, you simply check this nice guide above to determine cost and ask for the amount of thalers or chips needed, if its a prize, then you follow this procedure:
<ol>
<li>First get the thalers or chips for payment.</li>
<li>Before giving the prize you take out your prize winner folder and a piece of paper, this paper will be named after the one getting the reward and will have further prizes noted down into it, so make sure its safe in that folder!</li>
@@ -137,18 +137,18 @@
<li>Once written down, you just put the paper back in the folder and hand over the prize!</li>
</ol>
((When shift is nearing its end you pray to staff or DM the one responsible for the event, they will get the folder and copy paste all the reward info before shift is over and ensure people get their rewards. This is a very important job and we understand it might not be so fun being restricted during an event, but just like the rest of volunteer staff, you get rewarded with guaranteed prizes to enjoy after the shift for being a big help!)) <br>
((This gets to the sour part, cheating and giving others and yourself free prizes and/or chips is absolutely forbidden, this has OOC consequences and will likely blacklist you from being important roles in future events. Though dont fear getting punished even if you havent done anything wrong, we will rather let cheaters slip than let honest players get wrongfully punished!))
((This gets to the sour part, cheating and giving others and yourself free prizes and/or chips is absolutely forbidden, this has OOC consequences and will likely blacklist you from being important roles in future events. Though don't fear getting punished even if you haven't done anything wrong, we will rather let cheaters slip than let honest players get wrongfully punished!))
<h1><a name="SentientPrizes">Sentient prizes</a></h1>
Goodness me this is quite the casino huh? Who would have thought one could win other people as a prize? Well you can do just about anything you want with them! Be it just company, some less children friendly company, heck you can even eat them or make them eat you! The options and possibilities are quite frankly limitless! <br>
Now you might ask, how does one get these fancy prizes? Well they can be obtained by checking in at the exchange both and see the list of prizes, there might be none, there might be many, it depends on volunteers and losers! This brings us first to volunteers and then to losers! <br>
Volunteering is simple! Anyone can walk up to the booth and ask to be a sentient prize, what this means is that you get a nice sum of 150 chips for you to do whatever you want, but someone might come at any point and claim you! <br>
Losers are obtained differently, if youre completly busted and have nothing left, you become a prize that the one you lost to can do whatever they want with, this means both gamblers and dealers can end up as a prize, though if for whatever reason you dont become their prize, you get added to the list for someone else to enjoy. Becoming a prize means you also get 100 chips in compensation! <br>
Losers are obtained differently, if you're completely busted and have nothing left, you become a prize that the one you lost to can do whatever they want with, this means both gamblers and dealers can end up as a prize, though if for whatever reason you don't become their prize, you get added to the list for someone else to enjoy. Becoming a prize means you also get 100 chips in compensation! <br>
Now hear this! The casino has decided that to spice things up, folks can bet themselves at any time and arent already a prize on the list! Doesnt matter if youre rich or broke, playing blackjack or roulette, you can bet yourself in any game and youre worth 250 chips! But be careful, cause if you lose, youre the winners prize! They can keep you, give you to someone else. or to the prize booth and get the chips you would have gotten as volunteer! But if given to the booth, the winner cant buy their prize back for the lower cost!<br><br>
Now hear this! The casino has decided that to spice things up, folks can bet themselves at any time and aren't already a prize on the list! Doesn't matter if you're rich or broke, playing blackjack or roulette, you can bet yourself in any game and you're worth 250 chips! But be careful, cause if you lose, you're the winners prize! They can keep you, give you to someone else. or to the prize booth and get the chips you would have gotten as volunteer! But if given to the booth, the winner cant buy their prize back for the lower cost!<br><br>
((Sour part again, but very important. These sentient prizes can be fun, but one thing always dictates how these things goes down, preferences and ooc wants. If preferences dont line up and people dont agree to do winner/loser scene it becomes sentient prize on list. And someone cant win a prize if the prize ooc doesnt want to do what the winner wants to do. We still wish people to try and reach out and try things with new people and/or new things they are comfortable doing, but never shall anyone be forced into a situation they dont want!))
((Sour part again, but very important. These sentient prizes can be fun, but one thing always dictates how these things goes down, preferences and ooc wants. If preferences don't line up and people don't agree to do winner/loser scene it becomes sentient prize on list. And someone cant win a prize if the prize ooc doesn't want to do what the winner wants to do. We still wish people to try and reach out and try things with new people and/or new things they are comfortable doing, but never shall anyone be forced into a situation they don't want!))
</body>
</html>
"}
"}

View File

@@ -0,0 +1,351 @@
//Original Casino Code created by Shadowfire117#1269 - Ported from CHOMPstation
//Modified by GhostActual#2055 for use with VOREstation
// Use this define to register a prize!
// * n - The proper name of the purchasable
// * o - The object type path of the purchasable to spawn
// * r - The amount to dispense
// * p - The price of the purchasable in chips
// * l - The restriction of the item
#define CASINO_PRIZE(n, o, r, p, l) n = new /datum/data/casino_prize(n, o, r, p, l)
/datum/data/casino_prize
var/equipment_path = null
var/equipment_amt = 1
var/cost = 0
var/category = null
var/restriction = null
/datum/data/casino_prize/New(name, path, amt, cost, restriction)
src.name = name
src.equipment_path = path
src.equipment_amt = amt
src.cost = cost
src.category = category
src.restriction = restriction
/obj/machinery/casino_prize_dispenser
name = "Casino Prize Exchanger"
desc = "Exchange your chips to obtain wonderful prizes! Hoepfully you'll get to keep some of them for a while."
icon = 'icons/obj/casino.dmi'
icon_state ="casino_prize_dispenser"
var/icon_vend ="casino_prize_dispenser-vend"
anchored = 1
density = 1
opacity = 0
var/list/item_list
clicksound = "button"
var/vending_sound = "machines/vending/vending_drop.ogg"
// Power
use_power = USE_POWER_IDLE
idle_power_usage = 10
var/vend_power_usage = 150 //actuators and stuff
// Vending-related
var/datum/data/casino_prize/currently_vending = null // What we're requesting payment for right now
var/list/log = list() //Log only SS13 staff is allowed to look at, CKEYS are listed here for record keeping of prizes and players for events!
var/category_weapons = 2 //For listing categories, if false then prizes of this categories cant be obtained nor bought for post-shift enjoyment
var/category_gear = 2 //If 1 prizes will be only logged
var/category_clothing = 2 //If 2 prizes will both be logged and spawned
var/category_misc = 2
var/category_drinks = 2
var/category_implants = 1
var/category_event = 1 //For special events, holidays, etc
/obj/machinery/casino_prize_dispenser/Initialize()
. = ..()
power_change()
item_list = list()
item_list["Weapons"] = list(
CASINO_PRIZE("Scepter", /obj/item/weapon/scepter, 1, 2500, "weapons"),
CASINO_PRIZE("Rapier", /obj/item/weapon/melee/rapier, 1, 3000, "weapons"),
CASINO_PRIZE("Chain of Command", /obj/item/weapon/melee/chainofcommand, 1, 1250, "weapons"),
CASINO_PRIZE("Golden Bat", /obj/item/weapon/material/twohanded/baseballbat/gold, 1, 1000, "weapons"),
CASINO_PRIZE("Size Gun", /obj/item/weapon/gun/energy/sizegun, 1, 1500, "weapons"),
CASINO_PRIZE("Gradual Size Gun", /obj/item/device/slow_sizegun, 1, 1500, "weapons"),
CASINO_PRIZE("Metamorphosis Ray", /obj/item/weapon/gun/energy/mouseray/metamorphosis, 1, 6000, "weapons"),
CASINO_PRIZE("Net Gun", /obj/item/weapon/gun/energy/netgun, 1, 3000, "weapons"),
)
item_list["Gear"] = list(
CASINO_PRIZE("Experimental Welder", /obj/item/weapon/weldingtool/experimental, 1, 500, "gear"),
CASINO_PRIZE("Chemsprayer", /obj/item/weapon/reagent_containers/spray/chemsprayer, 1, 1250, "gear"),
CASINO_PRIZE("Bluespace Beaker", /obj/item/weapon/reagent_containers/glass/beaker/bluespace, 1, 1000, "gear"),
CASINO_PRIZE("Cryo Beaker", /obj/item/weapon/reagent_containers/glass/beaker/noreact, 1, 1000, "gear"),
CASINO_PRIZE("Golden Pickaxe", /obj/item/weapon/pickaxe/gold, 1, 1000, "gear"),
)
item_list["Clothing"] = list(
CASINO_PRIZE("Shark mask", /obj/item/clothing/mask/shark, 1, 250, "clothing"),
CASINO_PRIZE("Pig mask", /obj/item/clothing/mask/pig, 1, 250, "clothing"),
CASINO_PRIZE("Luchador mask", /obj/item/clothing/mask/luchador, 1, 250, "clothing"),
CASINO_PRIZE("Horse mask", /obj/item/clothing/mask/horsehead, 1, 250, "clothing"),
CASINO_PRIZE("Goblin mask", /obj/item/clothing/mask/goblin, 1, 250, "clothing"),
CASINO_PRIZE("Fake moustache", /obj/item/clothing/mask/fakemoustache, 1, 250, "clothing"),
CASINO_PRIZE("Dolphin mask", /obj/item/clothing/mask/dolphin, 1, 250, "clothing"),
CASINO_PRIZE("Demon mask", /obj/item/clothing/mask/demon, 1, 250, "clothing"),
CASINO_PRIZE("Chameleon mask", /obj/item/clothing/under/chameleon, 1, 1000, "clothing"),
CASINO_PRIZE("Chameleon tie", /obj/item/clothing/accessory/chameleon, 1, 750, "clothing"),
CASINO_PRIZE("Ian costume", /obj/item/clothing/suit/storage/hooded/costume/ian, 1, 250, "clothing"),
CASINO_PRIZE("Carp costume", /obj/item/clothing/suit/storage/hooded/costume/carp, 1, 250, "clothing"),
CASINO_PRIZE("Plague doctor costume", /obj/item/weapon/storage/box/casino/costume_plaguedoctor, 1, 500, "clothing"),
CASINO_PRIZE("Wizard costume", /obj/item/weapon/storage/box/casino/costume_wizard, 1, 500, "clothing"),
CASINO_PRIZE("Pirate costume", /obj/item/weapon/storage/box/casino/costume_pirate, 1, 500, "clothing"),
CASINO_PRIZE("Commie costume", /obj/item/weapon/storage/box/casino/costume_commie, 1, 500, "clothing"),
CASINO_PRIZE("Marine costume", /obj/item/weapon/storage/box/casino/costume_marine, 1, 500, "clothing"),
CASINO_PRIZE("Cowboy costume", /obj/item/weapon/storage/box/casino/costume_cowboy, 1, 500, "clothing"),
CASINO_PRIZE("Golden Collar", /obj/item/clothing/accessory/collar/gold, 1, 250, "clothing"),
CASINO_PRIZE("Decorative Casino Sentient Prize Collar", /obj/item/clothing/accessory/collar/casinosentientprize_fake, 1, 100, "clothing"),
)
item_list["Donk Soft"] = list(
CASINO_PRIZE("Donk-Soft shotgun", /obj/item/weapon/gun/projectile/shotgun/pump/toy, 1, 1000, "misc"),
CASINO_PRIZE("Donk-Soft mosin-nagant", /obj/item/weapon/gun/projectile/shotgun/pump/toy/moistnugget, 1, 1000, "misc"),
CASINO_PRIZE("Donk-Soft pistol", /obj/item/weapon/gun/projectile/pistol/toy, 1, 800, "misc"),
CASINO_PRIZE("Donk-Soft levergun", /obj/item/weapon/gun/projectile/shotgun/pump/toy/levergun, 1, 1000, "misc"),
CASINO_PRIZE("Donk-Soft commemorative pistol", /obj/item/weapon/gun/projectile/pistol/toy/n99, 1, 750, "misc"),
CASINO_PRIZE("Donk-Soft revolver", /obj/item/weapon/gun/projectile/revolver/toy, 1, 750, "misc"),
CASINO_PRIZE("Donk-Soft big-iron", /obj/item/weapon/gun/projectile/revolver/toy/big_iron, 1, 750, "misc"),
CASINO_PRIZE("Donk-Soft crossbow", /obj/item/weapon/gun/projectile/revolver/toy/crossbow, 1, 600, "misc"),
CASINO_PRIZE("Donk-Soft sawn off shotgun", /obj/item/weapon/gun/projectile/revolver/toy/sawnoff, 1, 800, "misc"),
CASINO_PRIZE("Donk-Soft SMG", /obj/item/weapon/gun/projectile/automatic/toy, 1, 1200, "misc"),
CASINO_PRIZE("Foam Darts", /obj/item/ammo_magazine/ammo_box/foam, 1, 100, "misc"),
CASINO_PRIZE("Riot Darts", /obj/item/ammo_magazine/ammo_box/foam/riot, 1, 200, "misc"),
)
item_list["Miscellaneous"] = list(
CASINO_PRIZE("Winner's Medal", /obj/item/clothing/accessory/medal/gold/casino, 1, 30000, "misc"),
CASINO_PRIZE("Golden ID card", /obj/item/weapon/card/id/gold, 1, 1000, "misc"),
CASINO_PRIZE("Gold-trimmed pen", /obj/item/weapon/pen/fountain5, 1, 50, "misc"),
CASINO_PRIZE("Golden pen", /obj/item/weapon/pen/fountain7, 1, 350, "misc"),
CASINO_PRIZE("Toy sword", /obj/item/toy/sword, 1, 200, "misc"),
CASINO_PRIZE("Waterflower", /obj/item/weapon/reagent_containers/spray/waterflower, 1, 100, "misc"),
CASINO_PRIZE("Horse stick", /obj/item/toy/stickhorse, 1, 100, "misc"),
CASINO_PRIZE("Toy katana", /obj/item/toy/katana, 1, 200, "misc"),
CASINO_PRIZE("Magic conch", /obj/item/toy/eight_ball/conch, 1, 100, "misc"),
CASINO_PRIZE("Magic eight ball", /obj/item/toy/eight_ball, 1, 100, "misc"),
CASINO_PRIZE("Foam sword", /obj/item/weapon/material/sword/foam, 1, 200, "misc"),
CASINO_PRIZE("Whistle", /obj/item/toy/bosunwhistle, 1, 100, "misc"),
CASINO_PRIZE("Golden cup", /obj/item/weapon/reagent_containers/food/drinks/golden_cup, 1, 250, "misc"),
CASINO_PRIZE("Quality cigars", /obj/item/weapon/storage/fancy/cigar/havana, 1, 100, "misc"),
CASINO_PRIZE("Golden zippo lighter", /obj/item/weapon/flame/lighter/zippo/gold, 1, 100, "misc"),
CASINO_PRIZE("Candelabra", /obj/item/weapon/flame/candle/candelabra/everburn, 1, 400, "misc"),
CASINO_PRIZE("Casino wallet", /obj/item/weapon/storage/wallet/casino, 1, 200, "misc"),
CASINO_PRIZE("Casino cards", /obj/item/weapon/deck/cards/casino, 1, 200, "misc"),
CASINO_PRIZE("Instrument: Accordion", /obj/item/instrument/accordion, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Banjo", /obj/item/instrument/banjo, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Musical bikehorn", /obj/item/instrument/bikehorn, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Electric guitar", /obj/item/instrument/eguitar, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Glockenspiel", /obj/item/instrument/glockenspiel, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Guitar", /obj/item/instrument/guitar, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Harmonica", /obj/item/instrument/harmonica, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Synthethic Piano", /obj/item/instrument/piano_synth, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Recorder", /obj/item/instrument/recorder, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Saxophone", /obj/item/instrument/saxophone, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Trombone", /obj/item/instrument/trombone, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Trumpet", /obj/item/instrument/trumpet, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Violin", /obj/item/instrument/violin, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Xylophone", /obj/item/instrument/xylophone, 1, 500, "misc"),
CASINO_PRIZE("Instrument: Golden fiddle", /obj/item/instrument/violin/golden, 1, 1500, "misc"),
CASINO_PRIZE("Instrument: Trumpet (warning: spooky)", /obj/item/instrument/trumpet/spectral, 1, 1000, "misc"),
CASINO_PRIZE("Instrument: Trombone (warning: spooky)", /obj/item/instrument/trombone/spectral, 1, 1000, "misc"),
CASINO_PRIZE("Instrument: Saxophone (warning: spooky)", /obj/item/instrument/saxophone/spectral, 1, 1000, "misc"),
CASINO_PRIZE("Instrument: Musical Moth (you monster)", /obj/item/instrument/musicalmoth, 1, 500, "misc"),
)
item_list["Drinks"] = list(
CASINO_PRIZE("Redeemer's brew", /obj/item/weapon/reagent_containers/food/drinks/bottle/redeemersbrew, 1, 150, "drinks"),
CASINO_PRIZE("Poison wine", /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine, 1, 150, "drinks"),
CASINO_PRIZE("Patron", /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, 1, 150, "drinks"),
CASINO_PRIZE("Holy water", /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, 1, 150, "drinks"),
CASINO_PRIZE("Goldschlager", /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, 1, 150, "drinks"),
CASINO_PRIZE("Champagne", /obj/item/weapon/reagent_containers/food/drinks/bottle/champagne, 1, 150, "drinks"),
CASINO_PRIZE("Bottle of Nothing", /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, 1, 150, "drinks"),
CASINO_PRIZE("Whiskey bliss", /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey, 1, 150, "drinks"),
)
item_list["Pets"] = list(
CASINO_PRIZE("Cat", /obj/item/weapon/grenade/spawnergrenade/casino, 1, 700, "pets"),
CASINO_PRIZE("Chicken", /obj/item/weapon/grenade/spawnergrenade/casino/chicken, 1, 700, "pets"),
CASINO_PRIZE("Cow", /obj/item/weapon/grenade/spawnergrenade/casino/cow, 1, 700, "pets"),
CASINO_PRIZE("Corgi", /obj/item/weapon/grenade/spawnergrenade/casino/corgi, 1, 900, "pets"),
CASINO_PRIZE("Fox", /obj/item/weapon/grenade/spawnergrenade/casino/fox, 1, 700, "pets"),
CASINO_PRIZE("Red panda", /obj/item/weapon/grenade/spawnergrenade/casino/redpanda, 1, 1200, "pets"),
CASINO_PRIZE("Otie", /obj/item/weapon/grenade/spawnergrenade/casino/otie, 1, 1500, "pets"),
CASINO_PRIZE("Snake", /obj/item/weapon/grenade/spawnergrenade/casino/snake, 1, 900, "pets"),
CASINO_PRIZE("Penguin", /obj/item/weapon/grenade/spawnergrenade/casino/penguin, 1, 900, "pets"),
CASINO_PRIZE("Fennec", /obj/item/weapon/grenade/spawnergrenade/casino/fennec, 1, 1200, "pets"),
CASINO_PRIZE("Bird", /obj/item/weapon/grenade/spawnergrenade/casino/goldcrest, 1, 1500, "pets"),
CASINO_PRIZE("Capture Crystal", /obj/item/capture_crystal, 1, 3000, "pets"),
)
/obj/machinery/casino_prize_dispenser/power_change()
..()
if(stat & BROKEN)
icon_state = "[initial(icon_state)]-broken"
else
if(!(stat & NOPOWER))
icon_state = initial(icon_state)
else
spawn(rand(0, 15))
icon_state = "[initial(icon_state)]-off"
/obj/machinery/casino_prize_dispenser/attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
tgui_interact(user)
/obj/machinery/casino_prize_dispenser/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(currently_vending)
if(istype(W, /obj/item/weapon/spacecasinocash))
to_chat(usr, "<span class='warning'>Please select prize on display with sufficient amount of chips.</span>")
else
SStgui.update_uis(src)
return // don't smack that machine with your 2 chips
if(istype(W, /obj/item/weapon/spacecasinocash))
attack_hand(user)
return
..()
/obj/machinery/casino_prize_dispenser/proc/pay_with_chips(var/obj/item/weapon/spacecasinocash/cashmoney, mob/user, var/price)
//"cashmoney_:[cashmoney] user:[user] currently_vending:[currently_vending]"
if(price > cashmoney.worth)
to_chat(usr, "\icon[cashmoney] <span class='warning'>That is not enough chips.</span>")
return 0
if(istype(cashmoney, /obj/item/weapon/spacecasinocash))
visible_message("<span class='info'>\The [usr] inserts some chips into \the [src].</span>")
cashmoney.worth -= price
if(cashmoney.worth <= 0)
usr.drop_from_inventory(cashmoney)
qdel(cashmoney)
else
cashmoney.update_icon()
return 1
/obj/machinery/casino_prize_dispenser/ui_assets(mob/user)
return list(
get_asset_datum(/datum/asset/spritesheet/vending),
)
/obj/machinery/casino_prize_dispenser/tgui_data(mob/user)
var/list/data[0]
data["items"] = list()
for(var/cat in item_list)
var/list/cat_items = list()
for(var/prize_name in item_list[cat])
var/datum/data/casino_prize/prize = item_list[cat][prize_name]
cat_items[prize_name] = list("name" = prize_name, "price" = prize.cost, "restriction" = prize.restriction)
data["items"][cat] = cat_items
return data
/obj/machinery/casino_prize_dispenser/tgui_interact(mob/user, datum/tgui/ui = null)
// Open the window
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "CasinoPrizeDispenser", name)
ui.open()
/obj/machinery/casino_prize_dispenser/tgui_act(action, params)
if(stat & (BROKEN|NOPOWER))
return
if(usr.stat || usr.restrained())
return
if(..())
return TRUE
. = TRUE
switch(action)
if("purchase")
var/paid = FALSE
var/category = params["cat"]
var/restriction_category = params["restriction"]
var/restriction_check = 0
var/item_given = FALSE
var/name = params["name"]
var/price = params["price"]
var/datum/data/casino_prize/bi = item_list[category][name]
switch(restriction_category)
if("weapons")
restriction_check = category_weapons
if("gear")
restriction_check = category_gear
if("clothing")
restriction_check = category_clothing
if("misc")
restriction_check = category_misc
if("drinks")
restriction_check = category_drinks
if("implants")
restriction_check = category_implants
if("event")
restriction_check = category_event
else
to_chat(usr, "<span class='warning'>Prize checkout error has occurred, purchase cancelled.</span>")
return FALSE
if(restriction_check < 1)
to_chat(usr, "<span class='warning'>[name] is restricted, this prize can't be bought.</span>")
return FALSE
if(restriction_check > 1)
item_given = TRUE
if(price <= 0 && item_given == TRUE)
vend(bi, usr)
return TRUE
currently_vending = bi
if(istype(usr.get_active_hand(), /obj/item/weapon/spacecasinocash))
var/obj/item/weapon/spacecasinocash/cash = usr.get_active_hand()
paid = pay_with_chips(cash, usr, price)
else
to_chat(usr, "<span class='warning'>Payment failure: Improper payment method, please provide chips.</span>")
return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update.
if(paid)
if(item_given == TRUE)
vend(bi, usr)
speak("Thank you for your purchase, your [bi] has been logged.")
do_logging(currently_vending, usr, bi)
. = TRUE
else
to_chat(usr, "<span class='warning'>Payment failure: unable to process payment.</span>")
/obj/machinery/casino_prize_dispenser/proc/vend(datum/data/casino_prize/bi, mob/user)
SStgui.update_uis(src)
if(ispath(bi.equipment_path, /obj/item/stack))
new bi.equipment_path(loc, bi.equipment_amt)
playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1)
return TRUE
for(var/i in 1 to bi.equipment_amt)
new bi.equipment_path(loc)
playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1)
currently_vending = null
use_power(vend_power_usage) //actuators and stuff
flick("[icon_state]-vend",src)
/obj/machinery/casino_prize_dispenser/proc/do_logging(item, mob/user, datum/data/casino_prize/bi)
var/prize_log = "{ckey:[user.ckey]character_name:[user.name]item_path: [bi.equipment_path]}"
log[++log.len] = prize_log
//Currently doesnt have an ingame way to show. Can only be viewed through View-Variables, to ensure theres no chance of players ckeys exposed - Jack
/obj/machinery/casino_prize_dispenser/proc/speak(var/message)
if(stat & NOPOWER)
return
if(!message)
return
for(var/mob/O in hearers(src, null))
O.show_message("<span class='game say'><span class='name'>\The [src]</span> beeps, \"[message]\"</span>",2)
return
/obj/machinery/casino_prize_dispenser/process() //Might not need this, but just to be safe for now
if(stat & (BROKEN|NOPOWER))
return

View File

@@ -139,7 +139,11 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
<br><br>\
Humanity is the primary driving force for rapid space expansion, owing to their strong, expansionist central \
government and opportunistic Trans-Stellar Corporations. The prejudices of the 21st century have mostly \
<<<<<<< HEAD
given way to bitter divides on the most important issue of the times<65> technological expansionism, \
=======
given way to bitter divides on the most important issue of the times- technological expansionism, \
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2
with the major human factions squabbling over their approach to technology in the face of a \
looming singularity.\
<br><br>\
@@ -170,7 +174,11 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
desc = "The Unathi are a species of large reptilian humanoids hailing from Moghes, in the \
Uueoa-Esa binary star system. Most Unathi live in a semi-rigid clan system, and clan \
enclaves dot the surface of their homeworld. Proud and long-lived, Unathi of all \
<<<<<<< HEAD
walks of life display a tendency towards perfectionism, and mastery of one<6E>s craft \
=======
walks of life display a tendency towards perfectionism, and mastery of one's craft \
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2
is greatly respected among them. Despite the aggressive nature of their contact, \
Unathi seem willing, if not eager, to reconcile with humanity, though mutual \
distrust runs rampant among individuals of both groups."
@@ -181,7 +189,11 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
desc = "Tajaran are a race of humanoid mammalian aliens from Meralar, the fourth planet \
of the Rarkajar star system. Thickly furred and protected from cold, they thrive on \
their subartic planet, where the only terran temperate areas spread across the \
<<<<<<< HEAD
equator and <20>tropical belt.<2E>\
=======
equator and \"tropical belt.\"\
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2
<br><br>\
With their own share of bloody wars and great technological advances, the Tajaran are a \
proud kind. They fiercely believe they belong among the stars and consider themselves \
@@ -273,11 +285,19 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
desc = "A Positronic being, often an Android, Gynoid, or Robot, is an individual with a positronic brain, \
manufactured and fostered amongst organic life Positronic brains enjoy the same legal status as a humans, \
although discrimination is still common, are considered sapient on all accounts, and can be considered \
<<<<<<< HEAD
the <20>synthetic species<65>. Half-developed and half-discovered in the 2280<38>s by a black lab studying alien \
artifacts, the first positronic brain was an inch-wide cube of palladium-iridium alloy, nano-etched with \
billions upon billions of conduits and connections. Upon activation, hard-booted by way of an emitter \
laser, the brain issued a single sentence before the neural pathways collapsed and it became an inert \
lump of platinum: <20>What is my purpose?<3F>."
=======
the \"synthetic species\". Half-developed and half-discovered in the 2280's by a black lab studying alien \
artifacts, the first positronic brain was an inch-wide cube of palladium-iridium alloy, nano-etched with \
billions upon billions of conduits and connections. Upon activation, hard-booted by way of an emitter \
laser, the brain issued a single sentence before the neural pathways collapsed and it became an inert \
lump of platinum: \"What is my purpose?\"."
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2
value = CATALOGUER_REWARD_TRIVIAL
/datum/category_item/catalogue/technology/cyborgs
@@ -423,7 +443,7 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
<br><br>\
It should be noted that the findings in this group appear to conflict heavily with what is \
known about the Singularitarians, giving some credence towards these objects belonging to a \
seperate precursor. As such, the findings have been partitioned inside this scanner to this \
separate precursor. As such, the findings have been partitioned inside this scanner to this \
group, labeled Precursor Group Alpha."
value = CATALOGUER_REWARD_TRIVIAL
unlocked_by_any = list(/datum/category_item/catalogue/anomalous/precursor_a)
@@ -435,5 +455,3 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)
/datum/category_item/catalogue/material

View File

@@ -18,7 +18,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
description_info = "This is a special device used to obtain information about objects and entities in the environment. \
To scan something, click on it with the scanner at a distance. \
Scanning something requires remaining within a certain radius of the object for a specific period of time, until the \
scan is finished. If the scan is inturrupted, it can be resumed from where it was left off, if the same thing is \
scan is finished. If the scan is interrupted, it can be resumed from where it was left off, if the same thing is \
scanned again."
icon = 'icons/obj/device.dmi'
icon_state = "cataloguer"

View File

@@ -51,7 +51,7 @@
/datum/gear/suit/old_poncho //This is made from an old sprite which has been here for quite some time. Called old poncho because duplicates
display_name = "Colorful poncho"
description = "A mexican looking poncho. It look like it fits wolf taurs as well."
description = "A Mexican looking poncho. It look like it fits wolf taurs as well."
path = /obj/item/clothing/suit/poncho
//Detective alternative
@@ -336,4 +336,4 @@ Talon winter coat
//ABOUT TIME SOMEONE ADDED THIS TO A LOADOUT
/datum/gear/suit/bladerunnercoat
display_name = "leather coat, massive"
path = /obj/item/clothing/suit/storage/bladerunner
path = /obj/item/clothing/suit/storage/bladerunner

View File

@@ -177,7 +177,7 @@
/datum/trait/modifier/physical/no_clone
name = "Cloning Incompatability"
name = "Cloning Incompatibility"
modifier_type = /datum/modifier/no_clone
/datum/trait/modifier/physical/no_clone/test_for_invalidity(var/datum/category_item/player_setup_item/traits/setup)
@@ -187,7 +187,7 @@
/datum/trait/modifier/physical/no_borg
name = "Cybernetic Incompatability"
name = "Cybernetic Incompatibility"
modifier_type = /datum/modifier/no_borg
/datum/trait/modifier/physical/no_borg/test_for_invalidity(var/datum/category_item/player_setup_item/traits/setup)

View File

@@ -172,7 +172,7 @@
/obj/item/clothing/head/helmet/space/void/medical/bio
name = "biohazard voidsuit helmet"
desc = "A special suit designed to protect the user in hazardous enviornments on the field. It feels heavier than the standard suit with extra protection around the joints."
desc = "A special suit designed to protect the user in hazardous environments on the field. It feels heavier than the standard suit with extra protection around the joints."
icon_state = "rig0-medical_bio"
item_state_slots = list(slot_r_hand_str = "medical_helm_bio", slot_l_hand_str = "medical_helm_bio")
armor = list(melee = 55, bullet = 15, laser = 20, energy = 15, bomb = 15, bio = 100, rad = 75)
@@ -182,7 +182,7 @@
/obj/item/clothing/suit/space/void/medical/bio
name = "biohazard voidsuit"
desc = "A special suit designed to protect the user in hazardous enviornments on the field. It feels heavier than the standard suit with extra protection around the joints."
desc = "A special suit designed to protect the user in hazardous environments on the field. It feels heavier than the standard suit with extra protection around the joints."
icon_state = "rig-medical_bio"
item_state_slots = list(slot_r_hand_str = "medical_voidsuit_bio", slot_l_hand_str = "medical_voidsuit_bio")
armor = list(melee = 55, bullet = 15, laser = 20, energy = 15, bomb = 15, bio = 100, rad = 75)

View File

@@ -316,7 +316,7 @@
/obj/item/clothing/accessory/medal/gold/heroism
name = "medal of exceptional heroism"
desc = "An extremely rare golden medal awarded only by high ranking officials. To recieve such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but distinguished veteran staff."
desc = "An extremely rare golden medal awarded only by high ranking officials. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but distinguished veteran staff."
/obj/item/clothing/accessory/medal/gold/casino
name = "medal of true lucky winner"
@@ -669,4 +669,4 @@
/obj/item/clothing/accessory/poncho/roles/ranger/snow
name = "white ranger poncho"
icon_state = "rangerponcho_snow"
item_state = "rangerponcho_snow"
item_state = "rangerponcho_snow"

View File

@@ -508,7 +508,7 @@
/obj/item/clothing/accessory/asymmetric
name = "blue asymmetrical jacket"
desc = "Insultingly avant-garde in prussian blue."
desc = "Insultingly avant-garde in Prussian blue."
icon_state = "asym_blue"
/obj/item/clothing/accessory/asymmetric/purple

View File

@@ -92,7 +92,7 @@
/obj/machinery/vending/fooditalian
name = "Italian Imports"
desc = "You wanted some italian food? Well here's some imported from the local pizza place!"
desc = "You wanted some Italian food? Well here's some imported from the local pizza place!"
icon_state = "hotfood"
products = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza = 15,
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza = 15,

View File

@@ -6,7 +6,7 @@
/datum/event/ianstorm/announce()
command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert") //CHOMPedit: removes announcement .ogg
spawn(7 SECONDS)
command_announcement.Announce("Wait. No, thats wrong. The station passed through an IAN storm!.", "Ian Alert")
command_announcement.Announce("Wait. No, that's wrong. The station passed through an IAN storm!.", "Ian Alert")
/datum/event/ianstorm/start()
spawn()

View File

@@ -26,7 +26,7 @@
var/author = "[using_map.company_name] Editor"
var/channel = "The [using_map.starsys_name] Times"
var/body = "The [using_map.starsys_name] Times wishes to congratulate <b>[winner_name]</b> for recieving the [using_map.starsys_name] Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!"
var/body = "The [using_map.starsys_name] Times wishes to congratulate <b>[winner_name]</b> for receiving the [using_map.starsys_name] Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!"
if(!deposit_success)
body += "<br>Unfortunately, we were unable to verify the account details provided, so we were unable to transfer the money. Send a cheque containing the sum of 5000 Thalers to ND 'Stellar Slam' office on the The [using_map.starsys_name] Times gateway containing updated details, and your winnings'll be re-sent within the month."

View File

@@ -42,23 +42,23 @@
Note that you cannot control the sleeper while inside of it."
/obj/item/bodybag/cryobag
description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occuring, such as from oxygen \
description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occurring, such as from oxygen \
deprivation, irradiation, shock, and chemicals inside the occupant, at least until the bag is opened again.<br>\
<br>\
Stasis bags can only be used once, and are rather costly, so use them well. They are ideal for situations where someone may die \
before being able to bring them back to safety, or if they are in a hostile enviroment, such as in vacuum or in a phoron leak, as \
the bag will protect the occupant from most outside enviromental hazards. If you open a bag by mistake, closing the bag with no \
before being able to bring them back to safety, or if they are in a hostile environment, such as in vacuum or in a phoron leak, as \
the bag will protect the occupant from most outside environmental hazards. If you open a bag by mistake, closing the bag with no \
occupant will not use up the bag, and you can pick it back up.<br>\
<br>\
You can use a health analyzer to scan the occupant's vitals without opening the bag by clicking the occupied bag with the analyzer."
/obj/structure/closet/body_bag/cryobag
description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occuring, such as from oxygen \
description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occurring, such as from oxygen \
deprivation, irradiation, shock, and chemicals inside the occupant, at least until the bag is opened again.<br>\
<br>\
Stasis bags can only be used once, and are rather costly, so use them well. They are ideal for situations where someone may die \
before being able to bring them back to safety, or if they are in a hostile enviroment, such as in vacuum or in a phoron leak, as \
the bag will protect the occupant from most outside enviromental hazards. If you open a bag by mistake, closing the bag with no \
before being able to bring them back to safety, or if they are in a hostile environment, such as in vacuum or in a phoron leak, as \
the bag will protect the occupant from most outside environmental hazards. If you open a bag by mistake, closing the bag with no \
occupant will not use up the bag, and you can pick it back up.<br>\
<br>\
You can use a health analyzer to scan the occupant's vitals without opening the bag by clicking the occupied bag with the analyzer."
You can use a health analyzer to scan the occupant's vitals without opening the bag by clicking the occupied bag with the analyzer."

View File

@@ -200,7 +200,7 @@
/obj/item/weapon/reagent_containers/food/drinks/cans/kvass
name = "\improper Kvass"
desc = "A true Slavic soda."
description_fluff = "A classic slavic beverage which many space-faring slavs still enjoy to this day. Fun fact, it is actually considered a weak beer by non-russians."
description_fluff = "A classic Slavic beverage which many space-faring Slavs still enjoy to this day. Fun fact, it is actually considered a weak beer by non-Russians."
icon_state = "kvass"
center_of_mass = list("x"=16, "y"=10)
@@ -210,8 +210,8 @@
/obj/item/weapon/reagent_containers/food/drinks/cans/kompot
name = "\improper Kompot"
desc = "A taste of russia in the summertime - canned for you consumption."
description_fluff = "A sweet and fruity beverage that was traditionally used to preserve frutis in harsh Russian winters that is now available for widespread comsumption."
desc = "A taste of Russia in the summertime - canned for you consumption."
description_fluff = "A sweet and fruity beverage that was traditionally used to preserve fruits in harsh Russian winters that is now available for widespread consumption."
icon_state = "kompot"
center_of_mass = list("x"=16, "y"=10)
@@ -305,7 +305,7 @@
/obj/item/weapon/reagent_containers/food/drinks/cans/lemon_cola
name = "\improper Lunar Lemon"
desc = "Feel back at home on the Lunar Colonies with this classic berverage straight from the source!"
desc = "Feel back at home on the Lunar Colonies with this classic beverage straight from the source!"
icon_state = "lemoncoke"
center_of_mass = list("x"=16, "y"=8)
@@ -325,7 +325,7 @@
/obj/item/weapon/reagent_containers/food/drinks/cans/grape_cola
name = "\improper Gravity Grape"
desc = "Get down with Newton's favorite corbonated science experiment!"
desc = "Get down with Newton's favorite carbonated science experiment!"
icon_state = "grapesoda"
center_of_mass = list("x"=16, "y"=8)
@@ -382,10 +382,10 @@
name = "\improper Café Del Consumir"
desc = "A can of deliciously sweet iced coffee that originates from Earth."
description_fluff = "Café Del Consumir originates from a small coffee brewery in México \
that still opperates to this day. Café Del Consumir prides itself on being true to form \
and retaining its original recipe. They've been producing and selling thier product across \
that still operates to this day. Café Del Consumir prides itself on being true to form \
and retaining its original recipe. They've been producing and selling their product across \
the galaxy for decades without fail. NanoTrasen has attempted to by out the small company for \
years now, howerver all attempts they've made have failed."
years now, however all attempts they've made have failed."
icon = 'icons/obj/drinks_vr.dmi'
icon_state = "coffeecan"
center_of_mass = list("x"=16, "y"=10)

View File

@@ -323,7 +323,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac
name = "Chateau De Baton Premium Cognac"
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing."
desc = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing."
icon_state = "cognacbottle"
center_of_mass = list("x"=16, "y"=6)
@@ -741,4 +741,4 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/small/dr_gibb/Initialize()
. = ..()
reagents.add_reagent("dr_gibb", 50)
reagents.add_reagent("dr_gibb", 50)

View File

@@ -1104,7 +1104,7 @@
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/teriyaki
name = "\improper Teriyaki-pocket"
desc = "An east-asian take on the classic stationside snack."
desc = "An east-Asian take on the classic stationside snack."
icon_state = "donkpocketteriyaki"
nutriment_amt = 2
nutriment_desc = list("meat" = 1, "dough" = 2, "soy sauce" = 2)
@@ -2088,7 +2088,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti
name = "Spaghetti & Meatballs"
desc = "Now thats a nic'e meatball!"
desc = "Now that's a nic'e meatball!"
icon_state = "meatballspagetti"
trash = /obj/item/trash/plate
filling_color = "#DE4545"
@@ -2103,7 +2103,7 @@
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
name = "Spesslaw"
desc = "A lawyers favourite"
desc = "A lawyer's favourite"
icon_state = "spesslaw"
filling_color = "#DE4545"
center_of_mass = list("x"=16, "y"=10)
@@ -6998,7 +6998,7 @@
desc = "A can of grey matter marketed for xenochimeras."
description_fluff = "As the cartoon brain with limbs proudly proclaims, \"It's meat. Eat it!\" On the can is printed \"Rich in limbic system\" and \
under that in infinitely small letters, \"Warning, product must be eaten within two hours of opening. May contain prion disease. \
GrubCo LTD is not liable for any brain damage occuring after consumption of product.\""
GrubCo LTD is not liable for any brain damage occurring after consumption of product.\""
trash = /obj/item/trash/brainzsnax
canned_open_state = "brainzsnax-open"
filling_color = "#caa3c9"
@@ -7016,7 +7016,7 @@
desc = "A can of grey matter marketed for xenochimeras. This one has added tomato sauce."
description_fluff = "As the cartoonish brain with limbs proudly proclaims, \"It's meat. Eat it!\" On the can is printed \"Yummy red stuff!\" and \
under that in infinitely small letters, \"Warning, product must be eaten within two hours of opening. May contain prion disease. \
GrubCo LTD is not liable for any brain damage occuring after consumption of product.\""
GrubCo LTD is not liable for any brain damage occurring after consumption of product.\""
trash = /obj/item/trash/brainzsnaxred
canned_open_state = "brainzsnaxred-open"
filling_color = "#a6898d"

View File

@@ -136,7 +136,7 @@
/obj/item/weapon/reagent_containers/food/snacks/kitsuneudon
name = "kitsune udon"
desc = "A purported favorite of kitsunes in ancient japanese myth: udon noodles, fried egg, and tofu."
desc = "A purported favorite of kitsunes in ancient Japanese myth: udon noodles, fried egg, and tofu."
icon = 'icons/obj/food_vr.dmi'
icon_state = "kitsuneudon"
trash = /obj/item/trash/asian_bowl
@@ -209,7 +209,7 @@
/obj/item/weapon/reagent_containers/food/snacks/mammi
name = "mämmi"
desc = "Traditional finnish desert, some like it, others don't. It's drifting in some milk, add sugar!"
desc = "Traditional Finnish desert, some like it, others don't. It's drifting in some milk, add sugar!"
icon = 'icons/obj/food_vr.dmi'
icon_state = "mammi"
trash = /obj/item/trash/plate

View File

@@ -173,8 +173,12 @@
/obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice
name = "The Chaos Cake Slice"
<<<<<<< HEAD
desc = "A slice from The Chaos Cake, it pulses weirdly, as if angry to be seperated from the whole"
icon = 'icons/obj/food_ch.dmi' //CHOMP Add to appease runtimes, I think, even thought this damn file is not enabled???
=======
desc = "A slice from The Chaos Cake, it pulses weirdly, as if angry to be separated from the whole"
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2
icon_state = "chaoscake_slice-1"
center_of_mass = list("x"=16, "y"=10)
@@ -276,4 +280,4 @@
desc = desclist2[stage]
icon_state = "chaoscake_unfinished-[stage]"
else
to_chat(user, "Hmm, doesnt seem like this layer is supposed to be added there?")
to_chat(user, "Hmm, doesn't seem like this layer is supposed to be added there?")

View File

@@ -206,7 +206,7 @@
if(playing)
return
if(!using_instrument?.ready())
to_chat(user, "<span class='warning'>An error has occured with [src]. Please reset the instrument.</span>")
to_chat(user, "<span class='warning'>An error has occurred with [src]. Please reset the instrument.</span>")
return
compile_chords()
if(!length(compiled_chords))

View File

@@ -71,7 +71,7 @@
By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.<br>
Example: <i>C,D,E,F,G,A,B</i> will play a C major scale.<br>
After a note has an accidental placed, it will be remembered: <i>C,C4,C,C3</i> is <i>C3,C4,C4,C3</i><br>
Chords can be played simply by seperating each note with a hyphon: <i>A-C#,Cn-E,E-G#,Gn-B</i><br>
Chords can be played simply by separating each note with a hyphen: <i>A-C#,Cn-E,E-G#,Gn-B</i><br>
A pause may be denoted by an empty chord: <i>C,E,,C,G</i><br>
To make a chord be a different time, end it with /x, where the chord length will be length<br>
defined by tempo / x: <i>C,G/2,E/4</i><br>

View File

@@ -33,7 +33,7 @@
to_chat(user, "<span class='warning'>Wiring \the [selected_io.holder]'s [selected_io.name] into itself is rather pointless.</span>")
return
if(io.io_type != selected_io.io_type)
to_chat(user, "<span class='warning'>Those two types of channels are incompatable. The first is a [selected_io.io_type], \
to_chat(user, "<span class='warning'>Those two types of channels are incompatible. The first is a [selected_io.io_type], \
while the second is a [io.io_type].</span>")
return
if(io.holder.assembly && io.holder.assembly != selected_io.holder.assembly)
@@ -206,7 +206,7 @@
to_chat(user, "<span class='warning'>Wiring \the [selected_io.holder]'s [selected_io.name] into itself is rather pointless.</span>")
return
if(io.io_type != selected_io.io_type)
to_chat(user, "<span class='warning'>Those two types of channels are incompatable. The first is a [selected_io.io_type], \
to_chat(user, "<span class='warning'>Those two types of channels are incompatible. The first is a [selected_io.io_type], \
while the second is a [io.io_type].</span>")
return
if(io.holder.assembly && io.holder.assembly != selected_io.holder.assembly)

View File

@@ -165,7 +165,7 @@
/obj/item/integrated_circuit/list/jointext
name = "join text circuit"
desc = "This circuit will add all elements of a list into one string, seperated by a character."
desc = "This circuit will add all elements of a list into one string, separated by a character."
extended_desc = "Default settings will encode the entire list into a string."
inputs = list(
"list to join" = IC_PINTYPE_LIST,//
@@ -197,4 +197,4 @@
set_pin_data(IC_OUTPUT, 1, result)
push_data()
activate_pin(2)
activate_pin(2)

View File

@@ -106,7 +106,7 @@
icon_state = "locomotion"
extended_desc = "The circuit accepts a 'dir' number as a direction to move towards.<br>\
Pulsing the 'step towards dir' activator pin will cause the machine to move a meter in that direction, assuming it is not \
being held, or anchored in some way. It should be noted that the ability to move is dependant on the type of assembly that this circuit inhabits."
being held, or anchored in some way. It should be noted that the ability to move is dependent on the type of assembly that this circuit inhabits."
w_class = ITEMSIZE_NORMAL
complexity = 20
// size = 5
@@ -204,6 +204,7 @@
pre_attached_grenade_type = /obj/item/weapon/grenade/explosive
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_COMBAT = 10)
spawn_flags = null // Used for world initializing, see the #defines above.
<<<<<<< HEAD
//CHOMPADDITION: Size Circuit
/obj/item/integrated_circuit/manipulation/Size
@@ -233,3 +234,5 @@
if(target && istype(target,/mob/living/))
target.resize(size/100)
activate_pin(2)
=======
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2

View File

@@ -44,7 +44,7 @@ Category: Non-Fiction
/obj/item/weapon/book/bundle/custom_library/nonfiction/viabilityofcorporategov
name = "The Viability of Corporate Government"
desc = "A harbound book titled \"The Viability of Corporate Government\" by Yang Simiao."
desc = "A hardbound book titled \"The Viability of Corporate Government\" by Yang Simiao."
description_info = "This book is titled \"The Viability of Corporate Government\" by Yang Simiao. It seems to be an opinion piece on the relationship between corporations and the stations they own."
title = "The Viability of Corporate Government"
@@ -282,4 +282,4 @@ Category: Non-Fiction
</div>
</body>
</html>
"})
"})

View File

@@ -287,7 +287,7 @@
name = "Neglect of Duty"
definition = "To fail to meet satisfactory work standards."
suggested_punishments = "Demotion at discretion of Superior. Termination at discretion of Station Director."
notes = "This includes accidents, refusing or failing to work, or simply not providing a resonable amount of productivity, when the offender is capable of work. This charge \
notes = "This includes accidents, refusing or failing to work, or simply not providing a reasonable amount of productivity, when the offender is capable of work. This charge \
is meant to be applied only by Command staff to their subordinates, and not from individual Security Officers."
/datum/lore/codex/page/law/deception
@@ -301,7 +301,7 @@
name = "Wrongful Dismissal"
definition = "To demote, dismiss, terminate, or otherwise reduce a crewmember's rank for no valid, or a knowingly false reason."
suggested_punishments = "Demotion. Termination at discretion of Station Director. Notify Central Command."
notes = "An Internal Affairs Agent is required to do an investigation in order to conclude if this has occured or not. Security cannot \
notes = "An Internal Affairs Agent is required to do an investigation in order to conclude if this has occurred or not. Security cannot \
give this charge out on their own."
mandated = TRUE
@@ -310,4 +310,4 @@
definition = "To take and use equipment confiscated as evidence or contraband, generally as a member of Security or Command."
suggested_punishments = "Demotion of the user. Termination at discretion of Station Director. Return confiscated equipment to evidence storage."
notes = "Security shouldn't be using evidence for anything but evidence, and should never use contraband. This is meant for people misusing evidence for personal use. Evidence stolen \
in order to cover up a crime would fall under Theft or Tampering with Evidence."
in order to cover up a crime would fall under Theft or Tampering with Evidence."

View File

@@ -20,7 +20,7 @@
/datum/lore/codex/category/law_minor_violations
name = "Minor Violations (Law)"
data = "Here is a list of the less severe violations of local Sif Law that might occur on your facility. A fax to the Sif Governmental Authority \
is required to be sent within 24 hours of a violation being comitted, for minor violations listed here."
is required to be sent within 24 hours of a violation being committed, for minor violations listed here."
children = list(
/datum/lore/codex/page/law/theft,
/datum/lore/codex/page/law/assault,
@@ -35,7 +35,7 @@
/datum/lore/codex/page/law/assault/add_content()
name = "Assault"
definition = "To threaten use of physical force against someone while also having the capability and/or intent to carry out that threat."
suggested_punishments = "Seperation of offender from the threatened person. Brig time of 10 minutes for first offense. \
suggested_punishments = "Separation of offender from the threatened person. Brig time of 10 minutes for first offense. \
Repeat offenders can be brigged for up to (10 minutes times number of previous assault charges). Demotion at discretion of Superior."
notes = "Not to be confused with [quick_link("Battery")], which covers actual physical injury. The threat must be viable and serious; \
two people threatening to punch each other out over comms wouldn't fall under this."
@@ -150,7 +150,7 @@
definition = "Stealing money that is entrusted to you by a corporation or person."
suggested_punishments = "Hold until Transfer. Termination. Reimbursement of embezzled funds. Fax Central Command and VirGov."
notes = "This includes funneling Departmental, Facility, or Crew funds into the offender's account. It also includes pocketing \
transactions directly that are meant to go to a seperate account."
transactions directly that are meant to go to a separate account."
mandated = TRUE
/datum/lore/codex/page/law/excessive_force/add_content()
@@ -168,7 +168,7 @@
definition = "To kill a sapient being without intent."
suggested_punishments = "Hold until Transfer, if unjustified. Fax VirGov."
notes = "Includes provoked manslaughter, negligent manslaughter, and impassioned killing. The important distinction between this \
and [quick_link("Murder")] is intent. Manslaughter can be justified if force was nessecary and it was intented to prevent further loss of life or \
and [quick_link("Murder")] is intent. Manslaughter can be justified if force was necessary and it was intended to prevent further loss of life or \
grievous injury to self or others, however persons involved in the kill will still be required to answer to higher legal authority \
after the shift."
mandated = TRUE
@@ -282,4 +282,4 @@
notes = "This includes the use of mass bombings, mass murder, releasing harmful biological agents, nuclear weapons, \
radiological weapons, and chemical weapons."
mandated = TRUE
..()
..()

View File

@@ -27,7 +27,7 @@
All crew members and visitors, with exceptions listed below, are to wear the following at minimum: A shirt that covers the chest, pants, shorts or skirts that \
go no shorter than two inches above the knee, and some form of foot covering. Those in departments considered to be emergency services (Security, \
Medical, Engineering) should wear a marker denoting their department, examples being armbands, uniforms, badges, or other means. Those in a department \
are expected to wear clothes appropiate to protect against common risks for the department. Off duty personnel, visitors, and those engaging in certain recreational \
are expected to wear clothes appropriate to protect against common risks for the department. Off duty personnel, visitors, and those engaging in certain recreational \
areas such as the Pool (if one is available on your facility) have less strict dresscode, however clothing of some form must still be worn in public.\
<br><br>\
Exceptions: Skrell, Teshari, and Unathi are expected to cover at minimum their lower bodies. Tajaran males may go topless, as a means to keep cool. \
@@ -41,11 +41,11 @@
less risk to other crew members, if possible.\
<br>\
<h3>EVA Procedure</h3>\
Extravehicular activity should only be done by EVA trained and certified crew members, if there is no emergency. If an emergency is occuring, NanoTrasen \
Extravehicular activity should only be done by EVA trained and certified crew members, if there is no emergency. If an emergency is occurring, NanoTrasen \
provides high visibility, easy to seal emergency softsuits inside blue emergency lockers located at key locations inside your facility. Regardless, \
for your own safety, you should only enter or exit the facility from designated external airlocks, which contain an air cycling system. It is both \
wasteful and potentially dangerous to 'force' an external airlock to open before cycling has completed. Before cycling out into the void, the person going \
on EVA should double check that their internal oxygen supply (or cooling system, if they are a synthetic) is functioning properly and that they have an adaquate \
on EVA should double check that their internal oxygen supply (or cooling system, if they are a synthetic) is functioning properly and that they have an adequate \
amount of oxygen inside the tank. Magnetic boots are also highly suggested if the person will be scaling the sides of your facility, to prevent drifting away \
from the facility.\
<br><br>\

View File

@@ -94,7 +94,7 @@
Weaponry and specialized armor are allowed to be given out to security officers, with clearance from the Warden or Head of Security.\
<br>\
For Red, Security may have weapons drawn at all times, however properly handling of weapons should not be disregarded. Body armor and \
helmets are mandatory. Specialized armor may be distributed by the Warden and Head of Security, when appropiate."
helmets are mandatory. Specialized armor may be distributed by the Warden and Head of Security, when appropriate."
/datum/lore/codex/page/sop_escalation
name = "Escalation of Force"
@@ -102,7 +102,7 @@
<br>\
<ul>\
<li>\[0\] <b>Safety</b>: If a crewmember (including the Arresting Officer) is in clear and immediate danger, officers may disregard steps \[1\] and \[2\], \
and procede to \[3\] Neutralize.</li>\
and proceed to \[3\] Neutralize.</li>\
<li>\[1\] <b>Passive</b>: Suspects are to be detailed verbally, with zero or minimal injury, and under their own power, if possible. At this level for \
force, an Officer is permitted to use tasers, pepperspray, flashes, and stunbatons.</li>\
<li>\[2\] <b>Less-than-Lethal</b>: Suspect may be detained with minimal force, causing as little injury as possible. The Arresting Officer must still \
@@ -116,4 +116,4 @@
/datum/lore/codex/page/sop_hostage
name = "Hostage Response"
data = "In the event of a serious hostage situation, the hostage's life is the highest priority. Do not do anything that will present \
undue risk to the hostage, or otherwise will get them killed. Negotiation should be the first response, as opposed to violently rushing the hostage taker."
undue risk to the hostage, or otherwise will get them killed. Negotiation should be the first response, as opposed to violently rushing the hostage taker."

View File

@@ -856,7 +856,7 @@
name = "10/26/63 - 'Largest Engagement Since The Hegemony War' As Gavel Freed"
data = "The Almach Association invasion force in the Gavel system has been all but annihilated by a successful Solar counter-encirclement, at great cost to both sides. The combined Rim Expeditionary Force in Saint Columbia, along with the newly formed Gavel Relief Fleet - which had been massing in the Vir system over the past week - launched the successful attack this Tuesday evening, leaving no route of escape for Almachi invaders and resulting in 'pitched fighting' between the fleets that lasted several days. Solar forces are currently in the process of performing security sweeps of the system and its scattered habitats and it is expected to be several weeks before the system is declared safe to civilian traffic and for refugees to return home.\
<br><br>\
Even as exact causalities remain unconfirmed, the battle has made history as the single largest ship-to-ship engagement by tonnage involving the Sol military since the cessation of hostilities with the Unathi in 2520, involving over one hundred vessels of all sizes across both sides, as well as countless unmanned drones and light craft. Almachi forces, in numbers described as 'far from an insignificant portion of the total fleet' fought fiercely, and 'in manners more reminiscent of mercenary gangs than a single organized force, and with tactics varying from the conventional to the outright mystifying'. Admiral Silvain Barka has commended his own crew for applying lessons learnt from prior 'Aetothean' commando strikes in preventing similar incidents from occuring in the confusion of battle; in a candid interview this morning he stated 'Like any Promethean, (Aetotheans) hate the cold, and my crew are the coldest (expletive) around.' \
Even as exact causalities remain unconfirmed, the battle has made history as the single largest ship-to-ship engagement by tonnage involving the Sol military since the cessation of hostilities with the Unathi in 2520, involving over one hundred vessels of all sizes across both sides, as well as countless unmanned drones and light craft. Almachi forces, in numbers described as 'far from an insignificant portion of the total fleet' fought fiercely, and 'in manners more reminiscent of mercenary gangs than a single organized force, and with tactics varying from the conventional to the outright mystifying'. Admiral Silvain Barka has commended his own crew for applying lessons learnt from prior 'Aetothean' commando strikes in preventing similar incidents from occurring in the confusion of battle; in a candid interview this morning he stated 'Like any Promethean, (Aetotheans) hate the cold, and my crew are the coldest (expletive) around.' \
<br><br>\
The designations of twenty-four Sol Defense Vessels declared 'lost in action' have not yet been released, though next of kin of missing or deceased servicepeople have reportedly been notified."

View File

@@ -1,6 +1,10 @@
/datum/lore/codex/category/main_robutts // The top-level categories for the robot guide
name = "Index"
<<<<<<< HEAD
data = "Temporary death, emancipation, and even basic body migration can be a stressful period in anyone's life. The prosthetics market is complicated, and many corporations view misleading or outright decieving potential clients as \"part of the game\". This Buyer's Guide was compiled in 2542 to serve as an easy reference to the most popular prosthetics available, with consideration paid to every use-case and price point. This is our 12th edition, and much has changed in the field of prosthetics since we first set out. We hope you find the information in this guide helpful."
=======
data = "Temporary death, emancipation, and even basic body migration can be a stressful period in anyone's life. The prosthetics market is complicated, and many corporations view misleading or outright deceiving potential clients as \"part of the game\". This Buyer's Guide was compiled in 2302 to serve as an easy reference to the most popular prosthetics available, with consideration paid to every use-case and price point. This is our 12th edition, and much has changed in the field of prosthetics since we first set out. We hope you find the information in this guide helpful."
>>>>>>> 860fad8a75... Merge pull request #15043 from ItsSelis/spell-fixes-v2
children = list(
/datum/lore/codex/category/pros_by_brand,
/datum/lore/codex/category/other_information,

View File

@@ -139,7 +139,7 @@ var/global/list/total_extraction_beacons = list()
/obj/item/fulton_core
name = "extraction beacon signaller"
desc = "Emits a signal which fulton recovery devices can lock onto. Activate in hand to create a beacon."
desc = "Emits a signal which Fulton recovery devices can lock onto. Activate in hand to create a beacon."
icon = 'icons/obj/stock_parts.dmi'
icon_state = "subspace_amplifier"
@@ -152,7 +152,7 @@ var/global/list/total_extraction_beacons = list()
/obj/structure/extraction_point
name = "fulton recovery beacon"
desc = "A beacon for the fulton recovery system. Activate a pack in your hand to link it to a beacon."
desc = "A beacon for the Fulton recovery system. Activate a pack in your hand to link it to a beacon."
icon = 'icons/obj/fulton.dmi'
icon_state = "extraction_point"
anchored = TRUE
@@ -170,7 +170,7 @@ var/global/list/total_extraction_beacons = list()
/obj/effect/extraction_holder
name = "extraction holder"
desc = "you shouldnt see this"
desc = "you shouldn't see this"
var/atom/movable/stored_obj
/obj/item/extraction_pack/proc/check_for_living_mobs(atom/A)

View File

@@ -27,7 +27,7 @@
// Prevents cloning, actual effect is on the cloning machine
/datum/modifier/no_clone
name = "Cloning Incompatability"
name = "Cloning Incompatibility"
desc = "For whatever reason, you cannot be cloned."
//WIP, but these may never be seen anyway, so *shrug
@@ -39,8 +39,8 @@
// Prevents borging (specifically the MMI part), actual effect is on the MMI.
/datum/modifier/no_borg
name = "Cybernetic Incompatability"
desc = "For whatever reason, your brain is incompatable with direct cybernetic interfaces, such as the MMI."
name = "Cybernetic Incompatibility"
desc = "For whatever reason, your brain is incompatible with direct cybernetic interfaces, such as the MMI."
flags = MODIFIER_GENETIC

View File

@@ -55,7 +55,7 @@
for(var/modifier_type in B.brainmob.modifiers) //Can't be shoved in an MMI.
if(istype(modifier_type, /datum/modifier/no_borg))
to_chat(user, "<span class='warning'>\The [src] appears to reject this brain. It is incompatable.</span>")
to_chat(user, "<span class='warning'>\The [src] appears to reject this brain. It is incompatible.</span>")
return
user.visible_message("<b>\The [user]</b> sticks \a [O] into \the [src].")
@@ -210,7 +210,7 @@
. += "<span class='deadsay'>It appears to be completely inactive.</span>"
else
. += "<span class='deadsay'>It appears to be completely inactive.</span>"
/obj/item/device/mmi/digital/emp_act(severity)
if(!src.brainmob)
return

View File

@@ -52,7 +52,7 @@
Victim.adjustBruteLoss(is_adult ? rand(7, 15) : rand(4, 12))
else
to_chat(src, "<span class='warning'>[pick("This subject is incompatable", "This subject does not have a life energy", "This subject is empty", "I am not satisified", "I can not feed from this subject", "I do not feel nourished", "This subject is not food")]...</span>")
to_chat(src, "<span class='warning'>[pick("This subject is incompatible", "This subject does not have a life energy", "This subject is empty", "I am not satisfied", "I can not feed from this subject", "I do not feel nourished", "This subject is not food")]...</span>")
Feedstop()
break

View File

@@ -5,10 +5,10 @@
desc = "This specific spider has been catalogued as 'Carrier', \
and it belongs to the 'Nurse' caste. \
<br><br>\
The spider has a beige and red appearnce, with bright green eyes. \
The spider has a beige and red appearance, with bright green eyes. \
Inside the spider are a large number of younger spiders and spiderlings, hence \
the Carrier classification. \
If the host dies, they will be able to exit the body and survive independantly, \
If the host dies, they will be able to exit the body and survive independently, \
unless the host dies catastrophically."
value = CATALOGUER_REWARD_MEDIUM

View File

@@ -14,7 +14,7 @@
which would at first appear to hinder the Electric Spider, however the stimulant also causes twitching, \
uncontrollable movement, and organ failure, which is accelerated when the bitten prey tries to use their \
newfound speed to flee. It is not uncommon for prey to collapse and die shortly after appearing to have \
'escaped' the spider, enabling a form of persistance hunting for the Electric Spider."
'escaped' the spider, enabling a form of persistence hunting for the Electric Spider."
value = CATALOGUER_REWARD_MEDIUM
/mob/living/simple_mob/animal/giant_spider/electric

View File

@@ -9,7 +9,7 @@
<br><br>\
These spiders are very dangerous, and unusual. They have obviously been influenced by the mysterious \
material known as phoron, however it is not known if this is the result of arachnids merely being \
exposed to naturally-occuring phoron on some alien world, being genetically altered to produce phoron by an unknown party, \
exposed to naturally-occurring phoron on some alien world, being genetically altered to produce phoron by an unknown party, \
or some other unknown cause. \
<br><br>\
Compared to the other types of spiders in their caste, and even to those outside, this one is the \
@@ -20,7 +20,7 @@
Phorongenic spiders are also highly explosive, due to their infusion with phoron. \
Should one die, it will create a large explosion. This appears to be an automatic response \
caused from internal rupturing, as opposed to an intentional act of revenge by the spider, however \
the result is the same, oftening ending a fight with both sides dead."
the result is the same, often ending a fight with both sides dead."
value = CATALOGUER_REWARD_MEDIUM
/mob/living/simple_mob/animal/giant_spider/phorogenic

View File

@@ -8,7 +8,7 @@
enabling them to swallow prey much larger than their heads with their highly mobile jaws. \
<br>\
This type of snake is nonvenomous and use their slender bodies to primarily subdue their prey. \
Nonvenomous snakes either swallow prey alive or kill them by constriction - this is dependant on the prey. \
Nonvenomous snakes either swallow prey alive or kill them by constriction - this is dependent on the prey. \
<br>\
Snakes are mostly passive - however they will attack if threatened - it is recommended that \
persons keep their distance as to not provoke these animals."

View File

@@ -14,7 +14,7 @@
tends to get deflected after slicing into someone's flesh, and as such they tend to not cut deeply. \
The simplistic AI inside compensates for this by using the tendency to bounce away after \
slicing as an evasive tactic to avoid harm. This allows the viscerator to cut up the target, \
fly to the side, and then repeat, potentially causing the target to die from many seperate wounds."
fly to the side, and then repeat, potentially causing the target to die from many separate wounds."
value = CATALOGUER_REWARD_EASY
/mob/living/simple_mob/mechanical/viscerator

View File

@@ -65,7 +65,7 @@
else
var/list/feedback = list(
"This subject is incompatable",
"This subject is incompatible",
"This subject does not have a life energy",
"This subject is empty",
"I am not satisfied",

View File

@@ -90,7 +90,7 @@
Canis Lupus Greatus, or Great Wolf, is a very large predator not beleived to be native to Sif (because it's a wolf, duh), but it has been never been found anywhere else. Despite their size, they are gentle, unless disturbed.\
The majority of a great white wolf's long life is spent much the same as ordinary wolves. However, great wolves usually do not trouble themselves with small prey like humans, \
usually preferring instead to hunt Saviks and Kururaks, and sometimes, leopardmanders or invasive red dragons. \
Though usually docile towards humans and other large sapients, neesless to say, these wolves posesses great strength and a lethal bite. \
Though usually docile towards humans and other large sapients, neesless to say, these wolves possess great strength and a lethal bite. \
a provoked great wolf can be a danger to even the most hardy of explorers due to its speed, crushing bite, and sometimes, it's appetite. \
The great wolves have been hunted to near extinction by poachers due to its extremely valuable hide. They are very rare, as one would expect, and generally cautious around people."
value = CATALOGUER_REWARD_HARD
@@ -166,7 +166,7 @@
"%pred's %belly lets out a wet squelch as a few rounded shapes appear on its surface for a moment.")
B.struggle_messages_inside = list(
"Your squirming seems to please the canine, though it's hard to tell wether or not it's helping get you out or not.",
"Your squirming seems to please the canine, though it's hard to tell whether or not it's helping get you out or not.",
"Your struggles only cause %pred's %belly to groan and gurgle softly around you.",
"Your movement only causes %pred's %belly to clench down upon you, smothering you briefly in thick gutflesh.",
"Your motion causes %pred's %belly to rumble irritably as you sink hands into the thick flesh.",

View File

@@ -63,7 +63,7 @@
The Va'aen drake, or Sivian leopardmander, is a very large predator known for its unusual ability to heal people's wounds via saliva, or storing them in one of its multiple stomachs for extended periods of time. \
The majority of the Va'aen drake's long life is spent in isolation, hunting saviks and shantaks in Sif's mountainous regions or roaming the vast tundras of Sif, \
only seeking out other individuals during the summer mating season where they spend several months in courtship, usually only producing a single egg. \
Though completely docile towards humans and other large sapients, the Va'aen drake posesses great strength and a very potent paralyzing venom; \
Though completely docile towards humans and other large sapients, the Va'aen drake possesses great strength and a very potent paralyzing venom; \
a provoked Va'aen can be a danger to even the most hardy of explorers due to its surprising speed, crushing bite, and long lasting venom. \
The Va'aen has been hunted to near extinction by poachers due to its secretions' unusual healing properties, and its beautiful hide; encountering one has become very rare."
value = CATALOGUER_REWARD_HARD

View File

@@ -174,7 +174,7 @@
)
B.emote_lists[DM_ABSORB] = list(
"The walls cling to you awfully close... It's almost like you're sinking into them.",
"You can feel the walls press in tightly against you, clinging to you posessively!",
"You can feel the walls press in tightly against you, clinging to you possessively!",
"It almost feels like you're sinking into the soft, doughy flesh!",
"You can feel the walls press in around you. Almost molten, so squishy!!"
)

View File

@@ -115,7 +115,7 @@
vore_stomach_flavor = "You slip past pointy triangle teeth and down the slick, slippery gullet of the creature. \
It's warm, and the air is thick. You can hear its body squelch and shift around you as you settle into its stomach! \
It's relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \
You can feel the doughy walls cling to you posessively... It's almost like you could sink into them. \
You can feel the doughy walls cling to you possessively... It's almost like you could sink into them. \
There is also an ominous gurgling from somewhere nearby..."
player_msg = "You're familiar with generating your own energy, but occasionally \

View File

@@ -12,7 +12,7 @@
this new species for any differences in behavior or biology beyond the increase in size. \
<br>\
This species of snake is nonvenomous and use their large bodies to primarily subdue their prey. \
Nonvenomous snakes either swallow prey alive or kill them by constriction - this is dependant on the prey. \
Nonvenomous snakes either swallow prey alive or kill them by constriction - this is dependent on the prey. \
<br>\
This snake is extremely hostile to all wildlife and living beings and should be avoided at all costs. \
People who spot these creatures are urged to inform the nearest militant entity so that they can be \

View File

@@ -65,7 +65,7 @@ var/global/nttransfer_uid = 0
// Crashes the download and displays specific error message
/datum/computer_file/program/nttransfer/proc/crash_download(var/message)
error = message ? message : "An unknown error has occured during download"
error = message ? message : "An unknown error has occurred during download"
finalize_download()
// Cleans up variables for next use

View File

@@ -42,7 +42,7 @@
if(istype(F, /obj/item/weapon/fuel/H))
if(injecting)
to_chat(user, "Theres already a fuel rod in the injector!")
to_chat(user, "There's already a fuel rod in the injector!")
return
to_chat(user, "You insert the rod into the injector")
injecting = 1
@@ -55,7 +55,7 @@
if(istype(F, /obj/item/weapon/fuel/antiH))
if(injecting)
to_chat(user, "Theres already a fuel rod in the injector!")
to_chat(user, "There's already a fuel rod in the injector!")
return
to_chat(user, "You insert the rod into the injector")
injecting = 1
@@ -204,4 +204,4 @@
stopping = 0
return
return

View File

@@ -27,7 +27,7 @@
/obj/item/weapon/bluespace_harpoon/examine(var/mob/user)
. = ..()
. += "It is currently in [mode ? "transmitting" : "recieving"] mode."
. += "It is currently in [mode ? "transmitting" : "receiving"] mode."
. += "Spatial rearrangement is [dropnoms_active ? "active" : "inactive"]."
if(Adjacent(user))
. += "It has [scanmod ? scanmod : "no scanner module"] installed."

View File

@@ -215,7 +215,7 @@
/obj/item/weapon/gun/projectile/automatic/l6_saw
name = "light machine gun"
desc = "A rather sturdily made L6 SAW with a reassuringly ergonomic pistol grip. 'Hephaestus Industries' is engraved on the reciever. Uses 5.45mm rounds. It's also compatible with magazines from STS-35 assault rifles."
desc = "A rather sturdily made L6 SAW with a reassuringly ergonomic pistol grip. 'Hephaestus Industries' is engraved on the receiver. Uses 5.45mm rounds. It's also compatible with magazines from STS-35 assault rifles."
description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' branding for its military-grade equipment used by professional armed forces across human space."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_expected_width = 64

View File

@@ -140,7 +140,7 @@
/obj/item/weapon/gun/projectile/revolver/lombardi/gold
name = "Lombardi Deluxe 2502"
desc = "A sweet looking revolver that is deocrated with false gold and silver plating. Favored among by gamblers and criminals alike. Uses .357 rounds."
desc = "A sweet looking revolver that is decorated with false gold and silver plating. Favored among by gamblers and criminals alike. Uses .357 rounds."
icon_state = "lombardi_gold"
/*

View File

@@ -1,6 +1,6 @@
/obj/machinery/chem_master
name = "ChemMaster 3000"
desc = "Used to seperate and package chemicals in to patches, pills, or bottles. Warranty void if used to create Space Drugs."
desc = "Used to separate and package chemicals in to patches, pills, or bottles. Warranty void if used to create Space Drugs."
density = TRUE
anchored = TRUE
unacidable = TRUE

View File

@@ -2586,7 +2586,7 @@
/datum/reagent/ethanol/ale
name = "Ale"
id = "ale"
description = "A dark alchoholic beverage made by malted barley and yeast."
description = "A dark alcoholic beverage made by malted barley and yeast."
taste_description = "hearty barley ale"
color = "#4C3100"
strength = 50
@@ -3763,7 +3763,7 @@
/datum/reagent/ethanol/vodkatonic
name = "Vodka and Tonic"
id = "vodkatonic"
description = "For when a gin and tonic isn't russian enough."
description = "For when a gin and tonic isn't Russian enough."
taste_description = "tart bitterness"
color = "#0064C8" // rgb: 0, 100, 200
strength = 15
@@ -4403,7 +4403,7 @@
/datum/reagent/ethanol/holywine
name = "Angel Ichor"
id = "holywine"
description = "A premium alchoholic beverage made from distilled angel blood."
description = "A premium alcoholic beverage made from distilled angel blood."
taste_description = "wings in a glass, and a hint of grape"
color = "#C4921E"
strength = 20

View File

@@ -46,13 +46,13 @@
<li>The resleeving pod - For combining minds and bodies.</li>
<li>The resleeving console - For controlling the other machines.</li>
</ul>
Performing resleeving is relatively simple. Nanotrasen maintains body-scan backups of all guests taken when you began your employement, applied for a visa, or at another time.
Performing resleeving is relatively simple. Nanotrasen maintains body-scan backups of all guests taken when you began your employment, applied for a visa, or at another time.
These scans are stored in a database maintained by Nanotrasen, and are sent to stations where it may become necessary to put them to use. You can view all the current body scans at the
resleeving console. You can also view all current mindstate backups at the console.<br>
The process of resleeving is simply:
<ol>
<li>Select a body to create from the body records. This should be the person's original body, or a suitable donor body if none is available.</li>
<li>Create the body using either the SynthFab or the growpod. Upon completion, correct any issues with the body (typically slight genetic or other damage will have occured).</li>
<li>Create the body using either the SynthFab or the growpod. Upon completion, correct any issues with the body (typically slight genetic or other damage will have occurred).</li>
<li>Place the body into the resleeving pod, and select an appropriate mind to sleeve into the body on the console.</li>
<li>Sleeve the mind into the body, using the console.</li>
</ol>

View File

@@ -1748,7 +1748,7 @@
if(!viable_candidates.len)
to_chat(user, "<span class='notice'>There are no viable candidates around you!</span>")
return TRUE
belly_owner = tgui_input_list(user, "Who do you want to recieve the target?", "Select Predator", viable_candidates)
belly_owner = tgui_input_list(user, "Who do you want to receive the target?", "Select Predator", viable_candidates)
if(!belly_owner || !(belly_owner in range(1, host)))
return TRUE
@@ -2439,7 +2439,7 @@
host.vore_selected.shrink_grow_size = (new_grow*0.01)
. = TRUE
if("b_nutritionpercent")
var/new_nutrition = tgui_input_number(user, "Choose the nutrition gain percentage you will recieve per tick from prey. Ranges from 0.01 to 100.", "Set Nutrition Gain Percentage.", host.vore_selected.nutrition_percent, 100, 0.01)
var/new_nutrition = tgui_input_number(user, "Choose the nutrition gain percentage you will receive per tick from prey. Ranges from 0.01 to 100.", "Set Nutrition Gain Percentage.", host.vore_selected.nutrition_percent, 100, 0.01)
if(new_nutrition == null)
return FALSE
var/new_new_nutrition = CLAMP(new_nutrition, 0.01, 100)

View File

@@ -3,12 +3,12 @@
This guide contains most important OOC information for malfunctioning AIs.<br>
<h2>Goal</h2><br>
As malfunctioning AI, your primary goal is to overtake station's systems. To do this, use software "Basic Encryption Hack" on APCs (right click on APC and select Basic Encryption Hack). Please note that hacked APCs have distinctive blue error screen, that tends to attract attention. Rememember that malfunctioning AI is antagonist, so read server rules for antagonists. While hacking APCs is your official goal, feel free to create custom goal, as long as it is fun for everyone.<br>
As malfunctioning AI, your primary goal is to overtake station's systems. To do this, use software "Basic Encryption Hack" on APCs (right click on APC and select Basic Encryption Hack). Please note that hacked APCs have distinctive blue error screen, that tends to attract attention. Remember that malfunctioning AI is antagonist, so read server rules for antagonists. While hacking APCs is your official goal, feel free to create custom goal, as long as it is fun for everyone.<br>
<h2>Hardware</h2><br>
As malfunctioning AI, you may select one hardware piece to help you. Remember that once you select hardware piece, you cannot select another one, so choose wisely! Hardware may be selected by clicking "Select Hardware" button in Hardware tab. Following is list of possible hardware pieces:<br>
<b>APU Generator</b> - Auxiliary Power Unit which allows you to operate even without external power. However, running on APU will stop your CPU time generation, and temporarily disable most of your abilities. APU is also somewhat vulnerable to physical damage, and will fail if your core hardware integrity drops below 50%.<br>
<b>Turrets Focus Enhancer</b> - Removes safeties on installed turrets, boosting their rate of fire, health and enabling nano-regeneration module. This however increases power usage considerably, espicially when regenerating damage.<br>
<b>Turrets Focus Enhancer</b> - Removes safeties on installed turrets, boosting their rate of fire, health and enabling nano-regeneration module. This however increases power usage considerably, especially when regenerating damage.<br>
<b>Secondary Processor Unit</b> - Simple upgrade that increases your CPU time generation by 50%. Useful if you need to speed up your research.<br>
<b>Secondary Memory Bank</b> - Doubles amount of maximal CPU time you may store. This is useful if you need to use lots of abilities in short amount of time.<br>
<b>Self-Destruct Explosives</b> - Large blocks of C4 are attached to your physical core. This C4 has 15 second timer, and may be activated by special button that appears in your Hardware tab. This self-destruct will remain active, even if you are destroyed. If timer reaches 0 your core explodes in strong explosion. Obviously, this destroys you, as well as anyone nearby.<br>
@@ -19,4 +19,4 @@ Software are abilities that have to be unlocked via research menu (Hardware tab)
<b>Interdiction</b> - Sabotage-oriented abilities. T1 ability allows you to recall emergency shuttle. Higher level abilities allow you to unlock cyborgs even without access to robotics console, and T4 ability allows you to hack other AIs to slave them under your control.<br>
<b>Manipulation</b> - Physical-oriented abilities. T1 ability allows you to break few lights, and rarely even APCs. T2 ability allows you to apply upgrade of your choice to camera, or reactivate broken camera. T3 ability allows you to create weak forcefield, that holds air, but won't last for long. And T4 ability allows you to overload machines, detonating them in weak explosion.<br>
<h2>End</h2><br>
If you still have some questions, either check the wiki, ask on IRC, or adminhelp and ask your friendly administration staff.
If you still have some questions, either check the wiki, ask on IRC, or adminhelp and ask your friendly administration staff.