mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 12:35:33 +01:00
Adds two fantasy affixes (#89257)
## About The Pull Request - Adds a fantasy affix that makes your attacks with the item cause a chain lightning, which shocks people. The damage, distance, and limit are all based on quality. - Adds a fantasy affix that makes your attacks with the item slow the target's click cd, making them take longer between attacks. The penalty is based on quality. ## Why It's Good For The Game BiS for main tanks ## Changelog 🆑 Melbert add: Adds two fantasy affixes /🆑
This commit is contained in:
@@ -161,3 +161,26 @@
|
||||
var/obj/item/master = comp.parent
|
||||
comp.appliedComponents += master.AddComponent(/datum/component/soul_stealer)
|
||||
return "soul-[pick("stealing", "hungering", "devouring")] [newName]"
|
||||
|
||||
// On hitting a mob chain lightning will jump to another mob within 2 tiles of the original target
|
||||
/datum/fantasy_affix/thunderfury
|
||||
name = "Thunderfury"
|
||||
placement = AFFIX_PREFIX
|
||||
alignment = AFFIX_GOOD
|
||||
weight = 3
|
||||
|
||||
/datum/fantasy_affix/thunderfury/apply(datum/component/fantasy/comp, newName)
|
||||
comp.parent.AddElement(/datum/element/chain_lightning_attack, get_damage(comp), get_range(comp), get_limit(comp))
|
||||
return "Thunderfury, Blessed [newName]"
|
||||
|
||||
/datum/fantasy_affix/thunderfury/remove(datum/component/fantasy/comp)
|
||||
comp.parent.RemoveElement(/datum/element/chain_lightning_attack, get_damage(comp), get_range(comp), get_limit(comp))
|
||||
|
||||
/datum/fantasy_affix/thunderfury/proc/get_damage(datum/component/fantasy/comp)
|
||||
return min(round(comp.quality, 2), 20)
|
||||
|
||||
/datum/fantasy_affix/thunderfury/proc/get_range(datum/component/fantasy/comp)
|
||||
return min(round(sqrt(comp.quality), 1), 3)
|
||||
|
||||
/datum/fantasy_affix/thunderfury/proc/get_limit(datum/component/fantasy/comp)
|
||||
return min(round(sqrt(comp.quality), 1), 3)
|
||||
|
||||
@@ -290,3 +290,20 @@
|
||||
|
||||
/datum/fantasy_affix/doot/remove(datum/component/fantasy/comp)
|
||||
comp.parent.RemoveElement(/datum/element/spooky, too_spooky = comp.quality > 17, stam_damage_mult = comp.quality * 0.15)
|
||||
|
||||
// On hitting a mob their click cd is slowed marginally
|
||||
/datum/fantasy_affix/windseeker
|
||||
name = "of the Windseeker"
|
||||
placement = AFFIX_SUFFIX
|
||||
alignment = AFFIX_GOOD
|
||||
weight = 3
|
||||
|
||||
/datum/fantasy_affix/windseeker/apply(datum/component/fantasy/comp, newName)
|
||||
comp.parent.AddElement(/datum/element/slow_target_click_cd_attack, get_cd_penalty(comp))
|
||||
return "[newName] of the Windseeker"
|
||||
|
||||
/datum/fantasy_affix/windseeker/remove(datum/component/fantasy/comp)
|
||||
comp.parent.RemoveElement(/datum/element/slow_target_click_cd_attack, get_cd_penalty(comp))
|
||||
|
||||
/datum/fantasy_affix/windseeker/proc/get_cd_penalty(datum/component/fantasy/comp)
|
||||
return min(round(sqrt(comp.quality) * 0.1, 0.1), 0.4) // this gives you a small number, like 0.2 seconds
|
||||
|
||||
Reference in New Issue
Block a user