mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
* Adds 9 wizard perks (#83262) ## About The Pull Request Add new spells category for wizards: Perks. perks are not really spells, but useful (and not so useful) improvements for your wizard which provide more variety for builds. https://youtu.be/eeVvUkVE3xQ All perks cost 2 points, they work without wizard’s uniform, cannot refund, effect start only at the station (perks will not work at the wizard’s base). Perk can only be purchased once. 9 added perks: 1. Four Hands - gives you 2 extra hands. 2. Worm Born - on death, wizard turns into a large worm and can no longer return to his previous form.  3. Dejavu - every 60 seconds returns wizard to where he was 60 seconds ago and restores his health to the amount he had 60 seconds ago. 4. Sale Off - When buying something from a book of spells, wizard has a chance not to spend points for the purchase, depending on the purchase price. 1/2/3/4 price chance 50/25/15/10%. You can no longer refund purchases. 5. Gamble - Give wizard 2 random perks. 6. Heart Eater - By eating someone's heart, the wizard has a chance to either increase his maximum HP and stamina by 25 or lose 10 percent of his maximum HP but get a random mutation. 7. Slime Friends - Slimes is your friends now. Every 20 Seconds you spend 50 nutriments to spawn random big angry slime. 8. Transparence - wizard becomes half transparent, any projectiles pass through, but you loses 25% of max HP and you get a stalker who will follow you to the station to kill you. 9. Magnetism - Wizard gain gravitational anomaly that orbit around him, which attracts objects and people. https://youtu.be/gp6ZtTrZu7I ## Why It's Good For The Game Gives the wizard more options to create a fun and interesting builds ## Changelog 🆑 add: new wizard spells category - perks. add: adds 9 wizard perks. /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * Adds 9 wizard perks --------- Co-authored-by: Xackii <120736708+Xackii@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com>
62 lines
2.0 KiB
Plaintext
62 lines
2.0 KiB
Plaintext
/datum/component/slime_friends
|
|
/// Slime maker timer.
|
|
var/timer
|
|
/// List to pick from when we need slime colour.
|
|
var/static/colours = list(
|
|
/datum/slime_type/adamantine,
|
|
/datum/slime_type/black,
|
|
/datum/slime_type/blue,
|
|
/datum/slime_type/bluespace,
|
|
/datum/slime_type/cerulean,
|
|
/datum/slime_type/darkblue,
|
|
/datum/slime_type/darkpurple,
|
|
/datum/slime_type/gold,
|
|
/datum/slime_type/green,
|
|
/datum/slime_type/grey,
|
|
/datum/slime_type/lightpink,
|
|
/datum/slime_type/metal,
|
|
/datum/slime_type/oil,
|
|
/datum/slime_type/orange,
|
|
/datum/slime_type/pink,
|
|
/datum/slime_type/purple,
|
|
/datum/slime_type/pyrite,
|
|
/datum/slime_type/rainbow,
|
|
/datum/slime_type/red,
|
|
/datum/slime_type/sepia,
|
|
/datum/slime_type/silver,
|
|
/datum/slime_type/yellow,
|
|
)
|
|
|
|
/datum/component/slime_friends/Initialize(...)
|
|
. = ..()
|
|
if(!isliving(parent))
|
|
return COMPONENT_INCOMPATIBLE
|
|
var/mob/living/living_parent = parent
|
|
living_parent.faction |= FACTION_SLIME
|
|
RegisterSignal(living_parent, COMSIG_ENTER_AREA, PROC_REF(start_slime_prodaction))
|
|
|
|
/datum/component/slime_friends/Destroy(force)
|
|
. = ..()
|
|
var/mob/living/living_parent = parent
|
|
living_parent.faction -= FACTION_SLIME
|
|
timer = null
|
|
|
|
/// Start slime prodaction when we leave wizden.
|
|
/datum/component/slime_friends/proc/start_slime_prodaction(mob/living/friend, area/new_area)
|
|
if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station])
|
|
return
|
|
timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS)
|
|
UnregisterSignal(friend, COMSIG_ENTER_AREA)
|
|
|
|
/// Slime prodactor proc.
|
|
/datum/component/slime_friends/proc/make_slime_friend(mob/living/friend)
|
|
timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS)
|
|
if(get_area(friend) == GLOB.areas_by_type[/area/centcom/wizard_station])
|
|
return
|
|
var/turf/where = get_turf(friend)
|
|
var/new_colour = pick(colours)
|
|
var/mob/living/basic/slime/new_friend = new(where, new_colour, SLIME_LIFE_STAGE_ADULT)
|
|
new_friend.faction = friend.faction.Copy()
|
|
new_friend.set_enraged_behaviour()
|
|
friend.nutrition -= 50
|