mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 16:05:07 +00:00
## About The Pull Request adds the Cain & Abel to the lootpool of the colossus!  these are a set of angelic twinblades bound together by some chains. The long chains allow u to attack mobs from a distance (2 tiles max) and at very FAST speed, and come with a few new mechanics: -Attacking a mob with the cain and abel grants you a special whisp that follows your character. these whisps empower ur next melee attacks u can collect a maximum of up to 6 whisps, (their bonuses stack), after which they reset. If u get hit by a mob once, you'll lose ur whisps (and ur melee bonus), so ull have to regain them by rebuilding up ur combo. u can also choose to sacrifice ur whisps by firing them at mobs (by right clicking them) for some hefty damage (this again means u'll lose them) https://github.com/user-attachments/assets/0a1738db-9fa4-4226-ac80-334f5e97cfa5 -u can also choose to hurl one of ur daggers at enemies, there's 2 throw modes u can toggle between by pressing Z while holding ur weapon. 1- On launch mode, u can throw one of ur daggers at a tile, afterwhich the chains will rapidly pull u towards it, making for some cool getaways in tense situations. this puts throw mode on a 7 second cooldown 2- On crystal mode, u can hurl a dagger at an enemy or at a tile. Spiked crystals will errupt on nearby floors, dealing some damage to nearby mobs and stunning them for 2 seconds (bosses dont get stunned tho). puts throw mode on a 15 second cooldown https://github.com/user-attachments/assets/665b9cf4-c5a1-4263-a36b-86e3f35d0ae5 -Lastly is the swing ability. This will swing ur daggers around u, dealing AOE damage to nearby mobs, and makes u block all melee attacks, tentacle attacks, and deflect incoming projectile attacks (could for example be used to deflect the colossus' shotgun blast back to it). ull only block attacks while the animation is active, which lasts a good 1.75 seconds, and is at a 20 second cooldown. https://github.com/user-attachments/assets/073e5324-af5b-45ab-912e-5bcaa13fc728 Here's a short clip of me using them to fight a colossus and a bubblegum https://www.youtube.com/watch?v=kp5Hu16dHPQ&ab_channel=Kobsa ## Why It's Good For The Game adds a new fun weapon with a few deep mechanics to the game. also makes taking down colossi alot more rewarding. ## Changelog 🆑 add: adds the cain and abel to the colossus lootpool! /🆑 # Conflicts: # icons/mob/inhands/equipment/kitchen_lefthand.dmi
89 lines
2.7 KiB
Plaintext
89 lines
2.7 KiB
Plaintext
///Maximum amount of times a clock can be repaired until it's destroyed beyond repair.
|
|
#define MAX_CLOCK_REPAIRS 2
|
|
|
|
/obj/item/table_clock
|
|
name = "table clock"
|
|
desc = "An annoying clock that keeps you sane through tireless nights."
|
|
icon = 'icons/obj/fluff/general.dmi'
|
|
icon_state = "table_clock"
|
|
inhand_icon_state = "table_clock"
|
|
base_icon_state = "table_clock"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
|
|
///Soundloop we use of a clock ticking.
|
|
var/datum/looping_sound/clock/soundloop
|
|
///Boolean on whether the clock has been destroyed.
|
|
var/broken = FALSE
|
|
///Amount of times the clock has been destroyed. It becomes unrepairable the third time.
|
|
var/times_broken
|
|
|
|
/obj/item/table_clock/Initialize(mapload)
|
|
. = ..()
|
|
soundloop = new(src, TRUE)
|
|
|
|
/obj/item/table_clock/Destroy(force)
|
|
soundloop.stop()
|
|
return ..()
|
|
|
|
/obj/item/table_clock/examine(mob/user)
|
|
. = ..()
|
|
if(broken)
|
|
. += span_info("It appears to be currently broken. You can use it in-hand to repair it.")
|
|
else
|
|
. += span_info("The current CST (local) time is: [station_time_timestamp()].")
|
|
. += span_info("The current TCT (galactic) time is: [time2text(world.realtime, "hh:mm:ss")].")
|
|
|
|
/obj/item/table_clock/attackby(obj/item/attacking_item, mob/user, params)
|
|
. = ..()
|
|
if(attacking_item.force < 5 || broken)
|
|
return
|
|
if(break_clock(break_sound = 'sound/effects/magic/clockwork/ark_activation.ogg'))
|
|
user.visible_message(
|
|
span_warning("[user] smashes \the [src] so hard it stops breaking!"),
|
|
span_bolddanger("I can't stand this stupid machine anymore! Shut up already!"),
|
|
span_notice("You hear repeated smashing!"),
|
|
)
|
|
|
|
/obj/item/table_clock/throw_at(atom/target, range, speed, mob/thrower, spin, diagonals_first, datum/callback/callback, force, gentle, quickstart, throw_type_path = /datum/thrownthing)
|
|
. = ..()
|
|
if(!.)
|
|
return
|
|
break_clock(break_sound = 'sound/effects/footstep/glass_step.ogg')
|
|
|
|
/obj/item/table_clock/interact(mob/user)
|
|
. = ..()
|
|
if(!broken)
|
|
to_chat(user, span_warning("Touch the clock? And risk breaking it? Are you crazy??"))
|
|
return
|
|
if(times_broken > MAX_CLOCK_REPAIRS)
|
|
user.balloon_alert(user, "clock unrepairable!")
|
|
return
|
|
user.balloon_alert(user, "fixing clock...")
|
|
if(!do_after(user, 10 SECONDS, src))
|
|
return
|
|
user.balloon_alert(user, "clock repaired!")
|
|
broken = FALSE
|
|
soundloop.start()
|
|
update_appearance(UPDATE_ICON)
|
|
|
|
/obj/item/table_clock/update_icon_state()
|
|
icon_state = "[base_icon_state][broken ? "_broken" : null]"
|
|
return ..()
|
|
|
|
/**
|
|
* Breaks the clock, turning off the soundloop.
|
|
* Returns TRUE if it successfully breaks, FALSE otherwise.
|
|
*/
|
|
/obj/item/table_clock/proc/break_clock(break_sound)
|
|
if(broken)
|
|
return FALSE
|
|
|
|
broken = TRUE
|
|
soundloop.stop()
|
|
playsound(src, break_sound, 40, FALSE)
|
|
times_broken++
|
|
update_appearance(UPDATE_ICON)
|
|
return TRUE
|
|
|
|
#undef MAX_CLOCK_REPAIRS
|