Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Browse files Browse the repository at this point in the history
…o ParadiseSS13-master
  • Loading branch information
Legendaxe committed Jan 29, 2024
2 parents 47e688b + f9f82fd commit a88878c
Show file tree
Hide file tree
Showing 31 changed files with 100 additions and 98 deletions.
32 changes: 18 additions & 14 deletions _maps/map_files/generic/Lavaland.dmm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/simulated/wall/boss,
/turf/simulated/wall/indestructible/boss,
/area/lavaland/surface/outdoors)
"ab" = (
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
Expand Down Expand Up @@ -5819,7 +5819,7 @@
"ya" = (
/obj/effect/mapping_helpers/no_lava,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/wall/boss,
/turf/simulated/wall/indestructible/boss,
/area/lavaland/surface/outdoors)
"yb" = (
/obj/structure/table/glass,
Expand Down Expand Up @@ -6139,6 +6139,10 @@
icon_state = "darkred"
},
/area/mine/laborcamp/security)
"Ad" = (
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/wall/indestructible/boss,
/area/lavaland/surface/outdoors)
"Ai" = (
/obj/machinery/alarm{
dir = 1;
Expand Down Expand Up @@ -41293,7 +41297,7 @@ aa
aa
aa
aa
Rl
Ad
gG
pP
kg
Expand Down Expand Up @@ -41557,8 +41561,8 @@ pH
Ol
ag
le
Rl
Rl
Ad
Ad
ls
Aw
Aw
Expand All @@ -41570,8 +41574,8 @@ Aw
Aw
Aw
lI
Rl
Rl
Ad
Ad
wr
Ly
Ly
Expand Down Expand Up @@ -41828,7 +41832,7 @@ XU
KO
KO
Eq
Rl
Ad
hF
Ly
Ly
Expand Down Expand Up @@ -42342,7 +42346,7 @@ pS
bc
Qr
bc
Rl
Ad
IZ
Ly
Ly
Expand Down Expand Up @@ -42585,8 +42589,8 @@ Pl
hk
gr
hH
Rl
Rl
Ad
Ad
lw
Aw
Aw
Expand All @@ -42598,8 +42602,8 @@ Aw
Aw
lw
Aw
Rl
Rl
Ad
Ad
Vq
Ly
Ly
Expand Down Expand Up @@ -42835,7 +42839,7 @@ aa
aa
aa
aa
Rl
Ad
gr
pP
kl
Expand Down
10 changes: 0 additions & 10 deletions code/__DEFINES/language_defines.dm
Original file line number Diff line number Diff line change
@@ -1,13 +1,3 @@
//Languages!
#define LANGUAGE_HUMAN 1
#define LANGUAGE_ALIEN 2
#define LANGUAGE_DOG 4
#define LANGUAGE_CAT 8
#define LANGUAGE_BINARY 16
#define LANGUAGE_OTHER 32768

#define LANGUAGE_UNIVERSAL 65535

//Language flags.
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
#define RESTRICTED 2 // Language can only be accquired by spawning or an admin.
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/subsystem/SSthrowing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ SUBSYSTEM_DEF(throwing)
var/last_move = 0
///When this variable is false, non dense mobs will be hit by a thrown item. useful for things that you dont want to be cheesed by crawling, EG. gravitational anomalies
var/dodgeable = TRUE
/// Can a thrown mob move themselves to stop the throw?
var/block_movement = TRUE

/datum/thrownthing/proc/tick()
var/atom/movable/AM = thrownthing
Expand Down
1 change: 0 additions & 1 deletion code/datums/spells/mimic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,6 @@
examine_text = form.examine(user)
name = form.name


/obj/effect/proc_holder/spell/mimic/morph
action_background_icon_state = "bg_morph"

Expand Down
3 changes: 2 additions & 1 deletion code/game/atoms_movable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@
step(src, AM.dir)
..()

/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY, dodgeable = TRUE)
/atom/movable/proc/throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = INFINITY, dodgeable = TRUE, block_movement = TRUE)
if(!target || (flags & NODROP) || speed <= 0)
return 0

Expand Down Expand Up @@ -435,6 +435,7 @@
TT.diagonals_first = diagonals_first
TT.callback = callback
TT.dodgeable = dodgeable
TT.block_movement = block_movement

var/dist_x = abs(target.x - src.x)
var/dist_y = abs(target.y - src.y)
Expand Down
33 changes: 22 additions & 11 deletions code/game/gamemodes/cult/blood_magic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -700,23 +700,34 @@
if(user.holy_check())
return
if(proximity_flag)
// Shielded suit
if(istype(target, /obj/item/clothing/suit/hooded/cultrobes/cult_shield))
var/datum/component/shielded/shield = target.GetComponent(/datum/component/shielded)
if(shield.current_charges >= 3)
to_chat(user, "<span class='warning'>[target] is already at full charge!</span>")
return
uses--
to_chat(user, "<span class='warning'>You empower [target] with blood, recharging its shields!</span>")
playsound(user, 'sound/magic/cult_spell.ogg', 25, TRUE, SOUND_RANGE_SET(7))
shield.current_charges = 3
user.update_appearance(UPDATE_ICON)
return ..()

// Veil Shifter
if(istype(target, /obj/item/cult_shift))
var/obj/item/cult_shift/S = target
if(S.uses < 4)
uses--
to_chat(user, "<span class='warning'>You empower [target] with blood, recharging its ability to shift!</span>")
playsound(user, 'sound/magic/cult_spell.ogg', 25, TRUE, SOUND_RANGE_SET(7))
S.uses = 4
S.icon_state = "shifter"
else
if(S.uses >= 4)
to_chat(user, "<span class='warning'>[target] is already at full charge!</span>")
return
else
to_chat(user, "<span class='warning'>The spell will not work on [target]!</span>")
return
..()
uses--
to_chat(user, "<span class='warning'>You empower [target] with blood, recharging its ability to shift!</span>")
playsound(user, 'sound/magic/cult_spell.ogg', 25, TRUE, SOUND_RANGE_SET(7))
S.uses = 4
S.icon_state = "shifter"
return ..()

to_chat(user, "<span class='warning'>The spell will not work on [target]!</span>")
return ..()

//Blood Rite: Absorb blood to heal cult members or summon weapons
/obj/item/melee/blood_magic/manipulator
Expand Down
1 change: 0 additions & 1 deletion code/game/gamemodes/cult/cult_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@
var/datum/action/innate/toggle_clumsy/A = new
A.Grant(cult_mind.current)

add_cult_actions(cult_mind)
update_cult_icons_added(cult_mind)
cult_objs.study(cult_mind.current)
to_chat(cult_mind.current, "<span class='motd'>For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Cultist)</span>")
Expand Down
9 changes: 5 additions & 4 deletions code/game/machinery/lightswitch.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
pixel_x = -25
dir = WEST

update_icon(UPDATE_ICON_STATE)
update_icon(UPDATE_ICON_STATE|UPDATE_OVERLAYS)

/obj/machinery/light_switch/update_icon_state()
if(stat & NOPOWER)
Expand All @@ -40,6 +40,7 @@
if(stat & NOPOWER)
return

. += "light[get_area(src).lightswitch]"
underlays += emissive_appearance(icon, "light_lightmask")

/obj/machinery/light_switch/examine(mob/user)
Expand All @@ -52,15 +53,15 @@

/obj/machinery/light_switch/attack_hand(mob/user)
playsound(src, 'sound/machines/lightswitch.ogg', 10, TRUE)
update_icon(UPDATE_ICON_STATE)
update_icon(UPDATE_ICON_STATE|UPDATE_OVERLAYS)

var/area/A = get_area(src)

A.lightswitch = !A.lightswitch
A.update_icon(UPDATE_ICON_STATE)

for(var/obj/machinery/light_switch/L in A)
L.update_icon(UPDATE_ICON_STATE)
L.update_icon(UPDATE_ICON_STATE|UPDATE_OVERLAYS)

machine_powernet.power_change()

Expand All @@ -70,7 +71,7 @@
if(stat & NOPOWER)
set_light(0)
else
set_light(1, LIGHTING_MINIMUM_POWER)
set_light(1, 0.5)

update_icon(UPDATE_ICON_STATE|UPDATE_OVERLAYS)

Expand Down
27 changes: 21 additions & 6 deletions code/game/machinery/requests_console.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ GLOBAL_LIST_EMPTY(allRequestConsoles)
var/print_cooldown = 0 //cooldown on shipping label printer, stores the in-game time of when the printer will next be ready
var/obj/item/radio/Radio
var/radiochannel = ""
var/reminder_timer_id = TIMER_ID_NULL

/obj/machinery/requests_console/power_change()
if(!..())
Expand Down Expand Up @@ -243,7 +244,7 @@ GLOBAL_LIST_EMPTY(allRequestConsoles)
else if(recipient in SUPPLY_ROLES)
radiochannel = "Supply"
message_log.Add(list(list("Message sent to [recipient] at [station_time_timestamp()]", "[message]")))
Radio.autosay("Alert; a new requests console message received for [recipient] from [department]", null, "[radiochannel]")
Radio.autosay("Alert; a new message has been received from [department]", "[recipient] Requests Console", "[radiochannel]")
else
atom_say("No server detected!")

Expand All @@ -259,6 +260,9 @@ GLOBAL_LIST_EMPTY(allRequestConsoles)
Console.newmessagepriority = RQ_NONEW_MESSAGES
Console.update_icon(UPDATE_OVERLAYS)
Console.set_light(1)
if(reminder_timer_id != TIMER_ID_NULL)
deltimer(reminder_timer_id)
reminder_timer_id = TIMER_ID_NULL
if(tempScreen == RCS_MAINMENU)
reset_message()
screen = tempScreen
Expand Down Expand Up @@ -332,29 +336,40 @@ GLOBAL_LIST_EMPTY(allRequestConsoles)
if(mainmenu)
screen = RCS_MAINMENU

/obj/machinery/requests_console/proc/createMessage(source, title, message, priority)
/obj/machinery/requests_console/proc/createMessage(source, title, message, priority, forced = FALSE)
var/linkedSender
if(inoperable() && !forced)
message_log.Add(list(list("Message lost due to console failure. Please contact [station_name()]'s system administrator or AI for technical assistance.")))
return
if(istype(source, /obj/machinery/requests_console))
var/obj/machinery/requests_console/sender = source
linkedSender = sender.department
else
capitalize(source)
linkedSender = source
capitalize(title)
if(newmessagepriority < priority)
newmessagepriority = priority
update_icon(UPDATE_ICON_STATE | UPDATE_OVERLAYS)
if(!silent)
playsound(loc, 'sound/machines/twobeep.ogg', 50, TRUE)
atom_say(title)
if(reminder_timer_id == TIMER_ID_NULL)
reminder_timer_id = addtimer(CALLBACK(src, PROC_REF(remind_unread_messages)), 5 MINUTES, TIMER_STOPPABLE | TIMER_LOOP)

switch(priority)
if(RQ_HIGHPRIORITY) // High
message_log.Add(list(list("High Priority - From: [linkedSender]") + message)) // List in a list for passing into TGUI
message_log.Add(list(list("High Priority - From: [linkedSender]", message))) // List in a list for passing into TGUI
else // Normal
message_log.Add(list(list("From: [linkedSender]") + message)) // List in a list for passing into TGUI
message_log.Add(list(list("From: [linkedSender]", message))) // List in a list for passing into TGUI
set_light(2)

/obj/machinery/requests_console/proc/remind_unread_messages()
if(newmessagepriority == RQ_NONEW_MESSAGES)
deltimer(reminder_timer_id)
reminder_timer_id = TIMER_ID_NULL
return

atom_say("Unread message(s) available.")

/obj/machinery/requests_console/proc/print_label(tag_name, tag_index)
var/obj/item/shippingPackage/sp = new /obj/item/shippingPackage(get_turf(src))
sp.sortTag = tag_index
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/effects/effect_system/effects_water.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

/obj/effect/particle_effect/water/proc/extinguish_move(turf/target)
for(var/counter in 1 to 5)
if(!step_towards(src, target))
if(!step_towards(src, target) && counter != 1)
return
var/turf/current_turf = get_turf(src)
reagents.reaction(current_turf)
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/weapons/storage/surgical_tray.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
desc = "A small metallic tray covered in sterile tarp. Intended to store surgical tools in a neat and clean fashion."
icon_state = "surgical_tray"
storage_slots = 22 // 11 Items, x2 to be sure
w_class = WEIGHT_CLASS_BULKY
max_w_class = WEIGHT_CLASS_GIGANTIC
max_combined_w_class = 38 // Items listed add up to 19, x2 to be sure
can_hold = list(
Expand Down
9 changes: 2 additions & 7 deletions code/modules/hydroponics/hydroponics_tray.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,9 @@
return ..()

/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I))
if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I) || exchange_parts(user, I))
return

if(exchange_parts(user, I))
return

else
return ..()
return ..()

/obj/machinery/hydroponics/constructable/crowbar_act(mob/user, obj/item/I)

Expand Down
4 changes: 2 additions & 2 deletions code/modules/hydroponics/seeds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@


/obj/item/seeds/proc/get_analyzer_text() // In case seeds have something special to tell to the analyzer
var/text = ""
var/list/text = list()
if(!get_gene(/datum/plant_gene/trait/plant_type/weed_hardy) && !get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism) && !get_gene(/datum/plant_gene/trait/plant_type/alien_properties))
text += "- Plant type: Normal plant\n"
if(get_gene(/datum/plant_gene/trait/plant_type/weed_hardy))
Expand Down Expand Up @@ -306,7 +306,7 @@
all_traits += " [traits.get_name()]"
text += "- Plant Traits:[all_traits]\n"

return text
return text.Join("")

/obj/item/seeds/proc/on_chem_reaction(datum/reagents/S) // In case seeds have some special interaction with special chems
return
Expand Down
2 changes: 1 addition & 1 deletion code/modules/mob/living/living.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1116,7 +1116,7 @@
if("lighting_alpha")
sync_lighting_plane_alpha()

/mob/living/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, dodgeable)
/mob/living/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, dodgeable, block_movement)
stop_pulling()
return ..()

Expand Down
Loading

0 comments on commit a88878c

Please sign in to comment.