mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-30 16:16:47 +01:00
Merge remote-tracking branch 'upstream/master' into spooktober-update
This commit is contained in:
@@ -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 we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re 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 you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s 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 we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re 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 you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s 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 we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re 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 you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s 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 we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re 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 you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s 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.")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user