Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nqqf Pybpx Phyg I41 #45

Merged
merged 76 commits into from
Aug 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
82cf377
eeeeeeeeeeeeeeeeeeeeeeeee
wraith-54321 May 6, 2023
a6987c9
Revert "a"
wraith-54321 May 6, 2023
6e7019a
Revert "typo"
wraith-54321 May 6, 2023
9ce927a
Revert "the stuff"
wraith-54321 May 6, 2023
eacaf90
tick tock
wraith-54321 Jun 8, 2023
21430e3
Update steam_helios.dm
wraith-54321 Jun 9, 2023
7ef70b1
Merge branch 'master' into clock-cult
wraith-54321 Jun 9, 2023
388f711
lint.mp1
wraith-54321 Jun 9, 2023
830ce32
Merge branch 'clock-cult' of https://github.com/wraith-54321/Monkesta…
wraith-54321 Jun 9, 2023
20411eb
lint.mp2
wraith-54321 Jun 9, 2023
b7be72c
lint uhhhhh
wraith-54321 Jun 9, 2023
4627d65
lint.mp3
wraith-54321 Jun 9, 2023
a21c0e2
Revert "lint.mp3"
wraith-54321 Jun 9, 2023
83948db
lint.mp4
wraith-54321 Jun 9, 2023
ca485fd
lint.mp5
wraith-54321 Jun 9, 2023
f23a416
lint.mp6
wraith-54321 Jun 9, 2023
dbf60ca
linteeeeeeeeeee
wraith-54321 Jun 10, 2023
17e0231
NOW THATS A LOT OF RUNTIME!
wraith-54321 Jun 10, 2023
27498d2
c
wraith-54321 Jun 10, 2023
4f28f09
runtimes?
wraith-54321 Jun 10, 2023
061a361
NO RUNTIMES?
wraith-54321 Jun 10, 2023
8e4be70
I did funni
wraith-54321 Jun 10, 2023
34fa31e
commiiiiiiitttttt
wraith-54321 Jun 11, 2023
1c28fb2
Merge branch 'master' into clock-cult
wraith-54321 Jun 28, 2023
b1a47df
Merge branch 'Monkestation:master' into clock-cult
wraith-54321 Jun 28, 2023
a2670ef
golum
wraith-54321 Jun 29, 2023
d8b585a
BURN TO THE GROUND
wraith-54321 Jul 3, 2023
39f7789
Merge branch 'master' into clock-cult
wraith-54321 Jul 3, 2023
a60d834
REEEEEEEEEEbe
wraith-54321 Jul 8, 2023
37dd7af
Merge branch 'clock-cult' of https://github.com/wraith-54321/Monkesta…
wraith-54321 Jul 8, 2023
97e9347
heeeeeeeeeeee
wraith-54321 Jul 8, 2023
2bcaa7a
more thingsssss
wraith-54321 Jul 12, 2023
68a231c
Merge branch 'master' into clock-cult
wraith-54321 Jul 12, 2023
8c0088f
Merge branch 'master' into clock-cult
wraith-54321 Jul 12, 2023
5e58c80
COMPROMISE
wraith-54321 Jul 12, 2023
6caac4f
Merge branch 'clock-cult' of https://github.com/wraith-54321/Monkesta…
wraith-54321 Jul 12, 2023
294ede4
SUBMIT
wraith-54321 Jul 14, 2023
05db131
Merge branch 'master' into clock-cult
wraith-54321 Jul 14, 2023
31936ef
should commit
wraith-54321 Jul 17, 2023
b25d2ef
Merge branch 'Monkestation:master' into clock-cult
wraith-54321 Jul 17, 2023
ad3c3b5
fin
wraith-54321 Jul 21, 2023
d87ba00
MA, THE BABY WONT SHUT UP
wraith-54321 Jul 21, 2023
7fe40fa
MA I SWEAR
wraith-54321 Jul 21, 2023
46874df
MA IF THIS BABY DOES NOT SHUT UP
wraith-54321 Jul 21, 2023
57ec145
it shut up
wraith-54321 Jul 21, 2023
8450a5e
me when the
wraith-54321 Jul 21, 2023
8b4af9c
Merge branch 'Monkestation:master' into clock-cult
wraith-54321 Jul 21, 2023
8728337
prefs and dynamic ruleset
wraith-54321 Jul 21, 2023
2eff112
misc improvements
wraith-54321 Jul 24, 2023
87be00d
feex
wraith-54321 Jul 24, 2023
1107a2d
desync
wraith-54321 Jul 24, 2023
beabad0
resync
wraith-54321 Jul 24, 2023
53fd41f
Merge branch 'master' into clock-cult
wraith-54321 Jul 24, 2023
d467806
compiling would be good
wraith-54321 Jul 24, 2023
a909160
Merge branch 'clock-cult' of https://github.com/wraith-54321/Monkesta…
wraith-54321 Jul 24, 2023
0f38bdb
compiling, still a good thing
wraith-54321 Jul 24, 2023
876c1d8
WEBEDIT ALERT
wraith-54321 Jul 24, 2023
d3fd5c9
Merge branch 'Monkestation:master' into clock-cult
wraith-54321 Aug 2, 2023
4a50194
lent
wraith-54321 Aug 2, 2023
befe286
aaaaa
wraith-54321 Aug 2, 2023
b2fc4a3
gun
wraith-54321 Aug 2, 2023
5f4de49
mostly working so ima commit now
wraith-54321 Aug 5, 2023
5bac040
I am the big smart
wraith-54321 Aug 5, 2023
4278f42
feedback
wraith-54321 Aug 5, 2023
a916f34
size
wraith-54321 Aug 6, 2023
67e1987
tiny
wraith-54321 Aug 6, 2023
3311903
tiny cog
wraith-54321 Aug 6, 2023
7a51f29
more fixes
wraith-54321 Aug 6, 2023
fcc69b5
me when I forget to build
wraith-54321 Aug 6, 2023
f89c3b4
gods fight
wraith-54321 Aug 7, 2023
e12c66c
lazy cleanup
wraith-54321 Aug 7, 2023
04503e3
WEBEDIT QUICK FIX
wraith-54321 Aug 9, 2023
f483089
quick fixes
wraith-54321 Aug 9, 2023
d63bffb
order
wraith-54321 Aug 9, 2023
cb83f89
Merge branch 'Monkestation:master' into clock-cult
wraith-54321 Aug 11, 2023
7d7acc6
Balance and fixes
wraith-54321 Aug 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/DNA.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define SPECIES_GOLEM_CLOCKWORK "clock_golem"
1 change: 1 addition & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/access.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define ACCESS_CLOCKCULT "clockcult"
8 changes: 8 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/antagonists.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// Clock cultist
#define IS_CLOCK(mob) ((FACTION_CLOCK in mob.faction) || mob?.mind?.has_antag_datum(/datum/antagonist/clock_cultist))
/// maximum amount of cogscarabs the clock cult can have
#define MAXIMUM_COGSCARABS 9
/// is something a cogscarab
#define iscogscarab(checked) (istype(checked, /mob/living/simple_animal/drone/cogscarab))
/// is something an eminence
#define iseminence(checked) (istype(checked, /mob/living/eminence))
6 changes: 6 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/clock_cult.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#define SPELLTYPE_ABSTRACT "Abstract"
#define SPELLTYPE_SERVITUDE "Servitude"
#define SPELLTYPE_PRESERVATION "Preservation"
#define SPELLTYPE_STRUCTURES "Structures"

#define SIGIL_TRANSMISSION_RANGE 4
1 change: 1 addition & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/colors.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define LIGHT_COLOR_CLOCKWORK "#BE8700"
1 change: 1 addition & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/combat.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define CLICK_CD_FAST_MELEE 5
6 changes: 6 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/construction.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
//clockwork wall deconstruction
#define COVER_COG_REMOVED 1
#define TRANSMISSION_COGS_REMOVED 2
#define GEARS_UNBOLTED 3
#define INNER_PANEL_REMOVED 4
#define GEARS_UNWOUND 5 //for clock cultist deconstruction
2 changes: 2 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/cooldowns.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#define COOLDOWN_MECHA_JUDICIAL_MARK "mecha_judicial_mark"
#define COOLDOWN_MECHA_STEAM_DISCHARGE "mecha_steam_discharge"
11 changes: 11 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/dcs/signals/signals_atom.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/// from base of atom/ratvar_act()
#define COMSIG_ATOM_RATVAR_ACT "atom_ratvar_act"

/// /datum/component/clockwork_trap signals: ()
#define COMSIG_CLOCKWORK_SIGNAL_RECEIVED "clock_received"

/// Called when a clock cultist uses a clockwork slab: (obj/item/clockwork/clockwork_slab/slab)
#define COMSIG_CLOCKWORK_SLAB_USED "clockwork_slab_used"

/// from base of atom/eminence_act() : (mob/living/eminence/user)
#define COMSIG_ATOM_EMINENCE_ACT "atom_eminence_act"
2 changes: 2 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/factions.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Clock cult's faction
#define FACTION_CLOCK "clock"
2 changes: 2 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/level_traits.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
///check if a z level is reebe
#define is_reebe_level(z) SSmapping.level_trait(z, ZTRAIT_REEBE)
4 changes: 4 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/maps.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
///Boolean ztrait
#define ZTRAIT_REEBE "Reebe"
///List of ztraits the reebe Z level has
#define ZTRAITS_REEBE list(ZTRAIT_REEBE = TRUE, ZTRAIT_NOPHASE = TRUE, ZTRAIT_BOMBCAP_MULTIPLIER = 0.5, ZTRAIT_RESERVED = TRUE)
7 changes: 7 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/mecha.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//making this a high bitshift to be sure it wont conflict for a while
///a mech with this flag cannot have its stock parts removed
#define NOT_ABLE_TO_REMOVE_STOCK_PARTS (1<<20)

//EQUIPMENT FLAGS
///equipment with this flag cannot be removed from a mech
#define NOT_ABLE_TO_REMOVE_FROM_MECHA (1<<0)
6 changes: 6 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/span.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#define span_brass(str) ("<span class='brass'>" + str + "</span>")
#define span_bigbrass(str) ("<span class='big_brass'>" + str + "</span>")
#define span_clockyellow(str) ("<span class='clockyellow'>" + str + "</span>")
#define span_clockgray(str) ("<span class='clockgray'>" + str + "</span>")
#define span_clockred(str) ("<span class='clockred'>" + str + "</span>")
#define span_ratvar(str) ("<span class='ratvar'>" + str + "</span>")
1 change: 1 addition & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/status_effects.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define STATUS_EFFECT_INTERDICTION /datum/status_effect/interdiction //used by interdiction lenses and judicial marks
8 changes: 8 additions & 0 deletions code/__DEFINES/MONKESTATION_DEFINES/traits.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/// Given to Clockwork Golems, gives them a reduction on invoke time for certain scriptures
#define TRAIT_FASTER_SLAB_INVOKE "faster_slab_invoke"
/// Trait source for the vanguard scripture
#define VANGUARD_TRAIT "vanguard"
/// Has an item been enchanted by a clock cult Stargazer
#define TRAIT_STARGAZED "stargazed"
/// Trait source for the stargazer
#define STARGAZER_TRAIT "stargazer"
3 changes: 3 additions & 0 deletions code/__DEFINES/role_preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#define ROLE_OPERATIVE "Operative"
#define ROLE_TRAITOR "Traitor"
#define ROLE_WIZARD "Wizard"
#define ROLE_CLOCK_CULTIST "Clock Cultist"

// Midround roles
#define ROLE_ABDUCTOR "Abductor"
Expand Down Expand Up @@ -100,6 +101,7 @@
#define ROLE_VENUSHUMANTRAP "Venus Human Trap"



/// This defines the antagonists you can operate with in the settings.
/// Keys are the antagonist, values are the number of days since the player's
/// first connection in order to play.
Expand All @@ -115,6 +117,7 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_REV_HEAD = 14,
ROLE_TRAITOR = 0,
ROLE_WIZARD = 14,
ROLE_CLOCK_CULTIST = 14,
ROLE_BLOODSUCKER = 0,

// Midround
Expand Down
1 change: 1 addition & 0 deletions code/datums/mind/antag.dm
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@

var/datum/antagonist/rev/revolutionary = has_antag_datum(/datum/antagonist/rev)
revolutionary?.remove_revolutionary(borged = TRUE)
remove_antag_datum(/datum/antagonist/clock_cultist) //monkestation edit

/**
* ## give_uplink
Expand Down
2 changes: 1 addition & 1 deletion code/game/alternate_appearance.dm
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
return TRUE
if (istype(M, /mob/living/simple_animal/hostile/construct/wraith))
return TRUE
if(isrevenant(M) || IS_WIZARD(M))
if(isrevenant(M) || IS_WIZARD(M) || IS_CLOCK(M)) //monkestation edit: adds IS_CLOCK check
return TRUE
return FALSE

Expand Down
19 changes: 19 additions & 0 deletions code/game/objects/items/robot/robot_parts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,9 @@
O.make_laws()
O.log_current_laws()

var/datum/antagonist/clock_cultist/old_servant_datum = brainmob.mind?.has_antag_datum(/datum/antagonist/clock_cultist) //monkestation edit
if(be_clockwork && old_servant_datum) //monkestation edit
old_servant_datum.silent = TRUE //monkestation edit
brainmob.mind?.remove_antags_for_borging()
O.job = JOB_CYBORG

Expand Down Expand Up @@ -318,6 +321,15 @@
O.set_lockcharge(TRUE)
to_chat(O, span_warning("Error: Servo motors unresponsive."))

//monkestation edit start
if(be_clockwork && O.mind)
var/datum/antagonist/clock_cultist/new_servant_datum = new
if(old_servant_datum)
new_servant_datum.silent = TRUE
O.mind.add_antag_datum(new_servant_datum)
new_servant_datum.silent = FALSE
//monkestation edit end

else
to_chat(user, span_warning("The MMI must go in after everything else!"))

Expand Down Expand Up @@ -357,6 +369,13 @@

else if(istype(W, /obj/item/pen))
to_chat(user, span_warning("You need to use a multitool to name [src]!"))
//monkestation edit start
else if(istype(W, /obj/item/clockwork/clockwork_slab) && IS_CLOCK(user))
to_chat(user, span_brass("You adjust the internals of \the [src] to that of clockwork."))
be_clockwork = TRUE
lawsync = FALSE
aisync = FALSE
//monkestation edit end
else
return ..()

Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@
/obj/item/weldingtool,
/obj/item/wirecutters,
/obj/item/wrench,
/obj/item/clockwork/replica_fabricator, //monkestation edit
/obj/item/clockwork/clockwork_slab, //monkestation edit
))

/obj/item/storage/belt/utility/chief
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/structures/girders.dm
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@
return
B.use(amount)
var/turf/T = get_turf(src)
T.PlaceOnTop(/turf/closed/wall/mineral/bronze)
IS_CLOCK(user) ? T.PlaceOnTop(/turf/closed/wall/clockwork) : T.PlaceOnTop(/turf/closed/wall/mineral/bronze) //monkestation edit: clock cultists make clockwork walls
qdel(src)

else
Expand Down
2 changes: 1 addition & 1 deletion code/game/turfs/closed/wall/misc_walls.dm
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
AddElement(/datum/element/rust)

/turf/closed/wall/mineral/bronze
name = "clockwork wall"
name = "bronze wall" //monkestation edit: renamed from clockwork to bronze
desc = "A huge chunk of bronze, decorated like gears and cogs."
icon = 'icons/turf/walls/clockwork_wall.dmi'
icon_state = "clockwork_wall-0"
Expand Down
10 changes: 10 additions & 0 deletions code/modules/antagonists/cult/blood_magic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,16 @@
var/old_color = target.color
target.color = rgb(0, 128, 0)
animate(target, color = old_color, time = 1 SECONDS, easing = EASE_IN)

// MONKESTATION EDIT START
if(IS_CLOCK(target))
to_chat(user, span_warning("Some force greater than you intervenes! [target] is protected by the heretic Ratvar!"))
to_chat(target, span_warning("You are protected by your faith to Ratvar!"))
var/old_color = target.color
target.color = rgb(190, 135, 0)
animate(target, color = old_color, time = 1 SECONDS, easing = EASE_IN)
// MONKESTATION EDIT END

else if(target.can_block_magic())
to_chat(user, span_warning("The spell had no effect!"))
else
Expand Down
12 changes: 8 additions & 4 deletions code/modules/antagonists/cult/cult.dm
Original file line number Diff line number Diff line change
Expand Up @@ -492,8 +492,8 @@
return TRUE
return FALSE

/// Returns whether the given mob is convertable to the blood cult
/proc/is_convertable_to_cult(mob/living/target, datum/team/cult/specific_cult)
/// Returns whether the given mob is convertable to the blood cult, monkestation edit: or clock cult
/proc/is_convertable_to_cult(mob/living/target, datum/team/cult/specific_cult, for_clock_cult) //monkestation edit: adds for_clock_cult
if(!istype(target))
return FALSE
if(isnull(target.mind) || !GET_CLIENT(target))
Expand All @@ -505,12 +505,16 @@
if(specific_cult?.is_sacrifice_target(target.mind))
return FALSE
var/mob/living/master = target.mind.enslaved_to?.resolve()
if(master && !IS_CULTIST(master))
if(master && (for_clock_cult ? !IS_CLOCK(master) : !IS_CULTIST(master))) //monkestation edit: master is now checked based off of for_clock_cult
return FALSE
if(IS_HERETIC_OR_MONSTER(target))
return FALSE
if(HAS_TRAIT(target, TRAIT_MINDSHIELD) || issilicon(target) || isbot(target) || isdrone(target))
if(HAS_TRAIT(target, TRAIT_MINDSHIELD) || isbot(target)) //monkestation edit: moved isdrone() as well as issilicon() to the next check down
return FALSE //can't convert machines, shielded, or braindead
if((isdrone(target) || issilicon(target)) && !for_clock_cult) //monkestation edit: clock cult converts them into cogscarabs and clock borgs
return FALSE //monkestation edit
if(for_clock_cult ? IS_CULTIST(target) : IS_CLOCK(target)) //monkestation edit
return FALSE //monkestation edit
return TRUE

/// Sets a blood target for the cult.
Expand Down
28 changes: 25 additions & 3 deletions code/modules/antagonists/cult/runes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -561,8 +561,7 @@ structure_check() searches for nearby cultist structures required for the invoca
to_chat(invoker, span_warning("Nar'Sie is already on this plane!"))
log_game("Nar'Sie rune activated by [user] at [COORD(src)] failed - already summoned.")
return

//BEGIN THE SUMMONING
//monkestation edit start
used = TRUE
var/datum/team/cult/cult_team = user_antag.cult_team
if (cult_team.narsie_summoned)
Expand All @@ -571,6 +570,28 @@ structure_check() searches for nearby cultist structures required for the invoca
cultist_mob.client?.give_award(/datum/award/achievement/misc/narsupreme, cultist_mob)

cult_team.narsie_summoned = TRUE

if(GLOB.clock_ark) //might bump this up to need the ark to be active in some form
if(!GLOB.narsie_breaching_rune)
GLOB.narsie_breaching_rune = src

for(var/invoker in invokers)
to_chat(invoker, span_bigbrass("A vile light prvents you from saying the invocation! \
It looks like you will have to destroy whatever is causing this before Nar'sie may be summoned."))
return
//monkestation edit end

//BEGIN THE SUMMONING
//monkestation removal start
/* used = TRUE
var/datum/team/cult/cult_team = user_antag.cult_team
if (cult_team.narsie_summoned)
for (var/datum/mind/cultist_mind in cult_team.members)
var/mob/living/cultist_mob = cultist_mind.current
cultist_mob.client?.give_award(/datum/award/achievement/misc/narsupreme, cultist_mob)

cult_team.narsie_summoned = TRUE */
//monkestation removal end
..()
sound_to_playing_players('sound/effects/dimensional_rend.ogg')
var/turf/rune_turf = get_turf(src)
Expand Down Expand Up @@ -1001,7 +1022,8 @@ structure_check() searches for nearby cultist structures required for the invoca

for(var/mob/living/target in range(src, 3))
target.Paralyze(30)
empulse(T, 0.42*(intensity), 1)
if(!GLOB.clock_ark) //monkestation edit: this does a little too much damage to the clock cult due to killing their cam consoles with no counterplay
empulse(T, 0.42*(intensity), 1)

var/list/images = list()
var/datum/atom_hud/sec_hud = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
Expand Down
13 changes: 13 additions & 0 deletions code/modules/mob/living/silicon/robot/robot_model.dm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@
var/obj/item/new_module = new path(src)
emag_modules += new_module
emag_modules -= path
//monkestation edit start
for(var/path in clock_modules)
var/obj/item/new_module = new path(src)
clock_modules += new_module
clock_modules -= path
//monkestation edit end

/obj/item/robot_model/Destroy()
basic_modules.Cut()
Expand Down Expand Up @@ -126,6 +132,13 @@
if(cyborg.emagged)
for(var/obj/item/module in emag_modules)
add_module(module, FALSE, FALSE)
//monkestation edit start
if(IS_CLOCK(cyborg) && !cyborg.clockwork) //this should never happen
cyborg.set_clockwork(TRUE, FALSE)
if(cyborg.clockwork)
for(var/obj/item/module in clock_modules)
add_module(module, FALSE, FALSE)
//monkestation edit end
for(var/obj/item/module in added_modules)
add_module(module, FALSE, FALSE)
for(var/module in held_modules)
Expand Down
7 changes: 7 additions & 0 deletions code/modules/power/apc/apc_main.dm
Original file line number Diff line number Diff line change
Expand Up @@ -602,6 +602,13 @@
charging = APC_NOT_CHARGING
chargecount = 0

// MONKESTATION ADDITION START - CLOCK CULT
if(integration_cog && GLOB.clock_power < GLOB.max_clock_power)
var/power_delta = clamp(cell.charge - 10, 0, 10)
GLOB.clock_power = min(round(GLOB.clock_power + (power_delta)), GLOB.max_clock_power)
cell.charge -= power_delta
// MONKESTATION ADDITION END

else // no cell, switch everything off

charging = APC_NOT_CHARGING
Expand Down
28 changes: 28 additions & 0 deletions code/modules/power/singularity/narsie.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@

soul_goal = round(1 + LAZYLEN(souls_needed) * 0.75)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(begin_the_end))
gods_battle() //monkestation edit
START_PROCESSING(SSobj, src) //monkestation edit

/obj/narsie/Destroy()
send_to_playing_players(span_narsie("\"<b>[pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")]\"</b>"))
Expand All @@ -109,6 +111,7 @@
if (GLOB.cult_narsie == src)
GLOB.cult_narsie = null

STOP_PROCESSING(SSobj, src) //monkestation edit
return ..()

/obj/narsie/attack_ghost(mob/user)
Expand All @@ -117,6 +120,31 @@
/obj/narsie/process()
var/datum/component/singularity/singularity_component = singularity.resolve()

//monkestation edit start
if(GLOB.cult_ratvar)
singularity_component?.target = GLOB.cult_ratvar
if(get_dist(src, GLOB.cult_ratvar) < 5)
if(next_attack_tick < world.time)
next_attack_tick = world.time + rand(50, 100)
send_to_playing_players(span_danger("[pick("You hear the scratching of cogs.", "You hear the clanging of pipes.", "You feel your bones start to rust...")]"))
sound_to_playing_players('sound/magic/clockwork/narsie_attack.ogg', 100)
SpinAnimation(4, 0)

for(var/mob/living/living_player in GLOB.player_list)
shake_camera(living_player, 2.5 SECONDS, 5)
living_player.Knockdown(1 SECONDS)

if(prob(max(length(get_antag_minds(/datum/antagonist/cult))/2, 15)))
sound_to_playing_players('sound/magic/clockwork/anima_fragment_death.ogg', 100)
sound_to_playing_players('sound/effects/explosionfar.ogg', 100)
qdel(GLOB.cult_ratvar)
send_to_playing_players(span_narsie("You really thought you could best me twice?"))
for(var/datum/mind/servant_mind in GLOB.main_clock_cult?.members)
to_chat(servant_mind, span_userdanger("You feel a stabbing pain in your chest... This can't be happening!"))
servant_mind.current?.dust()
return
//monkestation edit end

if (!isnull(singularity_component) && (!singularity_component?.target || prob(NARSIE_CHANCE_TO_PICK_NEW_TARGET)))
pickcultist()

Expand Down
Loading
Loading