mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
* Improves the RPG loot wizard event. (#77218) ## About The Pull Request As the title says. Adds a bunch more stat changes to various different items and a somewhat simple way of modifying them whilst minimizing side-effects as much as possible. Added a new negative curse of polymorph suffix that can randomly polymorph you once you pick up the item. Curse of hunger items won't start on items that are not on a turf. Curse of polymorph will only activate when equipped. Bodyparts, two-handed melees, bags, guns and grenades, to name a few, have a bunch of type-specific stat changes depending on their quality. Some items won't gain fantasy suffixes during the RPG loot event, like stacks, chairs and paper, to make gamifying the stats a bit harder. I'm sure there'll still be other ways to game the event, but it's not that big of a deal since these are the easiest ways to game it. High level items also have a cool unusual effect aura ## Why It's Good For The Game Makes the RPG item event cooler. Right now, it's a bit lame since everything only gains force value and wound bonus on attack. This makes the statistic increases more type-based and make it interesting to use It's okay for some items to be powerful since this is a wizard event and a very impactful one too. By making the curse of hunger items not spawn on people, it'll also make it a less painful event too. ## Changelog 🆑 add: Expanded the RPG loot wizard event by giving various different items their own statistic boost. /🆑 --------- Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com> * Improves the RPG loot wizard event. --------- Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
37 lines
1.0 KiB
Plaintext
37 lines
1.0 KiB
Plaintext
/**
|
|
* curse of polymorph component;
|
|
*
|
|
* Used as a rpgloot suffix and wizard spell!
|
|
*/
|
|
/datum/component/curse_of_polymorph
|
|
var/polymorph_type
|
|
|
|
/datum/component/curse_of_polymorph/Initialize(polymorph_type)
|
|
. = ..()
|
|
if(!isitem(parent))
|
|
return COMPONENT_INCOMPATIBLE
|
|
src.polymorph_type = polymorph_type
|
|
|
|
/datum/component/curse_of_polymorph/RegisterWithParent()
|
|
. = ..()
|
|
var/obj/item/cursed_item = parent
|
|
RegisterSignal(cursed_item, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip))
|
|
|
|
/datum/component/curse_of_polymorph/UnregisterFromParent()
|
|
. = ..()
|
|
UnregisterSignal(parent, list(
|
|
COMSIG_ITEM_EQUIPPED,
|
|
))
|
|
|
|
///signal called from equipping parent
|
|
/datum/component/curse_of_polymorph/proc/on_equip(datum/source, mob/living/equipper, slot)
|
|
SIGNAL_HANDLER
|
|
var/obj/item/polymorpher_item = parent
|
|
// Items with no slot flags curse on pickup (because hand slot)
|
|
if(polymorpher_item.slot_flags && !(polymorpher_item.slot_flags & slot))
|
|
return
|
|
ASYNC
|
|
equipper.dropItemToGround(polymorpher_item, TRUE)
|
|
equipper.wabbajack(polymorph_type)
|
|
|