Merge remote-tracking branch 'upstream/master' into spooktober-update

This commit is contained in:
ariaworld
2023-11-25 01:16:38 +01:00
61 changed files with 13934 additions and 11103 deletions
+24 -4
View File
@@ -1,3 +1,7 @@
#define WIZARD_DO_NOTHING 0
#define WIZARD_QDEL_INVENTORY 1
#define WIZARD_DROP_INVENTORY 2
/datum/antagonist/wizard
name = "Space Wizard"
roundend_category = "wizards/witches"
@@ -10,7 +14,8 @@
ui_name = "AntagInfoWizard"
suicide_cry = "FOR THE FEDERATION!!"
var/give_objectives = TRUE
var/strip = TRUE //strip before equipping
var/inventory_mode = WIZARD_QDEL_INVENTORY
var/change_species = TRUE
var/allow_rename = TRUE
var/datum/team/wizard/wiz_team //Only created if wizard summons apprentices
var/move_to_lair = TRUE
@@ -90,10 +95,14 @@
var/mob/living/carbon/human/H = owner.current
if(!istype(H))
return
if(strip)
H.delete_equipment()
switch(inventory_mode)
if(WIZARD_QDEL_INVENTORY)
H.delete_equipment()
if(WIZARD_DROP_INVENTORY)
H.unequip_everything()
//Wizards are human by default. Use the mirror if you want something else.
H.set_species(/datum/species/human)
if(change_species)
H.set_species(/datum/species/human)
if(H.age < wiz_age)
H.age = wiz_age
H.equipOutfit(outfit_type)
@@ -253,6 +262,17 @@
new_objective.owner = owner
objectives += new_objective
/datum/antagonist/wizard/on_station
inventory_mode = WIZARD_DROP_INVENTORY
change_species = FALSE
/datum/antagonist/wizard/on_station/on_gain()
var/datum/effect_system/smoke_spread/smoke = new
smoke.start()
smoke.set_up(2, get_turf(owner))
owner.current.visible_message("<span class='danger'>[owner] suddenly disappears in a puff of smoke, leaving [owner.p_their()] clothes behind!</span>", "<span class='userdanger'>You feel yourself being pulled away...</span>")
return ..()
//Solo wizard report
/datum/antagonist/wizard/roundend_report()
var/list/parts = list()
@@ -14,7 +14,7 @@
/obj/item/barthpot/attackby(obj/item/I, mob/user, params)
if(BallTutorial)
say("Hello and welcome to the annual Citadelstation Spookyball 2021! CENTCOM requisitioned this old hospital as a new colony site two years ago, and were back again after a few additions here and there. Next to me you can find all the tools youll need to build a nice private house, if youre here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if youre more interested in building a cave dwelling. Finally the umbrella and light sources are because its spooky, and it might rain! As for interesting spots; Theres the old abandoned mansion which you can get to by going through the entrance and towards the east. Theres also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
say("Hello and welcome to the annual Citadel Station Spooky Ball [time2text(world.realtime, "YYYY")]! CENTCOM requisitioned this old hospital as a new colony site [text2num(time2text(world.realtime,"YYYY")) - 2019] years ago, and were back again after a few additions here and there. Next to me you can find all the tools youll need to build a nice private house, if youre here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if youre more interested in building a cave dwelling. Finally the umbrella and light sources are because its spooky, and it might rain! As for interesting spots; Theres the old abandoned mansion which you can get to by going through the entrance and towards the east. Theres also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
return
if(!active)
say("Meow!")
@@ -24,7 +24,7 @@
if(istype(I, I2))
qdel(I)
new /obj/item/reagent_containers/food/snacks/special_candy(loc)
to_chat(user, "<span class='notice'>You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystalising in it's wake.</span>")
to_chat(user, "<span class='notice'>You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystallizing in it's wake.</span>")
say("Hooray! Thank you!")
items_list -= I2
return
@@ -32,7 +32,7 @@
/obj/item/barthpot/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
if(BallTutorial)
say("Hello and welcome to the annual Citadelstation Spookyball 2021! CENTCOM requisitioned this old hospital as a new colony site two years ago, and were back again after a few additions here and there. Next to me you can find all the tools youll need to build a nice private house, if youre here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if youre more interested in building a cave dwelling. Finally the umbrella and light sources are because its spooky, and it might rain! As for interesting spots; Theres the old abandoned mansion which you can get to by going through the entrance and towards the east. Theres also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
say("Hello and welcome to the annual Citadel Station Spooky Ball [time2text(world.realtime, "YYYY")]! CENTCOM requisitioned this old hospital as a new colony site [text2num(time2text(world.realtime,"YYYY")) - 2019] years ago, and were back again after a few additions here and there. Next to me you can find all the tools youll need to build a nice private house, if youre here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if youre more interested in building a cave dwelling. Finally the umbrella and light sources are because its spooky, and it might rain! As for interesting spots; Theres the old abandoned mansion which you can get to by going through the entrance and towards the east. Theres also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
return
if(!active)
say("Meow!")
@@ -40,7 +40,7 @@
say("Hello there, I'm Bartholomew, Jacqueline's Familiar.")
sleep(20)
say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalise into a magic candy!")
say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalize into a magic candy!")
if(!iscarbon(user))
say("Though... I'm not sure you can help me.")
+1 -1
View File
@@ -105,7 +105,7 @@
addStaticPower(-value, powerchannel)
/obj/machinery/proc/power_change()
//SIGNAL_HANDLER
SHOULD_NOT_SLEEP(TRUE)
//SHOULD_CALL_PARENT(TRUE)
if(stat & BROKEN)
+12
View File
@@ -773,6 +773,18 @@
icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "sniper_zoom"
/datum/action/item_action/toggle_scope_zoom/IsAvailable(silent = FALSE)
. = ..()
if(!. && owner)
var/obj/item/gun/G = target
G.zoom(owner, owner.dir, FALSE)
/datum/action/item_action/toggle_scope_zoom/Trigger()
. = ..()
if(.)
var/obj/item/gun/G = target
G.zoom(owner, owner.dir)
/datum/action/item_action/toggle_scope_zoom/Remove(mob/living/L)
var/obj/item/gun/G = target
G.zoom(L, L.dir, FALSE)
+19 -12
View File
@@ -541,7 +541,7 @@
/obj/machinery/computer/shuttle/pod/Initialize(mapload)
. = ..()
RegisterSignal(SSsecurity_level, COMSIG_SECURITY_LEVEL_CHANGED, .proc/check_lock)
/obj/machinery/computer/shuttle/pod/ComponentInitialize()
. = ..()
AddElement(/datum/element/update_icon_blocker)
@@ -571,18 +571,19 @@
if(obj_flags & EMAGGED)
return
admin_controlled = !(new_level < SEC_LEVEL_RED)
/obj/docking_port/stationary/random
name = "escape pod"
id = "pod"
dwidth = 1
width = 3
height = 4
var/target_area = list(/area/lavaland/surface/outdoors, /area/icemoon/underground/unexplored/rivers)
/// The area the pod tries to land at
var/target_area = /area/lavaland/surface/outdoors
/// Minimal distance from the map edge, setting this too low can result in shuttle landing on the edge and getting "sliced"
var/edge_distance = 16
// Minimal distance from the map edge, setting this too low can result in shuttle landing on the edge and getting "sliced"
/obj/docking_port/stationary/random/Initialize(mapload)
. = ..()
@@ -590,15 +591,21 @@
return
var/list/turfs = get_area_turfs(target_area)
var/turf/T = pick(turfs)
var/original_len = turfs.len
while(turfs.len)
if(T.x<edge_distance || T.y<edge_distance || (world.maxx+1-T.x)<edge_distance || (world.maxy+1-T.y)<edge_distance)
turfs -= T
T = pick(turfs)
var/turf/picked_turf = pick(turfs)
if(picked_turf.x<edge_distance || picked_turf.y<edge_distance || (world.maxx+1-picked_turf.x)<edge_distance || (world.maxy+1-picked_turf.y)<edge_distance)
turfs -= picked_turf
else
forceMove(T)
break
forceMove(picked_turf)
return
// Fallback: couldn't find anything
WARNING("docking port '[id]' could not be randomly placed in [target_area]: of [original_len] turfs, none were suitable")
return INITIALIZE_HINT_QDEL
/obj/docking_port/stationary/random/icemoon
target_area = /area/icemoon/surface/outdoors
//Pod suits/pickaxes