Skip to content

Commit

Permalink
Merge branch 'dev-sierra' into upstream-pr-34979
Browse files Browse the repository at this point in the history
  • Loading branch information
LordNest authored Jan 7, 2025
2 parents 46cf164 + 2af08a7 commit 6badd68
Show file tree
Hide file tree
Showing 370 changed files with 71,963 additions and 11,895 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/generate_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
run: |
~/dmdoc
- name: Deploy
uses: JamesIves/github-pages-deploy-action@dc18a3c6b46d56484cb63f291becd7ed4f0269b9
uses: JamesIves/github-pages-deploy-action@15de0f09300eea763baee31dff6c6184995c5f6a
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
Expand Down
52 changes: 50 additions & 2 deletions baystation12.dme
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include "code\__defines\atmos.dm"
#include "code\__defines\atmospherics.dm"
#include "code\__defines\byond_tracy.dm"
#include "code\__defines\changeling.dm"
#include "code\__defines\chemistry.dm"
#include "code\__defines\client.dm"
#include "code\__defines\colors.dm"
Expand Down Expand Up @@ -348,6 +349,8 @@
#include "code\datums\item_modifiers\space_suits.dm"
#include "code\datums\item_modifiers\~defines.dm"
#include "code\datums\licences\license.dm"
#include "code\datums\managed_browsers\_managed_browser.dm"
#include "code\datums\managed_browsers\changelingevolution.dm"
#include "code\datums\mind\memory.dm"
#include "code\datums\mind\mind.dm"
#include "code\datums\move_intent\move_intent.dm"
Expand Down Expand Up @@ -610,8 +613,48 @@
#include "code\game\gamemodes\calamity\calamity.dm"
#include "code\game\gamemodes\changeling\absorbed_dna.dm"
#include "code\game\gamemodes\changeling\changeling.dm"
#include "code\game\gamemodes\changeling\changeling_evolutiontree.dm"
#include "code\game\gamemodes\changeling\changeling_powers.dm"
#include "code\game\gamemodes\changeling\modularchangling.dm"
#include "code\game\gamemodes\changeling\generic_equip_procs.dm"
#include "code\game\gamemodes\changeling\powers\absorb.dm"
#include "code\game\gamemodes\changeling\powers\armblade.dm"
#include "code\game\gamemodes\changeling\powers\armor.dm"
#include "code\game\gamemodes\changeling\powers\augmented_eyesight.dm"
#include "code\game\gamemodes\changeling\powers\bioelectrogenesis.dm"
#include "code\game\gamemodes\changeling\powers\blind_sting.dm"
#include "code\game\gamemodes\changeling\powers\boost_range.dm"
#include "code\game\gamemodes\changeling\powers\cryo_sting.dm"
#include "code\game\gamemodes\changeling\powers\darkvision.dm"
#include "code\game\gamemodes\changeling\powers\deaf_sting.dm"
#include "code\game\gamemodes\changeling\powers\death_sting.dm"
#include "code\game\gamemodes\changeling\powers\delayed_toxin_sting.dm"
#include "code\game\gamemodes\changeling\powers\electric_lockpick.dm"
#include "code\game\gamemodes\changeling\powers\endoarmor.dm"
#include "code\game\gamemodes\changeling\powers\engorged_glands.dm"
#include "code\game\gamemodes\changeling\powers\enrage.dm"
#include "code\game\gamemodes\changeling\powers\escape_restraints.dm"
#include "code\game\gamemodes\changeling\powers\extract_dna_sting.dm"
#include "code\game\gamemodes\changeling\powers\fabricate_clothing.dm"
#include "code\game\gamemodes\changeling\powers\fake_death.dm"
#include "code\game\gamemodes\changeling\powers\false_identity.dm"
#include "code\game\gamemodes\changeling\powers\fleshmend.dm"
#include "code\game\gamemodes\changeling\powers\hivemind.dm"
#include "code\game\gamemodes\changeling\powers\lsd_sting.dm"
#include "code\game\gamemodes\changeling\powers\mimic_voice.dm"
#include "code\game\gamemodes\changeling\powers\panacea.dm"
#include "code\game\gamemodes\changeling\powers\rapid_regen.dm"
#include "code\game\gamemodes\changeling\powers\rapid_synthesis.dm"
#include "code\game\gamemodes\changeling\powers\reattach_limb.dm"
#include "code\game\gamemodes\changeling\powers\recursive_enhancement.dm"
#include "code\game\gamemodes\changeling\powers\reinforced_tendons.dm"
#include "code\game\gamemodes\changeling\powers\revive.dm"
#include "code\game\gamemodes\changeling\powers\self_respiration.dm"
#include "code\game\gamemodes\changeling\powers\shriek.dm"
#include "code\game\gamemodes\changeling\powers\silence_sting.dm"
#include "code\game\gamemodes\changeling\powers\synaptizine_overdose.dm"
#include "code\game\gamemodes\changeling\powers\tentacle.dm"
#include "code\game\gamemodes\changeling\powers\transform.dm"
#include "code\game\gamemodes\changeling\powers\visible_camouflage.dm"
#include "code\game\gamemodes\cult\cult.dm"
#include "code\game\gamemodes\cult\cult_items.dm"
#include "code\game\gamemodes\cult\cult_structures.dm"
Expand Down Expand Up @@ -933,7 +976,6 @@
#include "code\game\objects\effects\decals\decal.dm"
#include "code\game\objects\effects\decals\misc.dm"
#include "code\game\objects\effects\decals\remains.dm"
#include "code\game\objects\effects\decals\warning_stripes.dm"
#include "code\game\objects\effects\decals\Cleanable\aliens.dm"
#include "code\game\objects\effects\decals\Cleanable\fuel.dm"
#include "code\game\objects\effects\decals\Cleanable\humans.dm"
Expand Down Expand Up @@ -1162,6 +1204,7 @@
#include "code\game\objects\items\weapons\material\urn.dm"
#include "code\game\objects\items\weapons\melee\energy.dm"
#include "code\game\objects\items\weapons\melee\misc.dm"
#include "code\game\objects\items\weapons\storage\ammobox.dm"
#include "code\game\objects\items\weapons\storage\backpack.dm"
#include "code\game\objects\items\weapons\storage\bags.dm"
#include "code\game\objects\items\weapons\storage\belt.dm"
Expand Down Expand Up @@ -1532,7 +1575,10 @@
#include "code\modules\augment\passive\armor.dm"
#include "code\modules\augment\passive\boost.dm"
#include "code\modules\augment\passive\fluff.dm"
#include "code\modules\augment\passive\ling_lenses.dm"
#include "code\modules\augment\passive\lingcore.dm"
#include "code\modules\augment\passive\nanoaura.dm"
#include "code\modules\augment\passive\ragecore.dm"
#include "code\modules\augment\passive\boost\muscle.dm"
#include "code\modules\augment\passive\boost\reflex.dm"
#include "code\modules\augment\passive\boost\shooting.dm"
Expand Down Expand Up @@ -2962,6 +3008,7 @@
#include "code\modules\reagents\reagent_containers\food\snacks\bugmeat.dm"
#include "code\modules\reagents\reagent_containers\food\snacks\cheese.dm"
#include "code\modules\reagents\reagent_containers\food\snacks\donkpocket.dm"
#include "code\modules\reagents\reagent_containers\food\snacks\fortunecookie.dm"
#include "code\modules\reagents\reagent_containers\food\snacks\meat.dm"
#include "code\modules\reagents\reagent_containers\food\snacks\shellfish.dm"
#include "code\modules\reagents\reagent_containers\glass\bottle.dm"
Expand Down Expand Up @@ -3032,6 +3079,7 @@
#include "code\modules\shuttles\shuttles_multi.dm"
#include "code\modules\skrell\skrell_rigs.dm"
#include "code\modules\species\species.dm"
#include "code\modules\species\species_age_comparison.dm"
#include "code\modules\species\species_attack.dm"
#include "code\modules\species\species_getters.dm"
#include "code\modules\species\species_grab.dm"
Expand Down
2 changes: 2 additions & 0 deletions code/__defines/changeling.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#define ABSORB_NONLETHAL 1
#define ABSORB_LETHAL 2
2 changes: 2 additions & 0 deletions code/__defines/colors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
#define COLOR_PURPLE_GRAY "#a2819e"
#define COLOR_BLUE_LIGHT "#33ccff"
#define COLOR_RED_LIGHT "#ff3333"
#define COLOR_GREEN_LIGHT "#33ff33"
#define COLOR_ORANGE_LIGHT "#ffcc33"
#define COLOR_BEIGE "#ceb689"
#define COLOR_BABY_BLUE "#89cff0"
#define COLOR_PALE_GREEN_GRAY "#aed18b"
Expand Down
14 changes: 14 additions & 0 deletions code/__defines/gamemode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@
#define Sp_CHARGES "charges"
#define Sp_HOLDVAR "holdervar"

//changeling cost
#define CHANGELING_STASIS_COST 20

//Voting-related
#define VOTE_PROCESS_ABORT 1
#define VOTE_PROCESS_COMPLETE 2
Expand All @@ -105,3 +108,14 @@
#define VOTE_STATUS_PREVOTE 1
#define VOTE_STATUS_ACTIVE 2
#define VOTE_STATUS_COMPLETE 3

/*
Changeling Defines
*/
#define CHANGELING_POWER_INHERENT "Inherent"
#define CHANGELING_POWER_ARMOR "Armor"
#define CHANGELING_POWER_STINGS "Stings"
#define CHANGELING_POWER_SHRIEKS "Shrieks"
#define CHANGELING_POWER_HEALTH "Health"
#define CHANGELING_POWER_ENHANCEMENTS "Enhancements"
#define CHANGELING_POWER_WEAPONS "Weapons"
2 changes: 2 additions & 0 deletions code/_global_vars/lists/objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ GLOBAL_DATUM_INIT(universe, /datum/universal_state, new)
GLOBAL_LIST_INIT(full_alphabet, list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"))

GLOBAL_LIST_EMPTY(meteor_list)

GLOBAL_LIST_EMPTY(shield_generators) // All shield generators
46 changes: 46 additions & 0 deletions code/_helpers/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,52 @@
/proc/get_exposed_defense_zone(atom/movable/target)
return pick(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_CHEST, BP_GROIN)

/proc/do_mob(mob/user , mob/target, time = 30, target_zone = 0, uninterruptible = FALSE, progress = TRUE, ignore_movement = FALSE, incapacitation_affected = TRUE)
if(!user || !target)
return 0
var/user_loc = user.loc
var/target_loc = target.loc

var/holding = user.get_active_hand()
var/datum/progressbar/private/progbar
if (progress)
progbar = new(user, time, target)

var/endtime = world.time+time
var/starttime = world.time
. = TRUE
while (world.time < endtime)
stoplag(1)
if (progress)
progbar.update(world.time - starttime)
if(!user || !target)
. = FALSE
break
if(uninterruptible)
continue

if(!user || (user.incapacitated() && incapacitation_affected))
. = FALSE
break

if(user.loc != user_loc && !ignore_movement)
. = FALSE
break

if(target.loc != target_loc && !ignore_movement)
. = FALSE
break

if(user.get_active_hand() != holding)
. = FALSE
break

if(target_zone && user.zone_sel.selecting != target_zone)
. = FALSE
break

if (progbar)
qdel(progbar)

/// Integer. Unique sequential ID from the `do_after` proc used to validate `DO_USER_UNIQUE_ACT` flag checks.
/mob/var/do_unique_user_handle = 0
Expand Down
17 changes: 6 additions & 11 deletions code/_onclick/click.dm
Original file line number Diff line number Diff line change
Expand Up @@ -527,21 +527,16 @@ GLOBAL_LIST_INIT(click_catchers, create_click_catcher())
. = 1

/client/MouseDown(object, location, control, params)
var/delay = mob.CanMobAutoclick(object, location, params)
if(delay)
selected_target[1] = object
selected_target[2] = params
while(selected_target[1])
Click(selected_target[1], location, control, selected_target[2])
sleep(delay)
var/datum/click_handler/click_handler = usr.GetClickHandler()
click_handler.OnMouseDown(object, location, params)

/client/MouseUp(object, location, control, params)
selected_target[1] = null
var/datum/click_handler/click_handler = usr.GetClickHandler()
click_handler.OnMouseUp(object, location, params)

/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params)
if(selected_target[1] && over_object.IsAutoclickable())
selected_target[1] = over_object
selected_target[2] = params
var/datum/click_handler/click_handler = usr.GetClickHandler()
click_handler.OnMouseDrag(over_object, params)

/mob/proc/CanMobAutoclick(object, location, params)
return
Expand Down
65 changes: 65 additions & 0 deletions code/_onclick/click_handling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,77 @@ var/global/const/CLICK_HANDLER_REMOVE_IF_NOT_TOP = FLAG(1)
/datum/click_handler/proc/OnDblClick(atom/A, params)
return

/**
* Called on MouseDown by `/client/MouseDown()` when this is the mob's currently active click handler.
*
* **Parameters**:
* - `object` - The atom mouse is underneath.
* - `location` - the turf, stat panel, grid cell, etc. containing the object where it was clicked
* - `params` (list of strings) - List of click parameters. See BYOND's `CLick()` documentation.
*
* Has no return value.
*/
/datum/click_handler/proc/OnMouseDown(object, location, params)
return

/**
* Called on MouseUp by `/client/MouseUp()` when this is the mob's currently active click handler.
*
* **Parameters**:
* - `object` - The atom underneath mouse.
* - `location` - the turf, stat panel, grid cell, etc. containing the object where it was clicked
* - `params` (list of strings) - List of click parameters. See BYOND's `CLick()` documentation.
*
* Has no return value.
*/
/datum/click_handler/proc/OnMouseUp(object, location, params)
return

/**
* Called on MouseUp by `/client/MouseDrag()` when this is the mob's currently active click handler.
*
* **Parameters**:
* - `over_object` - The new atom underneath mouse.
* - `params` (list of strings) - List of click parameters. See BYOND's `CLick()` documentation.
*
* Has no return value.
*/
/datum/click_handler/proc/OnMouseDrag(atom/over_object, params)
return

/datum/click_handler/proc/CanAutoClick(object, location, params)
return

/datum/click_handler/default
/// Holds click params [2] and a reference [1] to the atom under the cursor on MouseDown/Drag
var/list/selected_target = list(null, null)

/datum/click_handler/default/OnClick(atom/A, params)
user.ClickOn(A, params)

/datum/click_handler/default/OnDblClick(atom/A, params)
user.DblClickOn(A, params)

/datum/click_handler/default/OnMouseDown(object, location, params)
var/delay = CanAutoClick(object, location, params)
if(delay)
selected_target[1] = object
selected_target[2] = params
while(selected_target[1])
OnClick(selected_target[1], selected_target[2])
sleep(delay)

/datum/click_handler/default/OnMouseUp(object, location, params)
selected_target[1] = null

/datum/click_handler/default/OnMouseDrag(atom/over_object, params)
if(selected_target[1] && over_object && over_object.IsAutoclickable()) //Over object could be null, for example if dragging over darkness
selected_target[1] = over_object
selected_target[2] = params

/datum/click_handler/default/CanAutoClick(object, location, params)
return user.CanMobAutoclick(object, location, params)

/**
* Returns the mob's currently active click handler.
*
Expand Down
6 changes: 3 additions & 3 deletions code/_onclick/hud/ability_screen_objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -252,9 +252,9 @@

//Changeling Abilities
/obj/screen/ability/verb_based/changeling
icon_state = "ling_spell_base"
background_base_state = "ling"

icon_state = "const_spell_base"
background_base_state = "const"
//use this to force add powers
/obj/screen/movable/ability_master/proc/add_ling_ability(object_given, verb_given, name_given, ability_icon_given, arguments)
if(!object_given)
message_admins("ERROR: add_ling_ability() was not given an object in its arguments.")
Expand Down
12 changes: 12 additions & 0 deletions code/_onclick/hud/action.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#define AB_CHECK_LYING 4
#define AB_CHECK_ALIVE 8
#define AB_CHECK_INSIDE 16
#define AB_CHECK_INSIDE_ACCESSORY 32


/datum/action
Expand Down Expand Up @@ -112,6 +113,11 @@
if(check_flags & AB_CHECK_INSIDE)
if(!(target in owner))
return 0
if(check_flags & AB_CHECK_INSIDE_ACCESSORY)
if(!(target in owner))
var/obj/item/clothing/C = target.loc
if (!(istype(C) && (C in owner) && (target in C.accessories)))
return 0
return 1

/datum/action/proc/UpdateName()
Expand Down Expand Up @@ -237,6 +243,12 @@
/datum/action/item_action/CheckRemoval(mob/living/user)
return !(target in user)

/datum/action/item_action/accessory
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_ALIVE|AB_CHECK_INSIDE_ACCESSORY

/datum/action/item_action/accessory/CheckRemoval(mob/living/user)
return !(target in user || (target.loc && (target.loc in user)))

/datum/action/item_action/hands_free
check_flags = AB_CHECK_ALIVE|AB_CHECK_INSIDE

Expand Down
3 changes: 3 additions & 0 deletions code/datums/extensions/chameleon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
if (!chameleon_choices)
var/chameleon_type = chameleon_base_type || holder.parent_type
chameleon_choices = LAZYACCESS(chameleon_choices_by_type, chameleon_type)

if (!chameleon_choices)
chameleon_choices = GenerateChameleonChoices(chameleon_type)
LAZYSET(chameleon_choices_by_type, chameleon_type, chameleon_choices)
Expand Down Expand Up @@ -69,8 +70,10 @@
return null

/datum/extension/chameleon/proc/GenerateChameleonChoices(basetype)

var/choices = list()
var/types = islist(basetype) ? basetype : typesof(basetype)

for (var/path in types)
AddChameleonChoice(choices, path)
return sortAssoc(choices)
Expand Down
Loading

0 comments on commit 6badd68

Please sign in to comment.